Initial snark14m import
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 11 Feb 2018 23:34:20 +0000 (16:34 -0700)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 11 Feb 2018 23:34:20 +0000 (16:34 -0700)
765 files changed:
INSTALL [new file with mode: 0644]
Makefile [new file with mode: 0644]
include/DIGFile/DIG.h [new file with mode: 0755]
include/DIGFile/DIGEndian.h [new file with mode: 0755]
include/DIGFile/DIGFile.h [new file with mode: 0755]
include/DIGFile/DOMTreeErrorReporter.h [new file with mode: 0755]
include/DIGFileSnark/DIGFileSnarkProj.h [new file with mode: 0755]
include/DIGFileSnark/DIGFileSnarkRec.h [new file with mode: 0755]
include/DIGRand/DIGGauss.h [new file with mode: 0755]
include/DIGRand/DIGPoisson.h [new file with mode: 0755]
include/DIGRand/DIGRand.h [new file with mode: 0755]
src/DIGFile/DIGEndian.cpp [new file with mode: 0644]
src/DIGFile/DIGFile.cpp [new file with mode: 0644]
src/DIGFile/DOMTreeErrorReporter.cpp [new file with mode: 0644]
src/DIGFile/Makefile [new file with mode: 0755]
src/DIGFileSnark/DIGFileSnarkProj.cpp [new file with mode: 0644]
src/DIGFileSnark/DIGFileSnarkRec.cpp [new file with mode: 0644]
src/DIGFileSnark/Makefile [new file with mode: 0755]
src/DIGRand/DIGGauss.cpp [new file with mode: 0644]
src/DIGRand/DIGPoisson.cpp [new file with mode: 0644]
src/DIGRand/DIGRand.cpp [new file with mode: 0644]
src/DIGRand/Makefile [new file with mode: 0755]
src/DIGRand/libDIGRand.so [new file with mode: 0755]
src/build/unix/makefile [new file with mode: 0755]
src/build/unix/snark.mk [new file with mode: 0755]
src/snark/.deps/BasisFunctionBlob.Po [new file with mode: 0755]
src/snark/.deps/BasisFunctionPixel.Po [new file with mode: 0755]
src/snark/.deps/DistanceMeasure.Po [new file with mode: 0755]
src/snark/.deps/DistanceMeasurePixel.Po [new file with mode: 0755]
src/snark/.deps/DistanceMeasureWSQD.Po [new file with mode: 0755]
src/snark/.deps/GeometricBehaviour.Po [new file with mode: 0755]
src/snark/.deps/SARTConfig.Po [new file with mode: 0755]
src/snark/.deps/TerminationCriterion.Po [new file with mode: 0755]
src/snark/.deps/alb1.Po [new file with mode: 0755]
src/snark/.deps/alb2.Po [new file with mode: 0755]
src/snark/.deps/alb3.Po [new file with mode: 0755]
src/snark/.deps/alb4.Po [new file with mode: 0755]
src/snark/.deps/alb5.Po [new file with mode: 0755]
src/snark/.deps/alg.Po [new file with mode: 0755]
src/snark/.deps/alp1.Po [new file with mode: 0755]
src/snark/.deps/alp2.Po [new file with mode: 0755]
src/snark/.deps/alp3.Po [new file with mode: 0755]
src/snark/.deps/alp4.Po [new file with mode: 0755]
src/snark/.deps/alp5.Po [new file with mode: 0755]
src/snark/.deps/analysis.Po [new file with mode: 0755]
src/snark/.deps/analyze.Po [new file with mode: 0755]
src/snark/.deps/analyze2.Po [new file with mode: 0755]
src/snark/.deps/anglst.Po [new file with mode: 0755]
src/snark/.deps/art.Po [new file with mode: 0755]
src/snark/.deps/art_artbck.Po [new file with mode: 0755]
src/snark/.deps/art_bkproj.Po [new file with mode: 0755]
src/snark/.deps/art_clip.Po [new file with mode: 0755]
src/snark/.deps/art_crset.Po [new file with mode: 0755]
src/snark/.deps/art_readin.Po [new file with mode: 0755]
src/snark/.deps/art_rset.Po [new file with mode: 0755]
src/snark/.deps/art_tset.Po [new file with mode: 0755]
src/snark/.deps/back.Po [new file with mode: 0755]
src/snark/.deps/basis.Po [new file with mode: 0755]
src/snark/.deps/bbldlst.Po [new file with mode: 0755]
src/snark/.deps/bckprj.Po [new file with mode: 0755]
src/snark/.deps/bdhk.Po [new file with mode: 0755]
src/snark/.deps/bdhk_misl.Po [new file with mode: 0755]
src/snark/.deps/bh_correction.Po [new file with mode: 0755]
src/snark/.deps/blanks.Po [new file with mode: 0755]
src/snark/.deps/bldlst.Po [new file with mode: 0755]
src/snark/.deps/blkdta.Po [new file with mode: 0755]
src/snark/.deps/blob.Po [new file with mode: 0755]
src/snark/.deps/blob2pix.Po [new file with mode: 0755]
src/snark/.deps/blob_bpix.Po [new file with mode: 0755]
src/snark/.deps/blob_footp.Po [new file with mode: 0755]
src/snark/.deps/blob_functions.Po [new file with mode: 0755]
src/snark/.deps/blob_setparam.Po [new file with mode: 0755]
src/snark/.deps/blob_table.Po [new file with mode: 0755]
src/snark/.deps/bpseudo.Po [new file with mode: 0755]
src/snark/.deps/bray.Po [new file with mode: 0755]
src/snark/.deps/bsmooth.Po [new file with mode: 0755]
src/snark/.deps/bwray.Po [new file with mode: 0755]
src/snark/.deps/check_if_iroi.Po [new file with mode: 0755]
src/snark/.deps/chtoin.Po [new file with mode: 0755]
src/snark/.deps/cin.Po [new file with mode: 0755]
src/snark/.deps/congeo.Po [new file with mode: 0755]
src/snark/.deps/consts.Po [new file with mode: 0755]
src/snark/.deps/contur.Po [new file with mode: 0755]
src/snark/.deps/conv.Po [new file with mode: 0755]
src/snark/.deps/creacm.Po [new file with mode: 0755]
src/snark/.deps/creaer.Po [new file with mode: 0755]
src/snark/.deps/creaph.Po [new file with mode: 0755]
src/snark/.deps/creapr.Po [new file with mode: 0755]
src/snark/.deps/create_phantom.Po [new file with mode: 0755]
src/snark/.deps/creatr.Po [new file with mode: 0755]
src/snark/.deps/dcon.Po [new file with mode: 0755]
src/snark/.deps/dcon_dconbl.Po [new file with mode: 0755]
src/snark/.deps/dcon_dconft.Po [new file with mode: 0755]
src/snark/.deps/disp.Po [new file with mode: 0755]
src/snark/.deps/disply.Po [new file with mode: 0755]
src/snark/.deps/dist.Po [new file with mode: 0755]
src/snark/.deps/doline.Po [new file with mode: 0755]
src/snark/.deps/effpick.Po [new file with mode: 0755]
src/snark/.deps/emap.Po [new file with mode: 0755]
src/snark/.deps/emap_CEvalMAP.Po [new file with mode: 0755]
src/snark/.deps/emap_CInitMAP.Po [new file with mode: 0755]
src/snark/.deps/emap_CMAP.Po [new file with mode: 0755]
src/snark/.deps/emap_CReadInp.Po [new file with mode: 0755]
src/snark/.deps/emap_Cwray.Po [new file with mode: 0755]
src/snark/.deps/emap_sscal.Po [new file with mode: 0755]
src/snark/.deps/err.Po [new file with mode: 0755]
src/snark/.deps/errfac.Po [new file with mode: 0755]
src/snark/.deps/errorc.Po [new file with mode: 0755]
src/snark/.deps/errpar.Po [new file with mode: 0755]
src/snark/.deps/eval.Po [new file with mode: 0755]
src/snark/.deps/exalg.Po [new file with mode: 0755]
src/snark/.deps/experimenter.Po [new file with mode: 0755]
src/snark/.deps/fft2p.Po [new file with mode: 0755]
src/snark/.deps/file11.Po [new file with mode: 0755]
src/snark/.deps/fom_klds.Po [new file with mode: 0755]
src/snark/.deps/fom_weighted_squared_distance.Po [new file with mode: 0755]
src/snark/.deps/foru.Po [new file with mode: 0755]
src/snark/.deps/foru_bckwrd.Po [new file with mode: 0755]
src/snark/.deps/foru_error.Po [new file with mode: 0755]
src/snark/.deps/foru_fft.Po [new file with mode: 0755]
src/snark/.deps/foru_forwrd.Po [new file with mode: 0755]
src/snark/.deps/foru_frfilt.Po [new file with mode: 0755]
src/snark/.deps/foru_frinit.Po [new file with mode: 0755]
src/snark/.deps/foru_ftfill.Po [new file with mode: 0755]
src/snark/.deps/foru_ftmap.Po [new file with mode: 0755]
src/snark/.deps/foru_intrpl.Po [new file with mode: 0755]
src/snark/.deps/foru_prjtrn.Po [new file with mode: 0755]
src/snark/.deps/foru_store.Po [new file with mode: 0755]
src/snark/.deps/foru_uint.Po [new file with mode: 0755]
src/snark/.deps/foru_unif.Po [new file with mode: 0755]
src/snark/.deps/foru_vc56.Po [new file with mode: 0755]
src/snark/.deps/foru_vcase1.Po [new file with mode: 0755]
src/snark/.deps/foru_vcase2.Po [new file with mode: 0755]
src/snark/.deps/foru_vcase3.Po [new file with mode: 0755]
src/snark/.deps/foru_vcase4.Po [new file with mode: 0755]
src/snark/.deps/foru_vint14.Po [new file with mode: 0755]
src/snark/.deps/fourie.Po [new file with mode: 0755]
src/snark/.deps/ftodd.Po [new file with mode: 0755]
src/snark/.deps/geom.Po [new file with mode: 0755]
src/snark/.deps/get_iter_flag.Po [new file with mode: 0755]
src/snark/.deps/get_phantom.Po [new file with mode: 0755]
src/snark/.deps/get_seed.Po [new file with mode: 0755]
src/snark/.deps/getang.Po [new file with mode: 0755]
src/snark/.deps/getden.Po [new file with mode: 0755]
src/snark/.deps/getfom.Po [new file with mode: 0755]
src/snark/.deps/getint.Po [new file with mode: 0755]
src/snark/.deps/getiters.Po [new file with mode: 0755]
src/snark/.deps/getnum.Po [new file with mode: 0755]
src/snark/.deps/getnxt.Po [new file with mode: 0755]
src/snark/.deps/getwrd.Po [new file with mode: 0755]
src/snark/.deps/halft.Po [new file with mode: 0755]
src/snark/.deps/hit_ratio.Po [new file with mode: 0755]
src/snark/.deps/imagewise_roi.Po [new file with mode: 0755]
src/snark/.deps/infile.Po [new file with mode: 0755]
src/snark/.deps/inputfile.Po [new file with mode: 0755]
src/snark/.deps/int2str.Po [new file with mode: 0755]
src/snark/.deps/lines.Po [new file with mode: 0755]
src/snark/.deps/lino.Po [new file with mode: 0755]
src/snark/.deps/lino_czt.Po [new file with mode: 0755]
src/snark/.deps/lino_sumfac.Po [new file with mode: 0755]
src/snark/.deps/main.Po [new file with mode: 0755]
src/snark/.deps/mart.Po [new file with mode: 0755]
src/snark/.deps/mode.Po [new file with mode: 0755]
src/snark/.deps/modefl.Po [new file with mode: 0755]
src/snark/.deps/nav.Po [new file with mode: 0755]
src/snark/.deps/nav1.Po [new file with mode: 0755]
src/snark/.deps/nav2.Po [new file with mode: 0755]
src/snark/.deps/nav3.Po [new file with mode: 0755]
src/snark/.deps/nav4.Po [new file with mode: 0755]
src/snark/.deps/nav5.Po [new file with mode: 0755]
src/snark/.deps/noise.Po [new file with mode: 0755]
src/snark/.deps/objects.Po [new file with mode: 0755]
src/snark/.deps/pick.Po [new file with mode: 0755]
src/snark/.deps/pix2blob.Po [new file with mode: 0755]
src/snark/.deps/pnch.Po [new file with mode: 0755]
src/snark/.deps/pnchfile.Po [new file with mode: 0755]
src/snark/.deps/point.Po [new file with mode: 0755]
src/snark/.deps/pointwse.Po [new file with mode: 0755]
src/snark/.deps/posit.Po [new file with mode: 0755]
src/snark/.deps/post.Po [new file with mode: 0755]
src/snark/.deps/prdta.Po [new file with mode: 0755]
src/snark/.deps/primfc.Po [new file with mode: 0755]
src/snark/.deps/projection.Po [new file with mode: 0755]
src/snark/.deps/projfile.Po [new file with mode: 0755]
src/snark/.deps/pseudo.Po [new file with mode: 0755]
src/snark/.deps/qfilt.Po [new file with mode: 0755]
src/snark/.deps/qinit.Po [new file with mode: 0755]
src/snark/.deps/qintp.Po [new file with mode: 0755]
src/snark/.deps/quad.Po [new file with mode: 0755]
src/snark/.deps/quad_adsmos.Po [new file with mode: 0755]
src/snark/.deps/quad_back.Po [new file with mode: 0755]
src/snark/.deps/quad_badsmos.Po [new file with mode: 0755]
src/snark/.deps/quad_blurck.Po [new file with mode: 0755]
src/snark/.deps/quad_bprpict.Po [new file with mode: 0755]
src/snark/.deps/quad_costfn.Po [new file with mode: 0755]
src/snark/.deps/quad_deltac.Po [new file with mode: 0755]
src/snark/.deps/quad_deltad.Po [new file with mode: 0755]
src/snark/.deps/quad_deset.Po [new file with mode: 0755]
src/snark/.deps/quad_dset.Po [new file with mode: 0755]
src/snark/.deps/quad_eigval.Po [new file with mode: 0755]
src/snark/.deps/quad_matrix.Po [new file with mode: 0755]
src/snark/.deps/quad_mtamx.Po [new file with mode: 0755]
src/snark/.deps/quad_mtamxp.Po [new file with mode: 0755]
src/snark/.deps/quad_nextr.Po [new file with mode: 0755]
src/snark/.deps/quad_nxtpct.Po [new file with mode: 0755]
src/snark/.deps/quad_prpict.Po [new file with mode: 0755]
src/snark/.deps/quad_prsemi.Po [new file with mode: 0755]
src/snark/.deps/quad_resedu.Po [new file with mode: 0755]
src/snark/.deps/quad_semi.Po [new file with mode: 0755]
src/snark/.deps/quad_seset.Po [new file with mode: 0755]
src/snark/.deps/quad_sset.Po [new file with mode: 0755]
src/snark/.deps/quad_uerror.Po [new file with mode: 0755]
src/snark/.deps/ray.Po [new file with mode: 0755]
src/snark/.deps/raylen.Po [new file with mode: 0755]
src/snark/.deps/raysel.Po [new file with mode: 0755]
src/snark/.deps/rdpict.Po [new file with mode: 0755]
src/snark/.deps/rdproj.Po [new file with mode: 0755]
src/snark/.deps/read_eval_phantom1.Po [new file with mode: 0755]
src/snark/.deps/read_eval_recon1.Po [new file with mode: 0755]
src/snark/.deps/read_eval_recon2.Po [new file with mode: 0755]
src/snark/.deps/read_eval_recon3.Po [new file with mode: 0755]
src/snark/.deps/read_eval_recon4.Po [new file with mode: 0755]
src/snark/.deps/read_fomfile.Po [new file with mode: 0755]
src/snark/.deps/recfile.Po [new file with mode: 0755]
src/snark/.deps/recon.Po [new file with mode: 0755]
src/snark/.deps/region.Po [new file with mode: 0755]
src/snark/.deps/rfl.Po [new file with mode: 0755]
src/snark/.deps/rtfort.Po [new file with mode: 0755]
src/snark/.deps/sart.Po [new file with mode: 0755]
src/snark/.deps/sec_cri.Po [new file with mode: 0755]
src/snark/.deps/sec_cri1.Po [new file with mode: 0755]
src/snark/.deps/sec_cri2.Po [new file with mode: 0755]
src/snark/.deps/sec_cri3.Po [new file with mode: 0755]
src/snark/.deps/sec_cri4.Po [new file with mode: 0755]
src/snark/.deps/sec_cri5.Po [new file with mode: 0755]
src/snark/.deps/second.Po [new file with mode: 0755]
src/snark/.deps/select.Po [new file with mode: 0755]
src/snark/.deps/settra.Po [new file with mode: 0755]
src/snark/.deps/signif1.Po [new file with mode: 0755]
src/snark/.deps/sinc.Po [new file with mode: 0755]
src/snark/.deps/sirt.Po [new file with mode: 0755]
src/snark/.deps/smooth.Po [new file with mode: 0755]
src/snark/.deps/snark.Po [new file with mode: 0755]
src/snark/.deps/snfft.Po [new file with mode: 0755]
src/snark/.deps/spctrm.Po [new file with mode: 0755]
src/snark/.deps/stopex.Po [new file with mode: 0755]
src/snark/.deps/stru_acc.Po [new file with mode: 0755]
src/snark/.deps/subreg.Po [new file with mode: 0755]
src/snark/.deps/superior.Po [new file with mode: 0755]
src/snark/.deps/supersnk.Po [new file with mode: 0755]
src/snark/.deps/term.Po [new file with mode: 0755]
src/snark/.deps/termtest.Po [new file with mode: 0755]
src/snark/.deps/transm.Po [new file with mode: 0755]
src/snark/.deps/trm1.Po [new file with mode: 0755]
src/snark/.deps/trm2.Po [new file with mode: 0755]
src/snark/.deps/trm3.Po [new file with mode: 0755]
src/snark/.deps/trm4.Po [new file with mode: 0755]
src/snark/.deps/trm5.Po [new file with mode: 0755]
src/snark/.deps/trm6.Po [new file with mode: 0755]
src/snark/.deps/trm_weighted_squared_distance.Po [new file with mode: 0755]
src/snark/.deps/uiod.Po [new file with mode: 0755]
src/snark/.deps/unkps.Po [new file with mode: 0755]
src/snark/.deps/user_fom1.Po [new file with mode: 0755]
src/snark/.deps/user_fom2.Po [new file with mode: 0755]
src/snark/.deps/user_fom3.Po [new file with mode: 0755]
src/snark/.deps/user_fom4.Po [new file with mode: 0755]
src/snark/.deps/user_fom5.Po [new file with mode: 0755]
src/snark/.deps/wray.Po [new file with mode: 0755]
src/snark/.deps/wrdpack.Po [new file with mode: 0755]
src/snark/BasisFunctionBlob.cpp [new file with mode: 0644]
src/snark/BasisFunctionBlob.h [new file with mode: 0644]
src/snark/BasisFunctionPixel.cpp [new file with mode: 0644]
src/snark/BasisFunctionPixel.h [new file with mode: 0644]
src/snark/DistanceMeasure.cpp [new file with mode: 0644]
src/snark/DistanceMeasure.h [new file with mode: 0644]
src/snark/DistanceMeasurePixel.cpp [new file with mode: 0644]
src/snark/DistanceMeasurePixel.h [new file with mode: 0644]
src/snark/DistanceMeasureWSQD.cpp [new file with mode: 0644]
src/snark/DistanceMeasureWSQD.h [new file with mode: 0644]
src/snark/GeometricBehaviour.cpp [new file with mode: 0644]
src/snark/GeometricBehaviour.h [new file with mode: 0644]
src/snark/SARTConfig.cpp [new file with mode: 0644]
src/snark/SARTConfig.h [new file with mode: 0644]
src/snark/TerminationCriterion.cpp [new file with mode: 0644]
src/snark/TerminationCriterion.h [new file with mode: 0644]
src/snark/alb1.cpp [new file with mode: 0644]
src/snark/alb1.h [new file with mode: 0644]
src/snark/alb2.cpp [new file with mode: 0644]
src/snark/alb2.h [new file with mode: 0644]
src/snark/alb3.cpp [new file with mode: 0644]
src/snark/alb3.h [new file with mode: 0644]
src/snark/alb4.cpp [new file with mode: 0644]
src/snark/alb4.h [new file with mode: 0644]
src/snark/alb5.cpp [new file with mode: 0644]
src/snark/alb5.h [new file with mode: 0644]
src/snark/alg.cpp [new file with mode: 0644]
src/snark/alg.h [new file with mode: 0644]
src/snark/alp1.cpp [new file with mode: 0644]
src/snark/alp1.h [new file with mode: 0644]
src/snark/alp2.cpp [new file with mode: 0644]
src/snark/alp2.h [new file with mode: 0644]
src/snark/alp3.cpp [new file with mode: 0644]
src/snark/alp3.h [new file with mode: 0644]
src/snark/alp4.cpp [new file with mode: 0644]
src/snark/alp4.h [new file with mode: 0644]
src/snark/alp5.cpp [new file with mode: 0644]
src/snark/alp5.h [new file with mode: 0644]
src/snark/analysis.c [new file with mode: 0644]
src/snark/analysis.h [new file with mode: 0644]
src/snark/analyze.c [new file with mode: 0644]
src/snark/analyze.h [new file with mode: 0644]
src/snark/analyze2.c [new file with mode: 0644]
src/snark/analyze2.h [new file with mode: 0644]
src/snark/anglst.cpp [new file with mode: 0644]
src/snark/anglst.h [new file with mode: 0644]
src/snark/art.cpp [new file with mode: 0644]
src/snark/art.h [new file with mode: 0644]
src/snark/art_artbck.cpp [new file with mode: 0644]
src/snark/art_bkproj.cpp [new file with mode: 0644]
src/snark/art_clip.cpp [new file with mode: 0644]
src/snark/art_crset.cpp [new file with mode: 0644]
src/snark/art_readin.cpp [new file with mode: 0644]
src/snark/art_rset.cpp [new file with mode: 0644]
src/snark/art_tset.cpp [new file with mode: 0644]
src/snark/back.cpp [new file with mode: 0644]
src/snark/back.h [new file with mode: 0644]
src/snark/basis.cpp [new file with mode: 0644]
src/snark/basis.h [new file with mode: 0644]
src/snark/bbldlst.cpp [new file with mode: 0644]
src/snark/bckprj.cpp [new file with mode: 0644]
src/snark/bckprj.h [new file with mode: 0644]
src/snark/bckray.cpp [new file with mode: 0644]
src/snark/bckray.h [new file with mode: 0644]
src/snark/bdhk.cpp [new file with mode: 0644]
src/snark/bdhk.h [new file with mode: 0644]
src/snark/bdhk_misl.cpp [new file with mode: 0644]
src/snark/bh_correction.cpp [new file with mode: 0644]
src/snark/bh_correction.h [new file with mode: 0644]
src/snark/blanks.c [new file with mode: 0644]
src/snark/blanks.h [new file with mode: 0644]
src/snark/bldlst.cpp [new file with mode: 0644]
src/snark/bldlst.h [new file with mode: 0644]
src/snark/blkdta.cpp [new file with mode: 0644]
src/snark/blkdta.h [new file with mode: 0644]
src/snark/blob.cpp [new file with mode: 0644]
src/snark/blob.h [new file with mode: 0644]
src/snark/blob2pix.cpp [new file with mode: 0644]
src/snark/blob_bpix.cpp [new file with mode: 0644]
src/snark/blob_footp.cpp [new file with mode: 0644]
src/snark/blob_functions.cpp [new file with mode: 0644]
src/snark/blob_setparam.cpp [new file with mode: 0644]
src/snark/blob_table.cpp [new file with mode: 0644]
src/snark/bpseudo.cpp [new file with mode: 0644]
src/snark/bray.cpp [new file with mode: 0644]
src/snark/bsmooth.cpp [new file with mode: 0644]
src/snark/bwray.cpp [new file with mode: 0644]
src/snark/check_if_iroi.c [new file with mode: 0644]
src/snark/check_if_iroi.h [new file with mode: 0644]
src/snark/chtoin.cpp [new file with mode: 0644]
src/snark/chtoin.h [new file with mode: 0644]
src/snark/cin.cpp [new file with mode: 0644]
src/snark/cin.h [new file with mode: 0644]
src/snark/congeo.cpp [new file with mode: 0644]
src/snark/congeo.h [new file with mode: 0644]
src/snark/consts.cpp [new file with mode: 0644]
src/snark/consts.h [new file with mode: 0644]
src/snark/contur.cpp [new file with mode: 0644]
src/snark/contur.h [new file with mode: 0644]
src/snark/conv.cpp [new file with mode: 0644]
src/snark/conv.h [new file with mode: 0644]
src/snark/creacm.cpp [new file with mode: 0644]
src/snark/creacm.h [new file with mode: 0644]
src/snark/creaer.cpp [new file with mode: 0644]
src/snark/creaer.h [new file with mode: 0644]
src/snark/creaph.cpp [new file with mode: 0644]
src/snark/creaph.h [new file with mode: 0644]
src/snark/creapr.cpp [new file with mode: 0644]
src/snark/creapr.h [new file with mode: 0644]
src/snark/create_phantom.c [new file with mode: 0644]
src/snark/create_phantom.h [new file with mode: 0644]
src/snark/creatr.cpp [new file with mode: 0644]
src/snark/creatr.h [new file with mode: 0644]
src/snark/dcon.cpp [new file with mode: 0644]
src/snark/dcon.h [new file with mode: 0644]
src/snark/dcon_dconbl.cpp [new file with mode: 0644]
src/snark/dcon_dconft.cpp [new file with mode: 0644]
src/snark/disp.cpp [new file with mode: 0644]
src/snark/disp.h [new file with mode: 0644]
src/snark/disply.cpp [new file with mode: 0644]
src/snark/disply.h [new file with mode: 0644]
src/snark/dist.cpp [new file with mode: 0644]
src/snark/doline.cpp [new file with mode: 0644]
src/snark/doline.h [new file with mode: 0644]
src/snark/effpick.cpp [new file with mode: 0644]
src/snark/effpick.h [new file with mode: 0644]
src/snark/emap.cpp [new file with mode: 0644]
src/snark/emap.h [new file with mode: 0644]
src/snark/emap_CEvalMAP.cpp [new file with mode: 0644]
src/snark/emap_CInitMAP.cpp [new file with mode: 0644]
src/snark/emap_CMAP.cpp [new file with mode: 0644]
src/snark/emap_CReadInp.cpp [new file with mode: 0644]
src/snark/emap_Cwray.cpp [new file with mode: 0644]
src/snark/emap_sscal.cpp [new file with mode: 0644]
src/snark/err.cpp [new file with mode: 0644]
src/snark/err.h [new file with mode: 0644]
src/snark/errfac.cpp [new file with mode: 0644]
src/snark/errfac.h [new file with mode: 0644]
src/snark/errorc.c [new file with mode: 0644]
src/snark/errorc.h [new file with mode: 0644]
src/snark/errpar.cpp [new file with mode: 0644]
src/snark/errpar.h [new file with mode: 0644]
src/snark/eval.cpp [new file with mode: 0644]
src/snark/eval.h [new file with mode: 0644]
src/snark/exalg.cpp [new file with mode: 0644]
src/snark/exalg.h [new file with mode: 0644]
src/snark/experimenter.c [new file with mode: 0644]
src/snark/experimenter.h [new file with mode: 0644]
src/snark/fft2p.cpp [new file with mode: 0644]
src/snark/fft2p.h [new file with mode: 0644]
src/snark/file11.cpp [new file with mode: 0644]
src/snark/file11.h [new file with mode: 0644]
src/snark/fom_klds.c [new file with mode: 0644]
src/snark/fom_klds.h [new file with mode: 0644]
src/snark/fom_weighted_squared_distance.c [new file with mode: 0644]
src/snark/fom_weighted_squared_distance.h [new file with mode: 0644]
src/snark/foru.cpp [new file with mode: 0644]
src/snark/foru.h [new file with mode: 0644]
src/snark/foru_bckwrd.cpp [new file with mode: 0644]
src/snark/foru_error.cpp [new file with mode: 0644]
src/snark/foru_fft.cpp [new file with mode: 0644]
src/snark/foru_forwrd.cpp [new file with mode: 0644]
src/snark/foru_frfilt.cpp [new file with mode: 0644]
src/snark/foru_frinit.cpp [new file with mode: 0644]
src/snark/foru_ftfill.cpp [new file with mode: 0644]
src/snark/foru_ftmap.cpp [new file with mode: 0644]
src/snark/foru_intrpl.cpp [new file with mode: 0644]
src/snark/foru_prjtrn.cpp [new file with mode: 0644]
src/snark/foru_store.cpp [new file with mode: 0644]
src/snark/foru_uint.cpp [new file with mode: 0644]
src/snark/foru_unif.cpp [new file with mode: 0644]
src/snark/foru_vc56.cpp [new file with mode: 0644]
src/snark/foru_vcase1.cpp [new file with mode: 0644]
src/snark/foru_vcase2.cpp [new file with mode: 0644]
src/snark/foru_vcase3.cpp [new file with mode: 0644]
src/snark/foru_vcase4.cpp [new file with mode: 0644]
src/snark/foru_vint14.cpp [new file with mode: 0644]
src/snark/fourie.cpp [new file with mode: 0644]
src/snark/fourie.h [new file with mode: 0644]
src/snark/ftodd.cpp [new file with mode: 0644]
src/snark/ftodd.h [new file with mode: 0644]
src/snark/geom.cpp [new file with mode: 0644]
src/snark/geom.h [new file with mode: 0644]
src/snark/get_iter_flag.c [new file with mode: 0644]
src/snark/get_iter_flag.h [new file with mode: 0644]
src/snark/get_phantom.c [new file with mode: 0644]
src/snark/get_phantom.h [new file with mode: 0644]
src/snark/get_seed.c [new file with mode: 0644]
src/snark/get_seed.h [new file with mode: 0644]
src/snark/getang.cpp [new file with mode: 0644]
src/snark/getden.cpp [new file with mode: 0644]
src/snark/getfom.c [new file with mode: 0644]
src/snark/getfom.h [new file with mode: 0644]
src/snark/getint.cpp [new file with mode: 0644]
src/snark/getiters.c [new file with mode: 0644]
src/snark/getiters.h [new file with mode: 0644]
src/snark/getnum.cpp [new file with mode: 0644]
src/snark/getnxt.cpp [new file with mode: 0644]
src/snark/getwrd.cpp [new file with mode: 0644]
src/snark/halft.cpp [new file with mode: 0644]
src/snark/halft.h [new file with mode: 0644]
src/snark/hit_ratio.c [new file with mode: 0644]
src/snark/hit_ratio.h [new file with mode: 0644]
src/snark/imagewise_roi.c [new file with mode: 0644]
src/snark/imagewise_roi.h [new file with mode: 0644]
src/snark/infile.cpp [new file with mode: 0644]
src/snark/infile.h [new file with mode: 0644]
src/snark/inputfile.cpp [new file with mode: 0644]
src/snark/inputfile.h [new file with mode: 0644]
src/snark/int2str.cpp [new file with mode: 0644]
src/snark/int2str.h [new file with mode: 0644]
src/snark/lines.cpp [new file with mode: 0644]
src/snark/lines.h [new file with mode: 0644]
src/snark/lino.cpp [new file with mode: 0644]
src/snark/lino.h [new file with mode: 0644]
src/snark/lino_czt.cpp [new file with mode: 0644]
src/snark/lino_sumfac.cpp [new file with mode: 0644]
src/snark/main.cpp [new file with mode: 0644]
src/snark/mart.cpp [new file with mode: 0644]
src/snark/mart.h [new file with mode: 0644]
src/snark/mode.cpp [new file with mode: 0644]
src/snark/mode.h [new file with mode: 0644]
src/snark/modefl.cpp [new file with mode: 0644]
src/snark/modefl.h [new file with mode: 0644]
src/snark/nav.cpp [new file with mode: 0644]
src/snark/nav.h [new file with mode: 0644]
src/snark/nav1.cpp [new file with mode: 0644]
src/snark/nav1.h [new file with mode: 0644]
src/snark/nav2.cpp [new file with mode: 0644]
src/snark/nav2.h [new file with mode: 0644]
src/snark/nav3.cpp [new file with mode: 0644]
src/snark/nav3.h [new file with mode: 0644]
src/snark/nav4.cpp [new file with mode: 0644]
src/snark/nav4.h [new file with mode: 0644]
src/snark/nav5.cpp [new file with mode: 0644]
src/snark/nav5.h [new file with mode: 0644]
src/snark/noise.cpp [new file with mode: 0644]
src/snark/noise.h [new file with mode: 0644]
src/snark/objects.cpp [new file with mode: 0644]
src/snark/objects.h [new file with mode: 0644]
src/snark/pick.cpp [new file with mode: 0644]
src/snark/pick.h [new file with mode: 0644]
src/snark/pix2blob.cpp [new file with mode: 0644]
src/snark/pnch.cpp [new file with mode: 0644]
src/snark/pnch.h [new file with mode: 0644]
src/snark/pnchfile.cpp [new file with mode: 0644]
src/snark/pnchfile.h [new file with mode: 0644]
src/snark/point.cpp [new file with mode: 0644]
src/snark/pointwse.c [new file with mode: 0644]
src/snark/pointwse.h [new file with mode: 0644]
src/snark/posit.cpp [new file with mode: 0644]
src/snark/posit.h [new file with mode: 0644]
src/snark/post.cpp [new file with mode: 0644]
src/snark/post.h [new file with mode: 0644]
src/snark/prdta.cpp [new file with mode: 0644]
src/snark/primfc.cpp [new file with mode: 0644]
src/snark/primfc.h [new file with mode: 0644]
src/snark/projection.c [new file with mode: 0644]
src/snark/projection.h [new file with mode: 0644]
src/snark/projfile.cpp [new file with mode: 0644]
src/snark/projfile.h [new file with mode: 0644]
src/snark/pseudo.cpp [new file with mode: 0644]
src/snark/pseudo.h [new file with mode: 0644]
src/snark/qfilt.cpp [new file with mode: 0644]
src/snark/qfilt.h [new file with mode: 0644]
src/snark/qinit.cpp [new file with mode: 0644]
src/snark/qinit.h [new file with mode: 0644]
src/snark/qintp.cpp [new file with mode: 0644]
src/snark/qintp.h [new file with mode: 0644]
src/snark/quad.cpp [new file with mode: 0644]
src/snark/quad.h [new file with mode: 0644]
src/snark/quad_adsmos.cpp [new file with mode: 0644]
src/snark/quad_back.cpp [new file with mode: 0644]
src/snark/quad_badsmos.cpp [new file with mode: 0644]
src/snark/quad_blurck.cpp [new file with mode: 0644]
src/snark/quad_bprpict.cpp [new file with mode: 0644]
src/snark/quad_costfn.cpp [new file with mode: 0644]
src/snark/quad_deltac.cpp [new file with mode: 0644]
src/snark/quad_deltad.cpp [new file with mode: 0644]
src/snark/quad_deset.cpp [new file with mode: 0644]
src/snark/quad_dset.cpp [new file with mode: 0644]
src/snark/quad_eigval.cpp [new file with mode: 0644]
src/snark/quad_matrix.cpp [new file with mode: 0644]
src/snark/quad_mtamx.cpp [new file with mode: 0644]
src/snark/quad_mtamxp.cpp [new file with mode: 0644]
src/snark/quad_nextr.cpp [new file with mode: 0644]
src/snark/quad_nxtpct.cpp [new file with mode: 0644]
src/snark/quad_prpict.cpp [new file with mode: 0644]
src/snark/quad_prsemi.cpp [new file with mode: 0644]
src/snark/quad_resedu.cpp [new file with mode: 0644]
src/snark/quad_semi.cpp [new file with mode: 0644]
src/snark/quad_seset.cpp [new file with mode: 0644]
src/snark/quad_sset.cpp [new file with mode: 0644]
src/snark/quad_uerror.cpp [new file with mode: 0644]
src/snark/ray.cpp [new file with mode: 0644]
src/snark/ray.h [new file with mode: 0644]
src/snark/raylen.cpp [new file with mode: 0644]
src/snark/raylen.h [new file with mode: 0644]
src/snark/raysel.cpp [new file with mode: 0644]
src/snark/raysel.h [new file with mode: 0644]
src/snark/rdpict.cpp [new file with mode: 0644]
src/snark/rdpict.h [new file with mode: 0644]
src/snark/rdproj.cpp [new file with mode: 0644]
src/snark/rdproj.h [new file with mode: 0644]
src/snark/read_eval_phantom1.c [new file with mode: 0644]
src/snark/read_eval_phantom1.h [new file with mode: 0644]
src/snark/read_eval_recon1.c [new file with mode: 0644]
src/snark/read_eval_recon1.h [new file with mode: 0644]
src/snark/read_eval_recon2.c [new file with mode: 0644]
src/snark/read_eval_recon2.h [new file with mode: 0644]
src/snark/read_eval_recon3.c [new file with mode: 0644]
src/snark/read_eval_recon3.h [new file with mode: 0644]
src/snark/read_eval_recon4.c [new file with mode: 0644]
src/snark/read_eval_recon4.h [new file with mode: 0644]
src/snark/read_fomfile.c [new file with mode: 0644]
src/snark/read_fomfile.h [new file with mode: 0644]
src/snark/recfile.cpp [new file with mode: 0644]
src/snark/recfile.h [new file with mode: 0644]
src/snark/recon.c [new file with mode: 0644]
src/snark/recon.h [new file with mode: 0644]
src/snark/region.cpp [new file with mode: 0644]
src/snark/region.h [new file with mode: 0644]
src/snark/rfl.cpp [new file with mode: 0644]
src/snark/rfl.h [new file with mode: 0644]
src/snark/rtfort.cpp [new file with mode: 0644]
src/snark/rtfort.h [new file with mode: 0644]
src/snark/sart.cpp [new file with mode: 0644]
src/snark/sart.h [new file with mode: 0644]
src/snark/sec_cri.cpp [new file with mode: 0644]
src/snark/sec_cri.h [new file with mode: 0644]
src/snark/sec_cri1.cpp [new file with mode: 0644]
src/snark/sec_cri1.h [new file with mode: 0644]
src/snark/sec_cri2.cpp [new file with mode: 0644]
src/snark/sec_cri2.h [new file with mode: 0644]
src/snark/sec_cri3.cpp [new file with mode: 0644]
src/snark/sec_cri3.h [new file with mode: 0644]
src/snark/sec_cri4.cpp [new file with mode: 0644]
src/snark/sec_cri4.h [new file with mode: 0644]
src/snark/sec_cri5.cpp [new file with mode: 0644]
src/snark/sec_cri5.h [new file with mode: 0644]
src/snark/second.cpp [new file with mode: 0644]
src/snark/second.h [new file with mode: 0644]
src/snark/select.cpp [new file with mode: 0644]
src/snark/select.h [new file with mode: 0644]
src/snark/settra.cpp [new file with mode: 0644]
src/snark/settra.h [new file with mode: 0644]
src/snark/signif1.c [new file with mode: 0644]
src/snark/signif1.h [new file with mode: 0644]
src/snark/sinc.cpp [new file with mode: 0644]
src/snark/sinc.h [new file with mode: 0644]
src/snark/sirt.cpp [new file with mode: 0644]
src/snark/sirt.h [new file with mode: 0644]
src/snark/smooth.cpp [new file with mode: 0644]
src/snark/smooth.h [new file with mode: 0644]
src/snark/snark.cpp [new file with mode: 0644]
src/snark/snark.h [new file with mode: 0644]
src/snark/snfft.cpp [new file with mode: 0644]
src/snark/snfft.h [new file with mode: 0644]
src/snark/spctrm.cpp [new file with mode: 0644]
src/snark/spctrm.h [new file with mode: 0644]
src/snark/stopex.cpp [new file with mode: 0644]
src/snark/stopex.h [new file with mode: 0644]
src/snark/stru_acc.c [new file with mode: 0644]
src/snark/stru_acc.h [new file with mode: 0644]
src/snark/subreg.cpp [new file with mode: 0644]
src/snark/superior.cpp [new file with mode: 0644]
src/snark/superior.h [new file with mode: 0644]
src/snark/supersnk.c [new file with mode: 0644]
src/snark/supersnk.h [new file with mode: 0644]
src/snark/term.cpp [new file with mode: 0644]
src/snark/term.h [new file with mode: 0644]
src/snark/termtest.cpp [new file with mode: 0644]
src/snark/termtest.h [new file with mode: 0644]
src/snark/transm.cpp [new file with mode: 0644]
src/snark/transm.h [new file with mode: 0644]
src/snark/trm1.cpp [new file with mode: 0644]
src/snark/trm1.h [new file with mode: 0644]
src/snark/trm2.cpp [new file with mode: 0644]
src/snark/trm2.h [new file with mode: 0644]
src/snark/trm3.cpp [new file with mode: 0644]
src/snark/trm3.h [new file with mode: 0644]
src/snark/trm4.cpp [new file with mode: 0644]
src/snark/trm4.h [new file with mode: 0644]
src/snark/trm5.cpp [new file with mode: 0644]
src/snark/trm5.h [new file with mode: 0644]
src/snark/trm6.cpp [new file with mode: 0644]
src/snark/trm6.h [new file with mode: 0644]
src/snark/trm_weighted_squared_distance.cpp [new file with mode: 0644]
src/snark/trm_weighted_squared_distance.h [new file with mode: 0644]
src/snark/uiod.cpp [new file with mode: 0644]
src/snark/uiod.h [new file with mode: 0644]
src/snark/unkps.cpp [new file with mode: 0644]
src/snark/unkps.h [new file with mode: 0644]
src/snark/user_fom1.c [new file with mode: 0644]
src/snark/user_fom1.h [new file with mode: 0644]
src/snark/user_fom2.c [new file with mode: 0644]
src/snark/user_fom2.h [new file with mode: 0644]
src/snark/user_fom3.c [new file with mode: 0644]
src/snark/user_fom3.h [new file with mode: 0644]
src/snark/user_fom4.c [new file with mode: 0644]
src/snark/user_fom4.h [new file with mode: 0644]
src/snark/user_fom5.c [new file with mode: 0644]
src/snark/user_fom5.h [new file with mode: 0644]
src/snark/wray.cpp [new file with mode: 0644]
src/snark/wray.h [new file with mode: 0644]
src/snark/wrdpack.cpp [new file with mode: 0644]
src/snark/wrdpack.h [new file with mode: 0644]
tools/Display/Makefile [new file with mode: 0755]
tools/Display/QPL [new file with mode: 0755]
tools/Display/SnarkDisplay.cpp [new file with mode: 0755]
tools/Display/SnarkDisplay.hpp [new file with mode: 0755]
tools/Display/chooseRanges.cpp [new file with mode: 0755]
tools/Display/chooseRanges.hpp [new file with mode: 0755]
tools/Display/chooseYVar.cpp [new file with mode: 0755]
tools/Display/chooseYVar.hpp [new file with mode: 0755]
tools/Display/displaylines.cpp [new file with mode: 0755]
tools/Display/displaylines.hpp [new file with mode: 0755]
tools/Display/displayprojection.cpp [new file with mode: 0755]
tools/Display/displayprojection.hpp [new file with mode: 0755]
tools/Display/displaywidget.cpp [new file with mode: 0755]
tools/Display/displaywidget.hpp [new file with mode: 0755]
tools/Display/displaywindow.cpp [new file with mode: 0755]
tools/Display/displaywindow.hpp [new file with mode: 0755]
tools/Display/eval_helper.cpp [new file with mode: 0755]
tools/Display/eval_helper.hpp [new file with mode: 0755]
tools/Display/image.cpp [new file with mode: 0755]
tools/Display/image.hpp [new file with mode: 0755]
tools/Display/line_real_set_t.cpp [new file with mode: 0755]
tools/Display/line_real_set_t.hpp [new file with mode: 0755]
tools/Display/line_real_t.cpp [new file with mode: 0755]
tools/Display/line_real_t.hpp [new file with mode: 0755]
tools/Display/line_window_onevar_t.cpp [new file with mode: 0755]
tools/Display/line_window_onevar_t.hpp [new file with mode: 0755]
tools/Display/line_window_t.cpp [new file with mode: 0755]
tools/Display/line_window_t.hpp [new file with mode: 0755]
tools/Display/lines.cpp [new file with mode: 0755]
tools/Display/lines.hpp [new file with mode: 0755]
tools/Display/linesimages.cpp [new file with mode: 0755]
tools/Display/linesimages.hpp [new file with mode: 0755]
tools/Display/openimages.cpp [new file with mode: 0755]
tools/Display/openimages.hpp [new file with mode: 0755]
tools/Display/plot_t.cpp [new file with mode: 0755]
tools/Display/plot_t.hpp [new file with mode: 0755]
tools/Display/proj.cpp [new file with mode: 0755]
tools/Display/proj.hpp [new file with mode: 0755]
tools/Display/range.cpp [new file with mode: 0755]
tools/Display/range.hpp [new file with mode: 0755]
tools/Display/sd_line_t.cpp [new file with mode: 0755]
tools/Display/sd_line_t.hpp [new file with mode: 0755]
tools/Display/selectEvalExecutions.cpp [new file with mode: 0755]
tools/Display/selectEvalExecutions.hpp [new file with mode: 0755]
tools/Display/selectimages.cpp [new file with mode: 0755]
tools/Display/selectimages.hpp [new file with mode: 0755]
tools/Display/variables.hpp [new file with mode: 0755]
tools/Display/verbosity.hpp [new file with mode: 0755]
tools/Input/Makefile [new file with mode: 0755]
tools/Input/QPL [new file with mode: 0755]
tools/Input/SnarkInput.cpp [new file with mode: 0755]
tools/Input/SnarkInput.h [new file with mode: 0755]
tools/Input/basis.cpp [new file with mode: 0755]
tools/Input/basis.h [new file with mode: 0755]
tools/Input/create.cpp [new file with mode: 0755]
tools/Input/create.h [new file with mode: 0755]
tools/Input/display.cpp [new file with mode: 0755]
tools/Input/display.h [new file with mode: 0755]
tools/Input/evaluate.cpp [new file with mode: 0755]
tools/Input/evaluate.h [new file with mode: 0755]
tools/Input/execute.cpp [new file with mode: 0755]
tools/Input/execute.h [new file with mode: 0755]
tools/Input/experiment.cpp [new file with mode: 0755]
tools/Input/experiment.h [new file with mode: 0755]
tools/Input/icons.h [new file with mode: 0755]
tools/Input/lines.cpp [new file with mode: 0755]
tools/Input/lines.h [new file with mode: 0755]
tools/Input/misc.cpp [new file with mode: 0755]
tools/Input/misc.h [new file with mode: 0755]
tools/Input/mode.cpp [new file with mode: 0755]
tools/Input/mode.h [new file with mode: 0755]
tools/Input/picture.cpp [new file with mode: 0755]
tools/Input/picture.h [new file with mode: 0755]
tools/Input/projection.cpp [new file with mode: 0755]
tools/Input/projection.h [new file with mode: 0755]
tools/Input/punch.cpp [new file with mode: 0755]
tools/Input/punch.h [new file with mode: 0755]
tools/Input/select.cpp [new file with mode: 0755]
tools/Input/select.h [new file with mode: 0755]
tools/Input/skunk.cpp [new file with mode: 0755]
tools/Input/skunk.h [new file with mode: 0755]
tools/Input/stop.cpp [new file with mode: 0755]
tools/Input/stop.h [new file with mode: 0755]
tools/Input/super.cpp [new file with mode: 0755]
tools/Input/super.h [new file with mode: 0755]
tools/Input/trace.cpp [new file with mode: 0755]
tools/Input/trace.h [new file with mode: 0755]
tools/Input/variables.h [new file with mode: 0755]
tools/Makefile [new file with mode: 0755]

diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..cfc0c31
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,28 @@
+BUILDING SNARK14
+
+To build snark14 run the command:
+
+$ make
+
+_________________
+
+The software will create the directories
+
+bin
+build
+lib
+
+and it will install the SNARK14 in the following directory
+
+bin/snark14
+
+with the following libraries
+
+lib/libDIGFile.so
+lib/libDIGFileSnark.so
+lib/libDIGRand.so
+
+The building process assumes an installation of the original
+SNARK14 and XERCES 2.6.1 in the directory
+
+/usr/local/snark14
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..e0b36a6
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,88 @@
+# Makefile to build an instance of snark14
+
+PREFIX     = .
+XERCES     = /usr/local/snark14
+
+CC         = gcc
+CXX        = g++
+LD         = g++
+
+CFLAGS    = -O4 -fPIC -DLINUX -D_REENTRANT -w -Wunused-parameter
+CXXFLAGS  = -O4 -fPIC -DLINUX -D_REENTRANT -w -Wunused-parameter
+
+LDFLAGS   = 
+
+DIGFILED   = $(PREFIX)/src/DIGFile
+DIGFILESD  = $(PREFIX)/src/DIGFileSnark
+DIGFILERD  = $(PREFIX)/src/DIGRand
+
+OBJDIR     = build
+BINDIR     = bin
+LIBSDIR    = lib
+
+LDIGFILED  = $(LIBSDIR)/libDIGFile.so
+LDIGFILESD = $(LIBSDIR)/libDIGFileSnark.so
+LDIGFILERD = $(LIBSDIR)/libDIGRand.so
+
+SRC_CXX    = $(foreach dir,src/snark,$(wildcard src/snark/*.cpp))
+SRC_C      = $(foreach dir,src/snark,$(wildcard src/snark/*.c))
+OBJ_CXX    = $(patsubst src/snark/%.cpp,build/%.o,$(SRC_CXX))
+OBJ_C      = $(patsubst src/snark/%.c,build/%.o,$(SRC_C))
+INCLUDES   = -I./include -I$(XERCES)/include $(addprefix -I,$(DIGFILED),$(DIGFILESD),$(DIGFILERD)) -Iinclude/DIGFile -Iinclude/DIGFileSnark -Iinclude/DIGRand -I/usr/include
+
+LIBPATH   = -L$(PREFIX)/lib -L$(XERCES)/lib
+LIBS      = $(LIBPATH) -lm -lxerces-c -lxerces-depdom -lDIGFile -lDIGFileSnark -lDIGRand
+
+SNARK14    = snark14
+INPUT      = snark14Input
+INPUT_SRC  = $(foreach dir,tools/Input,$(wildcard tools/Input/*.cpp))
+INPUT_INC  = $(foreach dir,tools/Input,$(wildcard tools/Input/*.h))
+DISPLAY    = snark14Display
+DISPLAY_SRC  = $(foreach dir,tools/Display,$(wildcard tools/Display/*.cpp))
+DISPLAY_INC  = $(foreach dir,tools/Display,$(wildcard tools/Display/*.hpp))
+
+all: $(OBJDIR) $(LIBSDIR) $(BINDIR) $(BINDIR)/$(SNARK14) $(BINDIR)/$(DISPLAY) $(BINDIR)/$(INPUT)
+
+$(BINDIR)/$(SNARK14): $(LDIGFILED) $(LDIGFILESD) $(LDIGFILERD) $(OBJ_C) $(OBJ_CXX)
+       $(LD) $(LIBS) $(LDFLAGS) -o bin/$(SNARK14) $(OBJ_C) $(OBJ_CXX)
+
+$(BINDIR)/$(DISPLAY): $(DISPLAY_SRC) $(DISPLAY_INC)
+       cd tools/Display ; make
+
+$(BINDIR)/$(INPUT): $(INPUT_SRC) $(INPUT_INC)
+       cd tools/Input ; make
+
+$(OBJDIR)/%.o : src/snark/%.c src/snark/.deps/%.Po
+       $(CC) -c $(CFLAGS) $(INCLUDES) -MT $@ -MD -MP -MF $(word 2,$^) -o $@ $<
+
+$(OBJDIR)/%.o : src/snark/%.cpp src/snark/.deps/%.Po
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -MT $@ -MD -MP -MF $(word 2,$^) -o $@ $<
+
+$(OBJDIR)/bckray.o : src/snark/bckray.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -MT $@ -MD -MP -o $@ $<
+
+$(LDIGFILED) : $(DIGFILED)
+       $(MAKE) --directory=$<
+
+$(LDIGFILESD) : $(DIGFILESD)
+       $(MAKE) --directory=$<
+
+$(LDIGFILERD) : $(DIGFILERD)
+       $(MAKE) --directory=$<
+
+$(OBJDIR):
+       @mkdir -p $@
+
+$(LIBSDIR):
+       @mkdir -p $@
+
+$(BINDIR):
+       @mkdir -p $@
+
+clean:
+       @rm -rf $(BINDIR) $(OBJDIR) $(LIBSDIR) $(LDIGFILED) $(LDIGFILESD) $(LDIGFILERD)
+       @rm -rf $(DIGFILED)/*.o $(DIGFILESD)/*.o $(DIGFILERD)/*.o src/snark/*.o
+       @cd tools/Input ; make clean
+       @cd tools/Display ; make clean
+
+
diff --git a/include/DIGFile/DIG.h b/include/DIGFile/DIG.h
new file mode 100755 (executable)
index 0000000..69f0c58
--- /dev/null
@@ -0,0 +1,130 @@
+/*
+
+  This file is part of DIG Library.
+  DIG Library is a free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published
+  by the Free Software Foundation; either version 2 of the License,
+  or (at your option) any later version.
+  DIG Library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  General Public License for more details.
+  You should have received a copy of the GNU General Public License
+  along with Foobar; if not, write to the Free Software Foundation,
+  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+// DIG.h,v 1.2 2005/07/27 16:39:05 jdubowy Exp
+
+#ifndef DIG_H
+#define DIG_H
+
+#include <cstring>
+
+//#include <DIGEndian.h>
+#include <DIGFile/DIGEndian.h>
+
+#if defined _MSC_VER
+
+typedef signed char    DIGint8;
+typedef signed __int16 DIGint16;
+typedef signed __int32 DIGint32;
+typedef signed __int64 DIGint64;
+
+typedef unsigned char    DIGuint8;
+typedef unsigned __int16 DIGuint16;
+typedef unsigned __int32 DIGuint32;
+typedef unsigned __int64 DIGuint64;
+
+typedef float        DIGreal32;
+typedef double       DIGreal64;
+typedef long double  DIGreal80;
+
+#if defined _M_ALPHA //Defined for DEC ALPHA platforms.
+
+#elif defined _M_IX86 //Defined for x86 processors.
+
+#elif defined _M_MPPC //Defined for Power Macintosh platforms.
+
+#elif defined _M_MRX000 //Defined for MIPS platforms.
+
+#elif defined _M_PPC //Defined for PowerPC platforms.
+
+#endif
+
+#elif defined __GNUC__
+
+typedef signed char      DIGint8;
+typedef signed short     DIGint16;
+typedef signed int       DIGint32;
+typedef signed long long DIGint64;
+
+typedef unsigned char      DIGuint8;
+typedef unsigned short     DIGuint16;
+typedef unsigned int       DIGuint32;
+typedef unsigned long long DIGuint64;
+
+typedef float        DIGreal32;
+typedef double       DIGreal64;
+typedef long double  DIGreal80;
+
+#if defined __i386__ //Defined for x86 processors.
+
+
+#endif
+
+#endif
+
+
+class DIGString
+{
+protected:
+
+  char*   String;
+
+public:
+
+  DIGString()
+  {
+    String = NULL;
+  }
+
+  int Set(const char* pString)
+  {
+    if(String != NULL) {         // if not empty 
+      delete String;             // destroy old buffer
+    }
+
+    if(pString == NULL) {        // if NULL as parameter
+      String = NULL;             // stet to NULL
+      return 0;
+    }
+
+    int len = strlen(pString);   // get length of string
+    String = new char[len + 1];  // create new buffer
+    strcpy(String, pString);     // copy string to buffer
+
+    return 0;
+  }
+
+  int Get(const char** pString)
+  {
+    *pString = String;
+    return 0;
+  }
+
+  const char* Get()
+  {
+    return String;
+  }
+
+  ~DIGString()
+  {
+    if(String != NULL) {
+      delete String;
+    }
+  }
+};
+
+#endif // DIG_H
diff --git a/include/DIGFile/DIGEndian.h b/include/DIGFile/DIGEndian.h
new file mode 100755 (executable)
index 0000000..aa4411c
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+
+  This file is part of DIG Library.
+  DIG Library is a free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published
+  by the Free Software Foundation; either version 2 of the License,
+  or (at your option) any later version.
+  DIG Library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  General Public License for more details.
+  You should have received a copy of the GNU General Public License
+  along with Foobar; if not, write to the Free Software Foundation,
+  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+// DIGEndian.h,v 1.1 2005/07/26 19:25:52 jdubowy Exp
+
+#ifndef DIG_ENDIAN_H
+#define DIG_ENDIAN_H
+
+extern const short DIG_ENDIAN_CONST;
+
+// This is a macro determine endian 
+// DIG_ENDIAN = 0   for little endian
+// DIG_ENDIAN = 0   for big endian
+
+#define DIG_ENDIAN (*(reinterpret_cast<const char*> (&DIG_ENDIAN_CONST)))
+
+#endif // DIG_ENDIAN_H
diff --git a/include/DIGFile/DIGFile.h b/include/DIGFile/DIGFile.h
new file mode 100755 (executable)
index 0000000..bd68899
--- /dev/null
@@ -0,0 +1,706 @@
+/*
+
+  This file is part of DIG Library.
+  DIG Library is a free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published
+  by the Free Software Foundation; either version 2 of the License,
+  or (at your option) any later version.
+  DIG Library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  General Public License for more details.
+  You should have received a copy of the GNU General Public License
+  along with Foobar; if not, write to the Free Software Foundation,
+  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+// DIGFile.h,v 1.4 2007/06/07 20:48:35 jklukowska Exp
+
+
+//defines added to enable large file support
+//jklukowska, 06/07/2007
+#ifndef _LARGEFILE_SOURCE
+       #define _LARGEFILE_SOURCE     /* enable large file support  */
+#endif
+#ifndef _FILE_OFFSET_BITS
+       #define _FILE_OFFSET_BITS 64     /* enable large file support  */
+#endif
+
+
+#ifndef DIG_FILE_H
+#define DIG_FILE_H
+
+#include <xercesc/dom/DOM.hpp>
+#include <xercesc/parsers/XercesDOMParser.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+//#include <DIG.h>
+#include <DIGFile/DIG.h>
+//#include "DOMTreeErrorReporter.h"
+#include <DIGFile/DOMTreeErrorReporter.h>
+
+#include <xercesc/framework/MemBufInputSource.hpp>
+
+enum DIGEndian { 
+  DIGEndian_LITTLE,
+  DIGEndian_BIG
+};
+
+#define DIGEndianSize 2
+extern const char* DIGEndianStr[DIGEndianSize];
+
+
+enum DIGValueType {
+  DIGValueType_REAL, 
+  DIGValueType_COMPLEX
+};
+
+#define DIGValueTypeSize 2
+extern const char* DIGValueTypeStr[DIGValueTypeSize];
+
+
+enum DIGDataType {
+  DIGDataType_BOOL, 
+  DIGDataType_UCHAR, 
+  DIGDataType_CHAR, 
+  DIGDataType_USHORT, 
+  DIGDataType_SHORT, 
+  DIGDataType_UINT, 
+  DIGDataType_INT, 
+  DIGDataType_FLOAT, 
+  DIGDataType_DOUBLE
+};
+
+#define DIGDataTypeSize 9
+extern const char* DIGDataTypeStr[DIGDataTypeSize];
+
+
+enum DIGDataFormat {
+  DIGDataFormat_ASCII, 
+  DIGDataFormat_BINARY
+};
+
+#define DIGDataFormatSize 2
+extern const char* DIGDataFormatStr[DIGDataFormatSize];
+
+
+enum DIGGrid {
+  DIGGrid_SC, 
+  DIGGrid_FCC1, 
+  DIGGrid_FCC2, 
+  DIGGrid_BCC1, 
+  DIGGrid_BCC2, 
+  DIGGrid_BCC3, 
+  DIGGrid_BCC4, 
+  DIGGrid_HEX1, 
+  DIGGrid_HEX2
+};
+
+#define DIGGridSize 9
+extern const char* DIGGridStr[DIGGridSize];
+
+
+enum DIGBasis {
+  DIGBasis_VORONOI, 
+  DIGBasis_BLOB
+};
+
+#define DIGBasisSize 2
+extern const char* DIGBasisStr[DIGBasisSize];
+
+
+enum DIGUnit {
+  DIGUnit_UNSPECIFIED, 
+  DIGUnit_m, 
+  DIGUnit_cm, 
+  DIGUnit_mm, 
+  DIGUnit_nm, 
+  DIGUnit_micron, 
+  DIGUnit_A, 
+  DIGUnit_OTHER
+};
+
+#define DIGUnitSize 8
+extern const char* DIGUnitStr[DIGUnitSize];
+
+
+struct DIGDimensions {
+       int x;
+       int y;
+       int z;
+};
+
+struct DIGSampling {
+       double x;
+       double y;
+       double z;
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// DIGFile array set header
+///////////////////////////////////////////////////////////////////////////////
+
+class DIGFileMainHeader
+{
+public:
+       DIGString       Type;
+       DIGString       Title;
+       unsigned int    Channels;
+       //unsigned int    NoOfArrays;
+       //unsigned int    NoOfSets;
+       //DIGEndian       Endian;
+       DIGValueType    ValueType;
+       DIGDataType     DataType;
+       DIGDataFormat   DataFormat;
+       DIGGrid         Grid;
+       DIGBasis        Basis;
+       DIGUnit         Unit;
+       DIGString       OtherUnit;
+       DIGDimensions   Dimensions;
+       DIGSampling     SamplingX;
+       DIGSampling     SamplingY;
+       DIGSampling     SamplingZ;
+       DIGString       Comment;
+
+public:
+  DIGFileMainHeader()
+  {
+    // set defaults
+         Channels = 1;
+         //NoOfArrays = 0;
+         //NoOfSets = 0;
+         //Endian = DIGEndian_LITTLE;
+         ValueType = DIGValueType_REAL;
+         DataType = DIGDataType_DOUBLE;
+         DataFormat = DIGDataFormat_ASCII;
+         Grid = DIGGrid_SC;
+         Basis = DIGBasis_VORONOI;
+         Unit = DIGUnit_UNSPECIFIED;
+         Dimensions.x = 1;
+         Dimensions.y = 1;
+         Dimensions.z = 0;
+         SamplingX.x = 1;
+         SamplingX.y = 0;
+         SamplingX.z = 0;
+         SamplingY.x = 0;
+         SamplingY.y = 1;
+         SamplingY.z = 0;
+         SamplingZ.x = 0;
+         SamplingZ.y = 0;
+         SamplingZ.z = 1;
+  };
+
+  DIGFileMainHeader(
+         const char*   pType,
+         const char*   pTitle,
+    unsigned int  pChannels, 
+    //unsigned int  pArrays, 
+    //unsigned int  pSets, 
+    //DIGEndian     pEndian, 
+    DIGValueType  pValueType, 
+    DIGDataType   pDataType, 
+    DIGDataFormat pDataFormat, 
+    DIGGrid       pGrid, 
+    DIGBasis      pBasis, 
+    DIGUnit       pUnit, 
+    DIGDimensions pDim, 
+    DIGSampling   pSampX, 
+    DIGSampling   pSampY, 
+    DIGSampling   pSampZ, 
+    const char*   pComment, 
+    const char*   pOtherUnit
+  )
+  {
+    Type.Set(pType);
+    Title.Set(pTitle);
+         Channels = pChannels;
+         //NoOfArrays = pArrays;
+         //NoOfSets = pSets;
+         //Endian = pEndian;
+         ValueType = pValueType;
+         DataType = pDataType;
+         DataFormat = pDataFormat;
+         Grid = pGrid;
+         Basis = pBasis;
+         Unit = pUnit;
+         OtherUnit.Set(pOtherUnit);
+         Dimensions = pDim;
+         SamplingX = pSampX;
+         SamplingY = pSampY;
+         SamplingZ = pSampZ;
+    Comment.Set(pComment);
+  }; 
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// DIGFile array set header
+///////////////////////////////////////////////////////////////////////////////
+
+class DIGFileArraySetHeader
+{
+public:
+
+       DIGString Type;
+       DIGString Title;
+       DIGString Parameters;
+  DIGString Comment;
+       
+  DIGFileArraySetHeader() {};
+  DIGFileArraySetHeader(const char* pType, const char* pTitle, const char* pParameters, const char* pComments = NULL)
+  {
+         Type.Set(pType);
+         Title.Set(pTitle);
+         Parameters.Set(pParameters); 
+    Comment.Set(pComments);
+  };
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// DIGFile array header
+///////////////////////////////////////////////////////////////////////////////
+
+class DIGFileArrayHeader {
+
+public:
+       unsigned int EnumNo;
+  DIGString    Comment;
+
+  DIGFileArrayHeader() {};
+  DIGFileArrayHeader(unsigned int pEnumNo, const char* pComment) {
+    EnumNo = pEnumNo;
+    Comment.Set(pComment);
+  };
+};
+
+
+
+class ListElement 
+{
+public:
+  void* Item;
+  ListElement* NextListElement;
+
+  inline ListElement(void* It)
+  {
+    Item = It;
+    NextListElement = NULL;
+  }
+};
+
+class List 
+{
+private:
+  ListElement*  Head;
+
+protected:
+  unsigned int  Length;
+  
+public:
+  List() {
+    Head = NULL;
+    Length = 0;
+  }
+
+  inline unsigned int getLength() {
+    return Length;
+  }
+
+  inline void Append(ListElement* LElement) {
+    ListElement** ListElementPtr = &Head;
+    while((*ListElementPtr) != NULL) {
+      ListElementPtr = &((*ListElementPtr)->NextListElement);
+    }
+    *ListElementPtr = LElement;
+    Length++;
+  }
+
+  inline int getListElement(ListElement** ListElementPtr, unsigned int index) {
+
+    *ListElementPtr = Head;
+    if((*ListElementPtr) == NULL) {
+      return -1;  // error empty list
+    }
+
+    for(unsigned int i = 0; i < index; i++) {
+      *ListElementPtr = (*ListElementPtr)->NextListElement;
+      if((*ListElementPtr) == NULL) {
+        return -1;  // error
+      }
+    }
+    return 0;
+  }
+
+  inline int removeListElement(ListElement** ListElementPtr, unsigned int index) {
+
+    *ListElementPtr = Head;
+    if((*ListElementPtr) == NULL) {
+      return -1;  // error empty list
+    }
+
+    // first element of the list
+    ListElement** prevPtr = &Head;
+
+    for(unsigned int i = 0; i < index; i++) {
+
+      prevPtr = &((*ListElementPtr)->NextListElement);
+      *ListElementPtr = (*ListElementPtr)->NextListElement;
+      if((*ListElementPtr) == NULL) {
+        return -1;  // error
+      }
+    }
+
+    *prevPtr = (*ListElementPtr)->NextListElement;
+    (*ListElementPtr)->NextListElement = NULL;
+    Length--;
+    return 0;
+  }
+};
+
+class PointerList: private List
+{
+  
+public:
+/*
+  List() {
+    Head = NULL;
+    Length = 0;
+  }
+  */
+
+  inline unsigned int getLength() {
+    return Length;
+  }
+
+  inline void Append(void* Pointer) {
+    ListElement* LI = new ListElement(Pointer);
+    List::Append(LI);
+  }
+
+  inline int getListElement(void** Pointer, unsigned int index) {
+
+    ListElement* LI;
+    if(List::getListElement(&LI, index) != 0) {
+      return -1; // error
+    }
+    *Pointer = LI->Item;
+    return 0;
+  }
+
+  inline int removeListElement(void** Pointer, unsigned int index) {
+
+    ListElement* LI;
+
+    if(List::removeListElement(&LI, index) != 0) {
+      return -1; // error
+    }
+
+    *Pointer = LI->Item;
+    delete LI;
+    return 0;
+  }
+};
+
+
+class ArraySet 
+{
+private:
+  PointerList            ArrayHeaderList;  // list of array heders in the set
+
+public:
+  unsigned int           FirstArrayOffset; // offset of first array in the set
+  DIGFileArraySetHeader* ArraySetHeader;
+
+  
+  inline unsigned int getLength() {
+    return ArrayHeaderList.getLength();
+  }
+
+  inline void Append(DIGFileArrayHeader* ArrayHeader) {
+    ArrayHeaderList.Append(ArrayHeader);
+  }
+
+  inline int getArrayHeader(DIGFileArrayHeader** ArrayHeader, unsigned int index) {
+    return ArrayHeaderList.getListElement((void**) ArrayHeader, index);
+  }
+
+  inline int removeArrayHeader(DIGFileArrayHeader** ArrayHeader, unsigned int index) {
+    return ArrayHeaderList.removeListElement((void**) ArrayHeader, index);
+  }
+
+  inline int Release() {
+    DIGFileArrayHeader* ArrayHeader;
+
+    int Lenght = getLength();
+    for(int i = 0; i < Lenght; i++) {
+      // remove first item from the list
+      if(removeArrayHeader(&ArrayHeader, 0) != 0) {
+        return -1; // error
+      }
+      delete ArrayHeader;
+    }
+    return 0;
+  }
+};
+
+
+class ArraySetList 
+{
+  PointerList            ASList;
+  
+public:
+
+  inline unsigned int getLength() {
+    return ASList.getLength();
+  }
+
+  inline void Append(ArraySet* ASet) {
+    ASList.Append(ASet);
+  }
+
+  inline int getArraySet(ArraySet** ASet, unsigned int index) {
+    return ASList.getListElement((void**) ASet, index);
+  }
+
+  inline int removeArraySet(ArraySet** ASet, unsigned int index) {
+    return ASList.removeListElement((void**) ASet, index);
+  }
+
+  inline int Release() {
+    ArraySet* ASet;
+
+    int Lenght = getLength();
+    for(int i = 0; i < Lenght; i++) {
+      // remove first item from the list
+      if(removeArraySet(&ASet, 0) != 0) {
+        return -1; // error
+      }
+      ASet->Release();
+    }
+    return 0;
+  }
+};
+
+class DIGFile
+{
+protected:
+
+  // File Variables
+  DIGString           SchemaName;         // XML schema name
+  DIGFileMainHeader   MainHeader;         // main header
+
+  unsigned int        NoOfSets;
+  unsigned int        NoOfArrays;
+  DIGEndian           Endian;             // File Endian
+
+  FILE*               File;
+  FILE*               TmpDataFile;
+
+  int                   XMLHeaderLength;
+  bool                  MainHeaderWritten;
+  bool                  Dirty;
+
+  ArraySetList          ArraySets;        // array sets list
+
+  unsigned int          NoOfArrayItems;   // number of items in array
+  unsigned int          ArrayBufferSize;  // array buffer size
+
+  // Curent Array Set Variables
+  ArraySet*             CurrenArraySet;
+
+  // Cureny Array Variables
+  DIGFileArrayHeader*   CurrentArrayHeader;
+  int          CurrenArrayIndex; // index of curent array
+
+
+  // XML Parsing and Writing
+
+  bool                  ArraySetOpen;
+  //int                   ArrayCounter;     // arrays counter
+
+  // DOM 
+
+  XercesDOMParser*      parser;
+  DOMTreeErrorReporter* errReporter;
+
+  DOMImplementation* impl;
+
+  DOMDocument* Document;
+  DOMElement*  RootElement;
+  DOMElement*  MainHeaderElement;
+  DOMElement*  ApplicationHeaderElement;
+  DOMElement*  ArraySetHeaderElement;     // active array set header
+  DOMElement*  ArrayHeaderElement;        // active array header
+
+  DOMNodeList* ArraySetHeaderList;
+  DOMNodeList* ArrayHeaderList;
+
+
+  // XML Strings
+  static bool XMLStringsInitialized;
+
+
+  static const XMLCh* RootXMLStr;
+
+  static const XMLCh* MainHeaderXMLStr;
+
+  static const XMLCh* TitleXMLStr;
+  static const XMLCh* TypeXMLStr;
+  static const XMLCh* ChannelsXMLStr;
+  static const XMLCh* NumberOfArraysXMLStr;
+  static const XMLCh* NumberOfArraySetsXMLStr;
+  static const XMLCh* EndianXMLStr;
+  static const XMLCh* ValueTypeXMLStr;
+  static const XMLCh* DataTypeXMLStr;
+  static const XMLCh* DataFormatXMLStr;
+  static const XMLCh* GridTypeXMLStr;
+  static const XMLCh* BasisFunctionXMLStr;
+  static const XMLCh* UnitXMLStr;
+  static const XMLCh* OtherUnitXMLStr;
+  static const XMLCh* CommentsXMLStr;
+  static const XMLCh* DimensionsXMLStr;
+
+  static const XMLCh* DimmensionXXMLStr;
+  static const XMLCh* DimmensionYXMLStr;      
+  static const XMLCh* DimmensionZXMLStr;
+
+  static const XMLCh* SamplingRateXXMLStr;
+  static const XMLCh* SamplingRateYXMLStr;
+  static const XMLCh* SamplingRateZXMLStr;
+
+  static const XMLCh* ArraySetHeaderXMLStr;
+
+  //static const XMLCh* TypeXMLStr;
+  //static const XMLCh* TitleXMLStr;
+  static const XMLCh* ParametersXMLStr;
+
+  static const XMLCh* ArrayHeaderXMLStr;
+  static const XMLCh* EnumerationNumberXMLStr;
+
+public:
+  DIGFile();
+  virtual ~DIGFile() { };
+
+  int Open(const char* FileName);
+  int Open(
+    const char*           pFileName, 
+    const char*           pSchema, 
+         const char*           pTitle,
+         const char*           pType,
+         unsigned int          pChannels,
+         //DIGEndian             pEndian,
+         DIGValueType          pValueType,
+         DIGDataType           pDataType,
+         DIGDataFormat         pDataFormat,
+         DIGGrid               pGrid,
+         DIGBasis              pBasis,
+         DIGUnit               pUnit,
+         const DIGDimensions*  pDimensions,
+         const DIGSampling*    pSamplingX,
+         const DIGSampling*    pSamplingY,
+         const DIGSampling*    pSamplingZ,
+         const char*           pComment,
+         const char*           pOtherUnit
+  );
+
+  int Close();
+
+  int GetArrayBufferSize(unsigned int* pArrayBufferSize);
+  int GetArrayNoOfItems(unsigned int* pArrayNoOfItems);
+  int GetNoOfArraySets(unsigned int* pNoOfArraySets);
+  int GetNoOfArrays(unsigned int* pNoOfArrays);
+
+  // main header
+  int SetComment(const char* pComment);
+  int SetTitle(const char* pTitle);
+
+  int GetTitle(const char** pTitle);
+  int GetType(const char** pType);
+  int GetChannels(unsigned int* pChannels);
+  int GetEndian(DIGEndian* pEndian);
+  int GetValueType(DIGValueType* pValueType);
+  int GetDataType(DIGDataType* pDataType);
+  int GetDataFormat(DIGDataFormat* pDataFormat);
+  int GetGrid(DIGGrid* pGrid);
+  int GetBasis(DIGBasis* pBasis);
+  int GetUnit(DIGUnit* pUnit);
+  int GetOtherUnit(const char** pOtherUnit);
+  int GetDimensions(const DIGDimensions** pDimensions);
+  int GetSamplingX(const DIGSampling** pSampling);
+  int GetSamplingY(const DIGSampling** pSampling);
+  int GetSamplingZ(const DIGSampling** pSampling);
+  int GetComment(const char** pComment);
+
+
+  //int AppendArraySet(DIGFileArraySetHeader* SetHeader);
+  int AppendArraySet(
+    const char* pType,
+    const char* pTitle,
+    const char* pParameters,
+    const char* pComments
+  );
+
+   //int AppendArray(DIGFileArrayHeader* ArrayHeader, void* Buffer); 
+  int AppendArray(
+    unsigned int pEnumerationNumber,
+    const char* pComment,
+    const void* pBuffer
+  );
+
+  //int GetArraySetHeader(DIGFileArraySetHeader** SetHeader);
+  int GetArraySetType(const char** pType);
+  int GetArraySetTitle(const char** pTitle);
+  int GetArraySetParameters(const char** pParameters);
+  int GetArraySetComment(const char** pComments);
+
+  //int GetArrayHeader(DIGFileArrayHeader** ArrayHeader);
+  int GetArrayEnumNo(unsigned int* pEnumNo);
+  int GetArrayComment(const char** pComment);
+
+
+  int SelectArraySet(unsigned int pNo);
+  int SelectArray(unsigned int pNo);
+
+  int GetArrayData(void* pArrayData);
+
+protected:
+
+  unsigned int ComputeArrayNoOfItems();
+  unsigned int ComputeArrayBufferSize();
+
+  int SymbolToCode(char* Symbol, const char** SymbolTable, int NumberOfSymbols);
+
+  int WriteArrayData(FILE* f, const void* ArrayData);
+
+  int FindSrting(char* String, FILE* File);
+  int GetXMLHeader(char** XMLBuff);
+
+  // Writing Methods
+  int WriteXMLHeader();
+  void CreateRootElement();
+  virtual int CreateApplicationHeader();
+  int CreateMainHeader(DIGFileMainHeader* header);
+  int AppendArraySetHeader(DIGFileArraySetHeader* SetHeader);
+  int AppendArrayHeader(DIGFileArrayHeader* ArrayHeader);
+
+
+  // Reading Methods
+  int InitParser2(const MemBufInputSource& memBufIS);
+  int ResetParser();
+  int GetIntAttributeValue(DOMElement* Element, const XMLCh* AttributeName, int* value);
+  int GetUintAttributeValue(DOMElement* Element, const XMLCh* AttributeName, unsigned int* value);
+  int GetDoubleAttributeValue(DOMElement* Element, const XMLCh* AttributeName, double* value);
+  int GetTxtAttributeValue(DOMElement* Element, const XMLCh* AttributeName, char** Text);
+  int GetElementText(DOMElement* Element, char** Text);
+
+  int GetMainHeader(DIGFileMainHeader* MainHeader);
+  virtual int ParseApplicationHeader();
+  int GetArraySetHeader(DIGFileArraySetHeader* ArraySetHeader, unsigned int index);
+  int GetArrayHeader(DIGFileArrayHeader* ArrayHeader, unsigned int index);
+
+  int ParseXML(const char* MemBuf);
+
+  int CreateMainHeader();
+};
+
+#endif
diff --git a/include/DIGFile/DOMTreeErrorReporter.h b/include/DIGFile/DOMTreeErrorReporter.h
new file mode 100755 (executable)
index 0000000..7f332e2
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written
+ *    permission, please contact apache\@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/*
+ * DOMTreeErrorReporter.h,v 1.1 2005/07/26 19:25:52 jdubowy Exp
+ */
+
+#ifndef DOM_TREE_ERROR_REPORTER_H
+#define DOM_TREE_ERROR_REPORTER_H
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/sax/ErrorHandler.hpp>
+#include <iostream>
+
+
+XERCES_CPP_NAMESPACE_USE
+
+
+class DOMTreeErrorReporter : public ErrorHandler
+{
+public:
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    DOMTreeErrorReporter() :
+       fSawErrors(false)
+    {
+    }
+
+    ~DOMTreeErrorReporter()
+    {
+    }
+
+
+    // -----------------------------------------------------------------------
+    //  Implementation of the error handler interface
+    // -----------------------------------------------------------------------
+    void warning(const SAXParseException& toCatch);
+    void error(const SAXParseException& toCatch);
+    void fatalError(const SAXParseException& toCatch);
+    void resetErrors();
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    bool getSawErrors() const;
+
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fSawErrors
+    //      This is set if we get any errors, and is queryable via a getter
+    //      method. Its used by the main code to suppress output if there are
+    //      errors.
+    // -----------------------------------------------------------------------
+    bool    fSawErrors;
+};
+
+inline bool DOMTreeErrorReporter::getSawErrors() const
+{
+    return fSawErrors;
+}
+
+// ---------------------------------------------------------------------------
+//  This is a simple class that lets us do easy (though not terribly efficient)
+//  trancoding of XMLCh data to local code page for display.
+// ---------------------------------------------------------------------------
+class StrX
+{
+public :
+    // -----------------------------------------------------------------------
+    //  Constructors and Destructor
+    // -----------------------------------------------------------------------
+    StrX(const XMLCh* const toTranscode)
+    {
+        // Call the private transcoding method
+        fLocalForm = XMLString::transcode(toTranscode);
+    }
+
+    ~StrX()
+    {
+        XMLString::release(&fLocalForm);
+    }
+
+
+    // -----------------------------------------------------------------------
+    //  Getter methods
+    // -----------------------------------------------------------------------
+    const char* localForm() const
+    {
+        return fLocalForm;
+    }
+
+private :
+    // -----------------------------------------------------------------------
+    //  Private data members
+    //
+    //  fLocalForm
+    //      This is the local code page form of the string.
+    // -----------------------------------------------------------------------
+    char*   fLocalForm;
+};
+
+inline std::ostream& operator<<(std::ostream& target, const StrX& toDump)
+{
+    target << toDump.localForm();
+    return target;
+}
+
+#endif // DOM_TREE_ERROR_REPORTER_H
diff --git a/include/DIGFileSnark/DIGFileSnarkProj.h b/include/DIGFileSnark/DIGFileSnarkProj.h
new file mode 100755 (executable)
index 0000000..f096aac
--- /dev/null
@@ -0,0 +1,445 @@
+#ifndef DIG_FILE_SNARK_PRJ_H
+#define DIG_FILE_SNARK_PRJ_H
+
+#include <string.h>
+
+//#include "DIGFile.h"
+#include <DIGFile/DIGFile.h>
+
+enum DetectorTypeEnum {
+       //DT_UNSET,
+       DT_TANGENT,
+       DT_ARC,
+       DT_UNIFORM,
+       DT_VARIABLE,
+};
+
+enum ProjTypeEnum {
+       //PT_UNSET,
+       PT_STRIP,
+       PT_LINE,
+};
+
+enum GeometryTypeEnum {
+       //GT_UNSET,
+       GT_DIVERGENT,
+       GT_PARALLEL,
+};
+
+class ProjGeometry
+{
+public:
+  //geometry
+       GeometryTypeEnum  GeometryType;
+       DetectorTypeEnum  DetectorType;
+
+  // Divergent
+       double            Radius; 
+       double            SrcDetDistance;
+
+  // Paralel
+       ProjTypeEnum      ProjType;
+
+public:
+  ProjGeometry(double, double, DetectorTypeEnum);
+       ProjGeometry(DetectorTypeEnum, ProjTypeEnum);
+};
+
+
+// Noise
+
+class ProjNoise
+{
+public:
+  // quantum
+       bool            IsQuan;
+       double  QuantumMean;
+       double  QuantumCalibration;
+       int     QuantumGantry;
+
+  // scatter
+  bool    IsScat;
+       double  ScatterPeak;
+       double  ScatterWidth;
+
+  // additive
+  bool    IsAdd;
+       double  AdditiveMean;
+       double  AdditiveStdDev;
+
+  // multiplicative
+  bool    IsMult;
+       double  MultiplicativeMean;
+       double  MultiplicativeStdDev;
+
+
+  ProjNoise();
+
+       void SetQuantum(double, double, int);
+       void SetScatter(double, double);
+       void SetAdditive(double, double);
+       void SetMultiplicative(double, double);
+
+
+  /*
+       int GetQuantum(double&, double&, double&);
+       int GetScatter(double&, double&);
+       int GetAdditive(double&, double&);
+       int GetMultiplicative(double&, double&);
+  */
+};
+
+// spectrum
+class ProjSpectrum
+{
+public:
+       unsigned int  NumberOfEnergies;
+       int*          energy;
+       double*       ratio;
+       double*       background;
+
+  ProjSpectrum(unsigned int eNum);
+  int SetEnergy(int, int, double, double);
+
+  /*
+  int SetSpectrum(int* e, double* r, double* bg);
+
+
+       int GetNumberOfEnergies(unsigned int* eNum);
+       int GetEnergy(int, int*, double*, double*);
+  */
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// DIGFileSnarkPrj main header
+///////////////////////////////////////////////////////////////////////////////
+
+class ProjFileMH
+{
+public:
+  DIGString     Title;
+  unsigned int  Dimensions;
+  double        Sampling;
+  DIGString     Comment;
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// DIGFileSnarkPrj application header
+///////////////////////////////////////////////////////////////////////////////
+
+struct ProjFileAH
+{
+public:
+  DIGString Comment;
+
+  // geometry
+
+  GeometryTypeEnum    GeometryType;
+  DetectorTypeEnum    DetectorType;
+
+  double              Radius;
+  double              SrcDetDistance;
+
+  ProjTypeEnum        ProjType;
+
+  // spectrum
+
+  unsigned int  NoOfEnergies;
+
+  int*          Energy;
+  double*       Ratio; 
+  double*       Background;
+
+  // noise
+
+  bool    QuantumFlag;
+  double  QuantumM; 
+  double  QuantumCM;
+  int     QuantumGA;
+
+  bool    ScatterFlag;
+  double  ScatterP;
+  double  ScatterW;
+
+  bool    AdditiveFlag;
+  double  AdditiveM;
+  double  AdditiveSD;
+
+  bool    MultiplicativeFlag;
+  double  MultiplicativeM;
+  double  MultiplicativeSD;
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// DIGFileSnarkPrj projection header
+///////////////////////////////////////////////////////////////////////////////
+
+class ProjFilePrjH
+{
+public:
+  unsigned int  ProjNo;
+  double        Angle;
+  DIGString     Comment;
+};
+
+
+
+class DIGFileSnarkProj: protected DIGFile {
+
+protected:
+  static const char* TypeStr;
+  static const char* SchemaStr;
+
+  static bool XMLStringsInitialized;
+
+       static const XMLCh* AppHeaderXMLStr;
+       static const XMLCh* GeomHeaderXMLStr;
+       static const XMLCh* DivergentXMLStr;
+       static const XMLCh* RadiusXMLStr;
+       static const XMLCh* SourceDetXMLStr;
+       static const XMLCh* DetTypeXMLStr;
+       static const XMLCh* ParallelXMLStr;
+       static const XMLCh* ProjTypeXMLStr;
+       static const XMLCh* NoiseHeaderXMLStr;
+       static const XMLCh* QuantumXMLStr;
+       static const XMLCh* MeanXMLStr;
+       static const XMLCh* CalibMeasXMLStr;
+       static const XMLCh* GantryXMLStr;
+       static const XMLCh* ScatterXMLStr;
+       static const XMLCh* PeakXMLStr;
+       static const XMLCh* WidthXMLStr;
+       static const XMLCh* AdditiveXMLStr;
+       static const XMLCh* StdDevXMLStr;
+       static const XMLCh* MultipXMLStr;
+       static const XMLCh* SpectrumHeaderXMLStr;
+       static const XMLCh* NumOfEnerXMLStr;
+       static const XMLCh* EnergyLevelXMLStr;
+       static const XMLCh* EnergyXMLStr;
+       static const XMLCh* RatioXMLStr;
+       static const XMLCh* BackgroundXMLStr;
+       
+  DIGString      AppComment;
+  ProjSpectrum*  Spectrum;
+  ProjGeometry*  Geometry;
+  ProjNoise      Noise;
+
+public:
+
+       DIGFileSnarkProj();
+       ~DIGFileSnarkProj();
+
+  //
+  // Writing
+  //
+
+  int Open(const char* pFileName, ProjFileMH* pMainHeader);
+  int Open(
+    const char*  pFileName,     // File Name
+    const char*  pTitle,        // Title
+    unsigned int pNumberOfRays, // USRAYS
+    double       pSampling,     // PINC
+    const char*  pComment       // Comment
+  );
+
+  // updating main header after opening file to write
+
+  int SetTitle(const char* pTitle) {
+    return DIGFile::SetTitle(pTitle);
+  }
+
+  int SetComment(const char* pComment) {
+    return DIGFile::SetComment(pComment);
+  }
+
+  // writing application header
+
+  int SetAppHeader(ProjFileAH* pAppHeader);
+
+  // comment
+  int SetAppComment(const char* pComment);
+
+  // geometry
+  int SetGeometry(double r, double d, DetectorTypeEnum t);  // divergent
+  int SetGeometry(DetectorTypeEnum t, ProjTypeEnum p);      // parallel
+
+  // spectrum
+  int SetSpectrum(unsigned int eNum, int* e, double* r, double* bg);
+
+  // noise
+       int SetNoiseQuantum(double, double, int);
+       int SetNoiseScatter(double, double);
+       int SetNoiseAdditive(double, double);
+       int SetNoiseMultiplicative(double, double);
+
+  // Appending Projection
+
+  int AppendProj(ProjFilePrjH* pProjHeader, const double* pData);
+  int AppendProj(
+    unsigned int  pProjNo,
+    double        pAngle,
+    const char*   pComment,
+    const double* pData
+  );
+
+  //
+  // Reading
+  //
+
+  int Open(const char* pFileName);
+
+  // Reading file parameters
+
+  int GetNoOfRays(unsigned int* pNoOfRays) {
+    return DIGFile::GetArrayNoOfItems(pNoOfRays);
+  }
+
+  int GetNoOfProjs(unsigned int* pProjections) {
+    return DIGFile::GetNoOfArraySets(pProjections);
+  }
+
+  // file navigation
+
+  int SelectProj(unsigned int No) {
+    int ret;
+
+    if((ret = SelectArraySet(No)) != 0) {
+      return ret;
+    }
+
+    return SelectArray(0);
+  }
+
+  // Reading main header
+
+  int GetMainHeader(ProjFileMH* pMainHeader);
+
+  int GetTitle(const char** pTitle) {
+    return DIGFile::GetTitle(pTitle);
+  }
+
+  int GetEndian(DIGEndian* pEndian) {
+    return DIGFile::GetEndian(pEndian);
+  }
+
+  int GetDimensions(unsigned int* pDimensions) {
+    const DIGDimensions* Dimensions;
+    int ret;
+
+    if((ret = DIGFile::GetDimensions(&Dimensions)) != 0) {
+      return ret;
+    }
+
+    *pDimensions = Dimensions->x;
+
+    return 0;
+  }
+
+  int GetSampling(double* pSampling) {
+    const DIGSampling* Sampling;
+    int ret;
+
+    if((ret = DIGFile::GetSamplingX(&Sampling)) != 0) {
+      return ret;
+    }
+
+    *pSampling = Sampling->x;
+
+    return 0;
+  }
+
+  int GetComment(const char** pComment) {
+    return DIGFile::GetComment(pComment);
+  }
+
+  // Reading application header 
+
+  int GetAppHeader(ProjFileAH* pAppHeader);
+
+  // comment
+  int GetAppComment(const char** pComment);
+
+  // geometry
+  int GetGeometryType(GeometryTypeEnum* gt);
+  int GetGeometry(double* r, double* d, DetectorTypeEnum* t); // divergent
+  int GetGeometry(DetectorTypeEnum* t, ProjTypeEnum* p);      // parallel
+
+  // spectrum
+  int GetNoOfEnergies(unsigned int* NumbOfEnergies);
+  int GetSpectrum(unsigned int i, int* e, double* r, double* bg);
+
+  // noise
+  int HasNoiseQuantum(bool* a);
+  int GetNoiseQuantum(double* m, double* cm, int* ga);
+  int HasNoiseScatter(bool* a);
+  int GetNoiseScatter(double* p, double* w);
+  int HasNoiseAdditive(bool* a);
+  int GetNoiseAdditive(double* m, double* sd);
+  int HasNoiseMultiplicative(bool* a);
+  int GetNoiseMultiplicative(double* m, double* sd);
+
+
+  // Reading projection header
+
+  int GetProjHeader(ProjFilePrjH* pProjHeader);
+
+  int GetProjNo(unsigned int* pProjNo) 
+  {
+    int ret;
+    const char* ProjNoStr;
+
+    if((ret = DIGFile::GetArraySetTitle(&ProjNoStr)) != 0) {
+      return ret;
+    }
+    *pProjNo = atoi(ProjNoStr);
+
+    return 0;
+  }
+
+  int GetProjAngle(double* pAngle) {
+    int ret;
+    const char* Parameters;
+
+    if((ret = DIGFile::GetArraySetParameters(&Parameters)) != 0) {
+      return ret;
+    }
+    *pAngle = atof(Parameters);
+
+    return 0;
+  }
+
+  int GetProjComment(const char** pComments) {
+    return DIGFile::GetArraySetComment(pComments);
+  }
+
+  // Reading projection data
+
+  int GetProjData(void* pArrayData) {
+    return DIGFile::GetArrayData(pArrayData);
+  }
+
+  int Close() {
+    int ret = DIGFile::Close();
+
+    if(Geometry != NULL) {
+           delete Geometry;
+      Geometry = NULL;
+    }
+
+    if(Spectrum != NULL) {
+           delete Spectrum;
+      Spectrum = NULL;
+    }
+
+    return ret; 
+  }
+
+protected:
+
+       int ParseApplicationHeader();
+       int CreateApplicationHeader();
+};
+
+#endif // SNARK_PRJ_FILE_H
diff --git a/include/DIGFileSnark/DIGFileSnarkRec.h b/include/DIGFileSnark/DIGFileSnarkRec.h
new file mode 100755 (executable)
index 0000000..cf4cec7
--- /dev/null
@@ -0,0 +1,249 @@
+#ifndef DIG_FILE_SNARK_REC_H
+#define DIG_FILE_SNARK_REC_H
+
+//#include "DIGFile.h"
+#include <DIGFile/DIGFile.h>
+
+///////////////////////////////////////////////
+// DIGFileSnarkRec main header
+///////////////////////////////////////////////
+
+class RecFileMH
+{
+public:
+  DIGString     Title;
+  unsigned int  Dimensions;
+  double        Sampling;
+  DIGString     Comment;
+};
+
+///////////////////////////////////////////////
+// DIGFileSnarkRec phantom header
+///////////////////////////////////////////////
+
+class RecFilePhanomH
+{
+public:
+  DIGString     Name;
+  DIGString     Comment;
+};
+
+///////////////////////////////////////////////
+// DIGFileSnarkRec Reconstruction Set header
+///////////////////////////////////////////////
+
+class RecFileRecSetH
+{
+public:
+  DIGString   Name;
+  DIGString   AlgName;
+  DIGString   Comment;
+};
+
+///////////////////////////////////////////////
+// DIGFileSnarkRec Reconstruction header
+///////////////////////////////////////////////
+
+class RecFileRecH
+{
+public:
+  unsigned int  Count;
+  DIGString     Comment;
+};
+
+///////////////////////////////////////////////
+// DIGFileSnarkRec
+///////////////////////////////////////////////
+
+class DIGFileSnarkRec: protected DIGFile {
+
+protected:
+  static const char*  TypeStr;
+  static const char*  SchemaStr;
+  bool                PhantomPresent;
+  bool                RecPressent;
+
+public:
+
+       DIGFileSnarkRec();
+       ~DIGFileSnarkRec();
+
+  //
+  // Writing
+  //
+
+  // Open for writing
+
+  int Open(const char* pFileName, RecFileMH* pMainHeader);
+  int Open(
+    const char* pFileName,      // File Name
+    const char* pProjName,      // Projection Name
+    unsigned int pNoOfElements, // NELEM
+    double pSampling,           // PIXSIZ
+    const char* pComments       // Comments
+  );
+
+  // Updating main header after opening file to write
+
+  int SetProjName(const char* pProjName) {
+    return DIGFile::SetTitle(pProjName);
+  }
+
+  int SetComment(const char* pComment) {
+    return DIGFile::SetComment(pComment);
+  }
+
+  // Appending phantom
+
+  int AppendPhanom(RecFilePhanomH* pPhanomHeader, double* pData);
+  int AppendPhantom(const char* pPhanomName, const char* pComment, double* pData);
+
+  // Appending reconstruction set
+
+  int AppendRecSet(RecFileRecSetH* pRecHeader);
+  int AppendRecSet(const char* pAlgName, const char* pName, const char* pComment);
+
+  // Appending reconstruction
+
+  int AppendRec(RecFileRecH* pRecHeader, double* pData);
+  int AppendRec(unsigned int pCount, const char* pComment, double* pData);
+
+  //
+  // Reading
+  //
+
+  // Open for reading
+
+  int Open(const char* pFileName);
+
+  // Reading file parameters
+
+  int GetPhantomPresent(bool* pPhantomPresent) {
+    *pPhantomPresent = PhantomPresent;
+    return 0;
+  }
+
+  int GetNoOfPixels(unsigned int* pNoOfPixels) {
+    return DIGFile::GetArrayNoOfItems(pNoOfPixels);
+  }
+
+  int GetNoOfRecSets(unsigned int* pNoOfRecSets) {
+    int ret;
+    unsigned int NoOfRecSets;
+
+    if((ret = DIGFile::GetNoOfArraySets(&NoOfRecSets)) != 0) {
+      return ret; // error
+    }
+
+    if(PhantomPresent) {
+      *pNoOfRecSets = NoOfRecSets - 1;
+    }
+    else {
+      *pNoOfRecSets = NoOfRecSets;
+    }
+
+    return 0;
+  }
+
+  int GetNoOfRecs(unsigned int* pNoOfRec) {
+    return GetNoOfArrays(pNoOfRec);
+  }
+
+  // file navigation
+
+  int SelectRecSet(unsigned int pRecSetNo) {
+    if(PhantomPresent) {
+      return SelectArraySet(pRecSetNo + 1);
+    }
+    else {
+      return SelectArraySet(pRecSetNo);
+    }
+  }
+
+  int SelectRec(unsigned int pRecNo) {
+    return SelectArray(pRecNo);
+  }
+
+  // Reading main header
+
+  int GetMainHeader(RecFileMH* pMainHeader);
+
+  int GetProjName(const char** pProjName) {
+    return DIGFile::GetTitle(pProjName);
+  }
+
+  int GetEndian(DIGEndian* pEndian) {
+    return DIGFile::GetEndian(pEndian);
+  }
+
+  int GetDimensions(unsigned int* pDimensions) {
+    const DIGDimensions* Dimensions;
+    int ret;
+
+    if((ret = DIGFile::GetDimensions(&Dimensions)) != 0) {
+      return ret;
+    }
+
+    *pDimensions = Dimensions->x;
+
+    return 0;
+  }
+
+  int GetSampling(double* pSampling) {
+    const DIGSampling* Sampling;
+    int ret;
+
+    if((ret = DIGFile::GetSamplingX(&Sampling)) != 0) {
+      return ret;
+    }
+
+    *pSampling = Sampling->x;
+
+    return 0;
+  }
+
+  int GetComment(const char** pComment) {
+    return DIGFile::GetComment(pComment);
+  }
+
+  // Reading phantom header
+
+  int GetPhantomHeader(RecFilePhanomH* pPhantomHeader);
+
+  int GetPhantomName(const char** pPhantomName);
+  int GetPhantomComment(const char** pPhantomComment);
+
+  // Reading phantom data
+
+  int GetPhantomData(void* pPhantomData);
+
+  // Reading reconstruction set header
+
+  int GetRecSetHeader(RecFileRecSetH* pRecSetHeader);
+
+  int GetRecSetName(const char** pRecName); // title
+  int GetRecSetAlgName(const char** pAlgName); // type
+  int GetRecSetComment(const char** pComment);
+
+  // Reading reconstruction header
+
+  int GetRecHeader(RecFileRecH* pRecHeader);
+
+  int GetRecCount(unsigned int* pCount);
+  int GetRecComment(const char** pComment);
+
+  // Reading reconstruction data
+
+  int GetRecData(void* pRecData) {
+    return DIGFile::GetArrayData(pRecData);
+  }
+
+  ///////////////////////////////////////////////////
+
+  int Close() {
+    return DIGFile::Close();
+  }
+
+};
+
+#endif // DIG_FILE_SNARK_REC_H
diff --git a/include/DIGRand/DIGGauss.h b/include/DIGRand/DIGGauss.h
new file mode 100755 (executable)
index 0000000..70112e7
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef DIGGAUSS_H
+#define DIGGAUSS_H
+
+//#include <DIGRand.h>
+#include <DIGRand/DIGRand.h>
+      
+double Gauss(double mean, double std);
+#endif
diff --git a/include/DIGRand/DIGPoisson.h b/include/DIGRand/DIGPoisson.h
new file mode 100755 (executable)
index 0000000..095a8cf
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef POISSON_H
+#define POISSON_H
+
+//#include <DIGRand.h>
+#include <DIGRand/DIGRand.h>
+      
+int Poisson(double pALambda);
+
+#endif
diff --git a/include/DIGRand/DIGRand.h b/include/DIGRand/DIGRand.h
new file mode 100755 (executable)
index 0000000..948701b
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef DIGRAND_H
+#define DIGRAND_H
+      
+void Srand(unsigned int pSeed);
+double Rand(void);
+
+#endif
diff --git a/src/DIGFile/DIGEndian.cpp b/src/DIGFile/DIGEndian.cpp
new file mode 100644 (file)
index 0000000..a9bbe2c
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+
+  This file is part of DIG Library.
+  DIG Library is a free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published
+  by the Free Software Foundation; either version 2 of the License,
+  or (at your option) any later version.
+  DIG Library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  General Public License for more details.
+  You should have received a copy of the GNU General Public License
+  along with Foobar; if not, write to the Free Software Foundation,
+  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+// DIGEndian.cpp,v 1.3 2005/07/27 16:39:24 jdubowy Exp
+
+//#include <DIGEndian.h>
+#include <DIGFile/DIGEndian.h>
+
+// This is a constant used to determine endian
+const short DIG_ENDIAN_CONST = 0x0100;
+
diff --git a/src/DIGFile/DIGFile.cpp b/src/DIGFile/DIGFile.cpp
new file mode 100644 (file)
index 0000000..486a762
--- /dev/null
@@ -0,0 +1,2978 @@
+/*
+
+  This file is part of DIG Library.
+  DIG Library is a free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published
+  by the Free Software Foundation; either version 2 of the License,
+  or (at your option) any later version.
+  DIG Library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  General Public License for more details.
+  You should have received a copy of the GNU General Public License
+  along with Foobar; if not, write to the Free Software Foundation,
+  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+// DIGFile.cpp,v 1.20 2007/06/14 17:10:50 swr Exp
+
+//defines added to enable large file support
+//jklukowska, 06/07/2007
+#ifndef _LARGEFILE_SOURCE
+       #define _LARGEFILE_SOURCE     /* enable large file support  */
+#endif
+#ifndef _FILE_OFFSET_BITS
+       #define _FILE_OFFSET_BITS 64     /* enable large file support  */
+#endif
+
+// bug 226 - needed to compile this file on cygwin - swr - 6/14/07
+#undef __STRICT_ANSI__
+
+//#include <iostream>
+#include <cstring>
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+
+#include <xercesc/framework/StdOutFormatTarget.hpp>
+#include <xercesc/framework/LocalFileFormatTarget.hpp>
+#include <xercesc/framework/MemBufFormatTarget.hpp>
+
+//#include <xercesc/util/XMLDouble.hpp>
+
+
+//#include "DIGFile.h"
+#include <DIGFile/DIGFile.h>
+
+#define DIGFILE_DEBUG_LEVEL 0
+        
+
+const char* DIGEndianStr[DIGEndianSize] = {
+  "little", 
+  "big"
+};
+
+const char* DIGValueTypeStr[DIGValueTypeSize] = {
+  "real", 
+  "complex"
+}; 
+
+const char* DIGDataTypeStr[DIGDataTypeSize] = {
+  "bool", 
+  "unsigned char", 
+  "char", 
+  "unsigned short", 
+  "short", 
+  "unsigned int", 
+  "int", 
+  "float", 
+  "double"
+}; 
+
+const char* DIGDataFormatStr[DIGDataFormatSize] = {
+  "ASCII", 
+  "binary"
+};
+
+const char* DIGGridStr[DIGGridSize] = {
+  "SC", 
+  "FCC1", 
+  "FCC2", 
+  "BCC1", 
+  "BCC2", 
+  "BCC3", 
+  "BCC4", 
+  "HEX1", 
+  "HEX2"
+};
+
+const char* DIGBasisStr[DIGBasisSize] = {
+  "voronoi", 
+  "blob"
+};
+
+const char* DIGUnitStr[DIGUnitSize] = {
+  "unspecified", 
+  "m", 
+  "cm", 
+  "mm", 
+  "nm", 
+  "micron", 
+  "A", 
+  "other"
+};
+
+static char DIGEmptyStr[1] = "";
+
+bool DIGFile::XMLStringsInitialized = false;
+
+const XMLCh* DIGFile::RootXMLStr;
+
+const XMLCh* DIGFile::MainHeaderXMLStr;
+
+const XMLCh* DIGFile::TitleXMLStr;
+const XMLCh* DIGFile::TypeXMLStr;
+const XMLCh* DIGFile::ChannelsXMLStr;
+const XMLCh* DIGFile::NumberOfArraysXMLStr;
+const XMLCh* DIGFile::NumberOfArraySetsXMLStr;
+const XMLCh* DIGFile::EndianXMLStr;
+const XMLCh* DIGFile::ValueTypeXMLStr;
+const XMLCh* DIGFile::DataTypeXMLStr;
+const XMLCh* DIGFile::DataFormatXMLStr;
+const XMLCh* DIGFile::GridTypeXMLStr;
+const XMLCh* DIGFile::BasisFunctionXMLStr;
+const XMLCh* DIGFile::UnitXMLStr;
+const XMLCh* DIGFile::OtherUnitXMLStr;
+const XMLCh* DIGFile::CommentsXMLStr;
+const XMLCh* DIGFile::DimensionsXMLStr;
+
+const XMLCh* DIGFile::DimmensionXXMLStr;
+const XMLCh* DIGFile::DimmensionYXMLStr;      
+const XMLCh* DIGFile::DimmensionZXMLStr;
+
+const XMLCh* DIGFile::SamplingRateXXMLStr;
+const XMLCh* DIGFile::SamplingRateYXMLStr;
+const XMLCh* DIGFile::SamplingRateZXMLStr;
+
+const XMLCh* DIGFile::ArraySetHeaderXMLStr;
+
+//const XMLCh* DIGFile::TypeXMLStr;
+//const XMLCh* DIGFile::TitleXMLStr;
+const XMLCh* DIGFile::ParametersXMLStr;
+
+const XMLCh* DIGFile::ArrayHeaderXMLStr;
+const XMLCh* DIGFile::EnumerationNumberXMLStr;
+
+
+class DOMPrintErrorHandler : public DOMErrorHandler
+{
+public:
+
+  DOMPrintErrorHandler(){};
+  ~DOMPrintErrorHandler(){};
+
+  /** @name The error handler interface */
+  bool handleError(const DOMError& domError);
+  void resetErrors(){};
+
+private :
+  /* Unimplemented constructors and operators */ 
+  DOMPrintErrorHandler(const DOMErrorHandler&);
+  void operator=(const DOMErrorHandler&);
+    
+};
+
+bool DOMPrintErrorHandler::handleError(const DOMError &domError)
+{
+  // Display whatever error message passed from the serializer
+  char *msg = XMLString::transcode(domError.getMessage());
+  std::cout<<msg<<std::endl;
+  delete[] msg;
+
+  // Instructs the serializer to continue serialization if possible.
+  return true;
+}
+
+
+DIGFile::DIGFile()
+{
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::DIGFile\n");\r
+#endif\r
+
+  MainHeaderWritten = false;
+  ArraySetOpen = false;
+  //ArrayCounter = 0;
+
+  NoOfSets = 0;
+  NoOfArrays = 0;
+
+  Dirty = false;
+  File = NULL;
+
+  // ??????????????????????????
+       // Initialization\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 1\r
+  printf("Initializing XML parser\n");\r
+#endif\r
+
+       try {
+               XMLPlatformUtils::Initialize();
+       }
+       catch(const XMLException &toCatch) {
+               std::cerr << "Error during Xerces-c Initialization.\n"
+                       << "  Exception message:"
+                       << StrX(toCatch.getMessage()) << std::endl;
+               //return 1;
+       }
+  
+  if(!XMLStringsInitialized) {
+
+    RootXMLStr               = XMLString::transcode("DIG_DATA");
+
+    MainHeaderXMLStr         = XMLString::transcode("main_header");
+
+    TitleXMLStr              = XMLString::transcode("title");
+    TypeXMLStr               = XMLString::transcode("type");
+    ChannelsXMLStr           = XMLString::transcode("channels");
+    NumberOfArraysXMLStr     = XMLString::transcode("number_of_arrays");
+    NumberOfArraySetsXMLStr  = XMLString::transcode("number_of_array_sets");
+    EndianXMLStr             = XMLString::transcode("endian");
+    ValueTypeXMLStr          = XMLString::transcode("value_type");
+    DataTypeXMLStr           = XMLString::transcode("data_type");
+    DataFormatXMLStr         = XMLString::transcode("data_format");
+    GridTypeXMLStr           = XMLString::transcode("grid_type");
+    BasisFunctionXMLStr      = XMLString::transcode("basis_function");
+    UnitXMLStr               = XMLString::transcode("unit");
+    OtherUnitXMLStr          = XMLString::transcode("other_unit");
+    CommentsXMLStr           = XMLString::transcode("comments");
+    DimensionsXMLStr         = XMLString::transcode("dimensions");
+
+    DimmensionXXMLStr        = XMLString::transcode("x");
+    DimmensionYXMLStr        = XMLString::transcode("y");
+    DimmensionZXMLStr        = XMLString::transcode("z");
+
+    SamplingRateXXMLStr      = XMLString::transcode("sampling_rate_x");
+    SamplingRateYXMLStr      = XMLString::transcode("sampling_rate_y");
+    SamplingRateZXMLStr      = XMLString::transcode("sampling_rate_z");
+
+    ArraySetHeaderXMLStr     = XMLString::transcode("array_set_header");
+
+    // TypeXMLStr               = XMLString::transcode("type");
+    // TitleXMLStr              = XMLString::transcode("title");
+    ParametersXMLStr         = XMLString::transcode("parameters");
+
+    ArrayHeaderXMLStr        = XMLString::transcode("array_header");
+    EnumerationNumberXMLStr  = XMLString::transcode("enumeration_number");
+
+    XMLStringsInitialized = true;
+  }
+}
+
+int DIGFile::FindSrting(char* String, FILE* File)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::FindSrting\n");\r
+#endif\r
+
+  int i;
+  char ch;
+  int offset = 0;
+
+  // get legth of the string
+  int len = strlen(String);
+  
+  // create input buffer
+  char* Buffer = new char[len];
+  int head = 0; 
+  int tail = 0;
+
+  for(;;) {
+    // find match for first character in the string
+    while((ch = getc(File)) != String[0] && (ch != EOF)) {
+      offset++;
+    }
+
+    if(ch == EOF) {
+      return -1; // not found
+    }
+
+    // put first file character into the buffer
+    Buffer[0] = ch;
+    tail = 1;
+    int count = 1;
+
+    do {
+      // fill Buffer with file characters
+      for(i = count; i < len; i++) {
+        if((ch = getc(File)) == EOF) {
+          return -1;
+        }
+        Buffer[tail] = ch;
+        tail = (tail + 1) % len;
+      }
+
+      count = len;
+
+      // compare
+      int ptr = head;
+
+      for(i = 1; i < len; i++) {
+
+        ptr = (ptr + 1) % len;
+
+        if(Buffer[ptr] != String[i]) {
+          break; // found first difference
+        }
+      }
+
+      if(i == len) { // full match
+        return offset;
+      }
+
+      // move head to the next match for first character
+      do {
+        count--;
+        head = (head + 1) % len;
+        offset++;
+
+        if(Buffer[head] == String[0]) {
+          break; // found match for first character in the string
+        }
+      } 
+      while(count > 0);
+    }
+    while(count > 0);
+  }
+}
+
+
+int DIGFile::GetXMLHeader(char** XMLBuff)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetXMLHeader\n");\r
+#endif\r
+
+  static char TerminationString[] = "</DIG_DATA>";
+  \r
+#if DIGFILE_DEBUG_LEVEL > 1\r
+  printf("Searching for XML termnation\n");\r
+#endif\r
+
+  // search for end of XML
+  if((XMLHeaderLength = FindSrting(TerminationString, File)) == -1) {\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: missing XML termnation\n");\r
+#endif
+    return -1; // error missing XML termnation
+  }
+
+  // add length of termnating string and 1 for the following LF
+  XMLHeaderLength += strlen(TerminationString) + 1;
+\r
+#if DIGFILE_DEBUG_LEVEL > 1\r
+  printf("Reading XML Header\n");\r
+#endif\r
+
+  // read XML to memory
+  *XMLBuff = new char[XMLHeaderLength+1];
+
+  rewind(File);
+
+  if(fread((void*) *XMLBuff, 1, XMLHeaderLength, File) != (unsigned int) XMLHeaderLength) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: reading file\n");\r
+#endif\r
+    return -1; // error reading file
+  }
+
+  (*XMLBuff)[XMLHeaderLength] = 0;
+
+  return 0;
+}
+
+
+// open existing file
+
+int DIGFile::Open(const char* FileName)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::Open\n");\r
+#endif\r
+
+  char* XMLBuffer;
+
+  if(File != NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: DIG File already open\n");\r
+#endif
+    return -1; // DIG File already open
+  }
+\r
+#if DIGFILE_DEBUG_LEVEL > 1\r
+  printf("Opening DIG file for reading\n");\r
+#endif\r
+
+  // try to open DIG File for reading
+  if((File = fopen(FileName, "r+b")) == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: unable to open DIG File\n");\r
+#endif
+    return -1; // unable to open DIG File
+  }
+\r
+#if DIGFILE_DEBUG_LEVEL > 1\r
+    printf("Loading XML header\n");\r
+#endif\r
+
+  // load XML header
+  if(GetXMLHeader(&XMLBuffer) != 0) {\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: invalid DIG File (missing XML header\n");\r
+#endif
+    return -2; // invalid DIG File (missing XML header)
+  }
+\r
+#if DIGFILE_DEBUG_LEVEL > 1\r
+  printf("Parsing XML Header\n");\r
+#endif\r
+
+  // parse XML and load structures
+  if(ParseXML(XMLBuffer) != 0) {\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: unable to parse XML header\n");\r
+#endif
+    return -3; // unable to parse XML header
+  }
+
+  NoOfArrayItems = ComputeArrayNoOfItems();
+  ArrayBufferSize = ComputeArrayBufferSize();
+  Dirty = false;
+
+  return 0;
+}
+
+
+// open new file
+
+int DIGFile::Open(
+  const char*           pFileName,
+  const char*           pSchema,
+       const char*           pTitle,
+       const char*           pType,
+       unsigned int          pChannels,
+       //DIGEndian             pEndian,
+       DIGValueType          pValueType,
+       DIGDataType           pDataType,
+       DIGDataFormat         pDataFormat,
+       DIGGrid               pGrid,
+       DIGBasis              pBasis,
+       DIGUnit               pUnit,
+       const DIGDimensions*  pDimensions,
+       const DIGSampling*    pSamplingX,
+       const DIGSampling*    pSamplingY,
+       const DIGSampling*    pSamplingZ,
+       const char*           pComment,
+       const char*           pOtherUnit
+)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::Open\n");\r
+#endif\r
+
+  if(File != NULL) {\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: DIG File already open\n");\r
+#endif
+    return -1; // DIG File already open
+  }
+
+  if(SchemaName.Set(pSchema) != 0) {\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: \n");\r
+#endif
+    return -1; // 
+  }
+
+       // open temp file for data
+  TmpDataFile = tmpfile();
+\r
+#if DIGFILE_DEBUG_LEVEL > 1\r
+  printf("Opening DIG File\n");\r
+#endif\r
+
+  if((File = fopen(pFileName, "w+b")) == NULL) {\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: unable to open file\n");\r
+#endif
+    return -1; // unable to open file
+  }    
+
+  MainHeader.Title.Set(pTitle);
+  MainHeader.Type.Set(pType);
+  MainHeader.Channels = pChannels;
+  //MainHeader.number_of_arrays = ;
+  //MainHeader.number_of_sets =;
+  //MainHeader.Endian = pEndian;
+  MainHeader.ValueType = pValueType;
+  MainHeader.DataType = pDataType;
+  MainHeader.DataFormat = pDataFormat;
+  MainHeader.Grid = pGrid;
+  MainHeader.Basis = pBasis;
+  MainHeader.Unit = pUnit;
+       MainHeader.OtherUnit.Set(pOtherUnit);
+  MainHeader.Dimensions.x = pDimensions->x;
+  MainHeader.Dimensions.y = pDimensions->y;
+  MainHeader.Dimensions.z = pDimensions->z;
+  MainHeader.SamplingX.x = pSamplingX->x;
+  MainHeader.SamplingX.y = pSamplingX->y;
+  MainHeader.SamplingX.z = pSamplingX->z;
+  MainHeader.SamplingY.x = pSamplingY->x;
+  MainHeader.SamplingY.y = pSamplingY->y;
+  MainHeader.SamplingY.z = pSamplingY->z;
+  MainHeader.SamplingZ.x = pSamplingZ->x;
+  MainHeader.SamplingZ.y = pSamplingZ->y;
+  MainHeader.SamplingZ.z = pSamplingZ->z;
+
+  MainHeader.Comment.Set(pComment);
+
+  Dirty = true;
+
+  NoOfArrayItems = ComputeArrayNoOfItems();
+  ArrayBufferSize = ComputeArrayBufferSize();
+
+
+  XMLCh tempStr[100];
+
+  XMLString::transcode("Core", tempStr, 99);
+
+  impl =  DOMImplementationRegistry::getDOMImplementation(tempStr);
+
+  return 0;
+}
+
+
+int DIGFile::SetComment(const char* pComment)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::SetComment\n");\r
+#endif\r
+
+  MainHeader.Comment.Set(pComment);
+  return 0;
+}
+
+
+int DIGFile::SetTitle(const char* pTitle)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::SetTitle\n");\r
+#endif\r
+
+  MainHeader.Title.Set(pTitle);
+  return 0;
+}
+
+
+int DIGFile::GetTitle(const char** pTitle)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetTitle\n");\r
+#endif\r
+
+  *pTitle = MainHeader.Title.Get();
+  return 0;
+}
+
+
+int DIGFile::GetType(const char** pType)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetType\n");\r
+#endif\r
+
+  *pType = MainHeader.Type.Get();
+  return 0;
+}
+
+
+int DIGFile::GetChannels(unsigned int* pChannels)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetChannels\n");\r
+#endif\r
+
+  *pChannels = MainHeader.Channels;
+  return 0;
+}
+
+
+int DIGFile::GetEndian(DIGEndian* pEndian)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetEndian\n");\r
+#endif\r
+
+  *pEndian = Endian;
+  return 0;
+}
+
+
+int DIGFile::GetValueType(DIGValueType* pValueType)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetValueType\n");\r
+#endif\r
+
+  *pValueType = MainHeader.ValueType;
+  return 0;
+}
+
+
+int DIGFile::GetDataType(DIGDataType* pDataType)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetDataType\n");\r
+#endif\r
+
+  *pDataType = MainHeader.DataType;
+  return 0;
+}
+
+
+int DIGFile::GetDataFormat(DIGDataFormat* pDataFormat)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetDataFormat\n");\r
+#endif\r
+
+  *pDataFormat = MainHeader.DataFormat;
+  return 0;
+}
+
+
+int DIGFile::GetGrid(DIGGrid* pGrid)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetGrid\n");\r
+#endif\r
+
+  *pGrid = MainHeader.Grid;
+  return 0;
+}
+
+
+int DIGFile::GetBasis(DIGBasis* pBasis)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetBasis\n");\r
+#endif\r
+
+  *pBasis = MainHeader.Basis;
+  return 0;
+}
+
+
+int DIGFile::GetUnit(DIGUnit* pUnit)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetUnit\n");\r
+#endif\r
+
+  *pUnit = MainHeader.Unit;
+  return 0;
+}
+
+
+int DIGFile::GetOtherUnit(const char** pOtherUnit)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetOtherUnit\n");\r
+#endif\r
+
+  *pOtherUnit = MainHeader.OtherUnit.Get();
+  return 0;
+}
+
+
+int DIGFile::GetDimensions(const DIGDimensions** pDimensions)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetDimensions\n");\r
+#endif\r
+
+  *pDimensions = &(MainHeader.Dimensions);
+  return 0;
+}
+
+
+int DIGFile::GetSamplingX(const DIGSampling** pSampling)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetSamplingX\n");\r
+#endif\r
+
+  *pSampling = &(MainHeader.SamplingX);
+  return 0;
+}
+
+
+int DIGFile::GetSamplingY(const DIGSampling** pSampling)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetSamplingY\n");\r
+#endif\r
+
+  *pSampling = &(MainHeader.SamplingY);
+  return 0;
+}
+
+
+int DIGFile::GetSamplingZ(const DIGSampling** pSampling)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetSamplingZ\n");\r
+#endif\r
+
+  *pSampling = &(MainHeader.SamplingZ);
+  return 0;
+}
+
+
+int  DIGFile::GetComment(const char** pComment)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetComment\n");\r
+#endif\r
+
+  *pComment = MainHeader.Comment.Get();
+  return 0;
+}
+
+
+unsigned int DIGFile::ComputeArrayNoOfItems()
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::ComputeArrayNoOfItems\n");\r
+#endif\r
+
+  int Count = MainHeader.Channels * 
+              MainHeader.Dimensions.x *
+              MainHeader.Dimensions.y *
+              MainHeader.Dimensions.z;
+
+  switch(MainHeader.ValueType) {
+  case DIGValueType_REAL:
+    return Count;
+
+  case DIGValueType_COMPLEX:
+    return Count * 2;
+
+  default:
+    return 0; // error
+  }
+}
+
+
+int DIGFile::GetArrayNoOfItems(unsigned int* pArrayNoOfItems)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArrayNoOfItems\n");\r
+#endif\r
+
+  *pArrayNoOfItems = NoOfArrayItems;
+  return 0;
+}
+
+
+unsigned int DIGFile::ComputeArrayBufferSize()
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::ComputeArrayBufferSize\n");\r
+#endif\r
+
+  unsigned int Size = NoOfArrayItems;
+
+  switch(MainHeader.DataType) {
+
+  case DIGDataType_BOOL:
+  case DIGDataType_UCHAR:
+  case DIGDataType_CHAR:
+    return Size;
+
+  case DIGDataType_USHORT:
+  case DIGDataType_SHORT:
+    return Size * sizeof(short);
+
+  case DIGDataType_UINT:
+  case DIGDataType_INT:
+    return Size * sizeof(int);
+
+  case DIGDataType_FLOAT:
+    return Size * sizeof(float);
+
+  case DIGDataType_DOUBLE:
+    return Size * sizeof(double);
+
+  default:
+    return 0; // error
+  }
+}
+
+
+int DIGFile::GetArrayBufferSize(unsigned int* pArrayBufferSize)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArrayBufferSize\n");\r
+#endif\r
+
+  *pArrayBufferSize = ArrayBufferSize;
+  return 0;
+}
+
+
+#define DIG_FILE_BUFFER_SIZE 1024
+
+int DIGFile::Close()
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::Close\n");\r
+#endif\r
+
+  if(Dirty) {
+
+    // Append data to ouput file (Header is already there)
+
+    char DataBuffer[DIG_FILE_BUFFER_SIZE];
+    int  ReadByteCount;
+
+    if(WriteXMLHeader() != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: unable to write XML header\n");\r
+#endif
+      return -1;
+    }
+
+    // copy data from temp file to output file
+    rewind(TmpDataFile);
+    while((ReadByteCount = fread(DataBuffer, 1, DIG_FILE_BUFFER_SIZE, TmpDataFile)) > 0) {
+      if(ferror(TmpDataFile) != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: error reading temp file\n");\r
+#endif
+        return -2; // error reading temp file
+      }
+
+      if(fwrite(DataBuffer, 1, ReadByteCount, File) != (unsigned int) ReadByteCount) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: error writing  file\n");\r
+#endif
+        return -3; // error writing  file
+      }
+    }
+  }
+
+  ArraySets.Release();
+
+  if(File == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: attempt to close unopen file\n");\r
+#endif
+    return -2; // attempt to close unopen file
+  }
+
+  fclose(File);
+
+  File = NULL;
+
+  return 0;
+}
+
+
+int DIGFile::AppendArraySet(const char* pType, const char* pTitle, const char* pParameters, const char* pComments)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::AppendArraySet\n");\r
+#endif\r
+
+  // create new array set header
+  DIGFileArraySetHeader* SetHeader = new DIGFileArraySetHeader(pType, pTitle, pParameters, pComments);
+
+  // create new array set
+  CurrenArraySet = new ArraySet;
+
+  // attach array set header
+  CurrenArraySet->ArraySetHeader = SetHeader;
+  CurrenArraySet->FirstArrayOffset = NoOfArrays;
+
+  // append array set to array set list
+  ArraySets.Append(CurrenArraySet);
+
+  NoOfSets = ArraySets.getLength();
+
+  Dirty = true;
+
+  return 0;
+}
+
+
+int DIGFile::AppendArray(unsigned int pEnumNo, const char* pComment, const void* pBuffer)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::AppendArray\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1; // no array set selected
+  }
+
+  DIGFileArrayHeader* ArrayHeader = new DIGFileArrayHeader(pEnumNo, pComment);
+
+  // append to array list
+  CurrenArraySet->Append(ArrayHeader);
+
+  // append data to temp file
+  if(WriteArrayData(TmpDataFile, pBuffer) != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: writing data\n");\r
+#endif
+    return -2;
+  }
+
+  NoOfArrays++;
+
+  Dirty = true;
+
+  return 0;
+}
+
+
+// returns number of array sets in DIG file
+
+int DIGFile::GetNoOfArraySets(unsigned int* pNoOfArraySets)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetNoOfArraySets\n");\r
+#endif\r
+
+  *pNoOfArraySets = ArraySets.getLength();
+  return 0;
+}
+
+
+// returns number of arrays in current array set
+
+int DIGFile::GetNoOfArrays(unsigned int* pNoOfArrays)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetNoOfArrays\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1; // no array set selected
+  }
+  *pNoOfArrays = CurrenArraySet->getLength();
+  return 0;
+}
+
+// returns array set header of selected array set
+/*
+int DIGFile::GetArraySetHeader(DIGFileArraySetHeader** SetHeader)
+{
+  *SetHeader = CurrenArraySet->ArraySetHeader;
+  return 0;
+}
+*/
+
+// returns array header of selected array
+
+/*
+int DIGFile::GetArrayHeader(DIGFileArrayHeader** ArrayHeader)
+{
+  *ArrayHeader = CurrentArrayHeader;
+  return 0;
+}
+*/
+
+int DIGFile::GetArraySetType(const char** pType)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArraySetType\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1; // no array set selected
+  }
+
+  *pType = CurrenArraySet->ArraySetHeader->Type.Get();
+  return 0;
+}
+
+
+int DIGFile::GetArraySetTitle(const char** pTitle) 
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArraySetTitle\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1; // no array set selected
+  }
+
+  *pTitle = CurrenArraySet->ArraySetHeader->Title.Get();
+  return 0;
+}
+
+
+int DIGFile::GetArraySetParameters(const char** pParameters)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArraySetParameters\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1; // no array set selected
+  }
+
+  *pParameters = CurrenArraySet->ArraySetHeader->Parameters.Get();
+  return 0;
+}
+
+
+int DIGFile::GetArraySetComment(const char** pComment)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArraySetComment\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1; // no array set selected
+  }
+
+  *pComment = CurrenArraySet->ArraySetHeader->Comment.Get();
+  return 0;
+}
+
+
+int DIGFile::GetArrayEnumNo(unsigned int* pEnumNo)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArrayEnumNo\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1; // no array set selected
+  }
+
+  *pEnumNo = CurrentArrayHeader->EnumNo;
+  return 0;
+}
+
+
+int DIGFile::GetArrayComment(const char** pComment)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArrayComment\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1; // no array set selected
+  }
+
+  *pComment = CurrentArrayHeader->Comment.Get();
+  return 0;
+}
+
+
+// selects array set
+
+int DIGFile::SelectArraySet(unsigned int No)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::SelectArraySet\n");\r
+#endif\r
+
+  CurrentArrayHeader = NULL;
+  return ArraySets.getArraySet(&CurrenArraySet, No);
+}
+
+
+// selects array from current array set
+
+int DIGFile::SelectArray(unsigned int No)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::SelectArray\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1;
+  }
+
+  CurrenArrayIndex = CurrenArraySet->FirstArrayOffset + No;
+
+  return CurrenArraySet->getArrayHeader(&CurrentArrayHeader, No);
+}
+
+
+// returns data of selected array
+
+int DIGFile::GetArrayData(void* ArrayData)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArrayData\n");\r
+#endif\r
+
+  if(CurrenArraySet == NULL) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: no array set selected\n");\r
+#endif
+    return -1;
+  }
+
+  //type of CurrentArrayOffset changed from unsigned int to off_t
+  //to enable large file support (>2GB)
+  //jklukowska, 06/07/2007
+  off_t CurrenArrayOffset = static_cast <off_t>(XMLHeaderLength) + 
+                       static_cast <off_t> (CurrenArrayIndex) * static_cast <off_t>(ArrayBufferSize);
+  //unsigned int CurrenArrayOffset = XMLHeaderLength + CurrenArrayIndex * ArrayBufferSize;
+
+  //fseek() changed to fseeko() to enable large file support (>2GB)
+  //jklukowska, 06/07/2007
+  if(fseeko(File, CurrenArrayOffset, SEEK_SET) != 0) {
+  //if(fseek(File, CurrenArrayOffset, SEEK_SET) != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: seek error\n");\r
+#endif
+    return -2;
+  }
+
+  switch(MainHeader.DataFormat) {
+  case DIGDataFormat_ASCII:\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: Reading ASCII DIGFiles not supported\n");\r
+#endif
+    return -1; // Reading ASCII DIGFiles not supported
+    /*
+    switch(MainHeader.DataType) {
+
+    case DIGDataType_BOOL:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(((unsigned char*) ArrayData)[i] == 0) {
+          if(fprintf(f, " 0") < 0) {
+            return -1; // error
+          }
+        }
+        else {
+          if(fprintf(f, " 1") < 0) {
+            return -1; // error
+          }
+        }
+      }
+      break;
+
+    case DIGDataType_UCHAR:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %u", ((unsigned char*) ArrayData)[i]) < 0) {
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_CHAR:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %i", ((char*) ArrayData)[i]) < 0) {
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_USHORT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %u", ((unsigned short*) ArrayData)[i]) < 0) {
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_SHORT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %i", ((short*) ArrayData)[i]) < 0) {
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_UINT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %u", ((unsigned int*) ArrayData)[i]) < 0) {
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_INT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %i", ((int*) ArrayData)[i]) < 0) {
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_FLOAT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %f", ((double) ((float*) ArrayData)[i])) < 0) {
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_DOUBLE:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %f", ((double*) ArrayData)[i]) < 0) {
+          return -1; // error
+        }
+      }
+      break;
+
+    default:
+      return -2; // error
+    }
+    */
+    break;
+
+  case DIGDataFormat_BINARY:
+
+    // read data bytes from the file
+    if(fread(ArrayData, sizeof(char), ArrayBufferSize, File) != ArrayBufferSize) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: Reading binary data\n");\r
+#endif
+      return -3;
+    }
+
+    // if file endian different than current machine flip bytes
+    if(Endian != DIG_ENDIAN) { 
+
+      unsigned int i;
+
+      switch(MainHeader.DataType) {
+
+      // one byte types
+      case DIGDataType_BOOL:
+      case DIGDataType_UCHAR:
+      case DIGDataType_CHAR:
+        // bytes formats are in right order
+        break;
+
+      // 2 byte types
+      case DIGDataType_USHORT:
+      case DIGDataType_SHORT:
+        for(i = 0; i < NoOfArrayItems; i++) {
+          short val;
+
+          *((char*) &val)       = ((char*) ArrayData)[2 * i + 1];
+          *(((char*) &val) + 1) = ((char*) ArrayData)[2 * i];
+
+          ((short*) ArrayData)[i] = val;
+        }
+        break;
+
+      // four byte types
+      case DIGDataType_UINT:
+      case DIGDataType_INT:
+      case DIGDataType_FLOAT:
+        for(i = 0; i < NoOfArrayItems; i++) {
+          int val;
+
+          *((char*) &val)       = ((char*) ArrayData)[4 * i + 3];
+          *(((char*) &val) + 1) = ((char*) ArrayData)[4 * i + 2];
+          *(((char*) &val) + 2) = ((char*) ArrayData)[4 * i + 1];
+          *(((char*) &val) + 3) = ((char*) ArrayData)[4 * i];
+
+          ((int*) ArrayData)[i] = val;
+        }
+        break;
+
+      // eight byte types
+      case DIGDataType_DOUBLE:
+        for(i = 0; i < NoOfArrayItems; i++) {
+          double val;
+
+          *((char*) &val)       = ((char*) ArrayData)[8 * i + 7];
+          *(((char*) &val) + 1) = ((char*) ArrayData)[8 * i + 6];
+          *(((char*) &val) + 2) = ((char*) ArrayData)[8 * i + 5];
+          *(((char*) &val) + 3) = ((char*) ArrayData)[8 * i + 4];
+          *(((char*) &val) + 4) = ((char*) ArrayData)[8 * i + 3];
+          *(((char*) &val) + 5) = ((char*) ArrayData)[8 * i + 2];
+          *(((char*) &val) + 6) = ((char*) ArrayData)[8 * i + 1];
+          *(((char*) &val) + 7) = ((char*) ArrayData)[8 * i];
+
+          ((double*) ArrayData)[i] = val;
+        }
+        break;
+
+      default:\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: unknown data type\n");\r
+#endif
+        return -2; // error
+      }
+    }
+    break;
+
+  default:\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: unknown data format\n");\r
+#endif
+    return -3; // error
+  }
+
+  return 0;
+}
+
+
+int DIGFile::WriteArrayData(FILE* f, const void* ArrayData)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::WriteArrayData\n");\r
+#endif\r
+
+  unsigned int i;
+
+  switch(MainHeader.DataFormat) {
+  case DIGDataFormat_ASCII:
+    switch(MainHeader.DataType) {
+
+    case DIGDataType_BOOL:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(((unsigned char*) ArrayData)[i] == 0) {
+          if(fprintf(f, " 0") < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+            return -1; // error
+          }
+        }
+        else {
+          if(fprintf(f, " 1") < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+            return -1; // error
+          }
+        }
+      }
+      break;
+
+    case DIGDataType_UCHAR:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %u", ((unsigned char*) ArrayData)[i]) < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_CHAR:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %i", ((char*) ArrayData)[i]) < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_USHORT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %u", ((unsigned short*) ArrayData)[i]) < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_SHORT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %i", ((short*) ArrayData)[i]) < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_UINT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %u", ((unsigned int*) ArrayData)[i]) < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_INT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %i", ((int*) ArrayData)[i]) < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_FLOAT:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %f", ((double) ((float*) ArrayData)[i])) < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+          return -1; // error
+        }
+      }
+      break;
+
+    case DIGDataType_DOUBLE:
+      for(i = 0; i < NoOfArrayItems; i++) {
+        if(fprintf(f, " %f", ((double*) ArrayData)[i]) < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+            printf("** Error: writing data\n");\r
+#endif
+          return -1; // error
+        }
+      }
+      break;
+
+    default:\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+      printf("** Error: unknown data type\n");\r
+#endif
+      return -2; // error
+    }
+    break;
+
+  case DIGDataFormat_BINARY:
+    // write data in curent machine endian
+    if(fwrite(ArrayData, sizeof(char),ArrayBufferSize, f) != ArrayBufferSize) {
+      return -1; // error
+    }
+    /*
+    switch(MainHeader.DataType) {
+
+    case DIGDataType_BOOL:
+      if(fwrite(ArrayData, sizeof(char), NoOfArrayItems, f) != NoOfArrayItems) {
+        return -1; // error
+      }
+      break;
+
+    case DIGDataType_UCHAR:
+      if(fwrite(ArrayData, sizeof(unsigned char), NoOfArrayItems, f) != NoOfArrayItems) {
+        return -1; // error
+      }
+      break;
+
+    case DIGDataType_CHAR:
+      if(fwrite(ArrayData, sizeof(char), NoOfArrayItems, f) != NoOfArrayItems) {
+        return -1; // error
+      }
+      break;
+
+    case DIGDataType_USHORT:
+      if(fwrite(ArrayData, sizeof(unsigned short), NoOfArrayItems, f) != NoOfArrayItems) {
+        return -1; // error
+      }
+      break;
+
+    case DIGDataType_SHORT:
+      if(fwrite(ArrayData, sizeof(short), NoOfArrayItems, f) != NoOfArrayItems) {
+        return -1; // error
+      }
+      break;
+
+    case DIGDataType_UINT:
+      if(fwrite(ArrayData, sizeof(unsigned int), NoOfArrayItems, f) != NoOfArrayItems) {
+        return -1; // error
+      }
+      break;
+
+    case DIGDataType_INT:
+      if(fwrite(ArrayData, sizeof(int), NoOfArrayItems, f) != NoOfArrayItems) {
+        return -1; // error
+      }
+      break;
+
+    case DIGDataType_FLOAT:
+      if(fwrite(ArrayData, sizeof(float), NoOfArrayItems, f) != NoOfArrayItems) {
+        return -1; // error
+      }
+      break;
+
+    case DIGDataType_DOUBLE:
+      if(fwrite(ArrayData, sizeof(double), NoOfArrayItems, f) != NoOfArrayItems) {
+        return -1; // error
+      }
+      break;
+
+    default:
+      return -2; // error
+    }
+    */
+    break;
+
+
+  default:\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: unknown data format\n");\r
+#endif
+    return -3; // error
+  }
+
+  return 0;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+//
+// XML Parsing functions
+//
+//////////////////////////////////////////////////////////////////////////////////////
+
+int DIGFile::GetUintAttributeValue(DOMElement* Element, const XMLCh* AttributeName, unsigned int* value)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetUintAttributeValue\n");\r
+#endif\r
+
+  const XMLCh* AttributeValueXMLStr;
+  const char* AttributeValueStr;
+  AttributeValueXMLStr = Element->getAttribute(AttributeName);
+
+  AttributeValueStr = XMLString::transcode(AttributeValueXMLStr);
+
+  //delete AttributeValueXMLStr;
+
+  if((*value = atoi(AttributeValueStr)) < 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: invalid unsigned int value\n");\r
+#endif
+    return -1;
+  }
+
+  /* // direct conversion ?
+
+  bool XMLString::textToBin(const XMLCh *const toConvert, 
+                                         unsigned int & toFill ) [static] 
+  */
+
+  return 0; // succes
+}
+
+int DIGFile::GetIntAttributeValue(DOMElement* Element, const XMLCh* AttributeName, int* value)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetIntAttributeValue\n");\r
+#endif\r
+
+  const XMLCh* AttributeValueXMLStr;
+  const char* AttributeValueStr;
+  AttributeValueXMLStr = Element->getAttribute(AttributeName);
+
+  AttributeValueStr = XMLString::transcode(AttributeValueXMLStr);
+
+  //delete AttributeValueXMLStr;
+
+  *value = atoi(AttributeValueStr);
+
+  /* // direct conversion ?
+
+  bool XMLString::textToBin(const XMLCh *const toConvert, 
+                                         unsigned int & toFill ) [static] 
+  */
+
+  return 0; // succes
+}
+
+int DIGFile::GetDoubleAttributeValue(DOMElement* Element, const XMLCh* AttributeName, double* value)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetDoubleAttributeValue\n");\r
+#endif\r
+
+  const XMLCh* AttributeValueXMLStr;
+  const char* AttributeValueStr;
+  AttributeValueXMLStr = Element->getAttribute(AttributeName);
+
+  AttributeValueStr = XMLString::transcode(AttributeValueXMLStr);
+
+  //delete AttributeValueXMLStr;
+
+  *value = atof(AttributeValueStr);
+
+  /* // direct conversion ?
+
+  bool XMLString::textToBin(const XMLCh *const toConvert, 
+                                         unsigned int & toFill ) [static] 
+  */
+
+  return 0; // succes
+}
+
+
+int DIGFile::GetTxtAttributeValue(DOMElement* Element, const XMLCh* AttributeName, char** Text)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetTxtAttributeValue\n");\r
+#endif\r
+
+  const XMLCh* AttributeValueXMLStr;
+
+  AttributeValueXMLStr = Element->getAttribute(AttributeName);
+
+  *Text = XMLString::transcode(AttributeValueXMLStr);
+
+  return 0; // succes
+}
+
+
+int DIGFile::GetElementText(DOMElement* Element, char** Text)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetElementText\n");\r
+#endif\r
+
+  // get children 
+  DOMNodeList* Children = Element->getChildNodes();
+
+  // search for first instance of text node
+  for(unsigned int i = 0; i < Children->getLength(); i++) {
+    //const XMLCh* CXMLStr = Children->item(i)->getNodeName();
+    if(Children->item(i)->getNodeType() == DOMNode::TEXT_NODE) { 
+      const XMLCh* CXMLStr = Children->item(i)->getNodeValue(); 
+      *Text = XMLString::transcode(CXMLStr);
+      return 0;
+    }
+  }\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: Parsing - text node  not found\n");\r
+#endif
+  return -1; // text node  not found
+
+  /*
+  DOMNodeList* TextList = CommentsElement->getElementsByTagName(XMLString::transcode("text"));
+  DOMNode* TextNode = TextList->item(0);
+  const XMLCh* TextXMLStr = TextNode->getNodeValue();
+  char* c = XMLString::transcode(TextXMLStr);
+  */
+}
+
+
+int DIGFile::SymbolToCode(char* Symbol, const char** SymbolTable, int NumberOfSymbols)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::SymbolToCode\n");\r
+#endif\r
+
+       for (int num = 0; num < NumberOfSymbols; num++) {
+               if(strcmp(SymbolTable[num], Symbol) == 0) {
+                       return num;
+               }  
+       } \r
+  \r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: Parsing - symbol not found\n");\r
+#endif
+  return -1; // symbol not found
+}
+
+int DIGFile::InitParser2(const MemBufInputSource& memBufIS)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::InitParser2\n");\r
+#endif\r
+
+       // Initialization
+       try {
+               XMLPlatformUtils::Initialize();
+       }  // try
+       catch(const XMLException &toCatch) {
+               std::cerr << "Error during Xerces-c Initialization.\n"
+                       << "  Exception message:"
+                       << StrX(toCatch.getMessage()) << std::endl;
+               return 1;
+       }  // catch
+
+       //  Create our parser, then attach an error handler to the parser.
+       //  The parser will call back to methods of the ErrorHandler if it
+       //  discovers errors during the course of parsing the XML document.
+       parser = new XercesDOMParser;
+       parser->setValidationScheme(XercesDOMParser::Val_Auto);
+       parser->setDoNamespaces(false);
+       parser->setDoSchema(true);
+       parser->setValidationSchemaFullChecking(true);
+       parser->setCreateEntityReferenceNodes(true);
+       errReporter = new DOMTreeErrorReporter();
+       parser->setErrorHandler(errReporter);
+
+       //  Parse the XML file, catching any XML exceptions that might propogate
+       //  out of it.
+       try {
+               parser->parse(memBufIS);
+       }  // try
+       catch (const XMLException& e) {         
+               std::cerr << "An error occurred during parsing\n   Message: "
+                       << StrX(e.getMessage()) << std::endl;
+               return 2;
+       }  // catch
+       catch (const DOMException& e) {
+               std::cerr << "A DOM error occurred during parsing\n   DOMException code: "
+                       << e.code << std::endl;
+               return 2;
+       }  // catch
+       catch (...) {
+               std::cerr << "An error occurred during parsing\n " << std::endl;
+               return 1;
+       }  // catch
+
+       Document = ((AbstractDOMParser*)parser)->getDocument();
+
+  // get root
+       RootElement = Document->getDocumentElement();
+
+  // get main header node
+  DOMNodeList* MainHeaderList = RootElement->getElementsByTagName(XMLString::transcode("main_header"));
+  MainHeaderElement = (DOMElement*) MainHeaderList->item(0);
+
+  // get application header node
+  DOMNodeList* ApplicationHeaderList = RootElement->getElementsByTagName(XMLString::transcode("application_header"));
+  ApplicationHeaderElement = (DOMElement*) ApplicationHeaderList->item(0);
+
+  // get array set header nodes
+  ArraySetHeaderList = RootElement->getElementsByTagName(XMLString::transcode("array_set_header"));
+  DIGFileArraySetHeader* ArraySetHeader = new DIGFileArraySetHeader();
+
+  // select fisrt array set
+  GetArraySetHeader(ArraySetHeader, 0);
+
+  return 0;
+}
+
+
+int DIGFile::GetMainHeader(DIGFileMainHeader* MainHeader)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::InitParser2\n");\r
+#endif\r
+
+  char* AttrValStr;
+
+  // get header attributes
+
+  // get type
+  char* Type;
+  if(GetTxtAttributeValue(MainHeaderElement, TypeXMLStr, &Type) != 0) {
+    // error
+  }
+
+  // get title
+  char* Title;
+  if(GetTxtAttributeValue(MainHeaderElement, TitleXMLStr, &Title) != 0) {
+    // error
+  }
+
+  // get channels
+  int Channels;
+  if(GetIntAttributeValue(MainHeaderElement, ChannelsXMLStr, &Channels) != 0) {
+    // error
+  }
+
+  // get Number of Arrays
+  int NumberOfArrays;
+  if(GetIntAttributeValue(MainHeaderElement, NumberOfArraysXMLStr, &NumberOfArrays) != 0) {
+    // error
+  }
+
+  // get Number of Array Sets
+  int NumberOfSets;
+  if(GetIntAttributeValue(MainHeaderElement, NumberOfArraySetsXMLStr, &NumberOfSets) != 0) {
+    // error
+  }
+
+  // get Endian
+  if(GetTxtAttributeValue(MainHeaderElement, EndianXMLStr, &AttrValStr) != 0) {
+    // error
+  }
+  
+  if((Endian = (DIGEndian) SymbolToCode(AttrValStr, DIGEndianStr, DIGEndianSize)) < 0) {
+    // error
+  }
+  
+  // get Value Type
+  if(GetTxtAttributeValue(MainHeaderElement, ValueTypeXMLStr, &AttrValStr) != 0) {
+    // error
+  }
+
+
+  DIGValueType ValueType;
+  if((ValueType = (DIGValueType) SymbolToCode(AttrValStr, DIGValueTypeStr, DIGValueTypeSize)) < 0) {
+    // error
+  }
+
+  // get Data Type
+  if(GetTxtAttributeValue(MainHeaderElement, DataTypeXMLStr, &AttrValStr) != 0) {
+    // error
+  }
+
+  DIGDataType DataType;
+  if((DataType = (DIGDataType) SymbolToCode(AttrValStr, DIGDataTypeStr, DIGDataTypeSize)) < 0) {
+    // error
+  }
+
+  // get Data Format
+  if(GetTxtAttributeValue(MainHeaderElement, DataFormatXMLStr, &AttrValStr) != 0) {
+    // error
+  }
+
+  DIGDataFormat DataFormat;
+  if((DataFormat = (DIGDataFormat) SymbolToCode(AttrValStr, DIGDataFormatStr, DIGDataFormatSize)) < 0) {
+    // error
+  }
+
+  // get Grid Type
+  if(GetTxtAttributeValue(MainHeaderElement, GridTypeXMLStr, &AttrValStr) != 0) {
+    // error
+  }
+
+  DIGGrid Grid;
+  if((Grid = (DIGGrid) SymbolToCode(AttrValStr, DIGGridStr, DIGGridSize)) < 0) {
+    // error
+  }
+
+  // get Basis Function
+  if(GetTxtAttributeValue(MainHeaderElement, BasisFunctionXMLStr, &AttrValStr) != 0) {
+    // error
+  }
+
+  DIGBasis Basis;
+  if((Basis = (DIGBasis) SymbolToCode(AttrValStr, DIGBasisStr, DIGBasisSize)) < 0) {
+    // error
+  }
+
+  // get Unit
+  if(GetTxtAttributeValue(MainHeaderElement, UnitXMLStr, &AttrValStr) != 0) {
+    // error
+  }
+
+  DIGUnit Unit;
+  if((Unit = (DIGUnit) SymbolToCode(AttrValStr, DIGUnitStr, DIGUnitSize)) < 0) {
+    // error
+  }
+
+  // get Other Unit
+  char* OtherUnit;
+  if(GetTxtAttributeValue(MainHeaderElement, OtherUnitXMLStr, &OtherUnit) != 0) {
+    // error
+  }
+
+  // get other header values
+  // get comments
+  // get Comment Element
+
+  char* Comment = DIGEmptyStr;
+
+  DOMNodeList* CommentsList = MainHeaderElement->getElementsByTagName(CommentsXMLStr);
+
+  int tNumC = CommentsList->getLength();
+  if(tNumC > 0)        {
+
+    DOMElement* CommentsElement = (DOMElement*) CommentsList->item(0);
+
+    // get Comment Text
+    if(GetElementText(CommentsElement, &Comment) != 0) {
+      ;// allow empty comments
+    }
+  }
+
+  DIGDimensions Dimensions;
+
+  DOMNodeList* DimensionsList = MainHeaderElement->getElementsByTagName(DimensionsXMLStr);
+  DOMElement* DimensionsElement = (DOMElement*) DimensionsList->item(0);
+
+  // get Dimmension X
+  if(GetIntAttributeValue(DimensionsElement, DimmensionXXMLStr, &(Dimensions.x)) != 0) {
+    // error
+  }
+
+  // get Dimmension Y
+  if(GetIntAttributeValue(DimensionsElement, DimmensionYXMLStr, &(Dimensions.y)) != 0) {
+    // error
+  }
+
+  // get Dimmension Z
+  if(GetIntAttributeValue(DimensionsElement, DimmensionZXMLStr, &(Dimensions.z)) != 0) {
+    // error
+  }
+
+  // get Sampling Rate X
+  DIGSampling SamplingX;
+
+  DOMNodeList* SamplingXList = MainHeaderElement->getElementsByTagName(SamplingRateXXMLStr);
+  DOMElement* SamplingXElement = (DOMElement*) SamplingXList->item(0);
+
+
+  if(GetDoubleAttributeValue(SamplingXElement, DimmensionXXMLStr, &(SamplingX.x)) != 0) {
+    // error
+  }
+
+  if(GetDoubleAttributeValue(SamplingXElement, DimmensionYXMLStr, &(SamplingX.y)) != 0) {
+    // error
+  }
+
+  if(GetDoubleAttributeValue(SamplingXElement, DimmensionZXMLStr, &(SamplingX.z)) != 0) {
+    // error
+  }
+
+
+  // get Sampling Rate Y
+  DIGSampling SamplingY;
+
+  DOMNodeList* SamplingYList = MainHeaderElement->getElementsByTagName(SamplingRateYXMLStr);
+  DOMElement* SamplingYElement = (DOMElement*) SamplingYList->item(0);
+
+
+  if(GetDoubleAttributeValue(SamplingYElement, DimmensionXXMLStr, &(SamplingY.x)) != 0) {
+    // error
+  }
+
+  if(GetDoubleAttributeValue(SamplingYElement, DimmensionYXMLStr, &(SamplingY.y)) != 0) {
+    // error
+  }
+
+  if(GetDoubleAttributeValue(SamplingYElement, DimmensionZXMLStr, &(SamplingY.z)) != 0) {
+    // error
+  }
+
+  // get Sampling Rate Z
+  DIGSampling SamplingZ;
+
+  DOMNodeList* SamplingZList = MainHeaderElement->getElementsByTagName(SamplingRateZXMLStr);
+  DOMElement* SamplingZElement = (DOMElement*) SamplingZList->item(0);
+
+
+  if(GetDoubleAttributeValue(SamplingZElement, DimmensionXXMLStr, &(SamplingZ.x)) != 0) {
+    // error
+  }
+
+  if(GetDoubleAttributeValue(SamplingZElement, DimmensionYXMLStr, &(SamplingZ.y)) != 0) {
+    // error
+  }
+
+  if(GetDoubleAttributeValue(SamplingZElement, DimmensionZXMLStr, &(SamplingZ.z)) != 0) {
+    // error
+  }
+
+  NoOfArrays = NumberOfArrays;
+  NoOfSets = NumberOfSets;
+
+  MainHeader->Title.Set(Title);
+  MainHeader->Type.Set(Type);
+  MainHeader->Channels = Channels;
+  //MainHeader->Endian = Endian;
+  MainHeader->ValueType = ValueType;
+  MainHeader->DataType = DataType;
+  MainHeader->DataFormat = DataFormat;
+  MainHeader->Grid = Grid;
+  MainHeader->Basis = Basis;
+  MainHeader->Unit = Unit;
+  MainHeader->OtherUnit.Set(OtherUnit);
+  MainHeader->Comment.Set(Comment);
+  MainHeader->Dimensions = Dimensions;
+  MainHeader->SamplingX = SamplingX;
+  MainHeader->SamplingY = SamplingY;
+  MainHeader->SamplingZ = SamplingZ;
+  return 0;
+}
+
+
+int DIGFile::ParseApplicationHeader() {\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::ParseApplicationHeader\n");\r
+#endif
+  return 0;
+}
+
+
+int DIGFile::GetArraySetHeader(DIGFileArraySetHeader* ArraySetHeader, unsigned int index)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArraySetHeader\n");\r
+#endif\r
+
+  if(index > ArraySetHeaderList->getLength()) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: index out of range\n");\r
+#endif
+    // error index out of range
+  }
+
+  DOMElement* ArraySetHeaderElement = (DOMElement*) ArraySetHeaderList->item(index);
+
+  // get Array Set Header Attributes
+
+  // get type
+  char* Type;
+  if(GetTxtAttributeValue(ArraySetHeaderElement, TypeXMLStr, &Type) != 0) {
+    // error
+  }
+
+  // get title
+  char* Title;
+  if(GetTxtAttributeValue(ArraySetHeaderElement, TitleXMLStr, &Title) != 0) {
+    // error
+  }
+
+  // get Comment Element
+  char* Comment = DIGEmptyStr;
+
+  DOMNodeList* CommentsList = ArraySetHeaderElement->getElementsByTagName(CommentsXMLStr);
+
+  int tNumC = CommentsList->getLength();
+  if(tNumC > 0)        {
+
+    DOMElement* CommentsElement = (DOMElement*) CommentsList->item(0);
+
+    // get Comment Text
+    if(GetElementText(CommentsElement, &Comment) != 0) {
+      ;// allow empty comments
+    }
+  }
+
+  // get Parameters Element
+  DOMNodeList* ParametersList = ArraySetHeaderElement->getElementsByTagName(ParametersXMLStr);
+  DOMElement* ParametersElement = (DOMElement*) ParametersList->item(0);
+
+  // get Parameters Text
+  char* Parameters;
+  if(GetElementText(ParametersElement, &Parameters) != 0) {
+    // error
+    Parameters = DIGEmptyStr;
+  }
+
+  ArraySetHeader->Type.Set(Type);
+  ArraySetHeader->Title.Set(Title);
+  ArraySetHeader->Comment.Set(Comment);
+  ArraySetHeader->Parameters.Set(Parameters);
+
+  // load array list
+  ArrayHeaderList = ArraySetHeaderElement->getElementsByTagName(ArrayHeaderXMLStr);
+
+  return 0;
+}
+
+
+int DIGFile::GetArrayHeader(DIGFileArrayHeader* ArrayHeader, unsigned int index)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::GetArrayHeader\n");\r
+#endif\r
+
+  if(index > ArrayHeaderList->getLength()) {
+    // error index out of range
+  }
+
+  DOMElement* ArrayHeaderElement = (DOMElement*) ArrayHeaderList->item(index);
+
+  // get Array Header Attributes
+
+  // get Enumeration Number
+  int EnumNo;
+
+  if(GetIntAttributeValue(ArrayHeaderElement, EnumerationNumberXMLStr, &EnumNo) != 0) {
+    return -1; // error
+  }
+
+  // get Comment Element
+  char* Comment = DIGEmptyStr;
+
+  DOMNodeList* CommentsList = ArrayHeaderElement->getElementsByTagName(CommentsXMLStr);
+
+  int tNumC = CommentsList->getLength();
+  if(tNumC > 0)        {
+
+    DOMElement* CommentsElement = (DOMElement*) CommentsList->item(0);
+
+    // get Comment Text
+    if(GetElementText(CommentsElement, &Comment) != 0) {
+      ;// allow empty comments
+    }
+  }
+
+  ArrayHeader->EnumNo = EnumNo;
+  ArrayHeader->Comment.Set(Comment);
+
+  return 0;
+}
+
+
+int DIGFile::ResetParser()
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::ResetParser\n");\r
+#endif\r
+
+       //  Clean up the error handler. The parser does not adopt handlers
+       //  since they could be many objects or one object installed for multiple
+       //  handlers.
+       delete errReporter;
+
+       //  Delete the parser itself.  Must be done prior to calling Terminate, below.
+       delete parser;
+
+       // And call the termination method
+       XMLPlatformUtils::Terminate();
+
+       return 0; 
+}
+
+
+int DIGFile::ParseXML(const char* MemBuf)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::ParseXML\n");\r
+#endif\r
+
+  static const char*  gMemBufId = "XMLHeader";
+
+  MemBufInputSource* memBufIS = new MemBufInputSource
+  (
+    (const XMLByte*)MemBuf,
+    strlen(MemBuf),
+    gMemBufId,
+    false
+  );
+
+  // initialize parser and pharse root
+  if(InitParser2(*memBufIS) != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: initializing parser and gtting doument root\n");\r
+#endif\r
+    return -1; // error
+  }
+
+  // parse main header
+  if(GetMainHeader(&MainHeader)) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: parsing main header\n");\r
+#endif
+    return -1; // error
+  }
+
+  // parse application header
+  if(ParseApplicationHeader()) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: parsing application header\n");\r
+#endif
+    return -1; // error
+  }
+
+  // parse arrayset headers
+  unsigned int NumberOfArrays = 0;
+
+  for(unsigned int i = 0; i < ArraySetHeaderList->getLength(); i++) {
+
+    // create new array set
+    ArraySet* ASet = new ArraySet;
+    ASet->FirstArrayOffset = NumberOfArrays;
+
+    // create new array set header
+    ASet->ArraySetHeader = new DIGFileArraySetHeader;
+
+    // load it with data
+    if(GetArraySetHeader(ASet->ArraySetHeader, i) != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: parsing array set header\n");\r
+#endif
+      return -1; // error
+    }
+
+    // append arrays
+    for(unsigned int j = 0; j < ArrayHeaderList->getLength(); j++) {
+
+      // create new array header
+      DIGFileArrayHeader* ArrayHeader = new DIGFileArrayHeader;
+
+      // load it with data
+      if(GetArrayHeader(ArrayHeader, j) != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: parsing array header\n");\r
+#endif
+        return -1; //error
+      }
+
+      // append to array list
+      ASet->Append(ArrayHeader);
+
+      NumberOfArrays++;
+    }
+
+    // append array set to array set list
+    ArraySets.Append(ASet);
+  }
+
+  if(NumberOfArrays != NoOfArrays) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: invalid number of arrays\n");\r
+#endif
+    return -1; // error
+  }
+
+  ResetParser();
+   
+  return 0;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////
+//
+// XML writing functions
+//
+//////////////////////////////////////////////////////////////////////////////////////
+
+int DIGFile::WriteXMLHeader()
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::WriteXMLHeader\n");\r
+#endif\r
+
+  // create XML buffer
+  XMLFormatTarget* mymFormTarget = new MemBufFormatTarget(4*1023);
+
+
+  // create DOMDocument
+  CreateRootElement();
+
+  if(CreateMainHeader(&MainHeader) != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: creating main header\n");\r
+#endif
+    return -1;
+  }
+
+  if(CreateApplicationHeader() != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: creating application header\n");\r
+#endif
+    return -2;
+  }
+
+  // step through array sets
+  for(unsigned int i = 0; i < ArraySets.getLength(); i++) {
+
+    ArraySet* ASet;
+
+    // get array set from set list
+    if(ArraySets.getArraySet(&ASet, i) != 0) {\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 0\r
+    printf("** Error: creating array set header\n");\r
+#endif
+      return -3; // error
+    }
+
+    // write array set header
+    AppendArraySetHeader(ASet->ArraySetHeader); 
+
+    // step through arrays
+    for(unsigned int j = 0; j < ASet->getLength(); j++) {
+
+      DIGFileArrayHeader* ArrayHeader;
+
+      // get array header
+      ASet->getArrayHeader(&ArrayHeader, j);
+
+      // write array header
+      AppendArrayHeader(ArrayHeader);
+    }
+  }
+
+  //WriteSufix();
+
+  // serialize 
+  ///DOMPrintFilter   *myFilter = 0;
+
+  try {
+               // get a serializer, an instance of DOMWriter
+               XMLCh tempStr[100];
+               XMLString::transcode("LS", tempStr, 99);
+               DOMImplementation *impl          = DOMImplementationRegistry::getDOMImplementation(tempStr);
+               DOMWriter         *theSerializer = ((DOMImplementationLS*)impl)->createDOMWriter();
+
+               // set user specified end of line sequence and output encoding
+               //theSerializer->setNewLine(gMyEOLSequence);
+
+    theSerializer->setNewLine(XMLString::transcode("\x0A"));
+
+    static XMLCh* gOutputEncoding = 0;
+
+               theSerializer->setEncoding(gOutputEncoding);
+
+               // plug in user's own filter
+    /*
+               if(gUseFilter) {
+                       // even we say to show attribute, but the DOMWriter
+                       // will not show attribute nodes to the filter as
+                       // the specs explicitly says that DOMWriter shall
+                       // NOT show attributes to DOMWriterFilter.
+                       //
+                       // so DOMNodeFilter::SHOW_ATTRIBUTE has no effect.
+                       // same DOMNodeFilter::SHOW_DOCUMENT_TYPE, no effect.
+                       //
+                       myFilter = new DOMPrintFilter(DOMNodeFilter::SHOW_ELEMENT   |
+                                            DOMNodeFilter::SHOW_ATTRIBUTE |
+                                            DOMNodeFilter::SHOW_DOCUMENT_TYPE
+                                                                                       );
+                       theSerializer->setFilter(myFilter);
+               }
+    */
+
+               // plug in user's own error handler
+               DOMErrorHandler* myErrorHandler = new DOMPrintErrorHandler();
+               theSerializer->setErrorHandler(myErrorHandler);
+
+               // set feature if the serializer supports the feature/mode
+    
+    static bool gSplitCdataSections = true;
+
+               if(theSerializer->canSetFeature(XMLUni::fgDOMWRTSplitCdataSections, gSplitCdataSections))
+                       theSerializer->setFeature(XMLUni::fgDOMWRTSplitCdataSections, gSplitCdataSections);
+
+    static bool gDiscardDefaultContent = true;
+               
+               if(theSerializer->canSetFeature(XMLUni::fgDOMWRTDiscardDefaultContent, gDiscardDefaultContent))
+                       theSerializer->setFeature(XMLUni::fgDOMWRTDiscardDefaultContent, gDiscardDefaultContent);
+
+    static bool gFormatPrettyPrint = true;
+
+               if(theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, gFormatPrettyPrint))
+                       theSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, gFormatPrettyPrint);
+
+    //
+               // Plug in a format target to receive the resultant
+               // XML stream from the serializer.
+          //
+               // StdOutFormatTarget prints the resultant XML stream
+               // to stdout once it receives any thing from the serializer.
+               //
+               
+    //XMLFormatTarget* myFormTarget = new StdOutFormatTarget();
+               //theSerializer->writeNode(myFormTarget, *Document);
+
+               // get the DOM representation
+               //DOMNode                     *doc = parser->getDocument();
+
+               //
+               // do the serialization through DOMWriter::writeNode();
+               //
+               //theSerializer->writeNode(myFormTarget, *Document);
+
+               //XMLFormatTarget* myfFormTarget = new LocalFileFormatTarget("xxx");
+               //theSerializer->writeNode(myfFormTarget, *Document);
+
+    //((LocalFileFormatTarget*) myfFormTarget)->Target.setEscapeFlags();
+
+               theSerializer->writeNode(mymFormTarget, *Document);
+
+               delete theSerializer;
+
+    //
+               // Filter, formatTarget and error handler
+               // are NOT owned by the serializer.
+               //
+
+               delete myErrorHandler;
+
+    /*
+               if (gUseFilter)
+                       delete myFilter; 
+    */
+
+  }
+  catch(XMLException& e) {
+    std::cerr << "An error occurred during creation of output transcoder. Msg is:"
+        << std::endl
+        << StrX(e.getMessage()) << std::endl;
+    //retval = 4;
+  }
+
+  const XMLByte* XMLbuf = ((MemBufFormatTarget*) mymFormTarget)->getRawBuffer();
+
+  fprintf(File, "%s", XMLbuf);
+
+  delete mymFormTarget;
+
+  return 0;
+}
+
+
+// Create root element
+//void DIGFile::WritePrefix()
+void DIGFile::CreateRootElement()
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::CreateRootElement\n");\r
+#endif\r
+
+  Document = impl->createDocument(
+    0,            // root element namespace URI.
+    RootXMLStr,   // root element name
+    0             // document type object (DTD).
+  );                  
+
+  RootElement = Document->getDocumentElement();
+
+/*
+       fprintf(File, "<?xml version=\"1.0\"?>\n\n");
+       fprintf(File, "<DIG_DATA\n");
+       fprintf(File, " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema-instance\"\n");
+       fprintf(File, " xsd:noNamespcadSchemaLocation=\"%s DIGschema.xsd\"\n", SchemaName);
+       fprintf (File, ">\n");
+  */
+}
+
+
+// Create Main Header
+int DIGFile::CreateMainHeader(DIGFileMainHeader* header)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::CreateMainHeader\n");\r
+#endif\r
+
+  XMLCh* tmpXMLStr;
+
+  // create main header node
+  MainHeaderElement = Document->createElement(MainHeaderXMLStr);
+
+  // attributes
+
+  // define type
+  tmpXMLStr = XMLString::transcode(header->Type.Get());
+  MainHeaderElement->setAttribute(TypeXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define title
+  tmpXMLStr = XMLString::transcode(header->Title.Get());
+  MainHeaderElement->setAttribute(TitleXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define channels
+  //tmpXMLStr = new XMLCh[5];
+  //XMLString::binToText(header->Channels, tmpXMLStr, 4, 10);
+  unsigned int maxchars = 1;
+  if (header->Channels != 0)
+    maxchars += static_cast<unsigned int>(log10(static_cast<double>(header->Channels)));
+  tmpXMLStr = new XMLCh[maxchars+1];
+  XMLString::binToText(header->Channels, tmpXMLStr, maxchars, 10);
+  MainHeaderElement->setAttribute(ChannelsXMLStr, tmpXMLStr);
+  delete tmpXMLStr;
+
+  // define number of arrays
+  //tmpXMLStr = new XMLCh[5];
+  //XMLString::binToText(NoOfArrays, tmpXMLStr, 4, 10);
+  maxchars = 1;
+  if (NoOfArrays != 0)
+    maxchars += static_cast<unsigned int>(log10(static_cast<double>(NoOfArrays)));
+  tmpXMLStr = new XMLCh[maxchars+1];
+  XMLString::binToText(NoOfArrays, tmpXMLStr, maxchars, 10);
+  MainHeaderElement->setAttribute(NumberOfArraysXMLStr, tmpXMLStr);
+  delete tmpXMLStr;
+
+  // define number of array sets
+  //tmpXMLStr = new XMLCh[5];
+  //XMLString::binToText(NoOfSets, tmpXMLStr, 4, 10);
+  maxchars = 1;
+  if (NoOfSets != 0)
+    maxchars += static_cast<unsigned int>(log10(static_cast<double>(NoOfSets)));
+  tmpXMLStr = new XMLCh[maxchars+1];
+  XMLString::binToText(NoOfSets, tmpXMLStr, maxchars, 10);
+  MainHeaderElement->setAttribute(NumberOfArraySetsXMLStr, tmpXMLStr);
+  delete tmpXMLStr;
+
+  // define endian according to curent machine type
+  tmpXMLStr = XMLString::transcode(DIGEndianStr[static_cast<int>(DIG_ENDIAN)]);
+  MainHeaderElement->setAttribute(EndianXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define value type
+  tmpXMLStr = XMLString::transcode(DIGValueTypeStr[header->ValueType]);
+  MainHeaderElement->setAttribute(ValueTypeXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define data type
+  tmpXMLStr = XMLString::transcode(DIGDataTypeStr[header->DataType]);
+  MainHeaderElement->setAttribute(DataTypeXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define data format
+  tmpXMLStr = XMLString::transcode(DIGDataFormatStr[header->DataFormat]);
+  MainHeaderElement->setAttribute(DataFormatXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define grid type
+  tmpXMLStr = XMLString::transcode(DIGGridStr[header->Grid]);
+  MainHeaderElement->setAttribute(GridTypeXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define basis function
+  tmpXMLStr = XMLString::transcode(DIGBasisStr[header->Basis]);
+  MainHeaderElement->setAttribute(BasisFunctionXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define unit
+  tmpXMLStr = XMLString::transcode(DIGUnitStr[header->Unit]);
+  MainHeaderElement->setAttribute(UnitXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define other unit
+       if(header->OtherUnit.Get() != NULL) {
+    MainHeaderElement->setAttribute(OtherUnitXMLStr, XMLString::transcode(header->OtherUnit.Get()));
+       }
+
+  // children
+
+
+  // define comments
+       if(header->Comment.Get() != NULL) {
+    
+    // create comments node
+    DOMElement* Comments = Document->createElement(CommentsXMLStr);
+
+    // create comments text node
+    tmpXMLStr = XMLString::transcode(header->Comment.Get());
+    DOMText* CommentText = Document->createTextNode(tmpXMLStr);
+    //delete tmpXMLStr;
+    Comments->appendChild(CommentText);
+
+    // append comments to main header
+    MainHeaderElement->appendChild(Comments);
+  }
+
+
+  // create dimensions node
+  DOMElement* Dimensions = Document->createElement(DimensionsXMLStr);
+
+       const DIGDimensions* dim = &(header->Dimensions);
+
+  // set dimension attributes
+  //tmpXMLStr = new XMLCh[5];
+  //XMLString::binToText(dim->x, tmpXMLStr, 4, 10);
+  maxchars = 1;
+  if(dim->x != 0) {
+    maxchars += static_cast<unsigned int>(log10(static_cast<double>(dim->x)));\r
+  }
+  tmpXMLStr = new XMLCh[maxchars+1];
+  XMLString::binToText(dim->x, tmpXMLStr, maxchars, 10);
+  Dimensions->setAttribute(DimmensionXXMLStr, tmpXMLStr);
+  delete tmpXMLStr;
+
+  //XMLString::binToText(dim->y, tmpXMLStr, 4, 10);
+  maxchars = 1;
+  if(dim->y != 0) {
+    maxchars += static_cast<unsigned int>(log10(static_cast<double>(dim->y)));\r
+  }
+  tmpXMLStr = new XMLCh[maxchars+1];
+  XMLString::binToText(dim->y, tmpXMLStr, maxchars, 10);
+  Dimensions->setAttribute(DimmensionYXMLStr, tmpXMLStr);
+  delete tmpXMLStr;
+
+  //XMLString::binToText(dim->z, tmpXMLStr, 4, 10);
+  maxchars = 1;
+  if(dim->z != 0) {
+    maxchars += static_cast<unsigned int>(log10(static_cast<double>(dim->z)));\r
+  }
+  tmpXMLStr = new XMLCh[maxchars+1];
+  XMLString::binToText(dim->z, tmpXMLStr, maxchars, 10);
+  Dimensions->setAttribute(DimmensionZXMLStr, tmpXMLStr);
+  delete tmpXMLStr;
+
+  // append dimensions to main header
+  MainHeaderElement->appendChild(Dimensions);
+
+
+  // create sampling rate X node
+  DOMElement* SamplingRateX = Document->createElement(SamplingRateXXMLStr);
+
+       DIGSampling* sampX = &(header->SamplingX);
+
+  // set sampling rate X attributes
+  char valStr[20];
+
+  sprintf(valStr, "%f", sampX->x);
+  tmpXMLStr = XMLString::transcode(valStr);
+  SamplingRateX->setAttribute(DimmensionXXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  sprintf(valStr, "%f", sampX->y);
+  tmpXMLStr = XMLString::transcode(valStr);
+  SamplingRateX->setAttribute(DimmensionYXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  sprintf(valStr, "%f", sampX->z);
+  tmpXMLStr = XMLString::transcode(valStr);
+  SamplingRateX->setAttribute(DimmensionZXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // append sampling rate X to main header
+  MainHeaderElement->appendChild(SamplingRateX);
+
+
+  // create sampling rate Y node
+  DOMElement* SamplingRateY = Document->createElement(SamplingRateYXMLStr);
+
+       DIGSampling* sampY = &(header->SamplingY);
+
+  // set sampling rate Y attributes
+  sprintf(valStr, "%f", sampY->x);
+  tmpXMLStr = XMLString::transcode(valStr);
+  SamplingRateY->setAttribute(DimmensionXXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  sprintf(valStr, "%f", sampY->y);
+  tmpXMLStr = XMLString::transcode(valStr);
+  SamplingRateY->setAttribute(DimmensionYXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  sprintf(valStr, "%f", sampY->z);
+  tmpXMLStr = XMLString::transcode(valStr);
+  SamplingRateY->setAttribute(DimmensionZXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // append sampling rate Y to main header
+  MainHeaderElement->appendChild(SamplingRateY);
+
+
+  // create sampling rate Z node
+  DOMElement* SamplingRateZ = Document->createElement(SamplingRateZXMLStr);
+
+       DIGSampling* sampZ = &(header->SamplingZ);
+
+  // set sampling rate Z attributes
+  sprintf(valStr, "%f", sampZ->x);
+  tmpXMLStr = XMLString::transcode(valStr);
+  SamplingRateZ->setAttribute(DimmensionXXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  sprintf(valStr, "%f", sampZ->y);
+  tmpXMLStr = XMLString::transcode(valStr);
+  SamplingRateZ->setAttribute(DimmensionYXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  sprintf(valStr, "%f", sampZ->z);
+  tmpXMLStr = XMLString::transcode(valStr);
+  SamplingRateZ->setAttribute(DimmensionZXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // append sampling rate Z to main header
+  MainHeaderElement->appendChild(SamplingRateZ);
+
+
+  // append main header to document root
+  RootElement->appendChild(MainHeaderElement);
+
+  /*
+  if(MainHeaderWritten) {
+    return -1; // main header already in file
+  }
+
+       fprintf(File, "  <main_header\n");
+       fprintf(File, "    type=\"%s\"\n", header->GetType());
+       fprintf(File, "    title=\"%s\"\n", header->GetTitle());
+       fprintf(File, "    channels=\"%d\"\n", header->GetChannels());
+       fprintf(File, "    number_of_arrays=\"%d\"\n", header->GetNumberOfArrays());
+       fprintf(File, "    number_of_array_sets=\"%d\"\n", header->GetNumberOfSets());
+       fprintf(File, "    endian=\"%s\"\n", header->GetEndianStr());
+       fprintf(File, "    value_type=\"%s\"\n", header->GetValueTypeStr());
+       fprintf(File, "    data_type=\"%s\"\n", header->GetDataTypeStr());
+       fprintf(File, "    data_format=\"%s\"\n", header->GetDataFormatStr());
+       fprintf(File, "    grid_type=\"%s\"\n", header->GetGridStr());
+       fprintf(File, "    basis_function=\"%s\"\n", header->GetBasisStr());
+       fprintf(File, "    unit=\"%s\"\n", header->GetUnitStr());
+
+
+       if(header->GetOtherUnit() != NULL) {
+               fprintf(File, "    other_unit=\"%s\"\n", header->GetOtherUnit());       
+       }
+
+       fprintf(File, "  >\n"); 
+
+       if(header->GetComment() != NULL){
+               fprintf (File, "    <comments>\n");
+               fprintf (File, "    %s\n", header->GetComment());
+               fprintf (File, "    </comments>\n");
+  }
+
+       DIGDimensions *dim = header->GetDimensions();
+       fprintf(File, "    <dimensions x=\"%d\" y=\"%d\" z=\"%d\"/>\n", dim->x, dim->y, dim->z);
+
+       DIGSampling *sampX = header->GetSamplingX();
+       fprintf(File, "    <sampling_rate_x x=\"%6.3f\" y=\"%6.3f\" z=\"%6.3f\"/>\n", sampX->x, sampX->y, sampX->z);
+
+       DIGSampling *sampY = header->GetSamplingY();
+       fprintf(File, "    <sampling_rate_y x=\"%6.3f\" y=\"%6.3f\" z=\"%6.3f\"/>\n", sampY->x, sampY->y, sampY->z);
+
+       DIGSampling *sampZ = header->GetSamplingZ();
+       fprintf(File, "    <sampling_rate_z x=\"%6.3f\" y=\"%6.3f\" z=\"%6.3f\"/>\n", sampZ->x, sampZ->y, sampZ->z);
+
+       fprintf(File, "  </main_header>\n\n");
+       //fprintf(File, "  <!-- origin is %d %d %d -->\n", (dim->x-1)/2, (dim->y-1)/2, (dim->z-1)/2);
+       
+
+  MainHeaderWritten = true;
+  */
+       return 0;
+}
+
+int DIGFile::CreateApplicationHeader()
+{\r
+\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::CreateApplicationHeader\n");\r
+#endif\r
+
+       return 0;
+}
+
+
+
+int DIGFile::AppendArraySetHeader(DIGFileArraySetHeader* SetHeader)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::AppendArraySetHeader\n");\r
+#endif\r
+
+  XMLCh* tmpXMLStr;
+
+  // create array set header node
+  ArraySetHeaderElement = Document->createElement(ArraySetHeaderXMLStr);
+
+  // attributes
+
+  // define type
+  tmpXMLStr = XMLString::transcode(SetHeader->Type.Get());
+  ArraySetHeaderElement->setAttribute(TypeXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+  // define title
+  tmpXMLStr = XMLString::transcode(SetHeader->Title.Get());
+  ArraySetHeaderElement->setAttribute(TitleXMLStr, tmpXMLStr);
+  //delete tmpXMLStr;
+
+
+  // children
+
+
+  // define comments
+  const char* Com = SetHeader->Comment.Get();
+
+  if(Com != NULL) {
+    
+    // create comments node
+    DOMElement* Comments = Document->createElement(CommentsXMLStr);
+
+    // create comments text node
+    tmpXMLStr = XMLString::transcode(Com);
+    DOMText* CommentText = Document->createTextNode(tmpXMLStr);
+    //delete tmpXMLStr;
+    Comments->appendChild(CommentText);
+
+    // append comments to array set header
+    ArraySetHeaderElement->appendChild(Comments);
+  }
+
+  // create parameters node
+  DOMElement* Parameter = Document->createElement(ParametersXMLStr);
+
+  // create parameters text node
+  tmpXMLStr = XMLString::transcode(SetHeader->Parameters.Get());
+  DOMText* ParameterText = Document->createTextNode(tmpXMLStr);
+  //delete tmpXMLStr;
+  Parameter->appendChild(ParameterText);
+
+  // append parameters to array set header
+  ArraySetHeaderElement->appendChild(Parameter);
+
+
+  // append array set header to main header
+  RootElement->appendChild(ArraySetHeaderElement);
+
+  /*
+  // check if main header written
+  if(!MainHeaderWritten) {
+    return -1; // error: no main header in file
+  }
+
+  // close previous array set
+  if(ArraySetOpen) {
+    fprintf(File, "  </array_set_header>\n\n");
+  }
+  else {
+    ArraySetOpen = true;
+  }
+//  ArrayCounter = 0;
+
+       fprintf(File, "\n  <array_set_header\n");
+       fprintf(File, "    type=\"%s\"\n", SetHeader->GetType());
+       fprintf(File, "    title=\"%s\"\n", SetHeader->GetTitle());
+       fprintf(File, "  >\n");
+
+  char* Comments = SetHeader->GetComments();
+
+  if(Comments != NULL) {
+               fprintf(File, "    <comments>\n");
+               fprintf(File, "      %s\n", Comments);
+               fprintf(File, "    </comments>\n");
+       }
+  
+       fprintf(File, "    <parameters>\n");
+       fprintf(File, "      %s\n", SetHeader->GetParameters());
+       fprintf(File, "    </parameters>\n");
+*/
+
+       return 0;
+}
+
+
+
+int DIGFile::AppendArrayHeader(DIGFileArrayHeader* ArrayHeader)
+{\r
+#if DIGFILE_DEBUG_LEVEL > 2\r
+  fprintf(stderr, "DIGFile::AppendArrayHeader\n");\r
+#endif\r
+
+  XMLCh* tmpXMLStr;
+
+  // create array set header node
+  ArrayHeaderElement = Document->createElement(ArrayHeaderXMLStr);
+
+  // attributes
+
+  // define type
+  //tmpXMLStr = new XMLCh[5];
+  //XMLString::binToText(ArrayHeader->EnumNo, tmpXMLStr, 4, 10);
+  unsigned int maxchars = 1;
+  if(ArrayHeader->EnumNo != 0) {
+    maxchars += static_cast<unsigned int>(log10(static_cast<double>(ArrayHeader->EnumNo)));\r
+  }
+  tmpXMLStr = new XMLCh[maxchars+1];
+  XMLString::binToText(ArrayHeader->EnumNo, tmpXMLStr, maxchars, 10);
+  ArrayHeaderElement->setAttribute(EnumerationNumberXMLStr, tmpXMLStr);
+  delete tmpXMLStr;
+
+
+  // children
+
+
+  // define comments
+  const char* Com = ArrayHeader->Comment.Get();
+
+  if(Com != NULL) {
+    
+    // create comments node
+    DOMElement* Comments = Document->createElement(CommentsXMLStr);
+
+    // create comments text node
+    tmpXMLStr = XMLString::transcode(Com);
+    DOMText* CommentText = Document->createTextNode(tmpXMLStr);
+    //delete tmpXMLStr;
+    Comments->appendChild(CommentText);
+
+    // append comments to array header
+    ArrayHeaderElement->appendChild(Comments);
+  }
+
+
+  // append array header to active array set header
+  ArraySetHeaderElement->appendChild(ArrayHeaderElement);
+
+  /*
+  fprintf(File, "\n    <array_header\n");
+
+       //fprintf(File, "      enumeration_number=\"%d\">\n", array_enumeration[sets*size+arrays]);
+  //fprintf(File, "      enumeration_number=\"%d\"\n", ArrayCounter);
+  fprintf(File, "      enumeration_number=\"%d\"\n", ArrayHeader->GetEnumeration());
+  fprintf(File, "    >\n");
+
+  
+  char* comment = ArrayHeader->GetComment();
+
+  if(comment != NULL) {
+               fprintf(File, "      <comments>\n");
+               fprintf(File, "        %s\n", comment);
+    fprintf(File, "      </comments>\n");
+       }
+
+       fprintf(File, "    </array_header>\n");
+*/
+       return 0;
+}
diff --git a/src/DIGFile/DOMTreeErrorReporter.cpp b/src/DIGFile/DOMTreeErrorReporter.cpp
new file mode 100644 (file)
index 0000000..738149f
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written
+ *    permission, please contact apache\@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com .  For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/*
+ * DOMTreeErrorReporter.cpp,v 1.3 2005/07/27 16:39:24 jdubowy Exp
+ */
+
+// ---------------------------------------------------------------------------
+//  Includes
+// ---------------------------------------------------------------------------
+#include <xercesc/sax/SAXParseException.hpp>
+//#include "DOMTreeErrorReporter.h"
+#include <DIGFile/DOMTreeErrorReporter.h>
+#include <iostream>
+#include <cstdlib>
+#include <cstring>
+
+
+void DOMTreeErrorReporter::warning(const SAXParseException&)
+{
+    //
+    // Ignore all warnings.
+    //
+}
+
+void DOMTreeErrorReporter::error(const SAXParseException& toCatch)
+{
+    fSawErrors = true;
+    std::cerr << "Error at file \"" << StrX(toCatch.getSystemId())
+                << "\", line " << toCatch.getLineNumber()
+                << ", column " << toCatch.getColumnNumber()
+         << "\n   Message: " << StrX(toCatch.getMessage()) << std::endl;
+}
+
+void DOMTreeErrorReporter::fatalError(const SAXParseException& toCatch)
+{
+    fSawErrors = true;
+    std::cerr << "Fatal Error at file \"" << StrX(toCatch.getSystemId())
+                << "\", line " << toCatch.getLineNumber()
+                << ", column " << toCatch.getColumnNumber()
+         << "\n   Message: " << StrX(toCatch.getMessage()) << std::endl;
+}
+
+void DOMTreeErrorReporter::resetErrors()
+{
+    fSawErrors = false;
+}
+
+
diff --git a/src/DIGFile/Makefile b/src/DIGFile/Makefile
new file mode 100755 (executable)
index 0000000..64d14e9
--- /dev/null
@@ -0,0 +1,54 @@
+# Makefile to build an instance of snark14
+
+ROOTDIR    = ../..
+XERCES     = /usr/local/snark14
+
+CC         = gcc
+CXX        = g++
+LD         = g++
+
+LIBDIR    = $(ROOTDIR)/lib
+
+CXXFLAGS  = -O4 -fPIC -DLINUX -D_REENTRANT -w -Wunused-parameter
+
+LDFLAGS   = 
+
+SRC_CXX    = DIGEndian.cpp \
+             DIGFile.cpp \
+             DOMTreeErrorReporter.cpp
+
+OBJ_CXX    = DIGEndian.o \
+             DIGFile.o \
+             DOMTreeErrorReporter.o
+
+INCLUDES   = -I/usr/include -I./include -I$(XERCES)/include \
+             -I$(ROOTDIR)/include/DIGFile -I$(ROOTDIR)/include/DIGFileSnark \
+             -I$(ROOTDIR)/include/DIGRand
+
+LIBPATH   = -L$(PREFIX)/lib -L$(XERCES)/lib
+LIBS      = $(LIBPATH) -lm -lxerces-c -lxerces-depdom
+
+TARGET    = $(LIBDIR)/libDIGFile.so
+
+.PHONY: all
+
+all: $(LIBDIR) $(TARGET)
+
+$(TARGET): $(OBJ_CXX)
+       $(LD) --shared $(LIBS) $(LDFLAGS) -o $(TARGET) $(OBJ_CXX)
+
+DIGFile.o : DIGFile.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -o $@ $<
+
+DIGEndian.o : DIGEndian.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -o $@ $<
+
+DOMTreeErrorReporter.o : DOMTreeErrorReporter.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -o $@ $<
+
+$(LIBDIR) :
+       @mkdir -p $(LIBDIR)
+
+clean:
+       @rm -rf $(OBJ_CXX) $(TARGET)
+
diff --git a/src/DIGFileSnark/DIGFileSnarkProj.cpp b/src/DIGFileSnark/DIGFileSnarkProj.cpp
new file mode 100644 (file)
index 0000000..be256a1
--- /dev/null
@@ -0,0 +1,1800 @@
+#include <cstdio>
+#include <string>
+
+//#include "DIGFileSnarkProj.h"
+#include <DIGFileSnark/DIGFileSnarkProj.h>
+\r
+#define DIGFILESNARKPROJ_DEBUG_LEVEL 0\r
+
+static char DIGFileSnarkPrjEmptyStr[1] = "";
+
+// Geometry
+
+// divergent
+ProjGeometry::ProjGeometry(double pRadius, double pSrcDetDistance, DetectorTypeEnum pDetectorType)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  printf("ProjGeometry::ProjGeometry\n");\r
+#endif\r
+
+       Radius = pRadius;
+       SrcDetDistance = pSrcDetDistance;
+       DetectorType = pDetectorType;
+       GeometryType = GT_DIVERGENT;
+}
+
+// parallel
+ProjGeometry::ProjGeometry(DetectorTypeEnum pDetectorType, ProjTypeEnum pProjType)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  printf("ProjGeometry::ProjGeometry\n");\r
+#endif\r
+
+       DetectorType = pDetectorType;
+       ProjType = pProjType;
+       GeometryType = GT_PARALLEL;
+}
+
+
+// Energy Spectrum
+
+ProjSpectrum::ProjSpectrum(unsigned int eNum)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  printf("ProjSpectrum::ProjSpectrum\n");\r
+#endif\r
+
+       NumberOfEnergies = eNum;
+       energy = new int[eNum];
+       ratio = new double[eNum];
+  background = new double[eNum];
+}
+
+
+int ProjSpectrum::SetEnergy(int i, int e, double r, double bg)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  printf("ProjSpectrum::SetEnergy\n");\r
+#endif\r
+
+  energy[i] = e;
+  ratio[i] = r;
+  background[i] = bg;
+  return 0;
+}
+
+/*
+int PrjSpectrum_class::SetSpectrum(int* e, double* r, double* bg)
+{
+  for(unsigned int i = 0; i < NumberOfEnergies; i++) {
+    energy[i] = e[i];
+    ratio[i] = r[i];
+    background[i] = bg[i];
+  }
+
+  return 0;
+}
+
+// Energy Spectrum
+
+int PrjSpectrum_class::GetNumberOfEnergies(unsigned int* NOE)
+{
+  *NOE = NumberOfEnergies;
+
+       return 0;
+}
+
+
+int PrjSpectrum_class::GetEnergy(int index, int* e, double* r, double* bg)
+{
+  *e = energy[index];
+       *r = ratio[index];
+       *bg = background[index];
+       
+       return 0;
+}
+*/
+
+// Noise
+
+ProjNoise::ProjNoise()
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  printf("ProjNoise::ProjNoise\n");\r
+#endif\r
+
+       IsQuan = IsScat = IsAdd = IsMult = false;
+};
+
+// Quantum
+
+void ProjNoise::SetQuantum(double pMean, double pCalibration, int pGantry)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  printf("ProjNoise::SetQuantum\n");\r
+#endif\r
+
+       IsQuan = true;
+
+       QuantumMean = pMean;
+       QuantumCalibration = pCalibration;
+       QuantumGantry = pGantry;
+}
+
+
+// Scatter
+
+void ProjNoise::SetScatter(double pPeak, double pWidth)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  printf("ProjNoise::SetScatter\n");\r
+#endif\r
+
+       IsScat = true;
+
+       ScatterPeak = pPeak;
+       ScatterWidth = pWidth;
+}
+
+
+// Additive
+
+void ProjNoise::SetAdditive(double pMean, double pStdDev)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  printf("ProjNoise::SetAdditive\n");\r
+#endif\r
+
+       IsAdd = true;
+
+       AdditiveMean = pMean;
+       AdditiveStdDev = pStdDev;
+}
+
+
+// Multiplicative
+
+void ProjNoise::SetMultiplicative(double pMean, double pStdDev)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  printf("ProjNoise::SetMultiplicative\n");\r
+#endif\r
+
+       IsMult = true;
+
+       MultiplicativeMean = pMean;
+       MultiplicativeStdDev = pStdDev;
+}
+
+
+// Noise
+
+// Quantum
+/*
+int PrjNoise_class::GetQuantum(double& m, double& cm, double& g)
+{
+  if(!IsQuan) {
+    return -1;
+  }
+
+       m = Quantum_Mean;
+       cm = Quantum_Calibration;
+       g = Quantum_Gantry;
+
+  return 0;
+}
+
+
+// Scatter
+
+int PrjNoise_class::GetScatter(double& p, double& w)
+{
+  if(!IsScat) {
+    return -1;
+  }
+
+       p = Scatter_Peak;
+       w = Scatter_Width;
+
+  return 0;
+}
+
+
+// Additive
+
+int PrjNoise_class::GetAdditive(double& m, double& sd)
+{
+  if(!IsAdd) {
+    return -1;
+  }
+
+       m = Additive_Mean;
+       sd = Additive_Std_Dev;
+
+  return 0;
+}
+
+
+// Multiplicative
+
+int PrjNoise_class::GetMultiplicative(double& m, double& sd)
+{
+  if(!IsMult) {
+    return -1;
+  }
+
+       m = Multiplicative_Mean;
+       sd = Multiplicative_Std_Dev;
+
+  return 0;
+}
+*/
+
+const char* DIGFileSnarkProj::TypeStr = "SNARK05 prjfil";
+const char* DIGFileSnarkProj::SchemaStr = "DIGFileSnarkProj.xsd";
+
+bool DIGFileSnarkProj::XMLStringsInitialized = false;
+
+const XMLCh* DIGFileSnarkProj::AppHeaderXMLStr;
+const XMLCh* DIGFileSnarkProj::GeomHeaderXMLStr;
+const XMLCh* DIGFileSnarkProj::DivergentXMLStr;
+const XMLCh* DIGFileSnarkProj::RadiusXMLStr;
+const XMLCh* DIGFileSnarkProj::SourceDetXMLStr;
+const XMLCh* DIGFileSnarkProj::DetTypeXMLStr;
+const XMLCh* DIGFileSnarkProj::ParallelXMLStr;
+const XMLCh* DIGFileSnarkProj::ProjTypeXMLStr;
+const XMLCh* DIGFileSnarkProj::NoiseHeaderXMLStr;
+const XMLCh* DIGFileSnarkProj::QuantumXMLStr;
+const XMLCh* DIGFileSnarkProj::MeanXMLStr;
+const XMLCh* DIGFileSnarkProj::CalibMeasXMLStr;
+const XMLCh* DIGFileSnarkProj::GantryXMLStr;
+const XMLCh* DIGFileSnarkProj::ScatterXMLStr;
+const XMLCh* DIGFileSnarkProj::PeakXMLStr;
+const XMLCh* DIGFileSnarkProj::WidthXMLStr;
+const XMLCh* DIGFileSnarkProj::AdditiveXMLStr;
+const XMLCh* DIGFileSnarkProj::StdDevXMLStr;
+const XMLCh* DIGFileSnarkProj::MultipXMLStr;
+const XMLCh* DIGFileSnarkProj::SpectrumHeaderXMLStr;
+const XMLCh* DIGFileSnarkProj::NumOfEnerXMLStr;
+const XMLCh* DIGFileSnarkProj::EnergyLevelXMLStr;
+const XMLCh* DIGFileSnarkProj::EnergyXMLStr;
+const XMLCh* DIGFileSnarkProj::RatioXMLStr;
+const XMLCh* DIGFileSnarkProj::BackgroundXMLStr;
+
+DIGFileSnarkProj::DIGFileSnarkProj()
+{
+
+  // XML string initialization
+  if(!XMLStringsInitialized) {
+
+         AppHeaderXMLStr      = XMLString::transcode("application_header");
+         GeomHeaderXMLStr     = XMLString::transcode("geometric_header");
+         DivergentXMLStr      = XMLString::transcode("divergent");
+         RadiusXMLStr         = XMLString::transcode("radius");
+         SourceDetXMLStr      = XMLString::transcode("source_detector_distance");
+         DetTypeXMLStr        = XMLString::transcode("detector_type");
+         ParallelXMLStr       = XMLString::transcode("parallel");
+         ProjTypeXMLStr       = XMLString::transcode("projection_type");
+         NoiseHeaderXMLStr    = XMLString::transcode("noise_header");
+         QuantumXMLStr        = XMLString::transcode("quantum");
+         MeanXMLStr           = XMLString::transcode("mean");
+         CalibMeasXMLStr      = XMLString::transcode("calibration_measurement");
+         GantryXMLStr         = XMLString::transcode("gantry_arrangement");
+         ScatterXMLStr        = XMLString::transcode("scatter");
+         PeakXMLStr           = XMLString::transcode("peak");
+         WidthXMLStr          = XMLString::transcode("width");
+         AdditiveXMLStr       = XMLString::transcode("additive");
+         StdDevXMLStr         = XMLString::transcode("standard_deviation");
+         MultipXMLStr         = XMLString::transcode("multiplicative");
+         SpectrumHeaderXMLStr = XMLString::transcode("spectrum_header");
+         NumOfEnerXMLStr      = XMLString::transcode("number_of_energies");
+         EnergyLevelXMLStr    = XMLString::transcode("energy_level");
+         EnergyXMLStr         = XMLString::transcode("energy");
+         RatioXMLStr          = XMLString::transcode("ratio");
+         BackgroundXMLStr     = XMLString::transcode("background");
+  }
+
+  Spectrum = NULL;
+  Geometry = NULL;
+}      
+
+
+DIGFileSnarkProj::~DIGFileSnarkProj()
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:~DIGFileSnarkProj\n");\r
+#endif\r
+
+  if(Geometry != NULL) {
+         delete Geometry;
+  }
+
+  if(Spectrum != NULL) {
+         delete Spectrum;
+  }
+}
+
+////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////
+// main header reading
+///////////////////////////////////////////////
+
+int DIGFileSnarkProj::GetMainHeader(ProjFileMH* MainHeader)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetMainHeader\n");\r
+#endif\r
+
+  // read title
+  const char* Title;
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+  printf("Getting Main Header Title\n");\r
+#endif\r
+
+  if(GetTitle(&Title) != 0) {
+    printf("Error reading Main Header Title\n");
+    return -1;
+  }
+
+  //printf("Main Header Title: %s\n", Title);\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+  printf("Seting Main Header Title\n");\r
+#endif\r
+
+  if(MainHeader->Title.Set(Title) != 0) {
+    printf("Error seting Main Header Title\n");
+    return -1;
+  }\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+  printf("Seting Main Header Dimensions\n");\r
+#endif
+
+  if(GetDimensions(&(MainHeader->Dimensions)) != 0) {
+    printf("Error reading Main Header Dimensions\n");
+    return -1;
+  }
+
+  //printf("Main Header Dimensions: %d\n", MainHeader->Dimensions);
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+  printf("Seting Main Header Sampling\n");\r
+#endif
+
+  if(GetSampling(&(MainHeader->Sampling)) != 0) {
+    printf("Error reading Main Header Sampling\n");
+    return -1;
+  }
+
+  //printf("Main Header Sampling: %f\n", MainHeader->Sampling);
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+  printf("Getting Main Header comments\n");\r
+#endif\r
+
+  const char* Comment;
+
+  if(GetComment(&Comment) != 0) {
+    printf("Error reading Main Header Comment\n");
+    return -1;
+  }
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+  printf("Seting Main Header Comments\n");\r
+#endif\r
+
+  //printf("Main Header Comment: %s\n", Comment);
+
+  if(MainHeader->Comment.Set(Comment) != 0) {
+    printf("Error Seting Main Header Comment\n");
+    return -1;
+  }
+
+  return 0;
+}
+
+int DIGFileSnarkProj::GetAppHeader(ProjFileAH* pAppHeader)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetAppHeader\n");\r
+#endif\r
+
+  // application header comment
+  const char* Comment;
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+  printf("Getting Application Header Comments\n");\r
+#endif\r
+
+  if(GetAppComment(&Comment) != 0) {
+    printf("Error reading Application Header Comment\n");
+    return -1;
+  }
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+  printf("Setting Application Header Comments\n");\r
+#endif\r
+
+  //printf("Application Header Comment: %s\n", Comment);
+
+  if(pAppHeader->Comment.Set(Comment) != 0) {
+    printf("Error Seting Application Header Comment\n");
+    return -1;
+  }
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+  printf("Getting Application Header Geometry Type\n");\r
+#endif\r
+
+  // geometry
+  if(GetGeometryType(&(pAppHeader->GeometryType)) != 0) {
+    printf("Error reading Application Header Geometry Type\n");
+    return -1;
+  }
+
+  //printf("Application Header Geometry Type: %s\n", (pAppHeader->GeometryType == GT_DIVERGENT) ? "Divergent": "Parallel");
+
+  if(pAppHeader->GeometryType == GT_DIVERGENT) {  // divergent
+
+    if(GetGeometry(&(pAppHeader->Radius), &(pAppHeader->SrcDetDistance), &(pAppHeader->DetectorType)) != 0) {
+      printf("Error reading Application Header Geometry\n");
+      return -1;
+    }
+
+    //printf("Application Header Geometry Radius: %f\n", pAppHeader->Radius);
+    //printf("Application Header Geometry SrcDetDistance: %f\n", pAppHeader->SrcDetDistance);
+
+  }
+  else { // parallel
+
+    if(GetGeometry(&(pAppHeader->DetectorType), &(pAppHeader->ProjType)) != 0) {
+      printf("Error reading Application Header Geometry\n");
+      return -1;
+    }
+
+    //printf("Application Header Geometry Projection Type: %s\n", (pAppHeader->ProjType == PT_STRIP) ? "Strip": "Line");
+
+  }
+
+  /*
+  switch(pAppHeader->DetectorType) {
+
+  case DT_TANGENT:
+    printf("Application Header Geometry Detector Type: TANGENT\n");
+    break;
+
+  case DT_ARC:
+    printf("Application Header Geometry Detector Type: ARC\n");
+    break;
+
+  case DT_UNIFORM:
+    printf("Application Header Geometry Detector Type: UNIFORM\n");
+    break;
+
+  case DT_VARIABLE:
+    printf("Application Header Geometry Detector Type: VARIABLE\n");
+    break;
+  }
+  */
+
+  // spectrum
+
+  if(GetNoOfEnergies(&(pAppHeader->NoOfEnergies)) != 0) {
+    printf("Error reading Application Header Spectrum Number Of Energies\n");
+    return -1;
+  }
+
+  //printf("Application Header Spectrum Number Of Energies: %u\n", pAppHeader->NoOfEnergies);
+
+  pAppHeader->Energy = new int[pAppHeader->NoOfEnergies];
+  pAppHeader->Ratio = new double[pAppHeader->NoOfEnergies];
+  pAppHeader->Background = new double[pAppHeader->NoOfEnergies];
+
+  for(unsigned int k = 0; k < pAppHeader->NoOfEnergies; k++) {
+    if(GetSpectrum(k, &(pAppHeader->Energy[k]), &(pAppHeader->Ratio[k]), &(pAppHeader->Background[k])) != 0) {
+      printf("Error reading Application Header Spectrum Energy\n");
+      return -1;
+    }
+
+    //printf("Application Header Spectrum Energy: %u %i %f %f\n", k, pAppHeader->Energy[k], pAppHeader->Ratio[k], pAppHeader->Background[k]);
+
+  }
+
+  // noise
+  if(HasNoiseQuantum(&(pAppHeader->QuantumFlag)) != 0) {
+    printf("Error reading Application Header Noise Quantum Flag\n");
+    return -1;
+  }
+
+  if(pAppHeader->QuantumFlag) {
+
+    if(GetNoiseQuantum(&(pAppHeader->QuantumM), &(pAppHeader->QuantumCM), &(pAppHeader->QuantumGA)) != 0) {
+      printf("Error reading Application Header Noise Quantum Flag\n");
+      return -1;
+    }
+
+    //printf("Application Header Noise Quantum: %f %f %i\n", pAppHeader->QuantumM, pAppHeader->QuantumCM, pAppHeader->QuantumGA);
+  }
+
+  if(HasNoiseScatter(&(pAppHeader->ScatterFlag)) != 0) {
+    printf("Error reading Application Header Noise Scatter Flag\n");
+    return -1;
+  }
+
+  if(pAppHeader->ScatterFlag) {
+
+    if(GetNoiseScatter(&(pAppHeader->ScatterP), &(pAppHeader->ScatterW)) != 0) {
+      printf("Error reading Application Header Noise Scatter\n");
+      return -1;
+    }
+
+    //printf("Application Header Noise Scatter: %f %f\n", pAppHeader->ScatterP, pAppHeader->ScatterW);
+  }
+
+  if(HasNoiseAdditive(&(pAppHeader->AdditiveFlag)) != 0) {
+    printf("Error reading Application Header Noise Additive Flag\n");
+    return -1;
+  }
+
+  if(pAppHeader->AdditiveFlag) {
+    if(GetNoiseAdditive(&(pAppHeader->AdditiveM), &(pAppHeader->AdditiveSD)) != 0) {
+      printf("Error reading Application Header Noise Additive\n");
+      return -1;
+    }
+
+    //printf("Application Header Noise Additive: %f %f\n", pAppHeader->AdditiveM, pAppHeader->AdditiveSD);
+  }
+
+  if(HasNoiseMultiplicative(&(pAppHeader->MultiplicativeFlag)) != 0) {
+    printf("Error reading Application Header Noise Multiplicative Flag\n");
+    return -1;
+  }
+
+  if(pAppHeader->MultiplicativeFlag) {
+
+    if(GetNoiseMultiplicative(&(pAppHeader->MultiplicativeM), &(pAppHeader->MultiplicativeSD)) != 0) {
+      printf("Error reading Application Header Noise Multiplicative\n");
+      return -1;
+    }
+
+    //printf("Application Header Noise Multiplicative: %f %f\n", pAppHeader->MultiplicativeM, pAppHeader->MultiplicativeSD);
+  }
+
+  return 0;
+}
+
+///////////////////////////////////////////////
+// Projection header reading
+///////////////////////////////////////////////
+
+int DIGFileSnarkProj::GetProjHeader(ProjFilePrjH* pProjHeader)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetProjHeader\n");\r
+#endif\r
+
+  // read projection number
+
+  if(GetProjNo(&(pProjHeader->ProjNo)) != 0) {
+    printf("Error reading Projection Number\n");
+    return -1;
+  }
+
+  //printf("Projection Number: %u\n", pProjHeader->ProjNo);
+
+  // read angle
+
+  if(GetProjAngle(&(pProjHeader->Angle)) != 0) {
+    printf("Error reading Projection Angle\n");
+    return -1;
+  }
+
+  //printf("Array Set Parameters: %f\n", pProjHeader->Angle);
+
+  // read comment
+  const char* Comment;
+
+  if(GetProjComment(&Comment) != 0) {
+    printf("Error reading Projection Comment\n");
+    return -1;
+  }
+
+  //printf("Projection Comment: %s\n", Comment);
+
+  if(pProjHeader->Comment.Set(Comment) != 0) {
+    printf("Error Seting Projection Comment\n");
+    return -1;
+  }
+
+  return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+// Writing
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+// Open for writing
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkProj::Open(const char* pFileName, ProjFileMH* pMainHeader)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:Open\n");\r
+#endif\r
+
+  if(
+    Open(
+      pFileName,                  // file name
+      pMainHeader->Title.Get(),   // title
+      pMainHeader->Dimensions,    // dimensions
+      pMainHeader->Sampling,      // sampling
+      pMainHeader->Comment.Get()  // comment 
+    ) != 0
+  )
+  {
+    printf("Error opening file\n");
+    return -1;
+  }
+  return 0;
+}
+
+// open for writing
+int DIGFileSnarkProj::Open(
+  const char*   pFileName,     // File Name
+  const char*   pTitle,        // Title
+  unsigned int  pNumberOfRays, // USRAYS
+  double        pSampling,     // PINC
+  const char*   pComments      // Comments
+) 
+{
+  //const char*           Schema;
+  DIGDimensions  dim;
+  DIGSampling    sampX;
+  DIGSampling    samp = { 0.0, 0.0, 0.0 };
+
+  dim.x = pNumberOfRays;
+  dim.y = 1;
+  dim.z = 1;
+
+  sampX.x = pSampling;
+  sampX.y = 0.0;
+  sampX.z = 0.0;
+
+  Noise.IsQuan = false;
+  Noise.IsAdd = false;
+  Noise.IsScat = false;
+  Noise.IsMult = false;
+
+  return DIGFile::Open(
+    pFileName,            // File Name
+    SchemaStr,            // Schema
+    pTitle,               // Title
+    TypeStr,              // Type,
+    1,                    // Chanels
+    DIGValueType_REAL,    // ValueType
+    DIGDataType_DOUBLE,   // DataType
+    DIGDataFormat_BINARY, // DataFormat
+    DIGGrid_SC,           // Grid
+    DIGBasis_VORONOI,     // Basis
+    DIGUnit_UNSPECIFIED,  // Unit
+    &dim,                 // Dimensions
+    &sampX,               // SamplingX
+    &samp,                // SamplingY
+    &samp,                // SamplingZ
+    pComments,            // Comments
+    ""                    // Other Unit
+  );
+};
+
+
+///////////////////////////////////////////////
+// application header writing
+///////////////////////////////////////////////
+
+int DIGFileSnarkProj::SetAppHeader(ProjFileAH* pAppHeader)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:SetAppHeader\n");\r
+#endif\r
+
+  const char* Comment;
+
+  if(pAppHeader->Comment.Get(&Comment)) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+  printf("** Error: Getting Application Header Comments\n");\r
+#endif
+    return -1;
+  }
+
+  SetAppComment(Comment);
+
+  switch(pAppHeader->GeometryType) {
+  case GT_DIVERGENT:
+    //pOut->SetGeometry(double r, double d, DetectorTypeEnum t);
+    if(SetGeometry(pAppHeader->Radius, pAppHeader->SrcDetDistance, pAppHeader->DetectorType) != 0) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+      printf("** Error: Setting Application Header Geometry\n");\r
+#endif
+      return -1;
+    }
+    break;
+
+  case GT_PARALLEL:
+    if(SetGeometry(pAppHeader->DetectorType, pAppHeader->ProjType) != 0) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+      printf("** Error: Setting Application Header Geometry\n");\r
+#endif
+      return -1;
+    }
+    break;
+
+  default:\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+      printf("** Error: Setting Application Header - Unknown Geometry\n");\r
+#endif
+    ;// Error
+  }
+
+  if(SetSpectrum(pAppHeader->NoOfEnergies, pAppHeader->Energy, pAppHeader->Ratio, pAppHeader->Background) != 0) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: Setting Application Header Spectrum\n");\r
+#endif
+    return -1;
+  }
+
+  if(pAppHeader->QuantumFlag) {
+         if(SetNoiseQuantum(pAppHeader->QuantumM, pAppHeader->QuantumCM, pAppHeader->QuantumGA) != 0) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: Setting Application Header Noise - Quantum\n");\r
+#endif
+      return -1;
+    }
+  }
+
+  if(pAppHeader->ScatterFlag) {
+         if(SetNoiseScatter(pAppHeader->ScatterP, pAppHeader->ScatterW) != 0) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: Setting Application Header Noise - Scatter\n");\r
+#endif
+      return -1;
+    }
+  }
+
+  if(pAppHeader->AdditiveFlag) {
+         if(SetNoiseAdditive(pAppHeader->AdditiveM, pAppHeader->AdditiveSD) != 0) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: Setting Application Header Noise - Additive\n");\r
+#endif
+      return -1;
+    }
+  }
+
+  if(pAppHeader->MultiplicativeFlag) {
+         if(SetNoiseMultiplicative(pAppHeader->MultiplicativeM, pAppHeader->MultiplicativeSD) != 0) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: Setting Application Header Noise - Multiplicative\n");\r
+#endif
+      return -1;
+    }
+  }
+
+  return 0;
+}
+
+///////////////////////////////////////////////
+// projection appending
+///////////////////////////////////////////////
+
+int DIGFileSnarkProj::AppendProj(ProjFilePrjH* pProjHeader, const double* pData)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:AppendProj\n");\r
+#endif\r
+
+  return AppendProj(
+    pProjHeader->ProjNo,
+    pProjHeader->Angle,
+    pProjHeader->Comment.Get(),
+    pData
+  );
+}
+
+int DIGFileSnarkProj::AppendProj(\r
+  unsigned int  pProjNo,
+  double        pAngle,
+  const char*   pComment,
+  const double* pData
+) 
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:AppendProj\n");\r
+#endif\r
+
+  int ret;
+  char ProjNoStr[8];   // Projection Number as a String
+  char AngleStr[256];  // angle as a String
+
+       AngleStr[0] = 0;
+       sprintf(AngleStr, "%.20f", pAngle);
+
+       ProjNoStr[0] = 0;
+       sprintf(ProjNoStr, "%d", pProjNo);
+
+  if((ret = AppendArraySet("projection", ProjNoStr, AngleStr, pComment)) != 0) {
+    return ret;
+  }
+
+  return AppendArray(0, "", pData);
+}
+
+////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////
+
+// open for reading
+
+int DIGFileSnarkProj::Open(const char* pFileName)\r
+{
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:Open\n");\r
+#endif\r
+
+  Noise.IsQuan = false;
+  Noise.IsAdd = false;
+  Noise.IsScat = false;
+  Noise.IsMult = false;
+
+  if(DIGFile::Open(pFileName) != 0) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: Openning DIG file\n");\r
+#endif
+    return -1; // error opening dig file
+  }
+
+  if(strcmp(MainHeader.Type.Get(), TypeStr) != 0) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: Not a Snark05 prjfil file\n");\r
+#endif
+    return -2; // not a DIGFileSnarkProj
+  }
+
+  return 0;
+}
+
+// comment
+
+int DIGFileSnarkProj::GetAppComment(const char** pComment)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetAppComment\n");\r
+#endif\r
+
+  return AppComment.Get(pComment);
+} 
+
+int DIGFileSnarkProj::GetGeometryType(GeometryTypeEnum* pGeometryType)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetGeometryType\n");\r
+#endif\r
+
+  *pGeometryType = Geometry->GeometryType;
+  return 0;
+}
+
+// divergent
+int DIGFileSnarkProj::GetGeometry(double* pRadius, double* pSrcDetDistance, DetectorTypeEnum* pDetectorType)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetGeometry\n");\r
+#endif\r
+
+  if(Geometry == NULL) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: Undefines Geometry\n");\r
+#endif
+    return -1; // error
+  }
+
+       *pRadius = Geometry->Radius;
+       *pSrcDetDistance = Geometry->SrcDetDistance;
+       *pDetectorType = Geometry->DetectorType;
+
+  return 0;
+}
+
+// parallel
+int DIGFileSnarkProj::GetGeometry(DetectorTypeEnum* pDetectorType, ProjTypeEnum* pProjType)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetGeometry\n");\r
+#endif\r
+
+  if(Geometry == NULL) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: Undefines Geometry\n");\r
+#endif
+    return -1; // error
+  }
+
+       *pDetectorType = Geometry->DetectorType;
+       *pProjType = Geometry->ProjType;
+
+  return 0;
+}
+
+
+int DIGFileSnarkProj::GetNoOfEnergies(unsigned int* NumbOfEnergies)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetNoOfEnergies\n");\r
+#endif\r
+
+  *NumbOfEnergies = Spectrum->NumberOfEnergies;
+
+  return 0;
+}
+
+int DIGFileSnarkProj::GetSpectrum(unsigned int i, int* e, double* r, double* bg)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetSpectrum\n");\r
+#endif\r
+
+  if(Spectrum == NULL) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: GetSpectrum - Undefines Spectrum\n");\r
+#endif
+    return -1; // error
+  }
+
+  if(i >= Spectrum->NumberOfEnergies) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: GetSpectrum - invalid parameter\n");\r
+#endif
+    return -2; // error
+  }
+
+  *e = Spectrum->energy[i];
+  *r = Spectrum->ratio[i];
+  *bg = Spectrum->background[i];
+
+  return 0;
+}
+
+
+int DIGFileSnarkProj::HasNoiseQuantum(bool* a)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:HasNoiseQuantum\n");\r
+#endif\r
+
+  *a = Noise.IsQuan; 
+  return 0;
+}
+
+
+int DIGFileSnarkProj::GetNoiseQuantum(double* pMean, double* pCalibration, int* pGantry)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetNoiseQuantum\n");\r
+#endif\r
+
+  if(Noise.IsQuan != true) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: GetNoiseQuantum - Quantum Noise Undefined\n");\r
+#endif
+    return -1; // error
+  }
+
+       *pMean = Noise.QuantumMean;
+  *pCalibration = Noise.QuantumCalibration;
+  *pGantry = Noise.QuantumGantry;
+
+  return 0;
+}
+
+
+// Scatter
+
+int DIGFileSnarkProj::HasNoiseScatter(bool* a)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:HasNoiseScatter\n");\r
+#endif\r
+
+  *a = Noise.IsScat; 
+  return 0;
+}
+
+int DIGFileSnarkProj::GetNoiseScatter(double* pPeak, double* pWidth)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetNoiseScatter\n");\r
+#endif\r
+
+  if(Noise.IsScat != true) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: GetNoiseScatter - Scatter Noise Undefined\n");\r
+#endif
+    return -1; // error
+  }
+
+       *pPeak = Noise.ScatterPeak;
+  *pWidth = Noise.ScatterWidth;
+
+  return 0;
+}
+
+
+// Additive
+
+int DIGFileSnarkProj::HasNoiseAdditive(bool* a)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:HasNoiseAdditive\n");\r
+#endif\r
+
+  *a = Noise.IsAdd; 
+  return 0;
+}
+
+
+int DIGFileSnarkProj::GetNoiseAdditive(double* pMean, double* pStdDev)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetNoiseAdditive\n");\r
+#endif\r
+
+  if(Noise.IsAdd != true) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: GetNoiseAdditive - Additive Noise Undefined\n");\r
+#endif
+    return -1; // error
+  }
+
+       *pMean = Noise.AdditiveMean;
+  *pStdDev = Noise.AdditiveStdDev;
+
+  return 0;
+}
+
+
+// Multiplicative
+
+int DIGFileSnarkProj::HasNoiseMultiplicative(bool* a)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:HasNoiseMultiplicative\n");\r
+#endif\r
+
+  *a = Noise.IsMult; 
+  return 0;
+}
+
+
+int DIGFileSnarkProj::GetNoiseMultiplicative(double* pMean, double* pStdDev)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:GetNoiseMultiplicative\n");\r
+#endif\r
+
+  if(Noise.IsMult != true) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: GetNoiseMultiplicative - Multiplicative Noise Undefined\n");\r
+#endif
+    return -1; // error
+  }
+
+       *pMean = Noise.MultiplicativeMean;
+  *pStdDev = Noise.MultiplicativeStdDev;
+
+  return 0;
+}
+
+
+
+// comment
+
+int DIGFileSnarkProj::SetAppComment(const char* pComment)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:SetAppComment\n");\r
+#endif\r
+
+  return AppComment.Set(pComment);
+} 
+
+// divergent
+int DIGFileSnarkProj::SetGeometry(double pRadius, double pSrcDetDistance, DetectorTypeEnum pDetectorType)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:SetGeometry\n");\r
+#endif\r
+
+  if(Geometry != NULL) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: SetGeometry - Geometry Aleready Defined\n");\r
+#endif
+    return -1; // already set
+  }
+
+       Geometry = new ProjGeometry(pRadius, pSrcDetDistance, pDetectorType);
+
+  return 0;
+}
+
+// parallel
+int DIGFileSnarkProj::SetGeometry(DetectorTypeEnum pDetectorType, ProjTypeEnum pProjType)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:SetGeometry\n");\r
+#endif\r
+
+  if(Geometry != NULL) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: SetGeometry - Geometry Aleready Defined\n");\r
+#endif
+    return -1; // already set
+  }
+
+       Geometry = new ProjGeometry(pDetectorType, pProjType);
+
+  return 0;
+}
+
+int DIGFileSnarkProj::SetSpectrum(unsigned int eNum, int* e, double* r, double* bg)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:SetSpectrum\n");\r
+#endif\r
+
+  if(Spectrum != NULL) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: SetSpectrum - Spectrum Aleready Defined\n");\r
+#endif
+    return -1; // already set
+  }
+
+       Spectrum = new ProjSpectrum(eNum);
+
+  for(unsigned int i = 0; i < eNum; i++) {
+    Spectrum->energy[i] = e[i];
+    Spectrum->ratio[i] = r[i];
+    Spectrum->background[i] = bg[i];
+  }
+
+  return 0;
+}
+
+
+int DIGFileSnarkProj::SetNoiseQuantum(double pMean, double pCalibration, int pGantry)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:SetNoiseQuantum\n");\r
+#endif\r
+
+  if(Noise.IsQuan) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: SetNoiseQuantum - Noise Quantum Aleready Defined\n");\r
+#endif
+    return -1; // already set
+  }
+
+       Noise.SetQuantum(pMean, pCalibration, pGantry);
+
+  return 0;
+}
+
+
+// Scatter
+
+int DIGFileSnarkProj::SetNoiseScatter(double pPeak, double pWidth)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:SetNoiseScatter\n");\r
+#endif\r
+
+  if(Noise.IsScat) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: SetNoiseScatter - Noise Scatter Aleready Defined\n");\r
+#endif
+    return -1; // already set
+  }
+
+       Noise.SetScatter(pPeak, pWidth);
+
+  return 0;
+}
+
+
+// Additive
+
+int DIGFileSnarkProj::SetNoiseAdditive(double pMean, double pStdDev)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:SetNoiseAdditive\n");\r
+#endif\r
+
+  if(Noise.IsAdd) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: SetNoiseAdditive - Noise Additive Aleready Defined\n");\r
+#endif
+    return -1; // already set
+  }
+
+       Noise.SetAdditive(pMean, pStdDev);
+
+  return 0;
+}
+
+
+// Multiplicative
+
+int DIGFileSnarkProj::SetNoiseMultiplicative(double pMean, double pStdDev)
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:SetNoiseMultiplicative\n");\r
+#endif\r
+
+  if(Noise.IsMult) {\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 0\r
+    printf("** Error: SetNoiseMultiplicative - Noise Multiplicative Aleready Defined\n");\r
+#endif
+    return -1; // already set
+  }
+
+       Noise.SetMultiplicative(pMean, pStdDev);
+
+  return 0;
+}
+
+
+/////////////////////////////////////////////////////////////////////
+//
+// Internal Methods
+//
+/////////////////////////////////////////////////////////////////////
+
+// NOTE: error handling is not included
+int DIGFileSnarkProj::ParseApplicationHeader()
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:ParseApplicationHeader\n");\r
+#endif\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+    printf("Parsing Application Header\n");\r
+#endif\r
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+    printf("Getting Comments\n");\r
+#endif\r
+
+  // get Comment Texts
+  char* tCom = DIGFileSnarkPrjEmptyStr;\r
+
+  DOMNodeList* CommentsList = ApplicationHeaderElement->getElementsByTagName(CommentsXMLStr);
+
+  int tNumC = CommentsList->getLength();
+  if(tNumC > 0)        {
+
+    DOMElement* CommentsElement = (DOMElement*) CommentsList->item(0);
+
+    if(GetElementText(CommentsElement, &tCom) != 0) {
+      ;// allow empty comments
+    }
+  }
+
+  AppComment.Set(tCom);
+
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+    printf("Getting Geometric Header\n");\r
+#endif\r
+
+  // get geometric header
+
+  DOMNodeList* GeomHeaderList = ApplicationHeaderElement->getElementsByTagName(GeomHeaderXMLStr);
+  DOMElement* GeomHeaderElement = (DOMElement*) GeomHeaderList->item(0);
+       
+  // get divergent
+       
+  DOMNodeList* DivergentList = GeomHeaderElement->getElementsByTagName(DivergentXMLStr);
+       if(DivergentList->getLength() > 0) {
+               DOMElement* DivergentElement = (DOMElement*) DivergentList->item(0);
+
+               // get radius, source detector distance, detector type
+
+               double tRadius = 0;
+               GetDoubleAttributeValue(DivergentElement, RadiusXMLStr, &tRadius);
+                               
+               double tSrcDetDist = 0;
+               GetDoubleAttributeValue(DivergentElement, SourceDetXMLStr, &tSrcDetDist);
+               
+               DOMNodeList* DetectList = DivergentElement->getElementsByTagName(DetTypeXMLStr);
+               DOMElement* DetectElement = (DOMElement*) DetectList->item(0);
+               
+               char* tstring;
+               DetectorTypeEnum tDet;
+
+               GetElementText(DetectElement, &tstring);
+
+    if(strcmp(tstring, "tangent") == 0) {
+      tDet = DT_TANGENT;
+    }
+
+    if(strcmp(tstring, "arc") == 0) {
+      tDet = DT_ARC;
+    }
+               
+               Geometry = new ProjGeometry(tRadius, tSrcDetDist, tDet);
+       }
+       else {
+               // get parallel tag
+
+               DOMNodeList* ParallelList = GeomHeaderElement->getElementsByTagName(ParallelXMLStr);
+               DOMElement* ParallelElement = (DOMElement*) ParallelList->item(0);
+               
+               // get detector type
+
+               DOMNodeList* DetectList = ParallelElement->getElementsByTagName(DetTypeXMLStr);
+               DOMElement* DetectElement = (DOMElement*) DetectList->item(0);
+               
+               char *tstring;
+               DetectorTypeEnum tDet;
+
+               GetElementText(DetectElement, &tstring);
+
+    if(strcmp(tstring, "uniform") == 0) {
+      tDet = DT_UNIFORM;
+    }
+
+    if(strcmp(tstring, "variable") == 0) {
+      tDet = DT_VARIABLE;
+    }
+               
+               // get projection type
+
+               DOMNodeList* ProjectList = ParallelElement->getElementsByTagName(ProjTypeXMLStr);
+               DOMElement* ProjectElement = (DOMElement*) ProjectList->item(0);
+               
+               ProjTypeEnum tProj;
+               
+               GetElementText(ProjectElement, &tstring);
+
+    if(strcmp(tstring, "line") == 0) {
+      tProj = PT_LINE;
+    }
+    else if(strcmp(tstring, "strip") == 0) {
+      tProj = PT_STRIP;
+    }
+
+               
+               Geometry = new ProjGeometry(tDet, tProj);
+       }
+\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+    printf("Getting Noise Header\n");\r
+#endif\r
+
+       // get noise header
+
+       DOMNodeList* NoiseHeaderList = ApplicationHeaderElement->getElementsByTagName(NoiseHeaderXMLStr);
+       DOMElement* NoiseHeaderElement = (DOMElement*) NoiseHeaderList->item(0);
+       
+       // get quantum
+       
+       DOMNodeList* QuantumList = NoiseHeaderElement->getElementsByTagName(QuantumXMLStr);
+       if(QuantumList->getLength() > 0) {
+               DOMElement* QuantumElement = (DOMElement*) QuantumList->item(0);
+               
+               // get mean, calibration measurement, gantry arrangement
+               
+               double tMean = 0, tCal = 0;
+               int tGan = 0;
+
+               GetDoubleAttributeValue(QuantumElement, MeanXMLStr, &tMean);
+               GetDoubleAttributeValue(QuantumElement, CalibMeasXMLStr, &tCal);
+               GetIntAttributeValue(QuantumElement, GantryXMLStr, &tGan);
+               
+               Noise.SetQuantum(tMean, tCal, tGan);
+       }
+       
+       // get scatter
+       
+       DOMNodeList* ScatterList = NoiseHeaderElement->getElementsByTagName(ScatterXMLStr);
+       if(ScatterList->getLength() > 0) {
+               DOMElement* ScatterElement = (DOMElement*) ScatterList->item(0);
+               
+               // get peak, width
+               
+               double tPeak = 0, tWidth = 0;
+
+               GetDoubleAttributeValue(ScatterElement, PeakXMLStr, &tPeak);
+               GetDoubleAttributeValue(ScatterElement, WidthXMLStr, &tWidth);
+               
+               Noise.SetScatter(tPeak, tWidth);
+       }
+
+       // get additive
+       
+       DOMNodeList* AdditList = NoiseHeaderElement->getElementsByTagName(AdditiveXMLStr);
+       if(AdditList->getLength() > 0) {
+               DOMElement* AdditElement = (DOMElement*) AdditList->item(0);
+               
+               // get mean, calibration measurement, gantry arrangement
+               
+               double tMean = 0, tStd = 0;
+
+               GetDoubleAttributeValue(AdditElement, MeanXMLStr, &tMean);
+               GetDoubleAttributeValue(AdditElement, StdDevXMLStr, &tStd);
+               
+               Noise.SetAdditive(tMean, tStd);
+       }
+
+       // get multiplicative
+       
+       DOMNodeList* MultipList = NoiseHeaderElement->getElementsByTagName(MultipXMLStr);
+       if(MultipList->getLength() > 0) {
+               DOMElement* MultipElement = (DOMElement*) MultipList->item(0);
+               
+               // get mean, calibration measurement, gantry arrangement
+               
+               double tMean = 0, tStd = 0;
+
+               GetDoubleAttributeValue(MultipElement, MeanXMLStr, &tMean);
+               GetDoubleAttributeValue(MultipElement, StdDevXMLStr, &tStd);
+               
+               Noise.SetMultiplicative(tMean, tStd);
+       }
+       \r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 1\r
+    printf("Getting Specrum Header\n");\r
+#endif\r
+
+       // get spectrum header
+
+       DOMNodeList* SpectHeaderList = ApplicationHeaderElement->getElementsByTagName(SpectrumHeaderXMLStr);
+       DOMElement* SpectHeaderElement = (DOMElement*) SpectHeaderList->item(0);
+
+       // get number of energies
+       
+       unsigned int tNumE = 0;
+       
+       GetUintAttributeValue(SpectHeaderElement, NumOfEnerXMLStr, &tNumE);
+       //SetEnergyNumber(tNumE);
+
+  Spectrum = new ProjSpectrum(tNumE);
+       
+       // get energy level triplets: energy, ratio, background
+       
+       DOMNodeList* EnergyList = SpectHeaderElement->getElementsByTagName(EnergyLevelXMLStr);
+       
+       // NOTE: Error if EnergyList->getLength() != tNumE
+       
+       int tEner = 0;
+       double tRatio = 0, tBack = 0;
+       DOMElement* EnergyElement;
+       
+       for(unsigned int i = 0; i < EnergyList->getLength(); i++) {
+               EnergyElement = (DOMElement*) EnergyList->item(i);
+               
+               GetIntAttributeValue(EnergyElement, EnergyXMLStr, &tEner);
+               GetDoubleAttributeValue(EnergyElement, RatioXMLStr, &tRatio);
+               GetDoubleAttributeValue(EnergyElement, BackgroundXMLStr, &tBack);
+
+               Spectrum->SetEnergy(i, tEner, tRatio, tBack);           
+       }
+                       
+       return 0;
+}
+
+
+int DIGFileSnarkProj::CreateApplicationHeader()
+{\r
+#if DIGFILESNARKPROJ_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkProj:CreateApplicationHeader\n");\r
+#endif\r
+
+  char valStr[20];
+
+  XMLCh* tmpXMLStr;
+
+  // create main header node
+  ApplicationHeaderElement = Document->createElement(AppHeaderXMLStr);
+
+  // attributes
+
+    // there is no attributes  
+
+  // children
+
+
+  // define comments
+  const char* Comment;
+
+  AppComment.Get(&Comment);
+
+       if(Comment != NULL) {
+    
+    // create comments node
+    DOMElement* Comm = Document->createElement(CommentsXMLStr);
+
+    // create comments text node
+    tmpXMLStr = XMLString::transcode(Comment);
+    DOMText* CommentText = Document->createTextNode(tmpXMLStr);
+    //delete tmpXMLStr;
+    Comm->appendChild(CommentText);
+
+    // append comments to appication header
+    ApplicationHeaderElement->appendChild(Comm);
+  }
+
+
+  // geometry
+
+  // create geometry node
+  DOMElement* Geom = Document->createElement(GeomHeaderXMLStr);
+
+       if(Geometry->GeometryType == GT_DIVERGENT) {
+
+    DOMElement* Diver = Document->createElement(DivergentXMLStr);
+
+    // define radius
+    sprintf(valStr, "%f", Geometry->Radius);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Diver->setAttribute(RadiusXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // define source detector distanse
+    sprintf(valStr, "%f", Geometry->SrcDetDistance);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Diver->setAttribute(SourceDetXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // define detector type
+    DOMElement* DetT = Document->createElement(DetTypeXMLStr);
+
+    // create detector type text node
+    if(Geometry->DetectorType == DT_TANGENT) {
+      tmpXMLStr = XMLString::transcode("tangent");
+    }
+    else {
+      tmpXMLStr = XMLString::transcode("arc");
+    }
+
+    DOMText* DetTText = Document->createTextNode(tmpXMLStr);
+    //delete tmpXMLStr;
+    DetT->appendChild(DetTText);
+
+    // append detector type to divergent
+    Diver->appendChild(DetT);
+
+    // append divergent to geometry
+    Geom->appendChild(Diver);
+  }
+  else {
+
+    DOMElement* Para = Document->createElement(ParallelXMLStr);
+
+    // define detector type
+    DOMElement* DetT = Document->createElement(DetTypeXMLStr);
+
+    if(Geometry->DetectorType == DT_UNIFORM) {
+      tmpXMLStr = XMLString::transcode("uniform");
+    }
+    else {
+      tmpXMLStr = XMLString::transcode("variable");
+    }
+
+    DOMText* DetTText = Document->createTextNode(tmpXMLStr);
+    //delete tmpXMLStr;
+    DetT->appendChild(DetTText);
+
+    // append detector type to parallel
+    Para->appendChild(DetT);
+
+
+    // define projection type
+    DOMElement* ProjT = Document->createElement(ProjTypeXMLStr);
+
+    if(Geometry->ProjType == PT_STRIP) {
+      tmpXMLStr = XMLString::transcode("strip");
+    }
+    else {
+      tmpXMLStr = XMLString::transcode("line");
+    }
+
+    DOMText* ProjTText = Document->createTextNode(tmpXMLStr);
+    //delete tmpXMLStr;
+    ProjT->appendChild(ProjTText);
+
+    // append projection type to parallel
+    Para->appendChild(ProjT);
+
+    // append parallel to geometry
+    Geom->appendChild(Para);
+  }
+
+  // append geometry to application header
+  ApplicationHeaderElement->appendChild(Geom);
+
+
+       // noise
+
+  // create noise node
+  DOMElement* Nois = Document->createElement(NoiseHeaderXMLStr);
+
+       if(Noise.IsQuan) {
+    DOMElement* Quan = Document->createElement(QuantumXMLStr);
+
+    // define mean
+    sprintf(valStr, "%f", Noise.QuantumMean);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Quan->setAttribute(MeanXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // define calibration
+    sprintf(valStr, "%f", Noise.QuantumCalibration);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Quan->setAttribute(CalibMeasXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // define gantry
+    sprintf(valStr, "%i", Noise.QuantumGantry);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Quan->setAttribute(GantryXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // append quantum to noise
+    Nois->appendChild(Quan);
+       }
+
+
+  if(Noise.IsScat) {
+    DOMElement* Scat = Document->createElement(ScatterXMLStr);
+
+    // define peak
+    sprintf(valStr, "%f", Noise.ScatterPeak);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Scat->setAttribute(PeakXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // define width
+    sprintf(valStr, "%f", Noise.ScatterWidth);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Scat->setAttribute(WidthXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // append scatter to noise
+    Nois->appendChild(Scat);
+       }
+
+
+       if(Noise.IsAdd) {
+    DOMElement* Add = Document->createElement(AdditiveXMLStr);
+
+    // define mean
+    sprintf(valStr, "%f", Noise.AdditiveMean);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Add->setAttribute(MeanXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // define standard deviation
+    sprintf(valStr, "%f", Noise.AdditiveStdDev);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Add->setAttribute(StdDevXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // append additive to noise
+    Nois->appendChild(Add);
+       }
+       
+
+       if(Noise.IsMult) {
+    DOMElement* Mul = Document->createElement(MultipXMLStr);
+
+    // define mean
+    sprintf(valStr, "%f", Noise.MultiplicativeMean);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Mul->setAttribute(MeanXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // define standard deviation
+    sprintf(valStr, "%f", Noise.MultiplicativeStdDev);
+    tmpXMLStr = XMLString::transcode(valStr);
+    Mul->setAttribute(StdDevXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // append multiplicative to noise
+    Nois->appendChild(Mul);
+       }
+
+  // append noise to application header
+  ApplicationHeaderElement->appendChild(Nois);
+
+       
+       // spectrum
+
+  if(Spectrum == NULL) {
+    return -2; // undefined spectrum
+  }
+
+  // create spectrum node
+  DOMElement* Spec = Document->createElement(SpectrumHeaderXMLStr);
+
+  // define number of energies
+  tmpXMLStr = new XMLCh[5];
+  XMLString::binToText(Spectrum->NumberOfEnergies, tmpXMLStr, 4, 10);
+  Spec->setAttribute(NumOfEnerXMLStr, tmpXMLStr);
+  delete tmpXMLStr;
+
+       for(unsigned int i = 0; i < Spectrum->NumberOfEnergies; i++) {
+
+    // create energy level node
+    DOMElement* EnerL = Document->createElement(EnergyLevelXMLStr);
+
+    // define energy
+    tmpXMLStr = new XMLCh[5];
+    XMLString::binToText(Spectrum->energy[i], tmpXMLStr, 4, 10);
+    EnerL->setAttribute(EnergyXMLStr, tmpXMLStr);
+    delete tmpXMLStr;
+
+    // define ratio
+    sprintf(valStr, "%f", Spectrum->ratio[i]);
+    tmpXMLStr = XMLString::transcode(valStr);
+    EnerL->setAttribute(RatioXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // define background
+    sprintf(valStr, "%f", Spectrum->background[i]);
+    tmpXMLStr = XMLString::transcode(valStr);
+    EnerL->setAttribute(BackgroundXMLStr, tmpXMLStr);
+    //delete tmpXMLStr;
+
+    // append energy level to spectrum
+    Spec->appendChild(EnerL);  
+       }
+
+
+  // append spectrum to application header
+  ApplicationHeaderElement->appendChild(Spec); 
+
+  // append application header to root
+  RootElement->appendChild(ApplicationHeaderElement);
+
+       return 0;
+}
diff --git a/src/DIGFileSnark/DIGFileSnarkRec.cpp b/src/DIGFileSnark/DIGFileSnarkRec.cpp
new file mode 100644 (file)
index 0000000..331290e
--- /dev/null
@@ -0,0 +1,585 @@
+#include <cstdio>
+#include <string>
+
+//#include "DIGFileSnarkRec.h"
+#include <DIGFileSnark/DIGFileSnarkRec.h>
+\r
+#define DIGFILESNARKREC_DEBUG_LEVEL 0
+
+const char* DIGFileSnarkRec::TypeStr = "SNARK05 recfil";
+const char* DIGFileSnarkRec::SchemaStr = "DIGFileSnarkRec.xsd";
+
+DIGFileSnarkRec::DIGFileSnarkRec()
+{
+}      
+
+
+DIGFileSnarkRec::~DIGFileSnarkRec()
+{
+}
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+// Writing
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+// Open for writing
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::Open(const char* pFileName, RecFileMH* pMainHeader)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::Open\n");\r
+#endif\r
+
+  return Open(
+    pFileName,                  // file name
+    pMainHeader->Title.Get(),   // title
+    pMainHeader->Dimensions,    // dimensions
+    pMainHeader->Sampling,      // sampling
+    pMainHeader->Comment.Get()  // comment 
+  );
+}
+
+int DIGFileSnarkRec::Open(
+  const char*   pFileName,     // File Name
+  const char*   pProjName,     // Projection Name
+  unsigned int  pNoOfElements, // NELEM
+  double        pSampling,     // PIXSIZ
+  const char*   pComments      // Comments
+) 
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::Open\n");\r
+#endif\r
+
+  PhantomPresent = false;
+  RecPressent = false;
+
+  DIGDimensions  dim;
+  DIGSampling    sampX;
+  DIGSampling    sampY;
+  DIGSampling    sampZ = { 0.0, 0.0, 0.0 };
+
+  dim.x = pNoOfElements;
+  dim.y = pNoOfElements;
+  dim.z = 1;
+
+  sampX.x = pSampling;
+  sampX.y = 0.0;
+  sampX.z = 0.0;
+
+  sampY.x = 0.0;
+  sampY.y = pSampling;
+  sampY.z = 0.0;
+
+  return DIGFile::Open(
+    pFileName,            // File Name
+    SchemaStr,            // Schema
+    pProjName,            // Title
+    TypeStr,              // Type,
+    1,                    // Chanels
+    DIGValueType_REAL,    // ValueType
+    DIGDataType_DOUBLE,   // DataType
+    DIGDataFormat_BINARY, // DataFormat
+    DIGGrid_SC,           // Grid
+    DIGBasis_VORONOI,     // Basis
+    DIGUnit_UNSPECIFIED,  // Unit
+    &dim,                 // Dimensions
+    &sampX,               // SamplingX
+    &sampY,               // SamplingY
+    &sampZ,               // SamplingZ
+    pComments,            // Comments
+    ""                    // Other Unit
+  );
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// Updating main header after opening file to write
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+// Appending phantom
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::AppendPhanom(RecFilePhanomH* pPhanomHeader, double* pData)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::AppendPhanom\n");\r
+#endif\r
+
+  return AppendPhantom(pPhanomHeader->Name.Get(), pPhanomHeader->Comment.Get(), pData);
+}
+
+int DIGFileSnarkRec::AppendPhantom(const char* pPhanomName, const char* pComment, double* pData)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::AppendPhanom\n");\r
+#endif\r
+
+       // writes a phantom array into the file
+       // should only be used as first array set
+
+  if(RecPressent) {\r
+\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: Reconstructions already in the file\n");\r
+#endif
+    return -1; // reconstructions already in the file
+  }
+
+  if(PhantomPresent) {\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: Phantom already in the file\n");\r
+#endif
+    return -1; // phantom already in the file
+  }
+
+  if(AppendArraySet("PHAN", pPhanomName, "", pComment) != 0) {\r
+               return 1;
+  }
+
+  if(AppendArray(0, "", pData) != 0) {
+               return 2;
+  }
+
+  PhantomPresent = true;
+
+       return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Appending reconstruction set
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::AppendRecSet(RecFileRecSetH* pRecSetHeader)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::AppendRecSet\n");\r
+#endif\r
+
+  return AppendRecSet(pRecSetHeader->AlgName.Get(), pRecSetHeader->Name.Get(), pRecSetHeader->Comment.Get());
+}
+
+int DIGFileSnarkRec::AppendRecSet(const char* pAlgName, const char* pName, const char* pComment)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::AppendRecSet\n");\r
+#endif\r
+
+  return AppendArraySet(pAlgName, pName, "", pComment);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Appending reconstruction
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::AppendRec(RecFileRecH* pRecHeader, double* pData)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::AppendRec\n");\r
+#endif\r
+
+  return AppendRec(pRecHeader->Count, pRecHeader->Comment.Get(), pData);
+}
+
+int DIGFileSnarkRec::AppendRec(unsigned int pCount, const char* pComment, double* pData)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::AppendRec\n");\r
+#endif\r
+
+  return AppendArray(pCount, pComment, pData);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+// Reading
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+// Open for reading
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::Open(const char* FileName) 
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::Open\n");\r
+#endif\r
+
+  if(DIGFile::Open(FileName) != 0) {\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: Openning DIG file\n");\r
+#endif
+    return -1; // error opening dig file
+  }
+
+  if(strcmp(MainHeader.Type.Get(), TypeStr) != 0) {\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: Not a rsnark05 reffil file\n");\r
+#endif
+    return -2; // not a RecFile
+  }
+
+  // check if there is a phantom in the file
+
+  // select first array set
+  if(SelectArraySet(0) != 0) {
+               return 4;
+  }
+
+  const char* type;
+
+  if(GetArraySetType(&type) != 0) {
+               return 6;
+  }
+
+  //// Move to first reconstruction array
+  if(strncmp(type, "PHAN", 4) == 0) { // if first set is phantom set
+    PhantomPresent = true;
+  }
+  else {
+    PhantomPresent = false;
+  }
+
+  return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Reading main header 
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::GetMainHeader(RecFileMH* MainHeader)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetMainHeader\n");\r
+#endif\r
+
+  // read title
+  const char* Title;
+
+  if(GetTitle(&Title) != 0) {
+    printf("Error reading Main Header Title\n");
+    return -1;
+  }
+
+  printf("Main Header Title: %s\n", Title);
+
+  if(MainHeader->Title.Set(Title) != 0) {
+    printf("Error seting Main Header Title\n");
+    return -1;
+  }
+
+
+  if(GetDimensions(&(MainHeader->Dimensions)) != 0) {
+    printf("Error reading Main Header Dimensions\n");
+    return -1;
+  }
+
+  printf("Main Header Dimensions: %d\n", MainHeader->Dimensions);
+
+  if(GetSampling(&(MainHeader->Sampling)) != 0) {
+    printf("Error reading Main Header Sampling\n");
+    return -1;
+  }
+
+  printf("Main Header Sampling: %f\n", MainHeader->Sampling);
+
+
+  const char* Comment;
+
+  if(GetComment(&Comment) != 0) {
+    printf("Error reading Main Header Comment\n");
+    return -1;
+  }
+
+  printf("Main Header Comment: %s\n", Comment);
+
+  if(MainHeader->Comment.Set(Comment) != 0) {
+    printf("Error Seting Main Header Comment\n");
+    return -1;
+  }
+
+  return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Reading phantom header
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::GetPhantomHeader(RecFilePhanomH* pPhantomHeader)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetPhantomHeader\n");\r
+#endif\r
+
+  // read Name
+
+  const char* Name;
+
+  if(GetPhantomName(&Name) != 0) {
+    printf("Error reading Phantom Name\n");
+    return -1;
+  }
+
+  printf("Phantom Name: %s\n", Name);
+
+  if(pPhantomHeader->Name.Set(Name) != 0) {
+    printf("Error Setting Phantom Name\n");
+    return -1;
+  }
+
+  // read comment
+
+  const char* Comment;
+
+  if(GetPhantomComment(&Comment) != 0) {
+    printf("Error reading Phantom Comment\n");
+    return -1;
+  }
+
+  printf("Phantom Comment: %s\n", Comment);
+
+  if(pPhantomHeader->Comment.Set(Comment) != 0) {
+    printf("Error Setting Phantom Comment\n");
+    return -1;
+  }
+
+  return 0;
+}
+
+int DIGFileSnarkRec::GetPhantomName(const char** pPhantomName)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetPhantomName\n");\r
+#endif\r
+
+  if(!PhantomPresent) {\r
+\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: No phantom in file\n");\r
+#endif\r
+    return -1; // no phantom in file 
+  }
+
+  // select first array set
+  if(SelectArraySet(0) != 0) {\r
+\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: No array sets in file\n");\r
+#endif
+               return -2;
+  }
+
+  return DIGFile::GetArraySetTitle(pPhantomName);
+}
+
+int DIGFileSnarkRec::GetPhantomComment(const char** pPhantomComment)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetPhantomComment\n");\r
+#endif\r
+
+  if(!PhantomPresent) {\r
+\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: No phantom in file\n");\r
+#endif
+    return -1; // no phantom in file 
+  }
+
+  // select first array set
+  if(SelectArraySet(0) != 0) {\r
+\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: No phantom in file\n");\r
+#endif
+               return -2;
+  }
+
+  return DIGFile::GetArraySetComment(pPhantomComment);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Reading phantom data
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::GetPhantomData(void* pPhantomData)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetPhantomData\n");\r
+#endif\r
+
+  if(!PhantomPresent) {
+    return -1; // no phantom in file 
+  }
+
+  // select first array set
+  if(SelectArraySet(0) != 0) {\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: No phantom in file\n");\r
+#endif
+               return -2;
+  }
+
+  // select first array
+  if(SelectArray(0) != 0) {\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 0\r
+  printf("** Error: No phantom in file\n");\r
+#endif
+               return -3;
+  }
+
+  return DIGFile::GetArrayData(pPhantomData);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Reading reconstruction set header
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::GetRecSetHeader(RecFileRecSetH* pRecSetHeader)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetRecSetHeader\n");\r
+#endif\r
+
+  // read Name
+
+  const char* Name;
+
+  if(GetRecSetName(&Name) != 0) {
+    printf("Error reading Reconstruction Name\n");
+    return -1;
+  }
+
+  printf("Reconstruction Name: %s\n", Name);
+
+  if(pRecSetHeader->Name.Set(Name) != 0) {
+    printf("Error Setting Reconstruction Name\n");
+    return -1;
+  }
+
+  // read AlgName
+
+  const char* AlgName;
+
+  if(GetRecSetAlgName(&AlgName) != 0) {
+    printf("Error reading Reconstruction AlgName\n");
+    return -1;
+  }
+
+  printf("Reconstruction Name: %s\n", AlgName);
+
+  if(pRecSetHeader->Name.Set(AlgName) != 0) {
+    printf("Error Setting Reconstruction AlgName\n");
+    return -1;
+  }
+
+  // read comment
+
+  const char* Comment;
+
+  if(GetRecSetComment(&Comment) != 0) {
+    printf("Error reading Reconstruction Set Comment\n");
+    return -1;
+  }
+
+  printf("Reconstruction Comment: %s\n", Comment);
+
+  if(pRecSetHeader->Comment.Set(Comment) != 0) {
+    printf("Error Setting Reconstruction Set Comment\n");
+    return -1;
+  }
+
+  return 0;
+}
+
+int DIGFileSnarkRec::GetRecSetName(const char** pRecName)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetRecSetName\n");\r
+#endif\r
+
+  return DIGFile::GetArraySetTitle(pRecName);
+}
+
+int DIGFileSnarkRec::GetRecSetAlgName(const char** pAlgName)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetRecSetAlgName\n");\r
+#endif\r
+
+  return DIGFile::GetArraySetType(pAlgName);
+}
+
+int DIGFileSnarkRec::GetRecSetComment(const char** pComment)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetRecSetComment\n");\r
+#endif\r
+
+  return DIGFile::GetArraySetComment(pComment);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Reading reconstruction header
+///////////////////////////////////////////////////////////////////////////////
+
+int DIGFileSnarkRec::GetRecHeader(RecFileRecH* RecHeader)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetRecHeader\n");\r
+#endif\r
+
+  // read Reconstruction Count
+
+  if(GetRecCount(&(RecHeader->Count)) != 0) {
+    printf("Error reading Reconstruction Count\n");
+    return -1;
+  }
+
+  printf("Reconstruction Count: %u\n", RecHeader->Count);
+
+  // read comment
+
+  const char* Comment;
+
+  if(GetRecComment(&Comment) != 0) {
+    printf("Error reading Reconstruction Comment\n");
+    return -1;
+  }
+
+  printf("Reconstruction Comment: %s\n", Comment);
+
+  if(RecHeader->Comment.Set(Comment) != 0) {
+    printf("Error Setting Reconstruction Comment\n");
+    return -1;
+  }
+
+  return 0;
+}
+
+
+int DIGFileSnarkRec::GetRecCount(unsigned int* pCount)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetRecCount\n");\r
+#endif\r
+
+  return DIGFile::GetArrayEnumNo(pCount);
+}
+
+int DIGFileSnarkRec::GetRecComment(const char** pComment)
+{\r
+#if DIGFILESNARKREC_DEBUG_LEVEL > 3\r
+  fprintf(stderr, "DIGFileSnarkRec::GetRecComment\n");\r
+#endif\r
+
+  return DIGFile::GetArrayComment(pComment);
+}
+
+
+
diff --git a/src/DIGFileSnark/Makefile b/src/DIGFileSnark/Makefile
new file mode 100755 (executable)
index 0000000..7e10548
--- /dev/null
@@ -0,0 +1,46 @@
+# Makefile to build an instance of snark14
+
+ROOTDIR    = ../..
+XERCES     = /usr/local/snark14
+
+CC         = gcc
+CXX        = g++
+LD         = g++
+
+LIBDIR    = $(ROOTDIR)/lib
+
+CXXFLAGS  = -O4 -fPIC -DLINUX -D_REENTRANT -w -Wunused-parameter
+
+LDFLAGS   = 
+
+SRC_CXX    = DIGFileSnarkProj.cpp \
+             DIGFileSnarkRec.cpp
+
+OBJ_CXX    = DIGFileSnarkProj.o \
+             DIGFileSnarkRec.o
+
+INCLUDES   = -I/usr/include -I./include -I$(XERCES)/include \
+             -I$(ROOTDIR)/include/DIGFile -I$(ROOTDIR)/include/DIGFileSnark \
+             -I$(ROOTDIR)/include/DIGRand
+
+LIBPATH   = -L$(PREFIX)/lib -L$(XERCES)/lib
+LIBS      = $(LIBPATH) -lm -lxerces-c -lxerces-depdom
+
+TARGET    = $(LIBDIR)/libDIGFileSnark.so
+
+.PHONY: all
+
+all: $(LIBDIR) $(TARGET)
+
+$(TARGET): $(OBJ_CXX)
+       $(LD) --shared $(LIBS) $(LDFLAGS) -o $(TARGET) $(OBJ_CXX)
+
+DIGFileSnarkProj.o : DIGFileSnarkProj.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -o $@ $<
+
+DIGFileSnarkRec.o : DIGFileSnarkRec.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -o $@ $<
+
+clean:
+       @rm -rf $(OBJ_CXX) $(TARGET)
+
diff --git a/src/DIGRand/DIGGauss.cpp b/src/DIGRand/DIGGauss.cpp
new file mode 100644 (file)
index 0000000..29ed23e
--- /dev/null
@@ -0,0 +1,41 @@
+/*      
+ THE POLAR METHOD FOR COMPUTING A NORMALLY DISTRIBUTED RANDOM
+ NUMBER GIVEN A UNIFORMLY DISTRIBUTED RANDOM NUMBER GENERATOR.
+ ALGORITHM P, PAGES 103-104
+ KNUTH, D. E. (1969)
+ THE ART OF COMPUTER PROGRAMMING - VOL 2
+ SEMINUMERICAL ALGORITHMS
+*/
+  
+#include <cmath>
+
+//#include "DIGRand.h"
+#include <DIGRand/DIGRand.h>
+//#include "DIGGauss.h"
+#include <DIGRand/DIGGauss.h>
+
+    
+     
+double Gauss(double mean, double std)
+{
+  static bool    sw = false;
+  static double  s, v1, v2;
+
+  if(!sw) {
+    sw = true;
+    do {
+      v1 = (double) 2.0 * Rand() - (double) 1.0;
+      v2 = (double) 2.0 * Rand() - (double) 1.0;
+      s = v1 * v1 + v2 * v2;
+    }
+    while (s >= 1.0);
+
+    s = (double) sqrt((double) -2.0 * (double) log(s) / s);
+
+    return v1 * s * std + mean;
+  }
+
+  sw = false;
+
+  return v2 * s * std + mean;
+}     
diff --git a/src/DIGRand/DIGPoisson.cpp b/src/DIGRand/DIGPoisson.cpp
new file mode 100644 (file)
index 0000000..04ffa17
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ GENERATE POISSON RANDOM NUMBER IF alambda IS LESS THAN xover
+ OR ELSE GENERATE GAUSSIAN RANDOM NUMBER
+*/
+
+#include <cstdio>
+#include <cmath>
+
+//#include "DIGRand.h"
+#include <DIGRand/DIGRand.h>
+//#include "DIGGauss.h"
+#include <DIGRand/DIGGauss.h>
+//#include "DIGPoisson.h"
+#include <DIGRand/DIGPoisson.h>
+
+
+int Poisson(double pALambda)
+{
+  static const double xover = 36.0;
+
+  int n;
+
+  double a, e, y;
+
+
+  if(pALambda >= xover) {
+    int g = (int) (Gauss(pALambda, (double) sqrt(pALambda)) + 0.5);
+    n = (g > 0) ? g: 0;
+  }
+  else {
+    y = Rand();
+    n = 0;
+    e = (double) exp(-pALambda);
+    a = y;
+
+    while(a >= e) {
+      n++;
+      y = Rand();
+      a *= y;
+    }
+  }
+  return n;
+}      
diff --git a/src/DIGRand/DIGRand.cpp b/src/DIGRand/DIGRand.cpp
new file mode 100644 (file)
index 0000000..469b705
--- /dev/null
@@ -0,0 +1,16 @@
+
+#include <cstdlib>
+
+//#include "DIGRand.h"
+#include <DIGRand/DIGRand.h>
+
+void Srand(unsigned int pSeed)
+{
+  srand(pSeed);
+}
+      
+double Rand(void)
+{
+  return ((double) rand()) / (RAND_MAX + 1.0);
+}
+      
diff --git a/src/DIGRand/Makefile b/src/DIGRand/Makefile
new file mode 100755 (executable)
index 0000000..539c08d
--- /dev/null
@@ -0,0 +1,51 @@
+# Makefile to build an instance of snark14
+
+ROOTDIR    = ../..
+XERCES     = /usr/local/snark14
+
+CC         = gcc
+CXX        = g++
+LD         = g++
+
+LIBDIR    = $(ROOTDIR)/lib
+
+CXXFLAGS  = -O4 -fPIC -DLINUX -D_REENTRANT -w -Wunused-parameter
+
+LDFLAGS   = 
+
+SRC_CXX    = DIGGauss.cpp \
+             DIGPoisson.cpp \
+             DIGRand.cpp
+
+OBJ_CXX    = DIGGauss.o \
+             DIGPoisson.o \
+             DIGRand.o
+
+INCLUDES   = -I/usr/include -I./include -I$(XERCES)/include \
+             -I$(ROOTDIR)/include/DIGFile -I$(ROOTDIR)/include/DIGFileSnark \
+             -I$(ROOTDIR)/include/DIGRand
+
+LIBPATH   = -L$(PREFIX)/lib -L$(XERCES)/lib
+LIBS      = $(LIBPATH) -lm -lxerces-c -lxerces-depdom
+
+TARGET    = $(LIBDIR)/libDIGRand.so
+
+.PHONY: all
+
+all: $(LIBDIR) $(TARGET)
+
+$(TARGET): $(OBJ_CXX)
+       $(LD) --shared $(LIBS) $(LDFLAGS) -o $(TARGET) $(OBJ_CXX)
+
+DIGGauss.o : DIGGauss.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -o $@ $<
+
+DIGPoisson.o : DIGPoisson.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -o $@ $<
+
+DIGRand.o : DIGRand.cpp
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -o $@ $<
+
+clean:
+       @rm -rf $(OBJ_CXX) $(TARGET)
+
diff --git a/src/DIGRand/libDIGRand.so b/src/DIGRand/libDIGRand.so
new file mode 100755 (executable)
index 0000000..6026e55
Binary files /dev/null and b/src/DIGRand/libDIGRand.so differ
diff --git a/src/build/unix/makefile b/src/build/unix/makefile
new file mode 100755 (executable)
index 0000000..f66aafe
--- /dev/null
@@ -0,0 +1,8 @@
+ALL: snark14 
+
+snark14:
+       $(MAKE) -f snark.mk
+
+clean:
+       $(MAKE) -f snark.mk clean
+
diff --git a/src/build/unix/snark.mk b/src/build/unix/snark.mk
new file mode 100755 (executable)
index 0000000..9f3035f
--- /dev/null
@@ -0,0 +1,347 @@
+# 
+#      FOLLOWING ROUTINES ARE USER WRITTEN ROUTINES. THESE 
+#      ROUTINES THE USER HAS TO INSERT INTO THE LIST
+#
+#      USER ROUTINES           CALLED BY
+#      alb1.cpp                exalg.cpp
+#      alb2.cpp                exalg.cpp
+#      alb3.cpp                exalg.cpp
+#      alb4.cpp                exalg.cpp
+#      alb5.cpp                exalg.cpp
+#      alp1.cpp                exalg.cpp
+#      alp2.cpp                exalg.cpp
+#      alp3.cpp                exalg.cpp
+#      alp4.cpp                exalg.cpp
+#      alp5.cpp                exalg.cpp
+#      crset.cpp               xalg1.cpp
+#      dset.cpp                xalg8.cpp
+#      rset.cpp                xalg1.cpp
+#      seset.cpp               xalg8.cpp
+#      sset.cpp                xalg8.cpp
+#      trm1.cpp                exalg.cpp
+#      trm2.cpp                exalg.cpp
+#      tset.cpp                xalg1.cpp
+#      uerror.cpp              xalg8.cpp, costfn.cpp, deset.cpp, mtamxp.cpp, mtamx.cpp 
+#
+
+SNARK14ROOT=../../..
+
+ifndef XERCESLIBDIR
+XERCESLIBDIR = /usr/lib
+endif
+
+ifndef XERCESLIB
+XERCESLIB = xerces-c
+endif
+
+ifndef XERCESINCLUDE
+XERCESINCLUDE = /usr/include/xercesc
+endif
+
+ifndef DIGLIBDIR
+DIGLIBDIR = /usr/lib
+endif
+
+ifndef DIGFILELIB
+DIGFILELIB = DIGFile
+endif
+
+ifndef DIGFILEINCLUDE
+DIGFILEINCLUDE = /usr/include/DIGFile
+endif
+
+ifndef DIGFILESNARKLIB
+DIGFILESNARKLIB = DIGFileSnark
+endif
+
+ifndef DIGFILESNARKINCLUDE
+DIGFILESNARKINCLUDE = /usr/include/DIGFileSnark
+endif
+
+ifndef DIGRANDLIB
+DIGRANDLIB = DIGRand
+endif
+
+ifndef DIGRANDINCLUDE
+DIGRANDINCLUDE = /usr/include/DIGRand
+endif
+
+ifndef CXX
+CXX=g++
+endif
+
+#ifndef CC
+CC=gcc
+#endif
+
+ifndef CXXFLAGS
+CXXFLAGS=-g -std=c++98
+endif
+
+#ifndef CFLAGS
+CFLAGS=-g -std=c99 -D_GNU_SOURCE
+#endif
+
+OUTDIR=$(SNARK14ROOT)/bin
+
+LIBDIR=$(SNARK14ROOT)/lib
+
+INCLUDEDIR = \
+       -I/usr/include \
+       -I$(XERCESINCLUDE)/.. \
+       -I$(DIGFILEINCLUDE) \
+       -I$(DIGFILESNARKINCLUDE) \
+       -I$(DIGRANDINCLUDE) \
+       -I$(SNARK14ROOT)/src/snark \
+       
+SRCDIR=$(SNARK14ROOT)/src/snark
+
+OBJ = \
+       alg.o \
+       alb1.o \
+       alb2.o \
+       alb3.o \
+       alb4.o \
+       alb5.o \
+       alp1.o \
+       alp2.o \
+       alp3.o \
+       alp4.o \
+       alp5.o \
+       anglst.o \
+       art.o \
+       art_artbck.o \
+       art_bkproj.o \
+       art_clip.o \
+       art_crset.o \
+       art_readin.o \
+       art_rset.o \
+       art_tset.o \
+       back.o \
+       basis.o \
+       bbldlst.o \
+       bckprj.o \
+       bdhk.o \
+       bdhk_misl.o \
+       bh_correction.o \
+       bldlst.o \
+       blkdta.o \
+       blob.o \
+       blob_bpix.o \
+       blob_footp.o \
+       blob_functions.o \
+       blob_setparam.o \
+       blob_table.o \
+       blob2pix.o \
+       bpseudo.o \
+       bray.o \
+       bsmooth.o \
+       bwray.o \
+       chtoin.o \
+       cin.o \
+       congeo.o \
+       consts.o \
+       contur.o \
+       conv.o \
+       creacm.o \
+       creaer.o \
+       creaph.o \
+       creapr.o \
+       creatr.o \
+       dcon.o \
+       dcon_dconbl.o \
+       dcon_dconft.o \
+       disp.o \
+       disply.o \
+       dist.o \
+       doline.o \
+       effpick.o \
+       emap.o \
+       emap_CEvalMAP.o \
+       emap_CInitMAP.o \
+       emap_CMAP.o \
+       emap_CReadInp.o \
+       emap_Cwray.o \
+       emap_sscal.o \
+       err.o \
+       errfac.o \
+       errpar.o \
+       eval.o \
+       exalg.o \
+       fft2p.o \
+       file11.o \
+       foru.o \
+       foru_bckwrd.o \
+       foru_error.o \
+       foru_fft.o \
+       foru_forwrd.o \
+       foru_frfilt.o \
+       foru_frinit.o \
+       foru_ftfill.o \
+       foru_ftmap.o \
+       foru_intrpl.o \
+       foru_prjtrn.o \
+       foru_store.o \
+       foru_uint.o \
+       foru_unif.o \
+       foru_vc56.o \
+       foru_vcase1.o \
+       foru_vcase2.o \
+       foru_vcase3.o \
+       foru_vcase4.o \
+       foru_vint14.o \
+       fourie.o \
+       ftodd.o \
+       geom.o \
+       getang.o \
+       getden.o \
+       getint.o \
+       getnum.o \
+       getnxt.o \
+       getwrd.o \
+       halft.o \
+       imagewise_roi.o\
+       infile.o \
+       inputfile.o \
+       int2str.o \
+       lines.o \
+       lino.o \
+       lino_czt.o \
+       lino_sumfac.o \
+       main.o \
+       mart.o \
+       mode.o \
+       modefl.o \
+       noise.o \
+       objects.o \
+       pick.o \
+       pix2blob.o \
+       pnch.o \
+       pnchfile.o \
+       point.o \
+       posit.o \
+       post.o \
+       prdta.o \
+       primfc.o \
+       projfile.o \
+       pseudo.o \
+       qfilt.o \
+       qinit.o \
+       qintp.o \
+       quad.o \
+       quad_adsmos.o \
+       quad_back.o \
+       quad_badsmos.o \
+       quad_blurck.o \
+       quad_bprpict.o \
+       quad_costfn.o \
+       quad_deltac.o \
+       quad_deltad.o \
+       quad_deset.o \
+       quad_dset.o \
+       quad_eigval.o \
+       quad_matrix.o \
+       quad_mtamx.o \
+       quad_mtamxp.o \
+       quad_nextr.o \
+       quad_nxtpct.o \
+       quad_prpict.o \
+       quad_prsemi.o \
+       quad_resedu.o \
+       quad_semi.o \
+       quad_seset.o \
+       quad_sset.o \
+       quad_uerror.o \
+       ray.o \
+       raylen.o \
+       raysel.o \
+       rdpict.o \
+       rdproj.o \
+       recfile.o \
+       region.o \
+       rfl.o \
+       rtfort.o \
+       second.o \
+       select.o \
+       settra.o \
+       sinc.o \
+       sirt.o \
+       smooth.o \
+       snark.o \
+       snfft.o \
+       spctrm.o \
+       stopex.o \
+       subreg.o \
+       term.o \
+       termtest.o \
+       transm.o \
+       trm1.o \
+       trm2.o \
+       trm3.o \
+       uiod.o \
+       unkps.o \
+       wray.o \
+       wrdpack.o \
+       experimenter.o \
+       errorc.o \
+       supersnk.o \
+       get_phantom.o \
+       create_phantom.o \
+       projection.o \
+       recon.o \
+       analysis.o \
+       blanks.o \
+       getfom.o \
+       analyze.o \
+       get_iter_flag.o \
+       read_eval_phantom1.o \
+       stru_acc.o \
+       read_eval_recon1.o \
+       hit_ratio.o \
+       getiters.o \
+       pointwse.o \
+       read_eval_recon2.o \
+       read_eval_recon3.o \
+       analyze2.o \
+       signif1.o \
+       read_fomfile.o \
+       user_fom1.o \
+       user_fom2.o \
+       user_fom3.o \
+       user_fom4.o \
+       user_fom5.o \
+       get_seed.o \
+       check_if_iroi.o 
+#
+LIBS = \
+       -L$(DIGLIBDIR) \
+       -L$(XERCESLIBDIR) \
+       -l$(DIGFILELIB) \
+       -l$(DIGFILESNARKLIB) \
+       -l$(XERCESLIB) \
+       -l$(DIGRANDLIB) \
+       -lm
+
+######################################
+# setings for testing
+#LIBS=/usr/lib/libm.a 
+#FLAGS= -ffloat-store -O0 -DFFCOMPARE
+######################################
+
+ALL: snark14 libsnark14.a
+
+%.o : $(SRCDIR)/%.cpp
+       $(CXX) $(CXXFLAGS) -c $(INCLUDEDIR) $< -o $@
+%.o : $(SRCDIR)/%.c
+       $(CC) $(CFLAGS) -c  $(INCLUDEDIR)  $< -o $@
+
+snark14: $(OBJ)
+       $(CXX) $(LDFLAGS) $(OBJ) -o $(OUTDIR)/snark14 $(LIBS)
+
+libsnark14.a: $(OBJ)
+       ar -rc $(LIBDIR)/libsnark14.a $(OBJ)
+       ranlib $(LIBDIR)/libsnark14.a
+
+clean:
+       rm $(OBJ); rm $(OUTDIR)/snark14
+
diff --git a/src/snark/.deps/BasisFunctionBlob.Po b/src/snark/.deps/BasisFunctionBlob.Po
new file mode 100755 (executable)
index 0000000..37f872b
--- /dev/null
@@ -0,0 +1,13 @@
+build/BasisFunctionBlob.o: src/snark/BasisFunctionBlob.cpp \
+ /usr/include/stdc-predef.h src/snark/BasisFunctionBlob.h \
+ src/snark/GeometricBehaviour.h src/snark/blkdta.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/BasisFunctionBlob.h:
+
+src/snark/GeometricBehaviour.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/BasisFunctionPixel.Po b/src/snark/.deps/BasisFunctionPixel.Po
new file mode 100755 (executable)
index 0000000..5ff9ed1
--- /dev/null
@@ -0,0 +1,18 @@
+build/BasisFunctionPixel.o: src/snark/BasisFunctionPixel.cpp \
+ /usr/include/stdc-predef.h src/snark/BasisFunctionPixel.h \
+ src/snark/GeometricBehaviour.h src/snark/blkdta.h src/snark/wray.h \
+ src/snark/anglst.h src/snark/geom.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/BasisFunctionPixel.h:
+
+src/snark/GeometricBehaviour.h:
+
+src/snark/blkdta.h:
+
+src/snark/wray.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
diff --git a/src/snark/.deps/DistanceMeasure.Po b/src/snark/.deps/DistanceMeasure.Po
new file mode 100755 (executable)
index 0000000..fea29a9
--- /dev/null
@@ -0,0 +1,11 @@
+build/DistanceMeasure.o: src/snark/DistanceMeasure.cpp \
+ /usr/include/stdc-predef.h src/snark/DistanceMeasure.h \
+ src/snark/blkdta.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/DistanceMeasure.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/DistanceMeasurePixel.Po b/src/snark/.deps/DistanceMeasurePixel.Po
new file mode 100755 (executable)
index 0000000..d54506f
--- /dev/null
@@ -0,0 +1,16 @@
+build/DistanceMeasurePixel.o: src/snark/DistanceMeasurePixel.cpp \
+ /usr/include/stdc-predef.h src/snark/DistanceMeasurePixel.h \
+ src/snark/blkdta.h src/snark/DistanceMeasure.h src/snark/blob.h \
+ src/snark/geom.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/DistanceMeasurePixel.h:
+
+src/snark/blkdta.h:
+
+src/snark/DistanceMeasure.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
diff --git a/src/snark/.deps/DistanceMeasureWSQD.Po b/src/snark/.deps/DistanceMeasureWSQD.Po
new file mode 100755 (executable)
index 0000000..4346658
--- /dev/null
@@ -0,0 +1,220 @@
+build/DistanceMeasureWSQD.o: src/snark/DistanceMeasureWSQD.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/math.h \
+ /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ src/snark/DistanceMeasureWSQD.h src/snark/blkdta.h \
+ src/snark/DistanceMeasurePixel.h src/snark/DistanceMeasure.h \
+ src/snark/anglst.h src/snark/geom.h src/snark/pseudo.h \
+ src/snark/consts.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/DistanceMeasureWSQD.h:
+
+src/snark/blkdta.h:
+
+src/snark/DistanceMeasurePixel.h:
+
+src/snark/DistanceMeasure.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/pseudo.h:
+
+src/snark/consts.h:
diff --git a/src/snark/.deps/GeometricBehaviour.Po b/src/snark/.deps/GeometricBehaviour.Po
new file mode 100755 (executable)
index 0000000..8ffcb08
--- /dev/null
@@ -0,0 +1,21 @@
+build/GeometricBehaviour.o: src/snark/GeometricBehaviour.cpp \
+ /usr/include/stdc-predef.h src/snark/GeometricBehaviour.h \
+ src/snark/blkdta.h src/snark/BasisFunctionPixel.h \
+ src/snark/BasisFunctionBlob.h src/snark/blob.h src/snark/anglst.h \
+ src/snark/geom.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/GeometricBehaviour.h:
+
+src/snark/blkdta.h:
+
+src/snark/BasisFunctionPixel.h:
+
+src/snark/BasisFunctionBlob.h:
+
+src/snark/blob.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
diff --git a/src/snark/.deps/SARTConfig.Po b/src/snark/.deps/SARTConfig.Po
new file mode 100755 (executable)
index 0000000..d8bd435
--- /dev/null
@@ -0,0 +1,92 @@
+build/SARTConfig.o: src/snark/SARTConfig.cpp /usr/include/stdc-predef.h \
+ src/snark/SARTConfig.h src/snark/blkdta.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/uiod.h \
+ src/snark/int2str.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/consts.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/SARTConfig.h:
+
+src/snark/blkdta.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/consts.h:
diff --git a/src/snark/.deps/TerminationCriterion.Po b/src/snark/.deps/TerminationCriterion.Po
new file mode 100755 (executable)
index 0000000..74cbe29
--- /dev/null
@@ -0,0 +1,195 @@
+build/TerminationCriterion.o: src/snark/TerminationCriterion.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h src/snark/consts.h src/snark/blkdta.h \
+ src/snark/infile.h src/snark/inputfile.h \
+ src/snark/TerminationCriterion.h src/snark/termtest.h \
+ src/snark/DistanceMeasure.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+src/snark/consts.h:
+
+src/snark/blkdta.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/TerminationCriterion.h:
+
+src/snark/termtest.h:
+
+src/snark/DistanceMeasure.h:
diff --git a/src/snark/.deps/alb1.Po b/src/snark/.deps/alb1.Po
new file mode 100755 (executable)
index 0000000..a43f733
--- /dev/null
@@ -0,0 +1,85 @@
+build/alb1.o: src/snark/alb1.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alb1.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alb1.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/alb2.Po b/src/snark/.deps/alb2.Po
new file mode 100755 (executable)
index 0000000..d3bf9ae
--- /dev/null
@@ -0,0 +1,85 @@
+build/alb2.o: src/snark/alb2.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alb2.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alb2.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/alb3.Po b/src/snark/.deps/alb3.Po
new file mode 100755 (executable)
index 0000000..9d349ae
--- /dev/null
@@ -0,0 +1,85 @@
+build/alb3.o: src/snark/alb3.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alb3.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alb3.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/alb4.Po b/src/snark/.deps/alb4.Po
new file mode 100755 (executable)
index 0000000..87d62c1
--- /dev/null
@@ -0,0 +1,85 @@
+build/alb4.o: src/snark/alb4.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alb4.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alb4.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/alb5.Po b/src/snark/.deps/alb5.Po
new file mode 100755 (executable)
index 0000000..c48b6c6
--- /dev/null
@@ -0,0 +1,85 @@
+build/alb5.o: src/snark/alb5.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alb5.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alb5.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/alg.Po b/src/snark/.deps/alg.Po
new file mode 100755 (executable)
index 0000000..69e9d71
--- /dev/null
@@ -0,0 +1,8 @@
+build/alg.o: src/snark/alg.cpp /usr/include/stdc-predef.h src/snark/alg.h \
+ src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/alg.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/alp1.Po b/src/snark/.deps/alp1.Po
new file mode 100755 (executable)
index 0000000..c85c030
--- /dev/null
@@ -0,0 +1,85 @@
+build/alp1.o: src/snark/alp1.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alp1.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alp1.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/alp2.Po b/src/snark/.deps/alp2.Po
new file mode 100755 (executable)
index 0000000..ab2c689
--- /dev/null
@@ -0,0 +1,85 @@
+build/alp2.o: src/snark/alp2.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alp2.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alp2.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/alp3.Po b/src/snark/.deps/alp3.Po
new file mode 100755 (executable)
index 0000000..1b97f7a
--- /dev/null
@@ -0,0 +1,85 @@
+build/alp3.o: src/snark/alp3.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alp3.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alp3.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/alp4.Po b/src/snark/.deps/alp4.Po
new file mode 100755 (executable)
index 0000000..cd455d3
--- /dev/null
@@ -0,0 +1,85 @@
+build/alp4.o: src/snark/alp4.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alp4.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alp4.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/alp5.Po b/src/snark/.deps/alp5.Po
new file mode 100755 (executable)
index 0000000..90bc9dc
--- /dev/null
@@ -0,0 +1,85 @@
+build/alp5.o: src/snark/alp5.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/alp5.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/alp5.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/analysis.Po b/src/snark/.deps/analysis.Po
new file mode 100755 (executable)
index 0000000..6c42bd2
--- /dev/null
@@ -0,0 +1,215 @@
+build/analysis.o: src/snark/analysis.c /usr/include/stdc-predef.h \
+ /usr/include/strings.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/analysis.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/strings.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/analysis.h:
diff --git a/src/snark/.deps/analyze.Po b/src/snark/.deps/analyze.Po
new file mode 100755 (executable)
index 0000000..2897ac0
--- /dev/null
@@ -0,0 +1,255 @@
+build/analyze.o: src/snark/analyze.c /usr/include/stdc-predef.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/malloc.h \
+ /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/getfom.h \
+ src/snark/stru_acc.h src/snark/hit_ratio.h src/snark/imagewise_roi.h \
+ src/snark/pointwse.h src/snark/fom_klds.h \
+ src/snark/fom_weighted_squared_distance.h src/snark/user_fom1.h \
+ src/snark/user_fom2.h src/snark/user_fom3.h src/snark/user_fom4.h \
+ src/snark/user_fom5.h src/snark/getiters.h src/snark/errorc.h \
+ src/snark/analyze.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/malloc.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/getfom.h:
+
+src/snark/stru_acc.h:
+
+src/snark/hit_ratio.h:
+
+src/snark/imagewise_roi.h:
+
+src/snark/pointwse.h:
+
+src/snark/fom_klds.h:
+
+src/snark/fom_weighted_squared_distance.h:
+
+src/snark/user_fom1.h:
+
+src/snark/user_fom2.h:
+
+src/snark/user_fom3.h:
+
+src/snark/user_fom4.h:
+
+src/snark/user_fom5.h:
+
+src/snark/getiters.h:
+
+src/snark/errorc.h:
+
+src/snark/analyze.h:
diff --git a/src/snark/.deps/analyze2.Po b/src/snark/.deps/analyze2.Po
new file mode 100755 (executable)
index 0000000..c94552a
--- /dev/null
@@ -0,0 +1,230 @@
+build/analyze2.o: src/snark/analyze2.c /usr/include/stdc-predef.h \
+ /usr/include/malloc.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/getfom.h \
+ src/snark/getiters.h src/snark/errorc.h src/snark/signif1.h \
+ src/snark/analyze2.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/malloc.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/getfom.h:
+
+src/snark/getiters.h:
+
+src/snark/errorc.h:
+
+src/snark/signif1.h:
+
+src/snark/analyze2.h:
diff --git a/src/snark/.deps/anglst.Po b/src/snark/.deps/anglst.Po
new file mode 100755 (executable)
index 0000000..30179aa
--- /dev/null
@@ -0,0 +1,240 @@
+build/anglst.o: src/snark/anglst.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/consts.h src/snark/anglst.h src/snark/geom.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
diff --git a/src/snark/.deps/art.Po b/src/snark/.deps/art.Po
new file mode 100755 (executable)
index 0000000..74d63ed
--- /dev/null
@@ -0,0 +1,263 @@
+build/art.o: src/snark/art.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/blob.h src/snark/geom.h src/snark/fourie.h src/snark/modefl.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/anglst.h \
+ src/snark/errfac.h src/snark/errpar.h src/snark/pick.h \
+ src/snark/pseudo.h src/snark/art.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/fourie.h:
+
+src/snark/modefl.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
+
+src/snark/errfac.h:
+
+src/snark/errpar.h:
+
+src/snark/pick.h:
+
+src/snark/pseudo.h:
+
+src/snark/art.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/art_artbck.Po b/src/snark/.deps/art_artbck.Po
new file mode 100755 (executable)
index 0000000..d46fc9e
--- /dev/null
@@ -0,0 +1,85 @@
+build/art_artbck.o: src/snark/art_artbck.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/modefl.h src/snark/art.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/modefl.h:
+
+src/snark/art.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/art_bkproj.Po b/src/snark/.deps/art_bkproj.Po
new file mode 100755 (executable)
index 0000000..85a1642
--- /dev/null
@@ -0,0 +1,242 @@
+build/art_bkproj.o: src/snark/art_bkproj.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/geom.h src/snark/art.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/geom.h:
+
+src/snark/art.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/art_clip.Po b/src/snark/.deps/art_clip.Po
new file mode 100755 (executable)
index 0000000..a5b6978
--- /dev/null
@@ -0,0 +1,85 @@
+build/art_clip.o: src/snark/art_clip.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/modefl.h src/snark/art.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/modefl.h:
+
+src/snark/art.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/art_crset.Po b/src/snark/.deps/art_crset.Po
new file mode 100755 (executable)
index 0000000..b34e369
--- /dev/null
@@ -0,0 +1,85 @@
+build/art_crset.o: src/snark/art_crset.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/art.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/art.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/art_readin.Po b/src/snark/.deps/art_readin.Po
new file mode 100755 (executable)
index 0000000..52b532a
--- /dev/null
@@ -0,0 +1,101 @@
+build/art_readin.o: src/snark/art_readin.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/modefl.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/int2str.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/raysel.h src/snark/art.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/modefl.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/raysel.h:
+
+src/snark/art.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/art_rset.Po b/src/snark/.deps/art_rset.Po
new file mode 100755 (executable)
index 0000000..310ac15
--- /dev/null
@@ -0,0 +1,85 @@
+build/art_rset.o: src/snark/art_rset.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/art.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/art.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/art_tset.Po b/src/snark/.deps/art_tset.Po
new file mode 100755 (executable)
index 0000000..3946630
--- /dev/null
@@ -0,0 +1,85 @@
+build/art_tset.o: src/snark/art_tset.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/art.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/art.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/back.Po b/src/snark/.deps/back.Po
new file mode 100755 (executable)
index 0000000..245fb2e
--- /dev/null
@@ -0,0 +1,1021 @@
+build/back.o: src/snark/back.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/spctrm.h src/snark/fourie.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/bckprj.h \
+ src/snark/anglst.h src/snark/ray.h src/snark/wray.h src/snark/projfile.h \
+ src/snark/noise.h include/DIGFileSnark/DIGFileSnarkProj.h \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/back.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/bckprj.h:
+
+src/snark/anglst.h:
+
+src/snark/ray.h:
+
+src/snark/wray.h:
+
+src/snark/projfile.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/back.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/basis.Po b/src/snark/.deps/basis.Po
new file mode 100755 (executable)
index 0000000..b257c0c
--- /dev/null
@@ -0,0 +1,254 @@
+build/basis.o: src/snark/basis.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/c++/7/cstdlib \
+ src/snark/consts.h src/snark/blkdta.h src/snark/blob.h src/snark/geom.h \
+ src/snark/basis.h src/snark/uiod.h src/snark/int2str.h \
+ src/snark/infile.h src/snark/inputfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+src/snark/consts.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/basis.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
diff --git a/src/snark/.deps/bbldlst.Po b/src/snark/.deps/bbldlst.Po
new file mode 100755 (executable)
index 0000000..52cc5fc
--- /dev/null
@@ -0,0 +1,187 @@
+build/bbldlst.o: src/snark/bbldlst.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/blob.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/bckprj.Po b/src/snark/.deps/bckprj.Po
new file mode 100755 (executable)
index 0000000..6b9fed7
--- /dev/null
@@ -0,0 +1,83 @@
+build/bckprj.o: src/snark/bckprj.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/qintp.h src/snark/bckprj.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/qintp.h:
+
+src/snark/bckprj.h:
diff --git a/src/snark/.deps/bdhk.Po b/src/snark/.deps/bdhk.Po
new file mode 100755 (executable)
index 0000000..39b22bb
--- /dev/null
@@ -0,0 +1,641 @@
+build/bdhk.o: src/snark/bdhk.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/blob.h src/snark/geom.h src/snark/fourie.h src/snark/modefl.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/anglst.h \
+ src/snark/errfac.h src/snark/errpar.h src/snark/pick.h \
+ src/snark/pseudo.h /usr/include/c++/7/iostream \
+ /usr/include/c++/7/ostream /usr/include/c++/7/ios \
+ /usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
+ /usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
+ /usr/include/c++/7/cwchar /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cstdlib \
+ /usr/include/c++/7/cerrno /usr/include/errno.h \
+ /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc src/snark/infile.h \
+ src/snark/inputfile.h /usr/include/c++/7/iomanip \
+ /usr/include/c++/7/locale /usr/include/c++/7/bits/locale_facets_nonio.h \
+ /usr/include/c++/7/ctime \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/time_members.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/messages_members.h \
+ /usr/include/libintl.h /usr/include/c++/7/bits/codecvt.h \
+ /usr/include/c++/7/bits/locale_facets_nonio.tcc \
+ /usr/include/c++/7/bits/locale_conv.h \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/allocator.h \
+ /usr/include/c++/7/bits/codecvt.h /usr/include/c++/7/bits/unique_ptr.h \
+ /usr/include/c++/7/utility /usr/include/c++/7/bits/stl_relops.h \
+ /usr/include/c++/7/tuple /usr/include/c++/7/array \
+ /usr/include/c++/7/bits/uses_allocator.h \
+ /usr/include/c++/7/bits/invoke.h /usr/include/c++/7/bits/quoted_string.h \
+ /usr/include/c++/7/sstream /usr/include/c++/7/bits/sstream.tcc \
+ /usr/include/c++/7/fstream \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/basic_file.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++io.h \
+ /usr/include/c++/7/bits/fstream.tcc src/snark/second.h src/snark/wray.h \
+ src/snark/raysel.h src/snark/bdhk.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/fourie.h:
+
+src/snark/modefl.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
+
+src/snark/errfac.h:
+
+src/snark/errpar.h:
+
+src/snark/pick.h:
+
+src/snark/pseudo.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+/usr/include/c++/7/iomanip:
+
+/usr/include/c++/7/locale:
+
+/usr/include/c++/7/bits/locale_facets_nonio.h:
+
+/usr/include/c++/7/ctime:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/time_members.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/messages_members.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/7/bits/codecvt.h:
+
+/usr/include/c++/7/bits/locale_facets_nonio.tcc:
+
+/usr/include/c++/7/bits/locale_conv.h:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/c++/7/bits/codecvt.h:
+
+/usr/include/c++/7/bits/unique_ptr.h:
+
+/usr/include/c++/7/utility:
+
+/usr/include/c++/7/bits/stl_relops.h:
+
+/usr/include/c++/7/tuple:
+
+/usr/include/c++/7/array:
+
+/usr/include/c++/7/bits/uses_allocator.h:
+
+/usr/include/c++/7/bits/invoke.h:
+
+/usr/include/c++/7/bits/quoted_string.h:
+
+/usr/include/c++/7/sstream:
+
+/usr/include/c++/7/bits/sstream.tcc:
+
+/usr/include/c++/7/fstream:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/basic_file.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++io.h:
+
+/usr/include/c++/7/bits/fstream.tcc:
+
+src/snark/second.h:
+
+src/snark/wray.h:
+
+src/snark/raysel.h:
+
+src/snark/bdhk.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/bdhk_misl.Po b/src/snark/.deps/bdhk_misl.Po
new file mode 100755 (executable)
index 0000000..9022f64
--- /dev/null
@@ -0,0 +1,641 @@
+build/bdhk_misl.o: src/snark/bdhk_misl.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/blob.h src/snark/geom.h src/snark/fourie.h src/snark/modefl.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/anglst.h \
+ src/snark/errfac.h src/snark/errpar.h src/snark/pick.h \
+ src/snark/pseudo.h /usr/include/c++/7/iostream \
+ /usr/include/c++/7/ostream /usr/include/c++/7/ios \
+ /usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
+ /usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
+ /usr/include/c++/7/cwchar /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cstdlib \
+ /usr/include/c++/7/cerrno /usr/include/errno.h \
+ /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc src/snark/infile.h \
+ src/snark/inputfile.h /usr/include/c++/7/iomanip \
+ /usr/include/c++/7/locale /usr/include/c++/7/bits/locale_facets_nonio.h \
+ /usr/include/c++/7/ctime \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/time_members.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/messages_members.h \
+ /usr/include/libintl.h /usr/include/c++/7/bits/codecvt.h \
+ /usr/include/c++/7/bits/locale_facets_nonio.tcc \
+ /usr/include/c++/7/bits/locale_conv.h \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/allocator.h \
+ /usr/include/c++/7/bits/codecvt.h /usr/include/c++/7/bits/unique_ptr.h \
+ /usr/include/c++/7/utility /usr/include/c++/7/bits/stl_relops.h \
+ /usr/include/c++/7/tuple /usr/include/c++/7/array \
+ /usr/include/c++/7/bits/uses_allocator.h \
+ /usr/include/c++/7/bits/invoke.h /usr/include/c++/7/bits/quoted_string.h \
+ /usr/include/c++/7/sstream /usr/include/c++/7/bits/sstream.tcc \
+ /usr/include/c++/7/fstream \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/basic_file.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++io.h \
+ /usr/include/c++/7/bits/fstream.tcc src/snark/second.h src/snark/wray.h \
+ src/snark/raysel.h src/snark/bdhk.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/fourie.h:
+
+src/snark/modefl.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
+
+src/snark/errfac.h:
+
+src/snark/errpar.h:
+
+src/snark/pick.h:
+
+src/snark/pseudo.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+/usr/include/c++/7/iomanip:
+
+/usr/include/c++/7/locale:
+
+/usr/include/c++/7/bits/locale_facets_nonio.h:
+
+/usr/include/c++/7/ctime:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/time_members.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/messages_members.h:
+
+/usr/include/libintl.h:
+
+/usr/include/c++/7/bits/codecvt.h:
+
+/usr/include/c++/7/bits/locale_facets_nonio.tcc:
+
+/usr/include/c++/7/bits/locale_conv.h:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/c++/7/bits/codecvt.h:
+
+/usr/include/c++/7/bits/unique_ptr.h:
+
+/usr/include/c++/7/utility:
+
+/usr/include/c++/7/bits/stl_relops.h:
+
+/usr/include/c++/7/tuple:
+
+/usr/include/c++/7/array:
+
+/usr/include/c++/7/bits/uses_allocator.h:
+
+/usr/include/c++/7/bits/invoke.h:
+
+/usr/include/c++/7/bits/quoted_string.h:
+
+/usr/include/c++/7/sstream:
+
+/usr/include/c++/7/bits/sstream.tcc:
+
+/usr/include/c++/7/fstream:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/basic_file.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++io.h:
+
+/usr/include/c++/7/bits/fstream.tcc:
+
+src/snark/second.h:
+
+src/snark/wray.h:
+
+src/snark/raysel.h:
+
+src/snark/bdhk.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/bh_correction.Po b/src/snark/.deps/bh_correction.Po
new file mode 100755 (executable)
index 0000000..946c83b
--- /dev/null
@@ -0,0 +1,1053 @@
+build/bh_correction.o: src/snark/bh_correction.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/unistd.h \
+ /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
+ /usr/include/x86_64-linux-gnu/bits/environments.h \
+ /usr/include/x86_64-linux-gnu/bits/confname.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_core.h \
+ /usr/include/x86_64-linux-gnu/bits/unistd.h /usr/include/c++/7/fstream \
+ /usr/include/c++/7/istream /usr/include/c++/7/ios \
+ /usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
+ /usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
+ /usr/include/c++/7/cwchar /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc /usr/include/c++/7/ostream \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/bits/istream.tcc \
+ /usr/include/c++/7/bits/codecvt.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/basic_file.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++io.h \
+ /usr/include/c++/7/bits/fstream.tcc /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/bh_correction.h src/snark/creacm.h src/snark/blkdta.h \
+ src/snark/spctrm.h src/snark/uiod.h src/snark/snark.h \
+ src/snark/recfile.h include/DIGFileSnark/DIGFileSnarkRec.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/file11.h src/snark/inputfile.h src/snark/projfile.h \
+ src/snark/geom.h src/snark/noise.h src/snark/anglst.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h src/snark/infile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/unistd.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
+
+/usr/include/x86_64-linux-gnu/bits/environments.h:
+
+/usr/include/x86_64-linux-gnu/bits/confname.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
+
+/usr/include/x86_64-linux-gnu/bits/unistd.h:
+
+/usr/include/c++/7/fstream:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/include/c++/7/bits/codecvt.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/basic_file.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++io.h:
+
+/usr/include/c++/7/bits/fstream.tcc:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/bh_correction.h:
+
+src/snark/creacm.h:
+
+src/snark/blkdta.h:
+
+src/snark/spctrm.h:
+
+src/snark/uiod.h:
+
+src/snark/snark.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/file11.h:
+
+src/snark/inputfile.h:
+
+src/snark/projfile.h:
+
+src/snark/geom.h:
+
+src/snark/noise.h:
+
+src/snark/anglst.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+src/snark/infile.h:
diff --git a/src/snark/.deps/blanks.Po b/src/snark/.deps/blanks.Po
new file mode 100755 (executable)
index 0000000..1d4aef9
--- /dev/null
@@ -0,0 +1,46 @@
+build/blanks.o: src/snark/blanks.c /usr/include/stdc-predef.h \
+ /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/snark/blanks.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/blanks.h:
diff --git a/src/snark/.deps/bldlst.Po b/src/snark/.deps/bldlst.Po
new file mode 100755 (executable)
index 0000000..6406f52
--- /dev/null
@@ -0,0 +1,242 @@
+build/bldlst.o: src/snark/bldlst.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/uiod.h src/snark/bldlst.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+src/snark/bldlst.h:
diff --git a/src/snark/.deps/blkdta.Po b/src/snark/.deps/blkdta.Po
new file mode 100755 (executable)
index 0000000..6f99f62
--- /dev/null
@@ -0,0 +1,78 @@
+build/blkdta.o: src/snark/blkdta.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/blob.Po b/src/snark/.deps/blob.Po
new file mode 100755 (executable)
index 0000000..d9091a0
--- /dev/null
@@ -0,0 +1,236 @@
+build/blob.o: src/snark/blob.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/blob2pix.Po b/src/snark/.deps/blob2pix.Po
new file mode 100755 (executable)
index 0000000..88ab8e7
--- /dev/null
@@ -0,0 +1,238 @@
+build/blob2pix.o: src/snark/blob2pix.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/blob.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/blob_bpix.Po b/src/snark/.deps/blob_bpix.Po
new file mode 100755 (executable)
index 0000000..acea8c7
--- /dev/null
@@ -0,0 +1,242 @@
+build/blob_bpix.o: src/snark/blob_bpix.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/blob.h src/snark/geom.h src/snark/consts.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/blob_footp.Po b/src/snark/.deps/blob_footp.Po
new file mode 100755 (executable)
index 0000000..cd57598
--- /dev/null
@@ -0,0 +1,242 @@
+build/blob_footp.o: src/snark/blob_footp.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/blob.h src/snark/geom.h src/snark/consts.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/blob_functions.Po b/src/snark/.deps/blob_functions.Po
new file mode 100755 (executable)
index 0000000..01fec05
--- /dev/null
@@ -0,0 +1,238 @@
+build/blob_functions.o: src/snark/blob_functions.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/consts.h \
+ src/snark/blkdta.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/consts.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/blob_setparam.Po b/src/snark/.deps/blob_setparam.Po
new file mode 100755 (executable)
index 0000000..fe55e7f
--- /dev/null
@@ -0,0 +1,242 @@
+build/blob_setparam.o: src/snark/blob_setparam.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/blob.h src/snark/geom.h src/snark/consts.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/blob_table.Po b/src/snark/.deps/blob_table.Po
new file mode 100755 (executable)
index 0000000..efc2485
--- /dev/null
@@ -0,0 +1,240 @@
+build/blob_table.o: src/snark/blob_table.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/blob.h src/snark/geom.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/bpseudo.Po b/src/snark/.deps/bpseudo.Po
new file mode 100755 (executable)
index 0000000..5ee2cb4
--- /dev/null
@@ -0,0 +1,85 @@
+build/bpseudo.o: src/snark/bpseudo.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/modefl.h src/snark/blob.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/modefl.h:
+
+src/snark/blob.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/bray.Po b/src/snark/.deps/bray.Po
new file mode 100755 (executable)
index 0000000..211fd9a
--- /dev/null
@@ -0,0 +1,252 @@
+build/bray.o: src/snark/bray.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/c++/7/stdlib.h \
+ /usr/include/c++/7/cstdlib src/snark/consts.h src/snark/blkdta.h \
+ src/snark/blob.h src/snark/geom.h src/snark/posit.h src/snark/anglst.h \
+ src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+src/snark/consts.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/posit.h:
+
+src/snark/anglst.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/bsmooth.Po b/src/snark/.deps/bsmooth.Po
new file mode 100755 (executable)
index 0000000..ab01929
--- /dev/null
@@ -0,0 +1,240 @@
+build/bsmooth.o: src/snark/bsmooth.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/bwray.Po b/src/snark/.deps/bwray.Po
new file mode 100755 (executable)
index 0000000..fc3b53d
--- /dev/null
@@ -0,0 +1,251 @@
+build/bwray.o: src/snark/bwray.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/consts.h \
+ src/snark/blkdta.h src/snark/blob.h src/snark/posit.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/uiod.h src/snark/raylen.h src/snark/objects.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/consts.h:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/posit.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+src/snark/raylen.h:
+
+src/snark/objects.h:
diff --git a/src/snark/.deps/check_if_iroi.Po b/src/snark/.deps/check_if_iroi.Po
new file mode 100755 (executable)
index 0000000..01f9d7e
--- /dev/null
@@ -0,0 +1,225 @@
+build/check_if_iroi.o: src/snark/check_if_iroi.c \
+ /usr/include/stdc-predef.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/check_if_iroi.h src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/analyze.h src/snark/getfom.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/check_if_iroi.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/analyze.h:
+
+src/snark/getfom.h:
diff --git a/src/snark/.deps/chtoin.Po b/src/snark/.deps/chtoin.Po
new file mode 100755 (executable)
index 0000000..f8c9caa
--- /dev/null
@@ -0,0 +1,81 @@
+build/chtoin.o: src/snark/chtoin.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/chtoin.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/chtoin.h:
diff --git a/src/snark/.deps/cin.Po b/src/snark/.deps/cin.Po
new file mode 100755 (executable)
index 0000000..34f3827
--- /dev/null
@@ -0,0 +1,236 @@
+build/cin.o: src/snark/cin.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/cin.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/cin.h:
diff --git a/src/snark/.deps/congeo.Po b/src/snark/.deps/congeo.Po
new file mode 100755 (executable)
index 0000000..8d35ab9
--- /dev/null
@@ -0,0 +1,83 @@
+build/congeo.o: src/snark/congeo.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/congeo.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/congeo.h:
diff --git a/src/snark/.deps/consts.Po b/src/snark/.deps/consts.Po
new file mode 100755 (executable)
index 0000000..3f31bf8
--- /dev/null
@@ -0,0 +1,8 @@
+build/consts.o: src/snark/consts.cpp /usr/include/stdc-predef.h \
+ src/snark/consts.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/consts.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/contur.Po b/src/snark/.deps/contur.Po
new file mode 100755 (executable)
index 0000000..e733a72
--- /dev/null
@@ -0,0 +1,245 @@
+build/contur.o: src/snark/contur.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h /usr/include/c++/7/math.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/consts.h \
+ src/snark/uiod.h src/snark/contur.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/contur.h:
diff --git a/src/snark/.deps/conv.Po b/src/snark/.deps/conv.Po
new file mode 100755 (executable)
index 0000000..74256ab
--- /dev/null
@@ -0,0 +1,1022 @@
+build/conv.o: src/snark/conv.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/spctrm.h src/snark/fourie.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/int2str.h \
+ src/snark/anglst.h src/snark/bckprj.h src/snark/qinit.h \
+ src/snark/projfile.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/conv.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/anglst.h:
+
+src/snark/bckprj.h:
+
+src/snark/qinit.h:
+
+src/snark/projfile.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/conv.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/creacm.Po b/src/snark/.deps/creacm.Po
new file mode 100755 (executable)
index 0000000..0617378
--- /dev/null
@@ -0,0 +1,81 @@
+build/creacm.o: src/snark/creacm.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/creacm.h \
+ src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/creacm.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/creaer.Po b/src/snark/.deps/creaer.Po
new file mode 100755 (executable)
index 0000000..a3e3e1b
--- /dev/null
@@ -0,0 +1,190 @@
+build/creaer.o: src/snark/creaer.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/creacm.h src/snark/uiod.h src/snark/int2str.h \
+ src/snark/creaer.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/creaer.h:
diff --git a/src/snark/.deps/creaph.Po b/src/snark/.deps/creaph.Po
new file mode 100755 (executable)
index 0000000..8cc2a4d
--- /dev/null
@@ -0,0 +1,289 @@
+build/creaph.o: src/snark/creaph.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/time.h /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ src/snark/blkdta.h src/snark/creacm.h src/snark/geom.h \
+ src/snark/objects.h src/snark/uiod.h src/snark/file11.h \
+ src/snark/inputfile.h src/snark/creaph.h /usr/include/assert.h \
+ include/DIGRand/DIGGauss.h include/DIGRand/DIGRand.h src/snark/consts.h \
+ src/snark/spctrm.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/geom.h:
+
+src/snark/objects.h:
+
+src/snark/uiod.h:
+
+src/snark/file11.h:
+
+src/snark/inputfile.h:
+
+src/snark/creaph.h:
+
+/usr/include/assert.h:
+
+include/DIGRand/DIGGauss.h:
+
+include/DIGRand/DIGRand.h:
+
+src/snark/consts.h:
+
+src/snark/spctrm.h:
diff --git a/src/snark/.deps/creapr.Po b/src/snark/.deps/creapr.Po
new file mode 100755 (executable)
index 0000000..d80ea63
--- /dev/null
@@ -0,0 +1,292 @@
+build/creapr.o: src/snark/creapr.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ src/snark/blkdta.h src/snark/creacm.h src/snark/geom.h \
+ src/snark/spctrm.h src/snark/noise.h src/snark/consts.h src/snark/uiod.h \
+ include/DIGRand/DIGGauss.h include/DIGRand/DIGRand.h \
+ include/DIGRand/DIGPoisson.h src/snark/posit.h src/snark/anglst.h \
+ src/snark/raylen.h src/snark/objects.h src/snark/file11.h \
+ src/snark/inputfile.h src/snark/creapr.h src/snark/ray.h \
+ src/snark/wray.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+include/DIGRand/DIGGauss.h:
+
+include/DIGRand/DIGRand.h:
+
+include/DIGRand/DIGPoisson.h:
+
+src/snark/posit.h:
+
+src/snark/anglst.h:
+
+src/snark/raylen.h:
+
+src/snark/objects.h:
+
+src/snark/file11.h:
+
+src/snark/inputfile.h:
+
+src/snark/creapr.h:
+
+src/snark/ray.h:
+
+src/snark/wray.h:
diff --git a/src/snark/.deps/create_phantom.Po b/src/snark/.deps/create_phantom.Po
new file mode 100755 (executable)
index 0000000..db1206a
--- /dev/null
@@ -0,0 +1,222 @@
+build/create_phantom.o: src/snark/create_phantom.c \
+ /usr/include/stdc-predef.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/experimenter.h \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blanks.h \
+ src/snark/errorc.h src/snark/create_phantom.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blanks.h:
+
+src/snark/errorc.h:
+
+src/snark/create_phantom.h:
diff --git a/src/snark/.deps/creatr.Po b/src/snark/.deps/creatr.Po
new file mode 100755 (executable)
index 0000000..ed1a325
--- /dev/null
@@ -0,0 +1,206 @@
+build/creatr.o: src/snark/creatr.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/creacm.h src/snark/uiod.h src/snark/geom.h src/snark/creatr.h \
+ src/snark/creaer.h src/snark/creaph.h src/snark/creapr.h \
+ src/snark/second.h src/snark/file11.h src/snark/inputfile.h \
+ src/snark/infile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/uiod.h:
+
+src/snark/geom.h:
+
+src/snark/creatr.h:
+
+src/snark/creaer.h:
+
+src/snark/creaph.h:
+
+src/snark/creapr.h:
+
+src/snark/second.h:
+
+src/snark/file11.h:
+
+src/snark/inputfile.h:
+
+src/snark/infile.h:
diff --git a/src/snark/.deps/dcon.Po b/src/snark/.deps/dcon.Po
new file mode 100755 (executable)
index 0000000..4e5a5ee
--- /dev/null
@@ -0,0 +1,1016 @@
+build/dcon.o: src/snark/dcon.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/spctrm.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/anglst.h src/snark/qintp.h src/snark/second.h \
+ src/snark/projfile.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/dcon.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
+
+src/snark/qintp.h:
+
+src/snark/second.h:
+
+src/snark/projfile.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/dcon.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/dcon_dconbl.Po b/src/snark/.deps/dcon_dconbl.Po
new file mode 100755 (executable)
index 0000000..901c82e
--- /dev/null
@@ -0,0 +1,1012 @@
+build/dcon_dconbl.o: src/snark/dcon_dconbl.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/uiod.h src/snark/anglst.h \
+ src/snark/qintp.h src/snark/second.h src/snark/projfile.h \
+ src/snark/spctrm.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp src/snark/dcon.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
+
+src/snark/qintp.h:
+
+src/snark/second.h:
+
+src/snark/projfile.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/dcon.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/dcon_dconft.Po b/src/snark/.deps/dcon_dconft.Po
new file mode 100755 (executable)
index 0000000..71db770
--- /dev/null
@@ -0,0 +1,253 @@
+build/dcon_dconft.o: src/snark/dcon_dconft.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/region.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/int2str.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/cin.h src/snark/dcon.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/region.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/cin.h:
+
+src/snark/dcon.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/disp.Po b/src/snark/.deps/disp.Po
new file mode 100755 (executable)
index 0000000..2a87a17
--- /dev/null
@@ -0,0 +1,81 @@
+build/disp.o: src/snark/disp.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/disp.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/disp.h:
diff --git a/src/snark/.deps/disply.Po b/src/snark/.deps/disply.Po
new file mode 100755 (executable)
index 0000000..de9816a
--- /dev/null
@@ -0,0 +1,953 @@
+build/disply.o: src/snark/disply.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/int2str.h src/snark/disp.h \
+ src/snark/recfile.h include/DIGFileSnark/DIGFileSnarkRec.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/include/endian.h /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/disply.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/disp.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/disply.h:
diff --git a/src/snark/.deps/dist.Po b/src/snark/.deps/dist.Po
new file mode 100755 (executable)
index 0000000..a36ac88
--- /dev/null
@@ -0,0 +1,557 @@
+build/dist.o: src/snark/dist.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc /usr/include/c++/7/limits \
+ /usr/include/c++/7/math.h src/snark/blkdta.h src/snark/geom.h \
+ src/snark/region.h src/snark/anglst.h src/snark/pseudo.h \
+ src/snark/blob.h src/snark/consts.h src/snark/creacm.h src/snark/eval.h \
+ src/snark/DistanceMeasureWSQD.h src/snark/DistanceMeasurePixel.h \
+ src/snark/DistanceMeasure.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/include/c++/7/limits:
+
+/usr/include/c++/7/math.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/region.h:
+
+src/snark/anglst.h:
+
+src/snark/pseudo.h:
+
+src/snark/blob.h:
+
+src/snark/consts.h:
+
+src/snark/creacm.h:
+
+src/snark/eval.h:
+
+src/snark/DistanceMeasureWSQD.h:
+
+src/snark/DistanceMeasurePixel.h:
+
+src/snark/DistanceMeasure.h:
diff --git a/src/snark/.deps/doline.Po b/src/snark/.deps/doline.Po
new file mode 100755 (executable)
index 0000000..7430733
--- /dev/null
@@ -0,0 +1,951 @@
+build/doline.o: src/snark/doline.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/lines.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h include/DIGFile/DIGFile.h \
+ /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/include/endian.h /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/doline.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/lines.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/doline.h:
diff --git a/src/snark/.deps/effpick.Po b/src/snark/.deps/effpick.Po
new file mode 100755 (executable)
index 0000000..ba723c0
--- /dev/null
@@ -0,0 +1,240 @@
+build/effpick.o: src/snark/effpick.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/uiod.h \
+ src/snark/blkdta.h src/snark/primfc.h src/snark/effpick.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/uiod.h:
+
+src/snark/blkdta.h:
+
+src/snark/primfc.h:
+
+src/snark/effpick.h:
diff --git a/src/snark/.deps/emap.Po b/src/snark/.deps/emap.Po
new file mode 100755 (executable)
index 0000000..7d54f07
--- /dev/null
@@ -0,0 +1,249 @@
+build/emap.o: src/snark/emap.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/blob.h src/snark/uiod.h \
+ src/snark/emap.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/blob.h:
+
+src/snark/uiod.h:
+
+src/snark/emap.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/emap_CEvalMAP.Po b/src/snark/.deps/emap_CEvalMAP.Po
new file mode 100755 (executable)
index 0000000..39541b1
--- /dev/null
@@ -0,0 +1,247 @@
+build/emap_CEvalMAP.o: src/snark/emap_CEvalMAP.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/uiod.h src/snark/wray.h src/snark/blob.h \
+ src/snark/emap.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+src/snark/wray.h:
+
+src/snark/blob.h:
+
+src/snark/emap.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/emap_CInitMAP.Po b/src/snark/.deps/emap_CInitMAP.Po
new file mode 100755 (executable)
index 0000000..4b487dc
--- /dev/null
@@ -0,0 +1,94 @@
+build/emap_CInitMAP.o: src/snark/emap_CInitMAP.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/uiod.h src/snark/anglst.h src/snark/wray.h \
+ src/snark/blob.h src/snark/emap.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
+
+src/snark/wray.h:
+
+src/snark/blob.h:
+
+src/snark/emap.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/emap_CMAP.Po b/src/snark/.deps/emap_CMAP.Po
new file mode 100755 (executable)
index 0000000..c7db2e0
--- /dev/null
@@ -0,0 +1,245 @@
+build/emap_CMAP.o: src/snark/emap_CMAP.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/blob.h src/snark/emap.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/blob.h:
+
+src/snark/emap.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/emap_CReadInp.Po b/src/snark/.deps/emap_CReadInp.Po
new file mode 100755 (executable)
index 0000000..78913a3
--- /dev/null
@@ -0,0 +1,92 @@
+build/emap_CReadInp.o: src/snark/emap_CReadInp.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/blob.h src/snark/emap.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/blob.h:
+
+src/snark/emap.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/emap_Cwray.Po b/src/snark/.deps/emap_Cwray.Po
new file mode 100755 (executable)
index 0000000..182b0a3
--- /dev/null
@@ -0,0 +1,92 @@
+build/emap_Cwray.o: src/snark/emap_Cwray.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/wray.h src/snark/blob.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/emap.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/wray.h:
+
+src/snark/blob.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/emap.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/emap_sscal.Po b/src/snark/.deps/emap_sscal.Po
new file mode 100755 (executable)
index 0000000..26e285c
--- /dev/null
@@ -0,0 +1,83 @@
+build/emap_sscal.o: src/snark/emap_sscal.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/emap.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/emap.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/err.Po b/src/snark/.deps/err.Po
new file mode 100755 (executable)
index 0000000..b90c896
--- /dev/null
@@ -0,0 +1,8 @@
+build/err.o: src/snark/err.cpp /usr/include/stdc-predef.h src/snark/err.h \
+ src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/err.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/errfac.Po b/src/snark/.deps/errfac.Po
new file mode 100755 (executable)
index 0000000..1064c3a
--- /dev/null
@@ -0,0 +1,238 @@
+build/errfac.o: src/snark/errfac.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/err.h src/snark/errfac.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/err.h:
+
+src/snark/errfac.h:
diff --git a/src/snark/.deps/errorc.Po b/src/snark/.deps/errorc.Po
new file mode 100755 (executable)
index 0000000..59d0853
--- /dev/null
@@ -0,0 +1,218 @@
+build/errorc.o: src/snark/errorc.c /usr/include/stdc-predef.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
diff --git a/src/snark/.deps/errpar.Po b/src/snark/.deps/errpar.Po
new file mode 100755 (executable)
index 0000000..b14c277
--- /dev/null
@@ -0,0 +1,245 @@
+build/errpar.o: src/snark/errpar.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/spctrm.h src/snark/noise.h src/snark/err.h \
+ src/snark/errpar.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+src/snark/err.h:
+
+src/snark/errpar.h:
diff --git a/src/snark/.deps/eval.Po b/src/snark/.deps/eval.Po
new file mode 100755 (executable)
index 0000000..9443bfd
--- /dev/null
@@ -0,0 +1,973 @@
+build/eval.o: src/snark/eval.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/bldlst.h \
+ src/snark/int2str.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h include/DIGFile/DIGFile.h \
+ /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/projfile.h src/snark/geom.h src/snark/spctrm.h \
+ src/snark/noise.h src/snark/anglst.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h src/snark/infile.h \
+ src/snark/inputfile.h src/snark/eval.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/bldlst.h:
+
+src/snark/int2str.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/projfile.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+src/snark/anglst.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/eval.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/exalg.Po b/src/snark/.deps/exalg.Po
new file mode 100755 (executable)
index 0000000..327c01e
--- /dev/null
@@ -0,0 +1,1114 @@
+build/exalg.o: src/snark/exalg.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/creacm.h src/snark/geom.h src/snark/term.h \
+ src/snark/termtest.h src/snark/raysel.h src/snark/uiod.h \
+ src/snark/int2str.h src/snark/second.h src/snark/bldlst.h \
+ src/snark/projfile.h src/snark/spctrm.h src/snark/noise.h \
+ src/snark/anglst.h include/DIGFileSnark/DIGFileSnarkProj.h \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp src/snark/alb1.h \
+ src/snark/alg.h src/snark/alb2.h src/snark/alb3.h src/snark/alb4.h \
+ src/snark/alb5.h src/snark/alp1.h src/snark/alp2.h src/snark/alp3.h \
+ src/snark/alp4.h src/snark/alp5.h src/snark/emap.h src/snark/lino.h \
+ src/snark/art.h src/snark/sart.h src/snark/GeometricBehaviour.h \
+ src/snark/conv.h src/snark/sirt.h src/snark/dcon.h src/snark/foru.h \
+ src/snark/rfl.h src/snark/back.h src/snark/quad.h src/snark/mart.h \
+ src/snark/trm1.h src/snark/trm2.h src/snark/trm3.h src/snark/infile.h \
+ src/snark/inputfile.h src/snark/trm4.h src/snark/trm5.h \
+ src/snark/smooth.h src/snark/contur.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h src/snark/blob.h \
+ src/snark/exalg.h src/snark/consts.h src/snark/bdhk.h src/snark/pseudo.h \
+ src/snark/superior.h src/snark/sec_cri.h src/snark/nav.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/geom.h:
+
+src/snark/term.h:
+
+src/snark/termtest.h:
+
+src/snark/raysel.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/second.h:
+
+src/snark/bldlst.h:
+
+src/snark/projfile.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+src/snark/anglst.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/alb1.h:
+
+src/snark/alg.h:
+
+src/snark/alb2.h:
+
+src/snark/alb3.h:
+
+src/snark/alb4.h:
+
+src/snark/alb5.h:
+
+src/snark/alp1.h:
+
+src/snark/alp2.h:
+
+src/snark/alp3.h:
+
+src/snark/alp4.h:
+
+src/snark/alp5.h:
+
+src/snark/emap.h:
+
+src/snark/lino.h:
+
+src/snark/art.h:
+
+src/snark/sart.h:
+
+src/snark/GeometricBehaviour.h:
+
+src/snark/conv.h:
+
+src/snark/sirt.h:
+
+src/snark/dcon.h:
+
+src/snark/foru.h:
+
+src/snark/rfl.h:
+
+src/snark/back.h:
+
+src/snark/quad.h:
+
+src/snark/mart.h:
+
+src/snark/trm1.h:
+
+src/snark/trm2.h:
+
+src/snark/trm3.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/trm4.h:
+
+src/snark/trm5.h:
+
+src/snark/smooth.h:
+
+src/snark/contur.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+src/snark/blob.h:
+
+src/snark/exalg.h:
+
+src/snark/consts.h:
+
+src/snark/bdhk.h:
+
+src/snark/pseudo.h:
+
+src/snark/superior.h:
+
+src/snark/sec_cri.h:
+
+src/snark/nav.h:
diff --git a/src/snark/.deps/experimenter.Po b/src/snark/.deps/experimenter.Po
new file mode 100755 (executable)
index 0000000..4af625e
--- /dev/null
@@ -0,0 +1,255 @@
+build/experimenter.o: src/snark/experimenter.c /usr/include/stdc-predef.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/x86_64-linux-gnu/sys/stat.h \
+ /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/fcntl.h \
+ /usr/include/x86_64-linux-gnu/bits/fcntl.h \
+ /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \
+ /usr/include/x86_64-linux-gnu/bits/fcntl2.h /usr/include/unistd.h \
+ /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
+ /usr/include/x86_64-linux-gnu/bits/environments.h \
+ /usr/include/x86_64-linux-gnu/bits/confname.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_core.h \
+ /usr/include/x86_64-linux-gnu/bits/unistd.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/experimenter.h \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/supersnk.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/x86_64-linux-gnu/sys/stat.h:
+
+/usr/include/x86_64-linux-gnu/bits/stat.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/x86_64-linux-gnu/bits/fcntl.h:
+
+/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h:
+
+/usr/include/x86_64-linux-gnu/bits/fcntl2.h:
+
+/usr/include/unistd.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
+
+/usr/include/x86_64-linux-gnu/bits/environments.h:
+
+/usr/include/x86_64-linux-gnu/bits/confname.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
+
+/usr/include/x86_64-linux-gnu/bits/unistd.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/supersnk.h:
diff --git a/src/snark/.deps/fft2p.Po b/src/snark/.deps/fft2p.Po
new file mode 100755 (executable)
index 0000000..8df1302
--- /dev/null
@@ -0,0 +1,242 @@
+build/fft2p.o: src/snark/fft2p.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/ftodd.h src/snark/unkps.h src/snark/consts.h src/snark/fft2p.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/ftodd.h:
+
+src/snark/unkps.h:
+
+src/snark/consts.h:
+
+src/snark/fft2p.h:
diff --git a/src/snark/.deps/file11.Po b/src/snark/.deps/file11.Po
new file mode 100755 (executable)
index 0000000..771878b
--- /dev/null
@@ -0,0 +1,216 @@
+build/file11.o: src/snark/file11.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstring \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/snark/blkdta.h \
+ src/snark/creacm.h src/snark/geom.h src/snark/spctrm.h src/snark/noise.h \
+ src/snark/objects.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/int2str.h src/snark/file11.h src/snark/inputfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstring:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+src/snark/objects.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/file11.h:
+
+src/snark/inputfile.h:
diff --git a/src/snark/.deps/fom_klds.Po b/src/snark/.deps/fom_klds.Po
new file mode 100755 (executable)
index 0000000..1972134
--- /dev/null
@@ -0,0 +1,205 @@
+build/fom_klds.o: src/snark/fom_klds.c /usr/include/stdc-predef.h \
+ /usr/include/assert.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/malloc.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/experimenter.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ src/snark/read_eval_recon4.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/assert.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/malloc.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/read_eval_recon4.h:
diff --git a/src/snark/.deps/fom_weighted_squared_distance.Po b/src/snark/.deps/fom_weighted_squared_distance.Po
new file mode 100755 (executable)
index 0000000..fccccf4
--- /dev/null
@@ -0,0 +1,206 @@
+build/fom_weighted_squared_distance.o: \
+ src/snark/fom_weighted_squared_distance.c /usr/include/stdc-predef.h \
+ /usr/include/assert.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/malloc.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/experimenter.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ src/snark/read_eval_recon4.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/assert.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/malloc.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/read_eval_recon4.h:
diff --git a/src/snark/.deps/foru.Po b/src/snark/.deps/foru.Po
new file mode 100755 (executable)
index 0000000..a0a8609
--- /dev/null
@@ -0,0 +1,87 @@
+build/foru.o: src/snark/foru.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/fourie.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/fourie.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_bckwrd.Po b/src/snark/.deps/foru_bckwrd.Po
new file mode 100755 (executable)
index 0000000..2d358fb
--- /dev/null
@@ -0,0 +1,92 @@
+build/foru_bckwrd.o: src/snark/foru_bckwrd.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/fourie.h src/snark/uiod.h src/snark/second.h \
+ src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/fourie.h:
+
+src/snark/uiod.h:
+
+src/snark/second.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_error.Po b/src/snark/.deps/foru_error.Po
new file mode 100755 (executable)
index 0000000..78c8e3c
--- /dev/null
@@ -0,0 +1,87 @@
+build/foru_error.o: src/snark/foru_error.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/uiod.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/uiod.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_fft.Po b/src/snark/.deps/foru_fft.Po
new file mode 100755 (executable)
index 0000000..ddeeba0
--- /dev/null
@@ -0,0 +1,247 @@
+build/foru_fft.o: src/snark/foru_fft.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/rtfort.h src/snark/fourie.h src/snark/consts.h \
+ src/snark/uiod.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/rtfort.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_forwrd.Po b/src/snark/.deps/foru_forwrd.Po
new file mode 100755 (executable)
index 0000000..4835253
--- /dev/null
@@ -0,0 +1,92 @@
+build/foru_forwrd.o: src/snark/foru_forwrd.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/fourie.h src/snark/uiod.h src/snark/second.h \
+ src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/fourie.h:
+
+src/snark/uiod.h:
+
+src/snark/second.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_frfilt.Po b/src/snark/.deps/foru_frfilt.Po
new file mode 100755 (executable)
index 0000000..2afdbbc
--- /dev/null
@@ -0,0 +1,245 @@
+build/foru_frfilt.o: src/snark/foru_frfilt.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/sinc.h src/snark/foru.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/sinc.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_frinit.Po b/src/snark/.deps/foru_frinit.Po
new file mode 100755 (executable)
index 0000000..0c741d5
--- /dev/null
@@ -0,0 +1,99 @@
+build/foru_frinit.o: src/snark/foru_frinit.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/fourie.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/anglst.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_ftfill.Po b/src/snark/.deps/foru_ftfill.Po
new file mode 100755 (executable)
index 0000000..59f2a98
--- /dev/null
@@ -0,0 +1,85 @@
+build/foru_ftfill.o: src/snark/foru_ftfill.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_ftmap.Po b/src/snark/.deps/foru_ftmap.Po
new file mode 100755 (executable)
index 0000000..645a74c
--- /dev/null
@@ -0,0 +1,85 @@
+build/foru_ftmap.o: src/snark/foru_ftmap.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_intrpl.Po b/src/snark/.deps/foru_intrpl.Po
new file mode 100755 (executable)
index 0000000..01705a4
--- /dev/null
@@ -0,0 +1,87 @@
+build/foru_intrpl.o: src/snark/foru_intrpl.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/uiod.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_prjtrn.Po b/src/snark/.deps/foru_prjtrn.Po
new file mode 100755 (executable)
index 0000000..d7c6830
--- /dev/null
@@ -0,0 +1,1010 @@
+build/foru_prjtrn.o: src/snark/foru_prjtrn.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/spctrm.h src/snark/fourie.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/anglst.h \
+ src/snark/projfile.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp src/snark/foru.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
+
+src/snark/projfile.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_store.Po b/src/snark/.deps/foru_store.Po
new file mode 100755 (executable)
index 0000000..4e6a19d
--- /dev/null
@@ -0,0 +1,245 @@
+build/foru_store.o: src/snark/foru_store.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/consts.h src/snark/uiod.h src/snark/foru.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_uint.Po b/src/snark/.deps/foru_uint.Po
new file mode 100755 (executable)
index 0000000..c9f8de2
--- /dev/null
@@ -0,0 +1,245 @@
+build/foru_uint.o: src/snark/foru_uint.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/consts.h src/snark/uiod.h src/snark/foru.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_unif.Po b/src/snark/.deps/foru_unif.Po
new file mode 100755 (executable)
index 0000000..9c3f0d2
--- /dev/null
@@ -0,0 +1,242 @@
+build/foru_unif.o: src/snark/foru_unif.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/consts.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_vc56.Po b/src/snark/.deps/foru_vc56.Po
new file mode 100755 (executable)
index 0000000..27a1e2f
--- /dev/null
@@ -0,0 +1,242 @@
+build/foru_vc56.o: src/snark/foru_vc56.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/consts.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_vcase1.Po b/src/snark/.deps/foru_vcase1.Po
new file mode 100755 (executable)
index 0000000..4a1a7bc
--- /dev/null
@@ -0,0 +1,242 @@
+build/foru_vcase1.o: src/snark/foru_vcase1.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/consts.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_vcase2.Po b/src/snark/.deps/foru_vcase2.Po
new file mode 100755 (executable)
index 0000000..48b1f65
--- /dev/null
@@ -0,0 +1,242 @@
+build/foru_vcase2.o: src/snark/foru_vcase2.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/consts.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_vcase3.Po b/src/snark/.deps/foru_vcase3.Po
new file mode 100755 (executable)
index 0000000..95b1a84
--- /dev/null
@@ -0,0 +1,242 @@
+build/foru_vcase3.o: src/snark/foru_vcase3.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/consts.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_vcase4.Po b/src/snark/.deps/foru_vcase4.Po
new file mode 100755 (executable)
index 0000000..22edf5f
--- /dev/null
@@ -0,0 +1,242 @@
+build/foru_vcase4.o: src/snark/foru_vcase4.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/consts.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/foru_vint14.Po b/src/snark/.deps/foru_vint14.Po
new file mode 100755 (executable)
index 0000000..33cf7b1
--- /dev/null
@@ -0,0 +1,242 @@
+build/foru_vint14.o: src/snark/foru_vint14.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/fourie.h src/snark/consts.h src/snark/foru.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/foru.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/fourie.Po b/src/snark/.deps/fourie.Po
new file mode 100755 (executable)
index 0000000..bb8a675
--- /dev/null
@@ -0,0 +1,8 @@
+build/fourie.o: src/snark/fourie.cpp /usr/include/stdc-predef.h \
+ src/snark/fourie.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/fourie.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/ftodd.Po b/src/snark/.deps/ftodd.Po
new file mode 100755 (executable)
index 0000000..79be504
--- /dev/null
@@ -0,0 +1,236 @@
+build/ftodd.o: src/snark/ftodd.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/ftodd.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/ftodd.h:
diff --git a/src/snark/.deps/geom.Po b/src/snark/.deps/geom.Po
new file mode 100755 (executable)
index 0000000..f84592e
--- /dev/null
@@ -0,0 +1,242 @@
+build/geom.o: src/snark/geom.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/get_iter_flag.Po b/src/snark/.deps/get_iter_flag.Po
new file mode 100755 (executable)
index 0000000..8a5b3fc
--- /dev/null
@@ -0,0 +1,221 @@
+build/get_iter_flag.o: src/snark/get_iter_flag.c \
+ /usr/include/stdc-predef.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/get_iter_flag.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/get_iter_flag.h:
diff --git a/src/snark/.deps/get_phantom.Po b/src/snark/.deps/get_phantom.Po
new file mode 100755 (executable)
index 0000000..c334007
--- /dev/null
@@ -0,0 +1,220 @@
+build/get_phantom.o: src/snark/get_phantom.c /usr/include/stdc-predef.h \
+ /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/experimenter.h \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/get_phantom.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/get_phantom.h:
diff --git a/src/snark/.deps/get_seed.Po b/src/snark/.deps/get_seed.Po
new file mode 100755 (executable)
index 0000000..65242ca
--- /dev/null
@@ -0,0 +1,215 @@
+build/get_seed.o: src/snark/get_seed.c /usr/include/stdc-predef.h \
+ /usr/include/strings.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/get_seed.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/strings.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/get_seed.h:
diff --git a/src/snark/.deps/getang.Po b/src/snark/.deps/getang.Po
new file mode 100755 (executable)
index 0000000..d4eb2fe
--- /dev/null
@@ -0,0 +1,242 @@
+build/getang.o: src/snark/getang.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/uiod.h src/snark/anglst.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
diff --git a/src/snark/.deps/getden.Po b/src/snark/.deps/getden.Po
new file mode 100755 (executable)
index 0000000..34b4b08
--- /dev/null
@@ -0,0 +1,192 @@
+build/getden.o: src/snark/getden.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h src/snark/blkdta.h src/snark/consts.h \
+ src/snark/uiod.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/eval.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/eval.h:
diff --git a/src/snark/.deps/getfom.Po b/src/snark/.deps/getfom.Po
new file mode 100755 (executable)
index 0000000..8475361
--- /dev/null
@@ -0,0 +1,218 @@
+build/getfom.o: src/snark/getfom.c /usr/include/stdc-predef.h \
+ /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/getfom.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/getfom.h:
diff --git a/src/snark/.deps/getint.Po b/src/snark/.deps/getint.Po
new file mode 100755 (executable)
index 0000000..e985a31
--- /dev/null
@@ -0,0 +1,192 @@
+build/getint.o: src/snark/getint.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h src/snark/blkdta.h src/snark/uiod.h \
+ src/snark/chtoin.h src/snark/inputfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/chtoin.h:
+
+src/snark/inputfile.h:
diff --git a/src/snark/.deps/getiters.Po b/src/snark/.deps/getiters.Po
new file mode 100755 (executable)
index 0000000..edc9ab5
--- /dev/null
@@ -0,0 +1,223 @@
+build/getiters.o: src/snark/getiters.c /usr/include/stdc-predef.h \
+ /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/malloc.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/experimenter.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/getiters.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/malloc.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/getiters.h:
diff --git a/src/snark/.deps/getnum.Po b/src/snark/.deps/getnum.Po
new file mode 100755 (executable)
index 0000000..4cd5eb1
--- /dev/null
@@ -0,0 +1,247 @@
+build/getnum.o: src/snark/getnum.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/cctype /usr/include/ctype.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/chtoin.h src/snark/inputfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/chtoin.h:
+
+src/snark/inputfile.h:
diff --git a/src/snark/.deps/getnxt.Po b/src/snark/.deps/getnxt.Po
new file mode 100755 (executable)
index 0000000..c2a07dd
--- /dev/null
@@ -0,0 +1,185 @@
+build/getnxt.o: src/snark/getnxt.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/inputfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/inputfile.h:
diff --git a/src/snark/.deps/getwrd.Po b/src/snark/.deps/getwrd.Po
new file mode 100755 (executable)
index 0000000..a7bfff0
--- /dev/null
@@ -0,0 +1,108 @@
+build/getwrd.o: src/snark/getwrd.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h src/snark/blkdta.h \
+ src/snark/wrdpack.h src/snark/inputfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+src/snark/blkdta.h:
+
+src/snark/wrdpack.h:
+
+src/snark/inputfile.h:
diff --git a/src/snark/.deps/halft.Po b/src/snark/.deps/halft.Po
new file mode 100755 (executable)
index 0000000..923a550
--- /dev/null
@@ -0,0 +1,1003 @@
+build/halft.o: src/snark/halft.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstring \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/c++/7/cmath /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/int2str.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h include/DIGFile/DIGFile.h \
+ /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h include/DIGFile/DIGEndian.h \
+ include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/modefl.h \
+ src/snark/halft.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstring:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/modefl.h:
+
+src/snark/halft.h:
diff --git a/src/snark/.deps/hit_ratio.Po b/src/snark/.deps/hit_ratio.Po
new file mode 100755 (executable)
index 0000000..10331c7
--- /dev/null
@@ -0,0 +1,208 @@
+build/hit_ratio.o: src/snark/hit_ratio.c /usr/include/stdc-predef.h \
+ /usr/include/malloc.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/experimenter.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ src/snark/read_eval_phantom1.h src/snark/read_eval_recon1.h \
+ src/snark/hit_ratio.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/malloc.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/read_eval_phantom1.h:
+
+src/snark/read_eval_recon1.h:
+
+src/snark/hit_ratio.h:
diff --git a/src/snark/.deps/imagewise_roi.Po b/src/snark/.deps/imagewise_roi.Po
new file mode 100755 (executable)
index 0000000..53186c4
--- /dev/null
@@ -0,0 +1,210 @@
+build/imagewise_roi.o: src/snark/imagewise_roi.c \
+ /usr/include/stdc-predef.h /usr/include/assert.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/malloc.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/experimenter.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ src/snark/read_eval_phantom1.h src/snark/read_eval_recon1.h \
+ src/snark/hit_ratio.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/assert.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/malloc.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/read_eval_phantom1.h:
+
+src/snark/read_eval_recon1.h:
+
+src/snark/hit_ratio.h:
diff --git a/src/snark/.deps/infile.Po b/src/snark/.deps/infile.Po
new file mode 100755 (executable)
index 0000000..69008ba
--- /dev/null
@@ -0,0 +1,261 @@
+build/infile.o: src/snark/infile.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h src/snark/blkdta.h src/snark/uiod.h \
+ src/snark/creacm.h src/snark/geom.h src/snark/anglst.h \
+ src/snark/creaer.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/consts.h \
+ src/snark/infile.h src/snark/inputfile.h src/snark/int2str.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/creacm.h:
+
+src/snark/geom.h:
+
+src/snark/anglst.h:
+
+src/snark/creaer.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/consts.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/int2str.h:
diff --git a/src/snark/.deps/inputfile.Po b/src/snark/.deps/inputfile.Po
new file mode 100755 (executable)
index 0000000..5c12e9b
--- /dev/null
@@ -0,0 +1,278 @@
+build/inputfile.o: src/snark/inputfile.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ src/snark/blkdta.h src/snark/creacm.h src/snark/geom.h \
+ src/snark/spctrm.h src/snark/noise.h src/snark/objects.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/int2str.h \
+ src/snark/anglst.h src/snark/creaer.h include/DIGRand/DIGRand.h \
+ src/snark/inputfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+src/snark/objects.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/anglst.h:
+
+src/snark/creaer.h:
+
+include/DIGRand/DIGRand.h:
+
+src/snark/inputfile.h:
diff --git a/src/snark/.deps/int2str.Po b/src/snark/.deps/int2str.Po
new file mode 100755 (executable)
index 0000000..990130f
--- /dev/null
@@ -0,0 +1,8 @@
+build/int2str.o: src/snark/int2str.cpp /usr/include/stdc-predef.h \
+ src/snark/int2str.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/int2str.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/lines.Po b/src/snark/.deps/lines.Po
new file mode 100755 (executable)
index 0000000..41878ca
--- /dev/null
@@ -0,0 +1,81 @@
+build/lines.o: src/snark/lines.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/lines.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/lines.h:
diff --git a/src/snark/.deps/lino.Po b/src/snark/.deps/lino.Po
new file mode 100755 (executable)
index 0000000..e39ab27
--- /dev/null
@@ -0,0 +1,1019 @@
+build/lino.o: src/snark/lino.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/uiod.h src/snark/int2str.h \
+ src/snark/anglst.h src/snark/rtfort.h src/snark/projfile.h \
+ src/snark/spctrm.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/qfilt.h \
+ src/snark/lino.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/anglst.h:
+
+src/snark/rtfort.h:
+
+src/snark/projfile.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/qfilt.h:
+
+src/snark/lino.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/lino_czt.Po b/src/snark/.deps/lino_czt.Po
new file mode 100755 (executable)
index 0000000..0e7279c
--- /dev/null
@@ -0,0 +1,242 @@
+build/lino_czt.o: src/snark/lino_czt.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/snfft.h src/snark/consts.h src/snark/lino.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/snfft.h:
+
+src/snark/consts.h:
+
+src/snark/lino.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/lino_sumfac.Po b/src/snark/.deps/lino_sumfac.Po
new file mode 100755 (executable)
index 0000000..4707116
--- /dev/null
@@ -0,0 +1,85 @@
+build/lino_sumfac.o: src/snark/lino_sumfac.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/primfc.h src/snark/lino.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/primfc.h:
+
+src/snark/lino.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/main.Po b/src/snark/.deps/main.Po
new file mode 100755 (executable)
index 0000000..fe43aad
--- /dev/null
@@ -0,0 +1,263 @@
+build/main.o: src/snark/main.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/unistd.h \
+ /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
+ /usr/include/x86_64-linux-gnu/bits/environments.h \
+ /usr/include/x86_64-linux-gnu/bits/confname.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_core.h \
+ /usr/include/x86_64-linux-gnu/bits/unistd.h src/snark/snark.h \
+ src/snark/experimenter.h /usr/include/c++/7/stdlib.h \
+ /usr/include/c++/7/cstdlib /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/math.h \
+ /usr/include/c++/7/cmath /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/unistd.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
+
+/usr/include/x86_64-linux-gnu/bits/environments.h:
+
+/usr/include/x86_64-linux-gnu/bits/confname.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
+
+/usr/include/x86_64-linux-gnu/bits/unistd.h:
+
+src/snark/snark.h:
+
+src/snark/experimenter.h:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
diff --git a/src/snark/.deps/mart.Po b/src/snark/.deps/mart.Po
new file mode 100755 (executable)
index 0000000..06cf216
--- /dev/null
@@ -0,0 +1,1028 @@
+build/mart.o: src/snark/mart.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/uiod.h src/snark/int2str.h \
+ src/snark/pick.h src/snark/ray.h src/snark/wray.h src/snark/anglst.h \
+ src/snark/pseudo.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/blob.h src/snark/raysel.h src/snark/projfile.h \
+ src/snark/spctrm.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp src/snark/mart.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/pick.h:
+
+src/snark/ray.h:
+
+src/snark/wray.h:
+
+src/snark/anglst.h:
+
+src/snark/pseudo.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/blob.h:
+
+src/snark/raysel.h:
+
+src/snark/projfile.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/mart.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/mode.Po b/src/snark/.deps/mode.Po
new file mode 100755 (executable)
index 0000000..96a517e
--- /dev/null
@@ -0,0 +1,194 @@
+build/mode.o: src/snark/mode.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/modefl.h src/snark/uiod.h src/snark/int2str.h \
+ src/snark/infile.h src/snark/inputfile.h src/snark/mode.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/modefl.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/mode.h:
diff --git a/src/snark/.deps/modefl.Po b/src/snark/.deps/modefl.Po
new file mode 100755 (executable)
index 0000000..c69f794
--- /dev/null
@@ -0,0 +1,8 @@
+build/modefl.o: src/snark/modefl.cpp /usr/include/stdc-predef.h \
+ src/snark/modefl.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/modefl.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/nav.Po b/src/snark/.deps/nav.Po
new file mode 100755 (executable)
index 0000000..53dafe7
--- /dev/null
@@ -0,0 +1,8 @@
+build/nav.o: src/snark/nav.cpp /usr/include/stdc-predef.h src/snark/nav.h \
+ src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/nav.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/nav1.Po b/src/snark/.deps/nav1.Po
new file mode 100755 (executable)
index 0000000..482083f
--- /dev/null
@@ -0,0 +1,551 @@
+build/nav1.o: src/snark/nav1.cpp /usr/include/stdc-predef.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/c++/7/iostream \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/ostream /usr/include/c++/7/ios \
+ /usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
+ /usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
+ /usr/include/c++/7/cwchar /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/c++/7/bits/ios_base.h /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/c++/7/cerrno /usr/include/errno.h \
+ /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc src/snark/nav1.h src/snark/nav.h \
+ src/snark/blkdta.h /usr/include/c++/7/math.h /usr/include/c++/7/cmath \
+ /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+src/snark/nav1.h:
+
+src/snark/nav.h:
+
+src/snark/blkdta.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/nav2.Po b/src/snark/.deps/nav2.Po
new file mode 100755 (executable)
index 0000000..d91a45e
--- /dev/null
@@ -0,0 +1,554 @@
+build/nav2.o: src/snark/nav2.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/stdlib.h \
+ /usr/include/c++/7/cstdlib /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc src/snark/nav2.h src/snark/nav.h \
+ src/snark/blkdta.h /usr/include/c++/7/math.h /usr/include/c++/7/cmath \
+ /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+src/snark/nav2.h:
+
+src/snark/nav.h:
+
+src/snark/blkdta.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/nav3.Po b/src/snark/.deps/nav3.Po
new file mode 100755 (executable)
index 0000000..188214a
--- /dev/null
@@ -0,0 +1,213 @@
+build/nav3.o: src/snark/nav3.cpp /usr/include/stdc-predef.h \
+ src/snark/nav3.h src/snark/nav.h src/snark/blkdta.h \
+ /usr/include/c++/7/math.h /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/nav3.h:
+
+src/snark/nav.h:
+
+src/snark/blkdta.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/nav4.Po b/src/snark/.deps/nav4.Po
new file mode 100755 (executable)
index 0000000..64ee89d
--- /dev/null
@@ -0,0 +1,213 @@
+build/nav4.o: src/snark/nav4.cpp /usr/include/stdc-predef.h \
+ src/snark/nav4.h src/snark/nav.h src/snark/blkdta.h \
+ /usr/include/c++/7/math.h /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/nav4.h:
+
+src/snark/nav.h:
+
+src/snark/blkdta.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/nav5.Po b/src/snark/.deps/nav5.Po
new file mode 100755 (executable)
index 0000000..49f59c6
--- /dev/null
@@ -0,0 +1,213 @@
+build/nav5.o: src/snark/nav5.cpp /usr/include/stdc-predef.h \
+ src/snark/nav5.h src/snark/nav.h src/snark/blkdta.h \
+ /usr/include/c++/7/math.h /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/nav5.h:
+
+src/snark/nav.h:
+
+src/snark/blkdta.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/noise.Po b/src/snark/.deps/noise.Po
new file mode 100755 (executable)
index 0000000..fc0a8b6
--- /dev/null
@@ -0,0 +1,253 @@
+build/noise.o: src/snark/noise.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ include/DIGRand/DIGGauss.h include/DIGRand/DIGRand.h \
+ include/DIGRand/DIGPoisson.h src/snark/consts.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/noise.h src/snark/spctrm.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+include/DIGRand/DIGGauss.h:
+
+include/DIGRand/DIGRand.h:
+
+include/DIGRand/DIGPoisson.h:
+
+src/snark/consts.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/noise.h:
+
+src/snark/spctrm.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/objects.Po b/src/snark/.deps/objects.Po
new file mode 100755 (executable)
index 0000000..198d40b
--- /dev/null
@@ -0,0 +1,8 @@
+build/objects.o: src/snark/objects.cpp /usr/include/stdc-predef.h \
+ src/snark/objects.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/objects.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/pick.Po b/src/snark/.deps/pick.Po
new file mode 100755 (executable)
index 0000000..549a9dc
--- /dev/null
@@ -0,0 +1,92 @@
+build/pick.o: src/snark/pick.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/raysel.h src/snark/uiod.h src/snark/effpick.h \
+ include/DIGRand/DIGRand.h src/snark/pick.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/raysel.h:
+
+src/snark/uiod.h:
+
+src/snark/effpick.h:
+
+include/DIGRand/DIGRand.h:
+
+src/snark/pick.h:
diff --git a/src/snark/.deps/pix2blob.Po b/src/snark/.deps/pix2blob.Po
new file mode 100755 (executable)
index 0000000..91db8c9
--- /dev/null
@@ -0,0 +1,247 @@
+build/pix2blob.o: src/snark/pix2blob.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/c++/7/cstdlib \
+ src/snark/blkdta.h src/snark/blob.h src/snark/geom.h src/snark/consts.h \
+ src/snark/effpick.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+src/snark/blkdta.h:
+
+src/snark/blob.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/effpick.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/pnch.Po b/src/snark/.deps/pnch.Po
new file mode 100755 (executable)
index 0000000..e4fc7c4
--- /dev/null
@@ -0,0 +1,954 @@
+build/pnch.o: src/snark/pnch.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h include/DIGFile/DIGFile.h \
+ /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/pnchfile.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/post.h src/snark/pnch.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/pnchfile.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/post.h:
+
+src/snark/pnch.h:
diff --git a/src/snark/.deps/pnchfile.Po b/src/snark/.deps/pnchfile.Po
new file mode 100755 (executable)
index 0000000..3dea6ae
--- /dev/null
@@ -0,0 +1,954 @@
+build/pnchfile.o: src/snark/pnchfile.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/creacm.h src/snark/geom.h src/snark/spctrm.h src/snark/noise.h \
+ src/snark/objects.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h include/DIGFile/DIGFile.h \
+ /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/pnchfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+src/snark/objects.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/pnchfile.h:
diff --git a/src/snark/.deps/point.Po b/src/snark/.deps/point.Po
new file mode 100755 (executable)
index 0000000..ac765af
--- /dev/null
@@ -0,0 +1,240 @@
+build/point.o: src/snark/point.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/eval.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/eval.h:
diff --git a/src/snark/.deps/pointwse.Po b/src/snark/.deps/pointwse.Po
new file mode 100755 (executable)
index 0000000..8478f97
--- /dev/null
@@ -0,0 +1,203 @@
+build/pointwse.o: src/snark/pointwse.c /usr/include/stdc-predef.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ src/snark/read_eval_recon2.h src/snark/pointwse.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/read_eval_recon2.h:
+
+src/snark/pointwse.h:
diff --git a/src/snark/.deps/posit.Po b/src/snark/.deps/posit.Po
new file mode 100755 (executable)
index 0000000..8ff4192
--- /dev/null
@@ -0,0 +1,244 @@
+build/posit.o: src/snark/posit.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/uiod.h src/snark/anglst.h src/snark/posit.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+src/snark/anglst.h:
+
+src/snark/posit.h:
diff --git a/src/snark/.deps/post.Po b/src/snark/.deps/post.Po
new file mode 100755 (executable)
index 0000000..73ade3d
--- /dev/null
@@ -0,0 +1,8 @@
+build/post.o: src/snark/post.cpp /usr/include/stdc-predef.h \
+ src/snark/post.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/post.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/prdta.Po b/src/snark/.deps/prdta.Po
new file mode 100755 (executable)
index 0000000..a433a9b
--- /dev/null
@@ -0,0 +1,951 @@
+build/prdta.o: src/snark/prdta.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/anglst.h src/snark/uiod.h \
+ src/snark/projfile.h src/snark/spctrm.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/anglst.h:
+
+src/snark/uiod.h:
+
+src/snark/projfile.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
diff --git a/src/snark/.deps/primfc.Po b/src/snark/.deps/primfc.Po
new file mode 100755 (executable)
index 0000000..5db99e8
--- /dev/null
@@ -0,0 +1,185 @@
+build/primfc.o: src/snark/primfc.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/primfc.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/primfc.h:
diff --git a/src/snark/.deps/projection.Po b/src/snark/.deps/projection.Po
new file mode 100755 (executable)
index 0000000..fd34cc5
--- /dev/null
@@ -0,0 +1,215 @@
+build/projection.o: src/snark/projection.c /usr/include/stdc-predef.h \
+ /usr/include/strings.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/projection.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/strings.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/projection.h:
diff --git a/src/snark/.deps/projfile.Po b/src/snark/.deps/projfile.Po
new file mode 100755 (executable)
index 0000000..e7b4f34
--- /dev/null
@@ -0,0 +1,1001 @@
+build/projfile.o: src/snark/projfile.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstring \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/c++/7/cmath /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/uiod.h \
+ /usr/include/c++/7/cstdio /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/projfile.h src/snark/geom.h src/snark/spctrm.h \
+ src/snark/noise.h src/snark/anglst.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h include/DIGFile/DIGFile.h \
+ /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h include/DIGFile/DIGEndian.h \
+ include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstring:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/uiod.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/projfile.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+src/snark/anglst.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
diff --git a/src/snark/.deps/pseudo.Po b/src/snark/.deps/pseudo.Po
new file mode 100755 (executable)
index 0000000..04a1dce
--- /dev/null
@@ -0,0 +1,90 @@
+build/pseudo.o: src/snark/pseudo.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/modefl.h src/snark/uiod.h src/snark/ray.h src/snark/wray.h \
+ src/snark/pseudo.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/modefl.h:
+
+src/snark/uiod.h:
+
+src/snark/ray.h:
+
+src/snark/wray.h:
+
+src/snark/pseudo.h:
diff --git a/src/snark/.deps/qfilt.Po b/src/snark/.deps/qfilt.Po
new file mode 100755 (executable)
index 0000000..d224be7
--- /dev/null
@@ -0,0 +1,242 @@
+build/qfilt.o: src/snark/qfilt.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/qfilt.h src/snark/consts.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/qfilt.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/qinit.Po b/src/snark/.deps/qinit.Po
new file mode 100755 (executable)
index 0000000..065113a
--- /dev/null
@@ -0,0 +1,244 @@
+build/qinit.o: src/snark/qinit.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/sinc.h src/snark/qinit.h src/snark/consts.h src/snark/uiod.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/sinc.h:
+
+src/snark/qinit.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
diff --git a/src/snark/.deps/qintp.Po b/src/snark/.deps/qintp.Po
new file mode 100755 (executable)
index 0000000..a234f86
--- /dev/null
@@ -0,0 +1,238 @@
+build/qintp.o: src/snark/qintp.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/consts.h src/snark/qintp.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/qintp.h:
diff --git a/src/snark/.deps/quad.Po b/src/snark/.deps/quad.Po
new file mode 100755 (executable)
index 0000000..b24ea30
--- /dev/null
@@ -0,0 +1,1028 @@
+build/quad.o: src/snark/quad.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/spctrm.h src/snark/fourie.h \
+ src/snark/anglst.h src/snark/bckprj.h src/snark/int2str.h \
+ src/snark/modefl.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/projfile.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/errpar.h \
+ src/snark/err.h src/snark/blob.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/fourie.h:
+
+src/snark/anglst.h:
+
+src/snark/bckprj.h:
+
+src/snark/int2str.h:
+
+src/snark/modefl.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/projfile.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/errpar.h:
+
+src/snark/err.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_adsmos.Po b/src/snark/.deps/quad_adsmos.Po
new file mode 100755 (executable)
index 0000000..51c54df
--- /dev/null
@@ -0,0 +1,87 @@
+build/quad_adsmos.o: src/snark/quad_adsmos.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/blob.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_back.Po b/src/snark/.deps/quad_back.Po
new file mode 100755 (executable)
index 0000000..c280f6c
--- /dev/null
@@ -0,0 +1,92 @@
+build/quad_back.o: src/snark/quad_back.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/ray.h src/snark/wray.h src/snark/anglst.h \
+ src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/ray.h:
+
+src/snark/wray.h:
+
+src/snark/anglst.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_badsmos.Po b/src/snark/.deps/quad_badsmos.Po
new file mode 100755 (executable)
index 0000000..4061f32
--- /dev/null
@@ -0,0 +1,87 @@
+build/quad_badsmos.o: src/snark/quad_badsmos.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/blob.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_blurck.Po b/src/snark/.deps/quad_blurck.Po
new file mode 100755 (executable)
index 0000000..148939b
--- /dev/null
@@ -0,0 +1,90 @@
+build/quad_blurck.o: src/snark/quad_blurck.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/int2str.h src/snark/quad.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_bprpict.Po b/src/snark/.deps/quad_bprpict.Po
new file mode 100755 (executable)
index 0000000..263d185
--- /dev/null
@@ -0,0 +1,85 @@
+build/quad_bprpict.o: src/snark/quad_bprpict.cpp \
+ /usr/include/stdc-predef.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_costfn.Po b/src/snark/.deps/quad_costfn.Po
new file mode 100755 (executable)
index 0000000..6c933bc
--- /dev/null
@@ -0,0 +1,258 @@
+build/quad_costfn.o: src/snark/quad_costfn.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/fourie.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/wray.h src/snark/ray.h src/snark/anglst.h src/snark/errfac.h \
+ src/snark/blob.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/wray.h:
+
+src/snark/ray.h:
+
+src/snark/anglst.h:
+
+src/snark/errfac.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_deltac.Po b/src/snark/.deps/quad_deltac.Po
new file mode 100755 (executable)
index 0000000..6309201
--- /dev/null
@@ -0,0 +1,247 @@
+build/quad_deltac.o: src/snark/quad_deltac.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/uiod.h src/snark/blob.h \
+ src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_deltad.Po b/src/snark/.deps/quad_deltad.Po
new file mode 100755 (executable)
index 0000000..921ae66
--- /dev/null
@@ -0,0 +1,247 @@
+build/quad_deltad.o: src/snark/quad_deltad.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/uiod.h src/snark/blob.h \
+ src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_deset.Po b/src/snark/.deps/quad_deset.Po
new file mode 100755 (executable)
index 0000000..70f70a4
--- /dev/null
@@ -0,0 +1,256 @@
+build/quad_deset.o: src/snark/quad_deset.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/uiod.h src/snark/ray.h \
+ src/snark/wray.h src/snark/anglst.h src/snark/errfac.h src/snark/blob.h \
+ src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/ray.h:
+
+src/snark/wray.h:
+
+src/snark/anglst.h:
+
+src/snark/errfac.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_dset.Po b/src/snark/.deps/quad_dset.Po
new file mode 100755 (executable)
index 0000000..8c3e2be
--- /dev/null
@@ -0,0 +1,85 @@
+build/quad_dset.o: src/snark/quad_dset.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_eigval.Po b/src/snark/.deps/quad_eigval.Po
new file mode 100755 (executable)
index 0000000..5d87ec0
--- /dev/null
@@ -0,0 +1,252 @@
+build/quad_eigval.o: src/snark/quad_eigval.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/uiod.h \
+ include/DIGRand/DIGGauss.h include/DIGRand/DIGRand.h src/snark/blob.h \
+ src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+include/DIGRand/DIGGauss.h:
+
+include/DIGRand/DIGRand.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_matrix.Po b/src/snark/.deps/quad_matrix.Po
new file mode 100755 (executable)
index 0000000..63a5183
--- /dev/null
@@ -0,0 +1,90 @@
+build/quad_matrix.o: src/snark/quad_matrix.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/blob.h src/snark/quad.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_mtamx.Po b/src/snark/.deps/quad_mtamx.Po
new file mode 100755 (executable)
index 0000000..80a45e0
--- /dev/null
@@ -0,0 +1,256 @@
+build/quad_mtamx.o: src/snark/quad_mtamx.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/noise.h src/snark/wray.h src/snark/anglst.h \
+ src/snark/ray.h src/snark/errfac.h src/snark/consts.h src/snark/blob.h \
+ src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/noise.h:
+
+src/snark/wray.h:
+
+src/snark/anglst.h:
+
+src/snark/ray.h:
+
+src/snark/errfac.h:
+
+src/snark/consts.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_mtamxp.Po b/src/snark/.deps/quad_mtamxp.Po
new file mode 100755 (executable)
index 0000000..2bb3467
--- /dev/null
@@ -0,0 +1,258 @@
+build/quad_mtamxp.o: src/snark/quad_mtamxp.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/fourie.h src/snark/noise.h src/snark/anglst.h \
+ src/snark/wray.h src/snark/ray.h src/snark/errfac.h src/snark/consts.h \
+ src/snark/blob.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/fourie.h:
+
+src/snark/noise.h:
+
+src/snark/anglst.h:
+
+src/snark/wray.h:
+
+src/snark/ray.h:
+
+src/snark/errfac.h:
+
+src/snark/consts.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_nextr.Po b/src/snark/.deps/quad_nextr.Po
new file mode 100755 (executable)
index 0000000..609489e
--- /dev/null
@@ -0,0 +1,83 @@
+build/quad_nextr.o: src/snark/quad_nextr.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_nxtpct.Po b/src/snark/.deps/quad_nxtpct.Po
new file mode 100755 (executable)
index 0000000..7d0d929
--- /dev/null
@@ -0,0 +1,249 @@
+build/quad_nxtpct.o: src/snark/quad_nxtpct.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/modefl.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/blob.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/modefl.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_prpict.Po b/src/snark/.deps/quad_prpict.Po
new file mode 100755 (executable)
index 0000000..f4ce3e9
--- /dev/null
@@ -0,0 +1,85 @@
+build/quad_prpict.o: src/snark/quad_prpict.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_prsemi.Po b/src/snark/.deps/quad_prsemi.Po
new file mode 100755 (executable)
index 0000000..29fa214
--- /dev/null
@@ -0,0 +1,242 @@
+build/quad_prsemi.o: src/snark/quad_prsemi.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_resedu.Po b/src/snark/.deps/quad_resedu.Po
new file mode 100755 (executable)
index 0000000..fce3f22
--- /dev/null
@@ -0,0 +1,90 @@
+build/quad_resedu.o: src/snark/quad_resedu.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/consts.h src/snark/blob.h src/snark/quad.h \
+ src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/blob.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_semi.Po b/src/snark/.deps/quad_semi.Po
new file mode 100755 (executable)
index 0000000..9bdcad3
--- /dev/null
@@ -0,0 +1,242 @@
+build/quad_semi.o: src/snark/quad_semi.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_seset.Po b/src/snark/.deps/quad_seset.Po
new file mode 100755 (executable)
index 0000000..b9636c8
--- /dev/null
@@ -0,0 +1,85 @@
+build/quad_seset.o: src/snark/quad_seset.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_sset.Po b/src/snark/.deps/quad_sset.Po
new file mode 100755 (executable)
index 0000000..29f716c
--- /dev/null
@@ -0,0 +1,85 @@
+build/quad_sset.o: src/snark/quad_sset.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/quad_uerror.Po b/src/snark/.deps/quad_uerror.Po
new file mode 100755 (executable)
index 0000000..650dff7
--- /dev/null
@@ -0,0 +1,85 @@
+build/quad_uerror.o: src/snark/quad_uerror.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/quad.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/quad.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/ray.Po b/src/snark/.deps/ray.Po
new file mode 100755 (executable)
index 0000000..61f3c17
--- /dev/null
@@ -0,0 +1,247 @@
+build/ray.o: src/snark/ray.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/c++/7/stdlib.h \
+ /usr/include/c++/7/cstdlib src/snark/blkdta.h src/snark/geom.h \
+ src/snark/uiod.h src/snark/posit.h src/snark/ray.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+src/snark/posit.h:
+
+src/snark/ray.h:
diff --git a/src/snark/.deps/raylen.Po b/src/snark/.deps/raylen.Po
new file mode 100755 (executable)
index 0000000..32ec1fe
--- /dev/null
@@ -0,0 +1,242 @@
+build/raylen.o: src/snark/raylen.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/raylen.h src/snark/objects.h src/snark/consts.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/raylen.h:
+
+src/snark/objects.h:
+
+src/snark/consts.h:
diff --git a/src/snark/.deps/raysel.Po b/src/snark/.deps/raysel.Po
new file mode 100755 (executable)
index 0000000..8b70153
--- /dev/null
@@ -0,0 +1,80 @@
+build/raysel.o: src/snark/raysel.cpp /usr/include/stdc-predef.h \
+ src/snark/raysel.h src/snark/blkdta.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/raysel.h:
+
+src/snark/blkdta.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
diff --git a/src/snark/.deps/rdpict.Po b/src/snark/.deps/rdpict.Po
new file mode 100755 (executable)
index 0000000..d9c6087
--- /dev/null
@@ -0,0 +1,961 @@
+build/rdpict.o: src/snark/rdpict.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/creacm.h src/snark/geom.h src/snark/consts.h src/snark/uiod.h \
+ src/snark/creaer.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h include/DIGFile/DIGFile.h \
+ /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/file11.h src/snark/inputfile.h src/snark/infile.h \
+ src/snark/rdpict.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/geom.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/creaer.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/file11.h:
+
+src/snark/inputfile.h:
+
+src/snark/infile.h:
+
+src/snark/rdpict.h:
diff --git a/src/snark/.deps/rdproj.Po b/src/snark/.deps/rdproj.Po
new file mode 100755 (executable)
index 0000000..3f82d9d
--- /dev/null
@@ -0,0 +1,1069 @@
+build/rdproj.o: src/snark/rdproj.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/unistd.h \
+ /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
+ /usr/include/x86_64-linux-gnu/bits/environments.h \
+ /usr/include/x86_64-linux-gnu/bits/confname.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_core.h \
+ /usr/include/x86_64-linux-gnu/bits/unistd.h \
+ /usr/include/x86_64-linux-gnu/sys/stat.h \
+ /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/errno.h \
+ /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ src/snark/blkdta.h src/snark/creacm.h src/snark/geom.h \
+ src/snark/anglst.h src/snark/spctrm.h src/snark/consts.h \
+ src/snark/uiod.h src/snark/raylen.h src/snark/objects.h \
+ src/snark/posit.h include/DIGRand/DIGGauss.h include/DIGRand/DIGRand.h \
+ src/snark/creaer.h src/snark/bldlst.h src/snark/pseudo.h \
+ src/snark/bh_correction.h src/snark/snark.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h include/DIGFile/DIGFile.h \
+ /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/file11.h src/snark/inputfile.h src/snark/projfile.h \
+ src/snark/noise.h include/DIGFileSnark/DIGFileSnarkProj.h \
+ src/snark/infile.h src/snark/rdproj.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/unistd.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
+
+/usr/include/x86_64-linux-gnu/bits/environments.h:
+
+/usr/include/x86_64-linux-gnu/bits/confname.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
+
+/usr/include/x86_64-linux-gnu/bits/unistd.h:
+
+/usr/include/x86_64-linux-gnu/sys/stat.h:
+
+/usr/include/x86_64-linux-gnu/bits/stat.h:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+src/snark/blkdta.h:
+
+src/snark/creacm.h:
+
+src/snark/geom.h:
+
+src/snark/anglst.h:
+
+src/snark/spctrm.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/raylen.h:
+
+src/snark/objects.h:
+
+src/snark/posit.h:
+
+include/DIGRand/DIGGauss.h:
+
+include/DIGRand/DIGRand.h:
+
+src/snark/creaer.h:
+
+src/snark/bldlst.h:
+
+src/snark/pseudo.h:
+
+src/snark/bh_correction.h:
+
+src/snark/snark.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/file11.h:
+
+src/snark/inputfile.h:
+
+src/snark/projfile.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+src/snark/infile.h:
+
+src/snark/rdproj.h:
diff --git a/src/snark/.deps/read_eval_phantom1.Po b/src/snark/.deps/read_eval_phantom1.Po
new file mode 100755 (executable)
index 0000000..eedd54b
--- /dev/null
@@ -0,0 +1,205 @@
+build/read_eval_phantom1.o: src/snark/read_eval_phantom1.c \
+ /usr/include/stdc-predef.h /usr/include/malloc.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/experimenter.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/read_eval_phantom1.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/malloc.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/read_eval_phantom1.h:
diff --git a/src/snark/.deps/read_eval_recon1.Po b/src/snark/.deps/read_eval_recon1.Po
new file mode 100755 (executable)
index 0000000..aefbd9b
--- /dev/null
@@ -0,0 +1,221 @@
+build/read_eval_recon1.o: src/snark/read_eval_recon1.c \
+ /usr/include/stdc-predef.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/read_eval_recon1.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/read_eval_recon1.h:
diff --git a/src/snark/.deps/read_eval_recon2.Po b/src/snark/.deps/read_eval_recon2.Po
new file mode 100755 (executable)
index 0000000..71b76ce
--- /dev/null
@@ -0,0 +1,221 @@
+build/read_eval_recon2.o: src/snark/read_eval_recon2.c \
+ /usr/include/stdc-predef.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/read_eval_recon2.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/read_eval_recon2.h:
diff --git a/src/snark/.deps/read_eval_recon3.Po b/src/snark/.deps/read_eval_recon3.Po
new file mode 100755 (executable)
index 0000000..8490741
--- /dev/null
@@ -0,0 +1,221 @@
+build/read_eval_recon3.o: src/snark/read_eval_recon3.c \
+ /usr/include/stdc-predef.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/read_eval_recon3.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/read_eval_recon3.h:
diff --git a/src/snark/.deps/read_eval_recon4.Po b/src/snark/.deps/read_eval_recon4.Po
new file mode 100755 (executable)
index 0000000..454fcc9
--- /dev/null
@@ -0,0 +1,221 @@
+build/read_eval_recon4.o: src/snark/read_eval_recon4.c \
+ /usr/include/stdc-predef.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/read_eval_recon4.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/read_eval_recon4.h:
diff --git a/src/snark/.deps/read_fomfile.Po b/src/snark/.deps/read_fomfile.Po
new file mode 100755 (executable)
index 0000000..73ffe6a
--- /dev/null
@@ -0,0 +1,221 @@
+build/read_fomfile.o: src/snark/read_fomfile.c /usr/include/stdc-predef.h \
+ /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/read_fomfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/read_fomfile.h:
diff --git a/src/snark/.deps/recfile.Po b/src/snark/.deps/recfile.Po
new file mode 100755 (executable)
index 0000000..4439515
--- /dev/null
@@ -0,0 +1,947 @@
+build/recfile.o: src/snark/recfile.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstring \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/c++/7/cstdlib /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h src/snark/int2str.h src/snark/blkdta.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h include/DIGFile/DIGEndian.h \
+ include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ /usr/include/c++/7/bits/ios_base.h /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/modefl.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h include/DIGFile/DIGFile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstring:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+src/snark/int2str.h:
+
+src/snark/blkdta.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/modefl.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
diff --git a/src/snark/.deps/recon.Po b/src/snark/.deps/recon.Po
new file mode 100755 (executable)
index 0000000..e928e8c
--- /dev/null
@@ -0,0 +1,220 @@
+build/recon.o: src/snark/recon.c /usr/include/stdc-predef.h \
+ /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/experimenter.h \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/errorc.h \
+ src/snark/recon.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/errorc.h:
+
+src/snark/recon.h:
diff --git a/src/snark/.deps/region.Po b/src/snark/.deps/region.Po
new file mode 100755 (executable)
index 0000000..0dfab72
--- /dev/null
@@ -0,0 +1,8 @@
+build/region.o: src/snark/region.cpp /usr/include/stdc-predef.h \
+ src/snark/region.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/region.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/rfl.Po b/src/snark/.deps/rfl.Po
new file mode 100755 (executable)
index 0000000..a1fd86b
--- /dev/null
@@ -0,0 +1,1023 @@
+build/rfl.o: src/snark/rfl.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/spctrm.h src/snark/fourie.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/int2str.h \
+ src/snark/rtfort.h src/snark/bckprj.h src/snark/qfilt.h \
+ src/snark/anglst.h src/snark/projfile.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/rfl.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/fourie.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/rtfort.h:
+
+src/snark/bckprj.h:
+
+src/snark/qfilt.h:
+
+src/snark/anglst.h:
+
+src/snark/projfile.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/rfl.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/rtfort.Po b/src/snark/.deps/rtfort.Po
new file mode 100755 (executable)
index 0000000..9f16ff8
--- /dev/null
@@ -0,0 +1,243 @@
+build/rtfort.o: src/snark/rtfort.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/snfft.h src/snark/transm.h src/snark/consts.h \
+ src/snark/rtfort.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/snfft.h:
+
+src/snark/transm.h:
+
+src/snark/consts.h:
+
+src/snark/rtfort.h:
diff --git a/src/snark/.deps/sart.Po b/src/snark/.deps/sart.Po
new file mode 100755 (executable)
index 0000000..71938e1
--- /dev/null
@@ -0,0 +1,492 @@
+build/sart.o: src/snark/sart.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/iostream \
+ /usr/include/c++/7/ostream /usr/include/c++/7/ios \
+ /usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
+ /usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
+ /usr/include/c++/7/cwchar /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/c++/7/bits/ios_base.h /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc src/snark/sart.h src/snark/alg.h \
+ src/snark/blkdta.h src/snark/GeometricBehaviour.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/pseudo.h src/snark/SARTConfig.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+src/snark/sart.h:
+
+src/snark/alg.h:
+
+src/snark/blkdta.h:
+
+src/snark/GeometricBehaviour.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/pseudo.h:
+
+src/snark/SARTConfig.h:
diff --git a/src/snark/.deps/sec_cri.Po b/src/snark/.deps/sec_cri.Po
new file mode 100755 (executable)
index 0000000..12bc2d8
--- /dev/null
@@ -0,0 +1,8 @@
+build/sec_cri.o: src/snark/sec_cri.cpp /usr/include/stdc-predef.h \
+ src/snark/sec_cri.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/sec_cri.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/sec_cri1.Po b/src/snark/.deps/sec_cri1.Po
new file mode 100755 (executable)
index 0000000..f5c1ece
--- /dev/null
@@ -0,0 +1,213 @@
+build/sec_cri1.o: src/snark/sec_cri1.cpp /usr/include/stdc-predef.h \
+ src/snark/sec_cri1.h src/snark/sec_cri.h src/snark/blkdta.h \
+ /usr/include/c++/7/math.h /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/sec_cri1.h:
+
+src/snark/sec_cri.h:
+
+src/snark/blkdta.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/sec_cri2.Po b/src/snark/.deps/sec_cri2.Po
new file mode 100755 (executable)
index 0000000..fb64341
--- /dev/null
@@ -0,0 +1,213 @@
+build/sec_cri2.o: src/snark/sec_cri2.cpp /usr/include/stdc-predef.h \
+ src/snark/sec_cri2.h src/snark/sec_cri.h src/snark/blkdta.h \
+ /usr/include/c++/7/math.h /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/sec_cri2.h:
+
+src/snark/sec_cri.h:
+
+src/snark/blkdta.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/sec_cri3.Po b/src/snark/.deps/sec_cri3.Po
new file mode 100755 (executable)
index 0000000..3053daa
--- /dev/null
@@ -0,0 +1,10 @@
+build/sec_cri3.o: src/snark/sec_cri3.cpp /usr/include/stdc-predef.h \
+ src/snark/sec_cri3.h src/snark/sec_cri.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/sec_cri3.h:
+
+src/snark/sec_cri.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/sec_cri4.Po b/src/snark/.deps/sec_cri4.Po
new file mode 100755 (executable)
index 0000000..605a18b
--- /dev/null
@@ -0,0 +1,10 @@
+build/sec_cri4.o: src/snark/sec_cri4.cpp /usr/include/stdc-predef.h \
+ src/snark/sec_cri4.h src/snark/sec_cri.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/sec_cri4.h:
+
+src/snark/sec_cri.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/sec_cri5.Po b/src/snark/.deps/sec_cri5.Po
new file mode 100755 (executable)
index 0000000..ae1be1b
--- /dev/null
@@ -0,0 +1,10 @@
+build/sec_cri5.o: src/snark/sec_cri5.cpp /usr/include/stdc-predef.h \
+ src/snark/sec_cri5.h src/snark/sec_cri.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/sec_cri5.h:
+
+src/snark/sec_cri.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/second.Po b/src/snark/.deps/second.Po
new file mode 100755 (executable)
index 0000000..ea0ec77
--- /dev/null
@@ -0,0 +1,90 @@
+build/second.o: src/snark/second.cpp /usr/include/stdc-predef.h \
+ /usr/include/x86_64-linux-gnu/sys/time.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/resource.h \
+ /usr/include/x86_64-linux-gnu/bits/resource.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h \
+ /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
+ /usr/include/x86_64-linux-gnu/bits/environments.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/confname.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_core.h \
+ /usr/include/x86_64-linux-gnu/bits/unistd.h src/snark/blkdta.h \
+ src/snark/second.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/x86_64-linux-gnu/sys/time.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/resource.h:
+
+/usr/include/x86_64-linux-gnu/bits/resource.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h:
+
+/usr/include/unistd.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
+
+/usr/include/x86_64-linux-gnu/bits/environments.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/confname.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
+
+/usr/include/x86_64-linux-gnu/bits/unistd.h:
+
+src/snark/blkdta.h:
+
+src/snark/second.h:
diff --git a/src/snark/.deps/select.Po b/src/snark/.deps/select.Po
new file mode 100755 (executable)
index 0000000..355b7b3
--- /dev/null
@@ -0,0 +1,199 @@
+build/select.o: src/snark/select.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/raysel.h src/snark/uiod.h src/snark/geom.h src/snark/effpick.h \
+ src/snark/int2str.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/select.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/raysel.h:
+
+src/snark/uiod.h:
+
+src/snark/geom.h:
+
+src/snark/effpick.h:
+
+src/snark/int2str.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/select.h:
diff --git a/src/snark/.deps/settra.Po b/src/snark/.deps/settra.Po
new file mode 100755 (executable)
index 0000000..f370681
--- /dev/null
@@ -0,0 +1,190 @@
+build/settra.o: src/snark/settra.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/settra.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/settra.h:
diff --git a/src/snark/.deps/signif1.Po b/src/snark/.deps/signif1.Po
new file mode 100755 (executable)
index 0000000..0259c29
--- /dev/null
@@ -0,0 +1,222 @@
+build/signif1.o: src/snark/signif1.c /usr/include/stdc-predef.h \
+ /usr/include/malloc.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/experimenter.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/read_fomfile.h \
+ src/snark/signif1.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/malloc.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/read_fomfile.h:
+
+src/snark/signif1.h:
diff --git a/src/snark/.deps/sinc.Po b/src/snark/.deps/sinc.Po
new file mode 100755 (executable)
index 0000000..1dc792d
--- /dev/null
@@ -0,0 +1,238 @@
+build/sinc.o: src/snark/sinc.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/consts.h src/snark/sinc.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/sinc.h:
diff --git a/src/snark/.deps/sirt.Po b/src/snark/.deps/sirt.Po
new file mode 100755 (executable)
index 0000000..fa1563f
--- /dev/null
@@ -0,0 +1,1031 @@
+build/sirt.o: src/snark/sirt.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/spctrm.h src/snark/fourie.h \
+ src/snark/raysel.h src/snark/modefl.h src/snark/consts.h \
+ src/snark/uiod.h src/snark/raylen.h src/snark/objects.h \
+ src/snark/posit.h src/snark/anglst.h src/snark/ray.h \
+ src/snark/projfile.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h /usr/include/c++/7/cstdlib \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/infile.h src/snark/inputfile.h src/snark/blob.h \
+ src/snark/sirt.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/spctrm.h:
+
+src/snark/fourie.h:
+
+src/snark/raysel.h:
+
+src/snark/modefl.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/raylen.h:
+
+src/snark/objects.h:
+
+src/snark/posit.h:
+
+src/snark/anglst.h:
+
+src/snark/ray.h:
+
+src/snark/projfile.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/blob.h:
+
+src/snark/sirt.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/smooth.Po b/src/snark/.deps/smooth.Po
new file mode 100755 (executable)
index 0000000..5be468c
--- /dev/null
@@ -0,0 +1,240 @@
+build/smooth.o: src/snark/smooth.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/consts.h src/snark/uiod.h src/snark/smooth.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/uiod.h:
+
+src/snark/smooth.h:
diff --git a/src/snark/.deps/snark.Po b/src/snark/.deps/snark.Po
new file mode 100755 (executable)
index 0000000..397398c
--- /dev/null
@@ -0,0 +1,1041 @@
+build/snark.o: src/snark/snark.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/stringfwd.h /usr/include/c++/7/bits/memoryfwd.h \
+ /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h /usr/include/c++/7/bits/move.h \
+ /usr/include/c++/7/bits/concept_check.h /usr/include/c++/7/type_traits \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h \
+ /usr/include/c++/7/bits/postypes.h /usr/include/c++/7/cwchar \
+ /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h /usr/include/c++/7/new \
+ /usr/include/c++/7/exception /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/iosfwd \
+ /usr/include/c++/7/cctype /usr/include/ctype.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/x86_64-linux-gnu/sys/stat.h \
+ /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/fcntl.h \
+ /usr/include/x86_64-linux-gnu/bits/fcntl.h \
+ /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \
+ /usr/include/linux/falloc.h /usr/include/x86_64-linux-gnu/bits/fcntl2.h \
+ /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \
+ /usr/include/x86_64-linux-gnu/bits/environments.h \
+ /usr/include/x86_64-linux-gnu/bits/confname.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \
+ /usr/include/x86_64-linux-gnu/bits/getopt_core.h \
+ /usr/include/x86_64-linux-gnu/bits/unistd.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/basis.h src/snark/second.h src/snark/mode.h \
+ src/snark/settra.h src/snark/creatr.h src/snark/rdpict.h \
+ src/snark/rdproj.h src/snark/select.h src/snark/stopex.h \
+ src/snark/exalg.h src/snark/eval.h src/snark/disply.h src/snark/pnch.h \
+ src/snark/doline.h src/snark/halft.h src/snark/infile.h \
+ src/snark/inputfile.h src/snark/recfile.h \
+ include/DIGFileSnark/DIGFileSnarkRec.h include/DIGFile/DIGFile.h \
+ /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/include/c++/7/iostream /usr/include/c++/7/ostream \
+ /usr/include/c++/7/ios /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/bits/locale_classes.h \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/file11.h src/snark/int2str.h src/snark/objects.h \
+ src/snark/superior.h src/snark/sec_cri.h src/snark/nav.h \
+ src/snark/bdhk.h src/snark/alg.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/x86_64-linux-gnu/sys/stat.h:
+
+/usr/include/x86_64-linux-gnu/bits/stat.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/x86_64-linux-gnu/bits/fcntl.h:
+
+/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h:
+
+/usr/include/linux/falloc.h:
+
+/usr/include/x86_64-linux-gnu/bits/fcntl2.h:
+
+/usr/include/unistd.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix_opt.h:
+
+/usr/include/x86_64-linux-gnu/bits/environments.h:
+
+/usr/include/x86_64-linux-gnu/bits/confname.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_posix.h:
+
+/usr/include/x86_64-linux-gnu/bits/getopt_core.h:
+
+/usr/include/x86_64-linux-gnu/bits/unistd.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/basis.h:
+
+src/snark/second.h:
+
+src/snark/mode.h:
+
+src/snark/settra.h:
+
+src/snark/creatr.h:
+
+src/snark/rdpict.h:
+
+src/snark/rdproj.h:
+
+src/snark/select.h:
+
+src/snark/stopex.h:
+
+src/snark/exalg.h:
+
+src/snark/eval.h:
+
+src/snark/disply.h:
+
+src/snark/pnch.h:
+
+src/snark/doline.h:
+
+src/snark/halft.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/recfile.h:
+
+include/DIGFileSnark/DIGFileSnarkRec.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/file11.h:
+
+src/snark/int2str.h:
+
+src/snark/objects.h:
+
+src/snark/superior.h:
+
+src/snark/sec_cri.h:
+
+src/snark/nav.h:
+
+src/snark/bdhk.h:
+
+src/snark/alg.h:
diff --git a/src/snark/.deps/snfft.Po b/src/snark/.deps/snfft.Po
new file mode 100755 (executable)
index 0000000..33fc6cc
--- /dev/null
@@ -0,0 +1,244 @@
+build/snfft.o: src/snark/snfft.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/blkdta.h \
+ src/snark/uiod.h src/snark/primfc.h src/snark/fft2p.h src/snark/snfft.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/primfc.h:
+
+src/snark/fft2p.h:
+
+src/snark/snfft.h:
diff --git a/src/snark/.deps/spctrm.Po b/src/snark/.deps/spctrm.Po
new file mode 100755 (executable)
index 0000000..8593a8a
--- /dev/null
@@ -0,0 +1,8 @@
+build/spctrm.o: src/snark/spctrm.cpp /usr/include/stdc-predef.h \
+ src/snark/spctrm.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/spctrm.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/stopex.Po b/src/snark/.deps/stopex.Po
new file mode 100755 (executable)
index 0000000..5102674
--- /dev/null
@@ -0,0 +1,220 @@
+build/stopex.o: src/snark/stopex.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h src/snark/blkdta.h src/snark/consts.h \
+ src/snark/term.h src/snark/termtest.h src/snark/trm1.h src/snark/trm2.h \
+ src/snark/trm3.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/trm4.h src/snark/trm5.h src/snark/trm6.h \
+ src/snark/trm_weighted_squared_distance.h \
+ src/snark/TerminationCriterion.h src/snark/DistanceMeasure.h \
+ src/snark/uiod.h src/snark/int2str.h src/snark/stopex.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+src/snark/blkdta.h:
+
+src/snark/consts.h:
+
+src/snark/term.h:
+
+src/snark/termtest.h:
+
+src/snark/trm1.h:
+
+src/snark/trm2.h:
+
+src/snark/trm3.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/trm4.h:
+
+src/snark/trm5.h:
+
+src/snark/trm6.h:
+
+src/snark/trm_weighted_squared_distance.h:
+
+src/snark/TerminationCriterion.h:
+
+src/snark/DistanceMeasure.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/stopex.h:
diff --git a/src/snark/.deps/stru_acc.Po b/src/snark/.deps/stru_acc.Po
new file mode 100755 (executable)
index 0000000..60f482b
--- /dev/null
@@ -0,0 +1,207 @@
+build/stru_acc.o: src/snark/stru_acc.c /usr/include/stdc-predef.h \
+ /usr/include/malloc.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/experimenter.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/stru_acc.h \
+ src/snark/read_eval_recon1.h src/snark/read_eval_phantom1.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/malloc.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/stru_acc.h:
+
+src/snark/read_eval_recon1.h:
+
+src/snark/read_eval_phantom1.h:
diff --git a/src/snark/.deps/subreg.Po b/src/snark/.deps/subreg.Po
new file mode 100755 (executable)
index 0000000..87e4ea4
--- /dev/null
@@ -0,0 +1,245 @@
+build/subreg.o: src/snark/subreg.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/region.h src/snark/uiod.h src/snark/consts.h \
+ src/snark/eval.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/region.h:
+
+src/snark/uiod.h:
+
+src/snark/consts.h:
+
+src/snark/eval.h:
diff --git a/src/snark/.deps/superior.Po b/src/snark/.deps/superior.Po
new file mode 100755 (executable)
index 0000000..9798649
--- /dev/null
@@ -0,0 +1,1049 @@
+build/superior.o: src/snark/superior.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/iostream \
+ /usr/include/c++/7/ostream /usr/include/c++/7/ios \
+ /usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
+ /usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
+ /usr/include/c++/7/cwchar /usr/include/wchar.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc /usr/include/c++/7/cmath \
+ /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/math.h /usr/include/c++/7/stdlib.h \
+ src/snark/superior.h src/snark/sec_cri.h src/snark/blkdta.h \
+ src/snark/nav.h src/snark/bdhk.h src/snark/alg.h src/snark/nav1.h \
+ src/snark/nav2.h src/snark/nav3.h src/snark/nav4.h src/snark/nav5.h \
+ src/snark/sec_cri1.h src/snark/sec_cri2.h src/snark/sec_cri3.h \
+ src/snark/sec_cri4.h src/snark/sec_cri5.h src/snark/uiod.h \
+ src/snark/int2str.h src/snark/infile.h src/snark/inputfile.h \
+ src/snark/geom.h src/snark/projfile.h src/snark/spctrm.h \
+ src/snark/noise.h src/snark/anglst.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp src/snark/blob.h \
+ include/DIGRand/DIGRand.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/stdlib.h:
+
+src/snark/superior.h:
+
+src/snark/sec_cri.h:
+
+src/snark/blkdta.h:
+
+src/snark/nav.h:
+
+src/snark/bdhk.h:
+
+src/snark/alg.h:
+
+src/snark/nav1.h:
+
+src/snark/nav2.h:
+
+src/snark/nav3.h:
+
+src/snark/nav4.h:
+
+src/snark/nav5.h:
+
+src/snark/sec_cri1.h:
+
+src/snark/sec_cri2.h:
+
+src/snark/sec_cri3.h:
+
+src/snark/sec_cri4.h:
+
+src/snark/sec_cri5.h:
+
+src/snark/uiod.h:
+
+src/snark/int2str.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/geom.h:
+
+src/snark/projfile.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+src/snark/anglst.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/blob.h:
+
+include/DIGRand/DIGRand.h:
diff --git a/src/snark/.deps/supersnk.Po b/src/snark/.deps/supersnk.Po
new file mode 100755 (executable)
index 0000000..8f83625
--- /dev/null
@@ -0,0 +1,252 @@
+build/supersnk.o: src/snark/supersnk.c /usr/include/stdc-predef.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/experimenter.h \
+ /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/get_phantom.h \
+ src/snark/create_phantom.h src/snark/projection.h src/snark/recon.h \
+ src/snark/analysis.h src/snark/errorc.h src/snark/analyze.h \
+ src/snark/analyze2.h src/snark/get_iter_flag.h src/snark/check_if_iroi.h \
+ src/snark/snark.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/experimenter.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/get_phantom.h:
+
+src/snark/create_phantom.h:
+
+src/snark/projection.h:
+
+src/snark/recon.h:
+
+src/snark/analysis.h:
+
+src/snark/errorc.h:
+
+src/snark/analyze.h:
+
+src/snark/analyze2.h:
+
+src/snark/get_iter_flag.h:
+
+src/snark/check_if_iroi.h:
+
+src/snark/snark.h:
diff --git a/src/snark/.deps/term.Po b/src/snark/.deps/term.Po
new file mode 100755 (executable)
index 0000000..034840d
--- /dev/null
@@ -0,0 +1,71 @@
+build/term.o: src/snark/term.cpp /usr/include/stdc-predef.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/term.h \
+ src/snark/blkdta.h src/snark/termtest.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/term.h:
+
+src/snark/blkdta.h:
+
+src/snark/termtest.h:
diff --git a/src/snark/.deps/termtest.Po b/src/snark/.deps/termtest.Po
new file mode 100755 (executable)
index 0000000..66c0721
--- /dev/null
@@ -0,0 +1,8 @@
+build/termtest.o: src/snark/termtest.cpp /usr/include/stdc-predef.h \
+ src/snark/termtest.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/termtest.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/transm.Po b/src/snark/.deps/transm.Po
new file mode 100755 (executable)
index 0000000..bedafc9
--- /dev/null
@@ -0,0 +1,81 @@
+build/transm.o: src/snark/transm.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ src/snark/transm.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+src/snark/transm.h:
diff --git a/src/snark/.deps/trm1.Po b/src/snark/.deps/trm1.Po
new file mode 100755 (executable)
index 0000000..e929a83
--- /dev/null
@@ -0,0 +1,187 @@
+build/trm1.o: src/snark/trm1.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h src/snark/blkdta.h src/snark/uiod.h \
+ src/snark/trm1.h src/snark/termtest.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/trm1.h:
+
+src/snark/termtest.h:
diff --git a/src/snark/.deps/trm2.Po b/src/snark/.deps/trm2.Po
new file mode 100755 (executable)
index 0000000..6c5a737
--- /dev/null
@@ -0,0 +1,187 @@
+build/trm2.o: src/snark/trm2.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h src/snark/blkdta.h src/snark/uiod.h \
+ src/snark/trm2.h src/snark/termtest.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/trm2.h:
+
+src/snark/termtest.h:
diff --git a/src/snark/.deps/trm3.Po b/src/snark/.deps/trm3.Po
new file mode 100755 (executable)
index 0000000..6cee9ab
--- /dev/null
@@ -0,0 +1,255 @@
+build/trm3.o: src/snark/trm3.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/math.h /usr/include/c++/7/cmath \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/uiod.h /usr/include/c++/7/cstdio \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/consts.h \
+ src/snark/trm3.h /usr/include/c++/7/cstdlib src/snark/infile.h \
+ src/snark/inputfile.h src/snark/termtest.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/consts.h:
+
+src/snark/trm3.h:
+
+/usr/include/c++/7/cstdlib:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/termtest.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/trm4.Po b/src/snark/.deps/trm4.Po
new file mode 100755 (executable)
index 0000000..b673754
--- /dev/null
@@ -0,0 +1,1017 @@
+build/trm4.o: src/snark/trm4.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/iostream \
+ /usr/include/c++/7/ostream /usr/include/c++/7/ios \
+ /usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
+ /usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
+ /usr/include/c++/7/cwchar /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc src/snark/blkdta.h src/snark/uiod.h \
+ src/snark/trm4.h src/snark/termtest.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/wray.h /usr/include/c++/7/math.h \
+ /usr/include/c++/7/cmath /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/projfile.h \
+ src/snark/spctrm.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp src/snark/blob.h \
+ src/snark/infile.h src/snark/inputfile.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+src/snark/blkdta.h:
+
+src/snark/uiod.h:
+
+src/snark/trm4.h:
+
+src/snark/termtest.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/wray.h:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/projfile.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/blob.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
diff --git a/src/snark/.deps/trm5.Po b/src/snark/.deps/trm5.Po
new file mode 100755 (executable)
index 0000000..4470c5e
--- /dev/null
@@ -0,0 +1,1020 @@
+build/trm5.o: src/snark/trm5.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/iostream \
+ /usr/include/c++/7/ostream /usr/include/c++/7/ios \
+ /usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
+ /usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
+ /usr/include/c++/7/cwchar /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc /usr/include/c++/7/math.h \
+ /usr/include/c++/7/cmath /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/limits src/snark/trm5.h src/snark/termtest.h \
+ src/snark/blkdta.h src/snark/anglst.h src/snark/geom.h \
+ src/snark/projfile.h src/snark/spctrm.h src/snark/noise.h \
+ include/DIGFileSnark/DIGFileSnarkProj.h /usr/include/string.h \
+ /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/pseudo.h src/snark/consts.h src/snark/infile.h \
+ src/snark/inputfile.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/limits:
+
+src/snark/trm5.h:
+
+src/snark/termtest.h:
+
+src/snark/blkdta.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/projfile.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/pseudo.h:
+
+src/snark/consts.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/trm6.Po b/src/snark/.deps/trm6.Po
new file mode 100755 (executable)
index 0000000..7e47d91
--- /dev/null
@@ -0,0 +1,1017 @@
+build/trm6.o: src/snark/trm6.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cstdlib \
+ /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/c++/7/iostream \
+ /usr/include/c++/7/ostream /usr/include/c++/7/ios \
+ /usr/include/c++/7/iosfwd /usr/include/c++/7/bits/stringfwd.h \
+ /usr/include/c++/7/bits/memoryfwd.h /usr/include/c++/7/bits/postypes.h \
+ /usr/include/c++/7/cwchar /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/7/exception \
+ /usr/include/c++/7/bits/exception.h \
+ /usr/include/c++/7/bits/exception_ptr.h \
+ /usr/include/c++/7/bits/exception_defines.h \
+ /usr/include/c++/7/bits/cxxabi_init_exception.h \
+ /usr/include/c++/7/typeinfo /usr/include/c++/7/bits/hash_bytes.h \
+ /usr/include/c++/7/new /usr/include/c++/7/bits/nested_exception.h \
+ /usr/include/c++/7/bits/move.h /usr/include/c++/7/bits/concept_check.h \
+ /usr/include/c++/7/type_traits /usr/include/c++/7/bits/char_traits.h \
+ /usr/include/c++/7/bits/stl_algobase.h \
+ /usr/include/c++/7/bits/functexcept.h \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h \
+ /usr/include/c++/7/ext/numeric_traits.h \
+ /usr/include/c++/7/bits/stl_pair.h \
+ /usr/include/c++/7/bits/stl_iterator_base_types.h \
+ /usr/include/c++/7/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/7/debug/assertions.h \
+ /usr/include/c++/7/bits/stl_iterator.h \
+ /usr/include/c++/7/bits/ptr_traits.h /usr/include/c++/7/debug/debug.h \
+ /usr/include/c++/7/bits/predefined_ops.h /usr/include/c++/7/cstdint \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+ /usr/include/c++/7/bits/localefwd.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h \
+ /usr/include/c++/7/clocale /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/7/cctype \
+ /usr/include/ctype.h /usr/include/c++/7/bits/ios_base.h \
+ /usr/include/c++/7/ext/atomicity.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/sched.h \
+ /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/timex.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \
+ /usr/include/x86_64-linux-gnu/bits/setjmp.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h \
+ /usr/include/c++/7/bits/locale_classes.h /usr/include/c++/7/string \
+ /usr/include/c++/7/bits/allocator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h \
+ /usr/include/c++/7/ext/new_allocator.h \
+ /usr/include/c++/7/bits/ostream_insert.h \
+ /usr/include/c++/7/bits/cxxabi_forced.h \
+ /usr/include/c++/7/bits/stl_function.h \
+ /usr/include/c++/7/backward/binders.h \
+ /usr/include/c++/7/bits/range_access.h \
+ /usr/include/c++/7/initializer_list \
+ /usr/include/c++/7/bits/basic_string.h \
+ /usr/include/c++/7/ext/alloc_traits.h \
+ /usr/include/c++/7/bits/alloc_traits.h \
+ /usr/include/c++/7/ext/string_conversions.h /usr/include/c++/7/cerrno \
+ /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/c++/7/bits/functional_hash.h \
+ /usr/include/c++/7/bits/basic_string.tcc \
+ /usr/include/c++/7/bits/locale_classes.tcc \
+ /usr/include/c++/7/system_error \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h \
+ /usr/include/c++/7/stdexcept /usr/include/c++/7/streambuf \
+ /usr/include/c++/7/bits/streambuf.tcc \
+ /usr/include/c++/7/bits/basic_ios.h \
+ /usr/include/c++/7/bits/locale_facets.h /usr/include/c++/7/cwctype \
+ /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h \
+ /usr/include/c++/7/bits/streambuf_iterator.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h \
+ /usr/include/c++/7/bits/locale_facets.tcc \
+ /usr/include/c++/7/bits/basic_ios.tcc \
+ /usr/include/c++/7/bits/ostream.tcc /usr/include/c++/7/istream \
+ /usr/include/c++/7/bits/istream.tcc /usr/include/c++/7/math.h \
+ /usr/include/c++/7/cmath /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/trm6.h \
+ src/snark/termtest.h src/snark/blkdta.h src/snark/anglst.h \
+ src/snark/geom.h src/snark/projfile.h src/snark/spctrm.h \
+ src/snark/noise.h include/DIGFileSnark/DIGFileSnarkProj.h \
+ /usr/include/string.h /usr/include/strings.h \
+ /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \
+ /usr/include/x86_64-linux-gnu/bits/string_fortified.h \
+ include/DIGFile/DIGFile.h /usr/local/snark14/include/xercesc/dom/DOM.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/XercesVersion.hpp \
+ /usr/local/snark14/include/xercesc/util/AutoSense.hpp \
+ /usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp \
+ /usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/uio_lim.h \
+ /usr/local/snark14/include/xercesc/dom/DOMNode.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMText.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMComment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocument.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMElement.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntity.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMException.hpp \
+ /usr/local/snark14/include/xercesc/util/PlatformUtils.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMemory.hpp \
+ /usr/include/c++/7/stdlib.h \
+ /usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMError.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUni.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp \
+ /usr/local/snark14/include/xercesc/util/PanicHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNotation.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMRange.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLString.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemoryManager.hpp \
+ /usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMLocator.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp \
+ /usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp \
+ /usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefVectorOf.c \
+ /usr/local/snark14/include/xercesc/framework/XMLAttr.hpp \
+ /usr/local/snark14/include/xercesc/util/QName.hpp \
+ /usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializable.hpp \
+ /usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp \
+ /usr/local/snark14/include/xercesc/util/HashBase.hpp \
+ /usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp \
+ /usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp \
+ /usr/local/snark14/include/xercesc/util/RuntimeException.hpp \
+ /usr/local/snark14/include/xercesc/util/HashXMLCh.hpp \
+ /usr/local/snark14/include/xercesc/util/RefHashTableOf.c \
+ /usr/local/snark14/include/xercesc/util/NullPointerException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueVectorOf.c \
+ /usr/local/snark14/include/xercesc/internal/XSerializationException.hpp \
+ /usr/local/snark14/include/xercesc/internal/XProtoType.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp \
+ /usr/local/snark14/include/xercesc/util/KVStringPair.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp \
+ /usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c \
+ /usr/local/snark14/include/xercesc/util/Janitor.hpp \
+ /usr/local/snark14/include/xercesc/util/Janitor.c \
+ /usr/local/snark14/include/xercesc/util/Mutexes.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Op.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/Token.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp \
+ /usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp \
+ /usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp \
+ /usr/local/snark14/include/xercesc/framework/ValidationContext.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.hpp \
+ /usr/local/snark14/include/xercesc/util/NameIdPool.c \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp \
+ /usr/local/snark14/include/xercesc/util/SecurityManager.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.hpp \
+ /usr/local/snark14/include/xercesc/util/EmptyStackException.hpp \
+ /usr/local/snark14/include/xercesc/util/ValueStackOf.c \
+ /usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp \
+ /usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp \
+ /usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp \
+ /usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp \
+ include/DIGFile/DIG.h /usr/include/c++/7/cstring \
+ include/DIGFile/DIGEndian.h include/DIGFile/DOMTreeErrorReporter.h \
+ /usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp \
+ /usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp \
+ /usr/local/snark14/include/xercesc/sax/InputSource.hpp \
+ src/snark/pseudo.h src/snark/consts.h src/snark/infile.h \
+ src/snark/inputfile.h src/snark/blob.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/c++/7/iostream:
+
+/usr/include/c++/7/ostream:
+
+/usr/include/c++/7/ios:
+
+/usr/include/c++/7/iosfwd:
+
+/usr/include/c++/7/bits/stringfwd.h:
+
+/usr/include/c++/7/bits/memoryfwd.h:
+
+/usr/include/c++/7/bits/postypes.h:
+
+/usr/include/c++/7/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/wint_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+/usr/include/c++/7/exception:
+
+/usr/include/c++/7/bits/exception.h:
+
+/usr/include/c++/7/bits/exception_ptr.h:
+
+/usr/include/c++/7/bits/exception_defines.h:
+
+/usr/include/c++/7/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/7/typeinfo:
+
+/usr/include/c++/7/bits/hash_bytes.h:
+
+/usr/include/c++/7/new:
+
+/usr/include/c++/7/bits/nested_exception.h:
+
+/usr/include/c++/7/bits/move.h:
+
+/usr/include/c++/7/bits/concept_check.h:
+
+/usr/include/c++/7/type_traits:
+
+/usr/include/c++/7/bits/char_traits.h:
+
+/usr/include/c++/7/bits/stl_algobase.h:
+
+/usr/include/c++/7/bits/functexcept.h:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/c++/7/ext/numeric_traits.h:
+
+/usr/include/c++/7/bits/stl_pair.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/7/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/7/debug/assertions.h:
+
+/usr/include/c++/7/bits/stl_iterator.h:
+
+/usr/include/c++/7/bits/ptr_traits.h:
+
+/usr/include/c++/7/debug/debug.h:
+
+/usr/include/c++/7/bits/predefined_ops.h:
+
+/usr/include/c++/7/cstdint:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h:
+
+/usr/include/c++/7/bits/localefwd.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++locale.h:
+
+/usr/include/c++/7/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/c++/7/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/c++/7/bits/ios_base.h:
+
+/usr/include/c++/7/ext/atomicity.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/sched.h:
+
+/usr/include/x86_64-linux-gnu/bits/cpu-set.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/timex.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h:
+
+/usr/include/x86_64-linux-gnu/bits/setjmp.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/atomic_word.h:
+
+/usr/include/c++/7/bits/locale_classes.h:
+
+/usr/include/c++/7/string:
+
+/usr/include/c++/7/bits/allocator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:
+
+/usr/include/c++/7/ext/new_allocator.h:
+
+/usr/include/c++/7/bits/ostream_insert.h:
+
+/usr/include/c++/7/bits/cxxabi_forced.h:
+
+/usr/include/c++/7/bits/stl_function.h:
+
+/usr/include/c++/7/backward/binders.h:
+
+/usr/include/c++/7/bits/range_access.h:
+
+/usr/include/c++/7/initializer_list:
+
+/usr/include/c++/7/bits/basic_string.h:
+
+/usr/include/c++/7/ext/alloc_traits.h:
+
+/usr/include/c++/7/bits/alloc_traits.h:
+
+/usr/include/c++/7/ext/string_conversions.h:
+
+/usr/include/c++/7/cerrno:
+
+/usr/include/errno.h:
+
+/usr/include/x86_64-linux-gnu/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/x86_64-linux-gnu/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/c++/7/bits/functional_hash.h:
+
+/usr/include/c++/7/bits/basic_string.tcc:
+
+/usr/include/c++/7/bits/locale_classes.tcc:
+
+/usr/include/c++/7/system_error:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/error_constants.h:
+
+/usr/include/c++/7/stdexcept:
+
+/usr/include/c++/7/streambuf:
+
+/usr/include/c++/7/bits/streambuf.tcc:
+
+/usr/include/c++/7/bits/basic_ios.h:
+
+/usr/include/c++/7/bits/locale_facets.h:
+
+/usr/include/c++/7/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:
+
+/usr/include/c++/7/bits/streambuf_iterator.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_inline.h:
+
+/usr/include/c++/7/bits/locale_facets.tcc:
+
+/usr/include/c++/7/bits/basic_ios.tcc:
+
+/usr/include/c++/7/bits/ostream.tcc:
+
+/usr/include/c++/7/istream:
+
+/usr/include/c++/7/bits/istream.tcc:
+
+/usr/include/c++/7/math.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/trm6.h:
+
+src/snark/termtest.h:
+
+src/snark/blkdta.h:
+
+src/snark/anglst.h:
+
+src/snark/geom.h:
+
+src/snark/projfile.h:
+
+src/snark/spctrm.h:
+
+src/snark/noise.h:
+
+include/DIGFileSnark/DIGFileSnarkProj.h:
+
+/usr/include/string.h:
+
+/usr/include/strings.h:
+
+/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:
+
+/usr/include/x86_64-linux-gnu/bits/string_fortified.h:
+
+include/DIGFile/DIGFile.h:
+
+/usr/local/snark14/include/xercesc/dom/DOM.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/XercesVersion.hpp:
+
+/usr/local/snark14/include/xercesc/util/AutoSense.hpp:
+
+/usr/local/snark14/include/xercesc/util/Platforms/Linux/LinuxDefs.hpp:
+
+/usr/local/snark14/include/xercesc/util/Compilers/GCCDefs.hpp:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/xopen_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/uio_lim.h:
+
+/usr/local/snark14/include/xercesc/dom/DOMNode.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCDATASection.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMText.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMCharacterData.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMComment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocument.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentTraversal.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathEvaluator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentFragment.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMDocumentType.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMElement.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntity.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityReference.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMException.hpp:
+
+/usr/local/snark14/include/xercesc/util/PlatformUtils.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMemory.hpp:
+
+/usr/include/c++/7/stdlib.h:
+
+/usr/local/snark14/include/xercesc/util/XMLExceptMsgs.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMError.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUni.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLErrorReporter.hpp:
+
+/usr/local/snark14/include/xercesc/util/PanicHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationLS.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRangeException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNamedNodeMap.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeList.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNotation.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMProcessingInstruction.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeFilter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMNodeIterator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMRange.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTreeWalker.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMBuilder.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMConfiguration.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLString.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ArrayIndexOutOfBoundsException.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLEnumerator.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemoryManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/BaseRefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLBuffer.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMEntityResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationRegistry.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMImplementationSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMLocator.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMTypeInfo.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMUserDataHandler.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMWriterFilter.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLFormatter.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNSResolver.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathException.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathExpression.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathResult.hpp:
+
+/usr/local/snark14/include/xercesc/dom/DOMXPathNamespace.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/XercesDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/parsers/AbstractDOMParser.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLDocumentHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefVectorOf.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttr.hpp:
+
+/usr/local/snark14/include/xercesc/util/QName.hpp:
+
+/usr/local/snark14/include/xercesc/util/XMLUniDefs.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializable.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XSerializeEngine.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashBase.hpp:
+
+/usr/local/snark14/include/xercesc/util/IllegalArgumentException.hpp:
+
+/usr/local/snark14/include/xercesc/util/NoSuchElementException.hpp:
+
+/usr/local/snark14/include/xercesc/util/RuntimeException.hpp:
+
+/usr/local/snark14/include/xercesc/util/HashXMLCh.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefHashTableOf.c:
+
+/usr/local/snark14/include/xercesc/util/NullPointerException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueVectorOf.c:
+
+/usr/local/snark14/include/xercesc/internal/XSerializationException.hpp:
+
+/usr/local/snark14/include/xercesc/internal/XProtoType.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/datatype/DatatypeValidator.hpp:
+
+/usr/local/snark14/include/xercesc/util/KVStringPair.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/RegularExpression.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/RefArrayVectorOf.c:
+
+/usr/local/snark14/include/xercesc/util/Janitor.hpp:
+
+/usr/local/snark14/include/xercesc/util/Janitor.c:
+
+/usr/local/snark14/include/xercesc/util/Mutexes.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Op.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/TokenFactory.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/Token.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/BMPattern.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ModifierToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/ConditionToken.hpp:
+
+/usr/local/snark14/include/xercesc/util/regx/OpFactory.hpp:
+
+/usr/local/snark14/include/xercesc/validators/schema/SchemaSymbols.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSSimpleTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSTypeDefinition.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSObject.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/XSConstants.hpp:
+
+/usr/local/snark14/include/xercesc/framework/ValidationContext.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.hpp:
+
+/usr/local/snark14/include/xercesc/util/NameIdPool.c:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityHandler.hpp:
+
+/usr/local/snark14/include/xercesc/util/SecurityManager.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.hpp:
+
+/usr/local/snark14/include/xercesc/util/EmptyStackException.hpp:
+
+/usr/local/snark14/include/xercesc/util/ValueStackOf.c:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DocTypeHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLNotationDecl.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDAttDef.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLElementDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLAttDefList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLContentModel.hpp:
+
+/usr/local/snark14/include/xercesc/validators/DTD/DTDEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLEntityDecl.hpp:
+
+/usr/local/snark14/include/xercesc/framework/XMLBufferMgr.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIElement.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIItem.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttributeList.hpp:
+
+/usr/local/snark14/include/xercesc/framework/psvi/PSVIAttribute.hpp:
+
+include/DIGFile/DIG.h:
+
+/usr/include/c++/7/cstring:
+
+include/DIGFile/DIGEndian.h:
+
+include/DIGFile/DOMTreeErrorReporter.h:
+
+/usr/local/snark14/include/xercesc/sax/ErrorHandler.hpp:
+
+/usr/local/snark14/include/xercesc/framework/MemBufInputSource.hpp:
+
+/usr/local/snark14/include/xercesc/sax/InputSource.hpp:
+
+src/snark/pseudo.h:
+
+src/snark/consts.h:
+
+src/snark/infile.h:
+
+src/snark/inputfile.h:
+
+src/snark/blob.h:
diff --git a/src/snark/.deps/trm_weighted_squared_distance.Po b/src/snark/.deps/trm_weighted_squared_distance.Po
new file mode 100755 (executable)
index 0000000..068b0ea
--- /dev/null
@@ -0,0 +1,22 @@
+build/trm_weighted_squared_distance.o: \
+ src/snark/trm_weighted_squared_distance.cpp /usr/include/stdc-predef.h \
+ src/snark/trm_weighted_squared_distance.h src/snark/blkdta.h \
+ src/snark/TerminationCriterion.h src/snark/termtest.h \
+ src/snark/DistanceMeasure.h src/snark/DistanceMeasureWSQD.h \
+ src/snark/DistanceMeasurePixel.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/trm_weighted_squared_distance.h:
+
+src/snark/blkdta.h:
+
+src/snark/TerminationCriterion.h:
+
+src/snark/termtest.h:
+
+src/snark/DistanceMeasure.h:
+
+src/snark/DistanceMeasureWSQD.h:
+
+src/snark/DistanceMeasurePixel.h:
diff --git a/src/snark/.deps/uiod.Po b/src/snark/.deps/uiod.Po
new file mode 100755 (executable)
index 0000000..052ba3d
--- /dev/null
@@ -0,0 +1,80 @@
+build/uiod.o: src/snark/uiod.cpp /usr/include/stdc-predef.h \
+ src/snark/uiod.h /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/uiod.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
diff --git a/src/snark/.deps/unkps.Po b/src/snark/.deps/unkps.Po
new file mode 100755 (executable)
index 0000000..3dab164
--- /dev/null
@@ -0,0 +1,236 @@
+build/unkps.o: src/snark/unkps.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/unkps.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/unkps.h:
diff --git a/src/snark/.deps/user_fom1.Po b/src/snark/.deps/user_fom1.Po
new file mode 100755 (executable)
index 0000000..961b99a
--- /dev/null
@@ -0,0 +1,200 @@
+build/user_fom1.o: src/snark/user_fom1.c /usr/include/stdc-predef.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/user_fom1.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/user_fom1.h:
diff --git a/src/snark/.deps/user_fom2.Po b/src/snark/.deps/user_fom2.Po
new file mode 100755 (executable)
index 0000000..1ae71d2
--- /dev/null
@@ -0,0 +1,200 @@
+build/user_fom2.o: src/snark/user_fom2.c /usr/include/stdc-predef.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/user_fom2.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/user_fom2.h:
diff --git a/src/snark/.deps/user_fom3.Po b/src/snark/.deps/user_fom3.Po
new file mode 100755 (executable)
index 0000000..ab276e8
--- /dev/null
@@ -0,0 +1,200 @@
+build/user_fom3.o: src/snark/user_fom3.c /usr/include/stdc-predef.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/user_fom3.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/user_fom3.h:
diff --git a/src/snark/.deps/user_fom4.Po b/src/snark/.deps/user_fom4.Po
new file mode 100755 (executable)
index 0000000..52dfbd1
--- /dev/null
@@ -0,0 +1,200 @@
+build/user_fom4.o: src/snark/user_fom4.c /usr/include/stdc-predef.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/user_fom4.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/user_fom4.h:
diff --git a/src/snark/.deps/user_fom5.Po b/src/snark/.deps/user_fom5.Po
new file mode 100755 (executable)
index 0000000..ff8d916
--- /dev/null
@@ -0,0 +1,200 @@
+build/user_fom5.o: src/snark/user_fom5.c /usr/include/stdc-predef.h \
+ src/snark/experimenter.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h src/snark/user_fom5.h
+
+/usr/include/stdc-predef.h:
+
+src/snark/experimenter.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+src/snark/user_fom5.h:
diff --git a/src/snark/.deps/wray.Po b/src/snark/.deps/wray.Po
new file mode 100755 (executable)
index 0000000..05a0aee
--- /dev/null
@@ -0,0 +1,242 @@
+build/wray.o: src/snark/wray.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/7/cmath \
+ /usr/include/c++/7/bits/cpp_type_traits.h \
+ /usr/include/c++/7/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/c++/7/bits/std_abs.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h src/snark/blkdta.h \
+ src/snark/geom.h src/snark/uiod.h src/snark/posit.h src/snark/wray.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+/usr/include/c++/7/cmath:
+
+/usr/include/c++/7/bits/cpp_type_traits.h:
+
+/usr/include/c++/7/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/floatn.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val_flt128.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-logb.h:
+
+/usr/include/x86_64-linux-gnu/bits/fp-fast.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/iscanonical.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/c++/7/bits/std_abs.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clock_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/time_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/timer_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+src/snark/blkdta.h:
+
+src/snark/geom.h:
+
+src/snark/uiod.h:
+
+src/snark/posit.h:
+
+src/snark/wray.h:
diff --git a/src/snark/.deps/wrdpack.Po b/src/snark/.deps/wrdpack.Po
new file mode 100755 (executable)
index 0000000..08988e8
--- /dev/null
@@ -0,0 +1,104 @@
+build/wrdpack.o: src/snark/wrdpack.cpp /usr/include/stdc-predef.h \
+ /usr/include/c++/7/cstdio \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h \
+ /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h /usr/include/libio.h \
+ /usr/include/_G_config.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h src/snark/blkdta.h \
+ /usr/include/ctype.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ src/snark/wrdpack.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/c++/7/cstdio:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/bits/long-double.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/c++/7/bits/cpu_defines.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+src/snark/blkdta.h:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/bits/uintn-identity.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/locale_t.h:
+
+/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h:
+
+src/snark/wrdpack.h:
diff --git a/src/snark/BasisFunctionBlob.cpp b/src/snark/BasisFunctionBlob.cpp
new file mode 100644 (file)
index 0000000..d94f325
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/BasisFunctionBlob.cpp $
+ $LastChangedRevision: 81 $
+ $Date: 2014-07-02 11:07:09 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+ */
+
+#include "BasisFunctionBlob.h"
+#include "blob.h"
+
+BasisFunctionBlob::BasisFunctionBlob() :
+               GeometricBehaviour() {
+}
+
+BasisFunctionBlob::~BasisFunctionBlob() {
+}
+
+void BasisFunctionBlob::getRayTrace(INTEGER np, INTEGER nr,
+               INTEGER* list,
+               REAL* weight, INTEGER* numb, REAL* snorm, REAL * _sorx,
+               REAL * _sory, REAL * _cf, REAL * _sf) {
+       // _sorx, _sory, _cf, _sf are not used for Blobs
+       Blob.bwray(np, nr, list, weight, numb, snorm);
+}
+
+INTEGER BasisFunctionBlob::getArea() {
+       return Blob.area;
+}
+;
+
diff --git a/src/snark/BasisFunctionBlob.h b/src/snark/BasisFunctionBlob.h
new file mode 100644 (file)
index 0000000..eec9fe1
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/BasisFunctionBlob.h $
+ $LastChangedRevision: 81 $
+ $Date: 2014-07-02 11:07:09 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+ */
+
+#ifndef BASISFUNCTIONBLOB_H_
+#define BASISFUNCTIONBLOB_H_
+
+#include "GeometricBehaviour.h"
+
+class BasisFunctionBlob: public GeometricBehaviour {
+public:
+       BasisFunctionBlob();
+       virtual ~BasisFunctionBlob();
+
+       void getRayTrace(INTEGER np, INTEGER nr, INTEGER* list,
+       REAL* weight, INTEGER* numb, REAL* snorm, REAL * _sorx = 0,
+       REAL * _sory = 0, REAL * _cf = 0, REAL * _sf = 0);
+
+       INTEGER getArea();
+};
+
+#endif /* BASISFUNCTIONBLOB_H_ */
diff --git a/src/snark/BasisFunctionPixel.cpp b/src/snark/BasisFunctionPixel.cpp
new file mode 100644 (file)
index 0000000..44f05a6
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/BasisFunctionPixel.cpp $
+ $LastChangedRevision: 81 $
+ $Date: 2014-07-02 11:07:09 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+ */
+
+#include "BasisFunctionPixel.h"
+#include "wray.h"
+#include "anglst.h"
+
+BasisFunctionPixel::BasisFunctionPixel() :
+               GeometricBehaviour() {
+}
+
+BasisFunctionPixel::~BasisFunctionPixel() {
+}
+
+void BasisFunctionPixel::getRayTrace(INTEGER np, INTEGER nr,
+               INTEGER* list,
+               REAL* weight, INTEGER* numb, REAL* snorm, REAL * _sorx,
+               REAL * _sory, REAL * _cf, REAL * _sf) {
+       // call the function of the global namespace
+       ::wray(np, nr, list, weight, numb, snorm, _sorx, _sory, _cf, _sf);
+}
+
+INTEGER BasisFunctionPixel::getArea() {
+       return GeoPar.area;
+}
+;
+
diff --git a/src/snark/BasisFunctionPixel.h b/src/snark/BasisFunctionPixel.h
new file mode 100644 (file)
index 0000000..f0c4315
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/BasisFunctionPixel.h $
+ $LastChangedRevision: 81 $
+ $Date: 2014-07-02 11:07:09 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+ */
+
+#ifndef BASISFUNCTIONPIXEL_H_
+#define BASISFUNCTIONPIXEL_H_
+
+#include "GeometricBehaviour.h"
+
+class BasisFunctionPixel: public GeometricBehaviour {
+public:
+       BasisFunctionPixel();
+       virtual ~BasisFunctionPixel();
+
+       void getRayTrace(INTEGER np, INTEGER nr, INTEGER* list,
+       REAL* weight, INTEGER* numb, REAL* snorm, REAL * _sorx = 0,
+       REAL * _sory = 0, REAL * _cf = 0, REAL * _sf = 0);
+
+       INTEGER getArea();
+};
+
+#endif /* BASISFUNCTIONPIXEL_H_ */
diff --git a/src/snark/DistanceMeasure.cpp b/src/snark/DistanceMeasure.cpp
new file mode 100644 (file)
index 0000000..7f14ada
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "DistanceMeasure.h"
+#include "blob.h"
+
+using namespace std;
+
+DistanceMeasure::DistanceMeasure(char* distanceNameIn) {
+       this->distanceName = distanceNameIn;
+}
+
+DistanceMeasure::~DistanceMeasure() {
+}
+
+REAL DistanceMeasure::calculateDistance(REAL* recon, INTEGER* list,
+REAL* weight) {
+       if (Blob.pix_basis) {
+               return this->calculateDistanceForPixel(recon, list, weight);
+       } else {
+               return this->calculateDistanceForBlob(recon, list, weight);
+       }
+}
+
+char* DistanceMeasure::getName() {
+       return this->distanceName;
+}
diff --git a/src/snark/DistanceMeasure.h b/src/snark/DistanceMeasure.h
new file mode 100644 (file)
index 0000000..865c52e
--- /dev/null
@@ -0,0 +1,65 @@
+/* 
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Abstract class for distance measurements
+
+ */
+
+#ifndef Distance_Measure
+#define Distance_Measure
+
+#include "blkdta.h"
+
+class DistanceMeasure {
+
+// attributes
+private:
+       char* distanceName;
+
+// methods
+public:
+       DistanceMeasure(char* distanceNameIn);
+       virtual ~DistanceMeasure();
+
+       /**
+        * Calculates the distance for the provided reconstruction.
+        *
+        * input:       recon           the reconstruction, from which the distance should be calculated
+        *                      list            a allocated list with lenght = max pixel intersected by one ray
+        *                      weight          a allocated list with lenght = max pixel intersected by one ray
+        */
+       REAL calculateDistance(REAL* recon, INTEGER* list, REAL* weight);
+
+       /**
+        * Calculates the distance for the provided reconstruction.
+        *
+        * input:       reconPixel      the reconstruction, from which the distance should be calculated
+        *                      list            a allocated list with lenght = max pixel intersected by one ray
+        *                      weight          a allocated list with lenght = max pixel intersected by one ray
+        */
+       virtual REAL calculateDistanceForPixel(REAL* reconPixel, INTEGER* list,
+       REAL* weight) = 0;
+
+       /**
+        * Calculates the distance for the provided reconstruction.
+        *
+        * input:       reconBlob       the reconstruction, from which the distance should be calculated
+        *                      list            a allocated list with lenght = max pixel intersected by one ray
+        *                      weight          a allocated list with lenght = max pixel intersected by one ray
+        */
+       virtual REAL calculateDistanceForBlob(REAL* reconBlob, INTEGER* list,
+       REAL* weight) = 0;
+
+       /**
+        * Returns the name of the distance measure
+        */
+       char* getName();
+};
+
+#endif
diff --git a/src/snark/DistanceMeasurePixel.cpp b/src/snark/DistanceMeasurePixel.cpp
new file mode 100644 (file)
index 0000000..95e7bfa
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "DistanceMeasurePixel.h"
+#include "blob.h"
+#include "geom.h"
+
+using namespace std;
+
+DistanceMeasurePixel::DistanceMeasurePixel(char* distanceNameIn) :
+               DistanceMeasure(distanceNameIn) {
+}
+
+DistanceMeasurePixel::~DistanceMeasurePixel() {
+}
+
+REAL DistanceMeasurePixel::calculateDistanceForBlob(REAL* reconBlob,
+INTEGER* list, REAL* weight) {
+
+       // if input uses blob basis functions --> it needs to be converted to pixel first
+       REAL* reconPixel = new REAL[GeoPar.area];
+       Blob.blob2pix(reconBlob, reconPixel);
+
+       REAL distance = this->calculateDistanceForPixel(reconPixel, list, weight);
+       delete[] reconPixel;
+
+       return distance;
+}
diff --git a/src/snark/DistanceMeasurePixel.h b/src/snark/DistanceMeasurePixel.h
new file mode 100644 (file)
index 0000000..b3b519f
--- /dev/null
@@ -0,0 +1,33 @@
+/* 
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Abstract class for pixel distance measurements
+
+ */
+
+#ifndef Distance_Measure_Pixel
+#define Distance_Measure_Pixel
+
+#include "blkdta.h"
+#include "DistanceMeasure.h"
+
+class DistanceMeasurePixel: public DistanceMeasure {
+
+// attributes
+
+// methods
+public:
+       DistanceMeasurePixel(char* distanceMeasureIn);
+       virtual ~DistanceMeasurePixel();
+
+       virtual REAL calculateDistanceForBlob(REAL* reconBlob, INTEGER* list,
+       REAL* weight);
+};
+
+#endif
diff --git a/src/snark/DistanceMeasureWSQD.cpp b/src/snark/DistanceMeasureWSQD.cpp
new file mode 100644 (file)
index 0000000..2afb8e2
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <math.h>
+#include "DistanceMeasureWSQD.h"
+#include "anglst.h"
+#include "pseudo.h"
+#include "consts.h"
+
+using namespace std;
+
+DistanceMeasureWSQD::DistanceMeasureWSQD() :
+               DistanceMeasurePixel("weighted squared distance") {
+}
+DistanceMeasureWSQD::~DistanceMeasureWSQD() {
+}
+
+REAL DistanceMeasureWSQD::calculateDistanceForPixel(REAL* reconPixel,
+INTEGER* list, REAL* weight) {
+
+       // variables needed during computation of the current residual
+
+       REAL theta = 0;
+       REAL sinth = 0;
+       REAL costh = 0;
+
+       BOOLEAN linef = true;
+
+       REAL raysum = 0;
+       REAL psum = 0;
+       INTEGER numb = 0;
+       REAL snorm = 0;
+       REAL raylen = 0;
+       REAL wsqd = 0;
+
+       // compute current residual
+       for (int np = 0; np < GeoPar.prjnum; np++) {
+               REAL rinc = GeoPar.pinc;
+               Anglst.getang(np, &theta, &sinth, &costh);
+
+               if (GeoPar.vri) {
+                       rinc = GeoPar.pinc * MAX0(fabs(sinth), fabs(costh));
+               }
+
+               for (int nr = GeoPar.fusray; nr <= GeoPar.lusray; nr++) {
+                       raysum = Anglst.prdta(np, nr);
+                       psum = pseudo(reconPixel, np, nr, list, weight, &numb, &snorm,
+                                       linef, TRUE);
+
+                       if (numb != 0) {
+                               // pseudo already evaluates the values for weight/number of affected pixel
+                               // --> can be reused
+                               // ATTENTION: no other operations on weight/numb are allowed between pseudo and this calculation
+                               raylen = 0.0;
+                               for (int i = 0; i < numb; i++) {
+                                       raylen += weight[i];
+                               }
+
+                               if (raylen > Consts.zero) {
+                                       if (linef && !GeoPar.line)
+                                               raysum /= rinc;
+                                       if (!linef && GeoPar.line)
+                                               raysum *= rinc;
+                                       wsqd += pow(psum - raysum, 2) / raylen;
+                               }
+                       }
+               }
+       }
+
+       return wsqd;
+}
diff --git a/src/snark/DistanceMeasureWSQD.h b/src/snark/DistanceMeasureWSQD.h
new file mode 100644 (file)
index 0000000..b7196ce
--- /dev/null
@@ -0,0 +1,33 @@
+/* 
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Class to calculate the Weighted SQuared Distance (WSQD)
+
+ */
+
+#ifndef Distance_Measure_WSQD
+#define Distance_Measure_WSQD
+
+#include "blkdta.h"
+#include "DistanceMeasurePixel.h"
+
+class DistanceMeasureWSQD: public DistanceMeasurePixel {
+
+// attributes
+
+// methods
+public:
+       DistanceMeasureWSQD();
+       virtual ~DistanceMeasureWSQD();
+
+       virtual REAL calculateDistanceForPixel(REAL* reconPixel, INTEGER* list,
+                       REAL* weight);
+};
+
+#endif
diff --git a/src/snark/GeometricBehaviour.cpp b/src/snark/GeometricBehaviour.cpp
new file mode 100644 (file)
index 0000000..239a429
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/GeometricBehaviour.cpp $
+ $LastChangedRevision: 81 $
+ $Date: 2014-07-02 11:07:09 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+ */
+
+#include "GeometricBehaviour.h"
+#include "BasisFunctionPixel.h"
+#include "BasisFunctionBlob.h"
+#include "blob.h"
+#include "anglst.h"
+
+GeometricBehaviour::GeometricBehaviour()
+{
+}
+
+GeometricBehaviour::~GeometricBehaviour()
+{
+}
+
+GeometricBehaviour* GeometricBehaviour::getInstance()
+{
+
+       GeometricBehaviour* strategy;
+
+       if (Blob.pix_basis)
+       {
+               strategy = new BasisFunctionPixel();
+       }
+       else
+       {
+               strategy = new BasisFunctionBlob();
+       }
+
+       return strategy;
+}
+
+INTEGER GeometricBehaviour::getArrayIndex(INTEGER row, INTEGER column)
+{
+       return row * GeoPar.nelem + column;
+}
+
+void GeometricBehaviour::getPixelPosition(INTEGER arrayIndex, INTEGER* row, INTEGER* column)
+{
+       *row = arrayIndex / GeoPar.nelem;
+       *column = arrayIndex % GeoPar.nelem;
+}
+
diff --git a/src/snark/GeometricBehaviour.h b/src/snark/GeometricBehaviour.h
new file mode 100644 (file)
index 0000000..293af46
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/GeometricBehaviour.h $
+ $LastChangedRevision: 81 $
+ $Date: 2014-07-02 11:07:09 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+ */
+
+#ifndef GEOMETRICBEHAVIOUR_H_
+#define GEOMETRICBEHAVIOUR_H_
+
+#include "blkdta.h"
+
+/**
+ * Class to hold all functions related to the geometric behaviour. Can be used for the strategy pattern.
+ */
+class GeometricBehaviour
+{
+
+public:
+       GeometricBehaviour();
+       virtual ~GeometricBehaviour();
+
+       static GeometricBehaviour* getInstance();
+
+       virtual void getRayTrace(INTEGER np, INTEGER nr, INTEGER* list,
+       REAL* weight, INTEGER* numb, REAL* snorm, REAL * _sorx = 0,
+       REAL * _sory = 0, REAL * _cf = 0, REAL * _sf = 0) = 0;
+
+       virtual INTEGER getArea() = 0;
+
+       INTEGER getArrayIndex(INTEGER row, INTEGER column);
+
+       void getPixelPosition(INTEGER arrayIndex, INTEGER* row, INTEGER* column);
+
+}
+;
+#endif /* GEOMETRICBEHAVIOUR_H_ */
diff --git a/src/snark/SARTConfig.cpp b/src/snark/SARTConfig.cpp
new file mode 100644 (file)
index 0000000..9d39857
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/SARTConfig.cpp $
+ $LastChangedRevision: 123 $
+ $Date: 2014-07-11 09:44:57 -0400 (Fri, 11 Jul 2014) $
+ $Author: bprommegger $
+ ***********************************************************
+ */
+
+#include "SARTConfig.h"
+#include <cstdio>
+#include "uiod.h"
+#include "int2str.h"
+#include "infile.h"
+#include "consts.h"
+
+REAL SARTConfig::relaxiation = 1;
+REAL SARTConfig::zeroThreshold = Consts.zero;
+
+SARTConfig::SARTConfig()
+{
+}
+
+SARTConfig::~SARTConfig()
+{
+}
+
+void SARTConfig::printErrorMessage(char* errorString)
+{
+       fprintf(output, "\n          wrong configuration for SART --> default values might be applied ...");
+       fprintf(output, "\n          error message: %s", errorString);
+       fprintf(output, "\n              check documentation for further details !!!");
+}
+
+BOOLEAN SARTConfig::readSARTConfiguration()
+{
+
+       // definition of possible set-up parameters
+       static const INTEGER strParameterRelaxation = CHAR2INT('r', 'e', 'l', 'a');
+       static const INTEGER strParameterConstValue = CHAR2INT('c', 'o', 'n', 's');
+
+       INTEGER currentParameterValueInt;
+       REAL currentParameterValueReal;
+       BOOLEAN eol;
+       INTEGER* allowedExpressions = new INTEGER[10];
+       INTEGER numberOfAllowedExpressions = 0;
+
+       // FORMAT OF INPUT COMMAND:
+
+       // EXECUTE SART
+       // LINE OF COMMENT
+       // RELAXATION CONSTANT r ... optional
+
+       // Example:
+
+       // EXECUTE SART
+       // SART Execution Sample
+       // RELAXATION CONSTANT 1.9
+
+       // check RELAXATION
+       allowedExpressions[0] = strParameterRelaxation;
+       numberOfAllowedExpressions = 1;
+       currentParameterValueInt = InFile.getwrd(TRUE, &eol, allowedExpressions,
+                       numberOfAllowedExpressions);
+
+       // optional parameters --> EOL causes no error
+       if (!eol)
+       {
+               switch (currentParameterValueInt)
+               {
+
+               case strParameterRelaxation:
+
+                       // check CONSTANT
+                       allowedExpressions[0] = strParameterConstValue;
+                       numberOfAllowedExpressions = 1;
+                       currentParameterValueInt = InFile.getwrd(FALSE, &eol,
+                                       allowedExpressions, numberOfAllowedExpressions);
+
+                       switch (currentParameterValueInt)
+                       {
+                       case strParameterConstValue:
+
+                               // check if 0 < r <= 2
+                               currentParameterValueReal = InFile.getnum(FALSE, &eol);
+                               if (currentParameterValueReal > 0.0 && currentParameterValueReal <= 2.0)
+                               {
+                                       SARTConfig::relaxiation = currentParameterValueReal;
+                               }
+                               else
+                               {
+                                       SARTConfig::printErrorMessage("relaxation parameter must fit to 0.0 < r <= 2.0");
+                               }
+
+                               break;
+                       default:
+                               SARTConfig::printErrorMessage("second parameter must be CONS[TANT]");
+                               break;
+                       }
+                       break;
+               default:
+                       SARTConfig::printErrorMessage("first parameter must be RELA[XATION]");
+                       break;
+               }
+       }
+
+       fprintf(output, "\n          relaxation parameter is %4.3f",
+                       SARTConfig::relaxiation);
+
+       delete[] allowedExpressions;
+
+       return true;
+}
diff --git a/src/snark/SARTConfig.h b/src/snark/SARTConfig.h
new file mode 100644 (file)
index 0000000..1179877
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/SARTConfig.h $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ This class is responsible for the configuration of the
+ Simultaneous Reconstruction Algorithm Technique (SART)
+ */
+
+#ifndef SARTCONFIG_H_
+#define SARTCONFIG_H_
+
+#include "blkdta.h"
+
+class SARTConfig
+{
+
+private:
+       SARTConfig();
+       virtual ~SARTConfig();
+
+public:
+       static REAL relaxiation; // the relaxation parameter. default value = 1
+       static REAL zeroThreshold; // the threshold when a value is set to zero. default value = 0.00001
+
+       /**
+        * Reads all parameters of the SART configuration from the snark input file
+        */
+       static BOOLEAN readSARTConfiguration();
+
+private:
+       static void printErrorMessage(char* errorString);
+};
+
+#endif /* SARTCONFIG_H_ */
diff --git a/src/snark/TerminationCriterion.cpp b/src/snark/TerminationCriterion.cpp
new file mode 100644 (file)
index 0000000..306e01c
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Residual based stopping criterion
+
+ */
+
+#include <cstdio>
+#include <cstdlib>
+#include "consts.h"
+#include "infile.h"
+#include "TerminationCriterion.h"
+
+using namespace std;
+
+TerminationCriterion::TerminationCriterion(DistanceMeasure* distanceMeasureIn,
+               char* reportingFilenameIn) {
+       this->terminationValue = 0;
+       this->distanceMeasure = distanceMeasureIn;
+
+       this->reportingEnabled = FALSE;
+       this->reportingSkipFactor = 0;
+       this->reportingFilename = reportingFilenameIn;
+}
+
+TerminationCriterion::~TerminationCriterion() {
+}
+
+void TerminationCriterion::Init() {
+       // read desired epsilon from command
+       BOOLEAN eol;
+       this->terminationValue = InFile.getnum(FALSE, &eol);
+
+       if (this->terminationValue < Consts_class::zero) {
+               printf("\n **** epsilon must be specified and >= ZERO");
+               printf("\n **** program aborted\n");
+               exit(-1);
+       }
+
+       // read reporting command (disabled by default)
+       INTEGER rprt = CHAR2INT('r', 'p', 'r', 't');
+       if (InFile.getwrd(FALSE, &eol, &rprt, 1) == rprt) {
+               this->reportingEnabled = true;
+               printf("\n         reporting is enabled");
+               printf("\n         reporting file: %s", this->reportingFilename);
+
+               this->reportingSkipFactor = InFile.getnum(FALSE, &eol);
+               if (this->reportingSkipFactor > 0) {
+                       printf("\n         report skip factor %d",
+                                       this->reportingSkipFactor);
+               } else {
+                       printf("\n         reporting on every iteration");
+               }
+       } else {
+               this->reportingEnabled = false;
+               printf("\n         reporting is disabled");
+       }
+
+       printf("\n         epsilon = %12.4f", this->terminationValue);
+}
+
+void TerminationCriterion::reportCurrentValue(REAL currentDistance,
+INTEGER iter) {
+
+       if (this->reportingEnabled) {
+
+               printf("\n         current epsilon (%s) = %20.4f",
+                               this->distanceMeasure->getName(), currentDistance);
+
+               FILE* RPRTfile;
+
+               if (iter == 1) {
+                       RPRTfile = fopen(this->reportingFilename, "w");
+                       fprintf(RPRTfile, "%s stopping criterion reporting output\n",
+                                       this->reportingFilename);
+                       fprintf(RPRTfile, "    iter      %s\n", this->reportingFilename);
+               } else {
+                       RPRTfile = fopen(this->reportingFilename, "a");
+               }
+
+               fprintf(RPRTfile, " %5i  %20.9f\n", iter, currentDistance);
+
+               fclose(RPRTfile);
+       }
+}
+
+BOOLEAN TerminationCriterion::Run(REAL* recon, INTEGER* list,
+REAL* weight, INTEGER iter) {
+
+       // calculate distance
+       REAL currentDistance = this->distanceMeasure->calculateDistance(recon, list,
+                       weight);
+
+       if (currentDistance <= this->terminationValue) {
+               this->reportCurrentValue(currentDistance, iter);
+
+               return true;
+       } else {
+               if (iter == 1 || this->reportingSkipFactor == 0
+                               || (iter % this->reportingSkipFactor) == 0) {
+                       this->reportCurrentValue(currentDistance, iter);
+               }
+
+               return false;
+       }
+}
diff --git a/src/snark/TerminationCriterion.h b/src/snark/TerminationCriterion.h
new file mode 100644 (file)
index 0000000..ecbed89
--- /dev/null
@@ -0,0 +1,49 @@
+/* 
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Residual based stopping criterion
+
+ */
+
+#ifndef Termination_Criterion
+#define Termination_Criterion
+
+#include "termtest.h"
+#include "blkdta.h"
+#include "DistanceMeasure.h"
+
+class TerminationCriterion: public termtest_class {
+
+// attributes
+private:
+       REAL terminationValue; // the value at which the algorithm should get aborted
+       DistanceMeasure* distanceMeasure; // the distance measure to use
+
+       BOOLEAN reportingEnabled; // if reporting is enabled
+       INTEGER reportingSkipFactor; // the skip factor
+       CHAR* reportingFilename; // the filename to report
+
+// methods
+private:
+       void reportCurrentValue(REAL currentDistance, INTEGER iteration);
+
+protected:
+       TerminationCriterion(DistanceMeasure* distanceMeasureIn,
+                       char* reportingFilenameIn);
+
+public:
+       virtual ~TerminationCriterion();
+
+       void Init();
+
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight,
+       INTEGER iter);
+};
+
+#endif
diff --git a/src/snark/alb1.cpp b/src/snark/alb1.cpp
new file mode 100644 (file)
index 0000000..e71a4ec
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb1.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ C
+ C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+ C     THIS USER ALGORITHM MUST BE CAPABLE OF PERFORMING A BLOB RECONSTRUCTION
+ C
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alb1.h"
+
+BOOLEAN alb1_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n          This is the dummy version of ALB1.");
+       fprintf(output, "\n          If you wish to use such a routine, then you");
+       fprintf(output, "\n          should replace it by your own version of it.");
+
+       return FALSE;
+}
diff --git a/src/snark/alb1.h b/src/snark/alb1.h
new file mode 100644 (file)
index 0000000..dfacf67
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb1.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#ifndef ALB1_H
+#define ALB1_H
+  
+#include "alg.h"
+
+class alb1_class: public alg_class    
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/alb2.cpp b/src/snark/alb2.cpp
new file mode 100644 (file)
index 0000000..5539ee6
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb2.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+C
+C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+C     THIS USER ALGORITHM MUST BE CAPABLE OF PERFORMING A BLOB RECONSTRUCTION
+C
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+*/
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alb2.h"
+
+BOOLEAN alb2_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{      
+  fprintf(output, "\n          This is the dummy version of ALB2.");
+  fprintf(output, "\n          If you wish to use such a routine, then you");
+  fprintf(output, "\n          should replace it by your own version of it.");
+
+
+  return FALSE;
+}    
diff --git a/src/snark/alb2.h b/src/snark/alb2.h
new file mode 100644 (file)
index 0000000..3655888
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb2.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALB2_H
+#define ALB2_H
+
+#include "alg.h"
+
+class alb2_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/alb3.cpp b/src/snark/alb3.cpp
new file mode 100644 (file)
index 0000000..9d68621
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb3.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ C
+ C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+ C     THIS USER ALGORITHM MUST BE CAPABLE OF PERFORMING A BLOB RECONSTRUCTION
+ C
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alb3.h"
+
+BOOLEAN alb3_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n          This is the dummy version of ALB3.");
+       fprintf(output, "\n          If you wish to use such a routine, then you");
+       fprintf(output, "\n          should replace it by your own version of it.");
+
+       return FALSE;
+}
diff --git a/src/snark/alb3.h b/src/snark/alb3.h
new file mode 100644 (file)
index 0000000..d45dbe7
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb3.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALB3_H
+#define ALB3_H
+
+#include "alg.h"
+
+class alb3_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/alb4.cpp b/src/snark/alb4.cpp
new file mode 100644 (file)
index 0000000..06e4b04
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb4.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ C
+ C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+ C     THIS USER ALGORITHM MUST BE CAPABLE OF PERFORMING A BLOB RECONSTRUCTION
+ C
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alb4.h"
+
+BOOLEAN alb4_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n          This is the dummy version of ALB4.");
+       fprintf(output, "\n          If you wish to use such a routine, then you");
+       fprintf(output, "\n          should replace it by your own version of it.");
+
+       return FALSE;
+}
diff --git a/src/snark/alb4.h b/src/snark/alb4.h
new file mode 100644 (file)
index 0000000..11bf4e7
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb4.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALB4_H
+#define ALB4_H
+
+#include "alg.h"
+
+class alb4_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/alb5.cpp b/src/snark/alb5.cpp
new file mode 100644 (file)
index 0000000..d24b391
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb5.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ C
+ C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+ C     THIS USER ALGORITHM MUST BE CAPABLE OF PERFORMING A BLOB RECONSTRUCTION
+ C
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alb5.h"
+
+BOOLEAN alb5_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n          This is the dummy version of ALB5.");
+       fprintf(output, "\n          If you wish to use such a routine, then you");
+       fprintf(output, "\n          should replace it by your own version of it.");
+
+       return FALSE;
+}
diff --git a/src/snark/alb5.h b/src/snark/alb5.h
new file mode 100644 (file)
index 0000000..7076e9e
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alb5.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALB5_H
+#define ALB5_H
+
+#include "alg.h"
+
+class alb5_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/alg.cpp b/src/snark/alg.cpp
new file mode 100644 (file)
index 0000000..70139a4
--- /dev/null
@@ -0,0 +1,26 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alg.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "alg.h"
+
+INTEGER alg_class::Init()
+{
+       return 0;
+}
+
+BOOLEAN alg_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       return FALSE;
+}
+
+INTEGER alg_class::Reset()
+{
+       return 0;
+}
diff --git a/src/snark/alg.h b/src/snark/alg.h
new file mode 100644 (file)
index 0000000..e35a9fe
--- /dev/null
@@ -0,0 +1,26 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alg.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALG_H
+#define ALG_H      
+
+#include "blkdta.h"
+
+class alg_class
+{
+private:
+
+public:
+       virtual INTEGER Init();
+       virtual BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+       virtual INTEGER Reset();
+};
+
+#endif      
diff --git a/src/snark/alp1.cpp b/src/snark/alp1.cpp
new file mode 100644 (file)
index 0000000..ef34233
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp1.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ C
+ C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+ C     THIS USER ALGORITHM ONLY PERFORMS PIXEL BASED RECONSTRUCTIONS
+ C
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ //testing making changes. Ran.
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alp1.h"
+
+BOOLEAN alp1_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n          This is the dummy version of ALP1.");
+       fprintf(output, "\n          If you wish to use such a routine, then you");
+       fprintf(output, "\n          should replace it by your own version of it.");
+
+       return FALSE;
+}
diff --git a/src/snark/alp1.h b/src/snark/alp1.h
new file mode 100644 (file)
index 0000000..d0a9ca2
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp1.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALP1_H
+#define ALP1_H
+
+#include "alg.h"
+
+class alp1_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/alp2.cpp b/src/snark/alp2.cpp
new file mode 100644 (file)
index 0000000..d136be5
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp2.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ C
+ C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+ C     THIS USER ALGORITHM ONLY PERFORMS PIXEL BASED RECONSTRUCTIONS
+ C
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ //testing making changes. Ran.
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alp2.h"
+
+BOOLEAN alp2_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n          This is the dummy version of ALP2.");
+       fprintf(output, "\n          If you wish to use such a routine, then you");
+       fprintf(output, "\n          should replace it by your own version of it.");
+
+       return FALSE;
+}
diff --git a/src/snark/alp2.h b/src/snark/alp2.h
new file mode 100644 (file)
index 0000000..bbd3db0
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp2.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALP2_H
+#define ALP2_H
+
+#include "alg.h"
+
+class alp2_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/alp3.cpp b/src/snark/alp3.cpp
new file mode 100644 (file)
index 0000000..761373f
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp3.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ C
+ C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+ C     THIS USER ALGORITHM ONLY PERFORMS PIXEL BASED RECONSTRUCTIONS
+ C
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ //testing making changes. Ran.
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alp3.h"
+
+BOOLEAN alp3_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n          This is the dummy version of ALP3.");
+       fprintf(output, "\n          If you wish to use such a routine, then you");
+       fprintf(output, "\n          should replace it by your own version of it.");
+
+       return FALSE;
+}
diff --git a/src/snark/alp3.h b/src/snark/alp3.h
new file mode 100644 (file)
index 0000000..6debea0
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp3.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALP3_H
+#define ALP3_H
+
+#include "alg.h"
+
+class alp3_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/alp4.cpp b/src/snark/alp4.cpp
new file mode 100644 (file)
index 0000000..49f4b5c
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp4.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ C
+ C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+ C     THIS USER ALGORITHM ONLY PERFORMS PIXEL BASED RECONSTRUCTIONS
+ C
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ //testing making changes. Ran.
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alp4.h"
+
+BOOLEAN alp4_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n          This is the dummy version of ALP4.");
+       fprintf(output, "\n          If you wish to use such a routine, then you");
+       fprintf(output, "\n          should replace it by your own version of it.");
+
+       return FALSE;
+}
diff --git a/src/snark/alp4.h b/src/snark/alp4.h
new file mode 100644 (file)
index 0000000..58e7249
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp4.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALP4_H
+#define ALP4_H
+
+#include "alg.h"
+
+class alp4_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/alp5.cpp b/src/snark/alp5.cpp
new file mode 100644 (file)
index 0000000..53be0f9
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp5.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ C
+ C     DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+ C     THIS USER ALGORITHM ONLY PERFORMS PIXEL BASED RECONSTRUCTIONS
+ C
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ //testing making changes. Ran.
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "alp5.h"
+
+BOOLEAN alp5_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n          This is the dummy version of ALP5.");
+       fprintf(output, "\n          If you wish to use such a routine, then you");
+       fprintf(output, "\n          should replace it by your own version of it.");
+
+       return FALSE;
+}
diff --git a/src/snark/alp5.h b/src/snark/alp5.h
new file mode 100644 (file)
index 0000000..bdc1f62
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/alp5.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ALP5_H
+#define ALP5_H
+
+#include "alg.h"
+
+class alp5_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/analysis.c b/src/snark/analysis.c
new file mode 100644 (file)
index 0000000..3b44d03
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/analysis.c $
+$LastChangedRevision: 45 $
+$Date: 2014-06-12 19:31:23 -0400 (Thu, 12 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+/*-------------------------- analysis.c ----------------------------------
+        Super Snark V 1.0
+        written by Jingsheng Zheng
+        Modified by Jolyon Browne
+  ------------------------------------------------------------------------*/
+#include <strings.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "analysis.h"
+
+/*-------------------------- analysis.c ----------------------------------
+        This function sets up the appropriate command lines needed for
+  SNARK's EVALUATE command.
+
+INPUTS:
+  ana_flname - name of file containing comparisons to be made.
+  structure - array containing structures to be evaluated.
+  nstr - number of structures in array 'structure.'
+  iter_flag - iteration_flag_line needed by EVALUATE command
+
+OUTPUTS:
+  none
+  ------------------------------------------------------------------------*/
+
+void evaluate(char* ana_flname, char *** structure, int nstr, char* iter_flag)
+{
+    FILE *anafl;
+    float lower, upper;
+    int i, j = 3; // added "j". Lajos, Dec 13, 2004
+    char string[MAXLINESIZE];
+
+
+    if ((anafl = fopen(ana_flname, "r")) == NULL) {
+        errorc("in analysis.c: error in opening file ", ana_flname);
+    }
+
+    fprintf(pstream, "EVALUATE RESOLUTION\n");
+    fprintf(pstream, "experimenter evaluation 1\n"); //added by Lajos, Dec 13, 2004
+    fprintf(pstream, "SELECTIVE\n");
+    for (i = 0; i < nstr; i++) {
+        fprintf(pstream, "%s\n", (*structure)[i]);
+    }
+    fprintf(pstream, "LAST\n");
+    fprintf(pstream, "%s\n", iter_flag);
+
+    fgets(string, sizeof (string), anafl); /* don't want first line */
+    while ( isSkip(string) )     //jump over comment lines and blank lines
+    {
+        if ( fgets(string, sizeof (string), anafl) == NULL) break;
+    }
+    fgets(string, sizeof (string), anafl); /* second line is either a
+                                       MODE command or a COMPARE command */
+    while ( isSkip(string) )     //jump over comment lines and blank lines
+    {
+        if ( fgets(string, sizeof (string), anafl) == NULL) break;
+    }
+    if (strncasecmp(string, "mode", 4) == 0) {
+        sscanf(string, "%*s%f%f", &lower, &upper);
+        fprintf(pstream, "MODE LOWER %f UPPER %f\n", lower, upper);
+    }
+
+    fprintf(pstream, "EVALUATE RESOLUTION\n");
+    fprintf(pstream, "experimenter evaluation 2\n"); //added by Lajos, Dec 13, 2004
+    fprintf(pstream, "WHOLEPIC\n");
+    fprintf(pstream, "%s\n", iter_flag);
+
+    /* read in MODE values for clipping with WHOLEPIC command */
+    while ((fgets(string, sizeof (string), anafl)) != NULL) {
+        if (strncasecmp(string, "mode", 4) == 0) {
+            sscanf(string, "%*s%f%f", &lower, &upper);
+            fprintf(pstream, "MODE LOWER %f UPPER %f\n", lower, upper);
+            fprintf(pstream, "EVALUATE RESOLUTION\n");
+            fprintf(pstream, "experimenter evaluation %d\n", j++); //added by Lajos, Dec 13, 2004
+            fprintf(pstream, "WHOLEPIC\n");
+            fprintf(pstream, "%s\n", iter_flag);
+        }
+    }
+    fclose(anafl);
+}
diff --git a/src/snark/analysis.h b/src/snark/analysis.h
new file mode 100644 (file)
index 0000000..564b827
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/analysis.h $
+$LastChangedRevision: 45 $
+$Date: 2014-06-12 19:31:23 -0400 (Thu, 12 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+*/
+
+#ifndef ANALYSIS_H
+#define ANALYSIS_H
+
+void evaluate(char* ana_flname, char *** structure, int nstr, char* iter_flag);
+
+#endif
diff --git a/src/snark/analyze.c b/src/snark/analyze.c
new file mode 100644 (file)
index 0000000..de3d247
--- /dev/null
@@ -0,0 +1,314 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/analyze.c $
+ $LastChangedRevision: 137 $
+ $Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+ $Author: bprommegger $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <stdio.h>
+#include <malloc.h>
+#include <string.h>
+#include <strings.h>
+#include "experimenter.h"
+#include "getfom.h"
+#include "stru_acc.h"
+#include "hit_ratio.h"
+#include "imagewise_roi.h"
+#include "pointwse.h"
+#include "fom_klds.h"
+#include "fom_weighted_squared_distance.h"
+#include "user_fom1.h"
+#include "user_fom2.h"
+#include "user_fom3.h"
+#include "user_fom4.h"
+#include "user_fom5.h"
+#include "getiters.h"
+#include "errorc.h"
+#include "analyze.h"
+
+void printout(FILE* fomfl, char* fom, int* itr1, int* itr2, int niters,        char* keywrd1, char* keywrd2, double* fom1, double* fom2);
+
+/*--------------------------- analyze.c ---------------------------
+ * This function reads the information in the file containing the comparisons
+ * to be made and coordinates the calculation and storage of the appropriate
+ * figures of merit (FOM).
+ *
+ * INPUTS:
+ * exp - experiment number.
+ * run - run number.
+ * numpairs - for PAIRed structures: number of pairs of structures.
+ * pairs - array of length 2*numpairs containing the indices of all paired
+ * structures.
+ * anaflname - name of file containing comparisons to be made.
+ * fomfl - file pointer to the file which stores foms.
+ *
+ * OUTPUTS:
+ * none.
+ * ------------------------------------------------------------------------*/
+
+void analyze(int exp, int run, int numpairs, int* pairs, char* anaflname, FILE* fomfl)
+{
+       int *itr1, *itr2, niters, stru, poin, hitr, usr1, usr2, usr3, usr4, usr5, iroi, klds, wsqd, num_mode = 1, compare = 0, mode_flag = 0;
+
+       char string[MAXLINESIZE], key1[50], line[MAXLINESIZE], key2[50], keywrd1[50], keywrd2[50];
+
+       FILE *anafl;
+
+       strcpy(line, "In analyze.c: error in file");
+       sprintf(line, "%s %s at line ", line, anaflname);
+
+       if ((anafl = fopen(anaflname, "r")) == NULL)
+       {
+               errorc("in analyze.c: error in opening file ", anaflname);
+       }
+
+       fgets(string, sizeof(string), anafl); /* don't need first line */
+       while (isSkip(string))     //jump over comment lines and blank lines
+       {
+               fgets(string, sizeof(string), anafl);
+       }
+
+       fgets(string, sizeof(string), anafl); /* second line is either a MODE * command or a COMPARE command */
+       while (isSkip(string))     //jump over comment lines and blank lines
+       {
+               fgets(string, sizeof(string), anafl);
+       }
+
+       if (strncasecmp(string, "mode", 4) == 0)
+       { /* set mode_flag to 1 if */
+               mode_flag = 1; /* second line is MODE */
+       }
+       else if (strncasecmp(string, "comp", 4) == 0)
+       {
+               ;
+       }
+       else
+       {
+               errorc(line, string);
+       }
+
+       if (mode_flag == 1)
+       { /* if second line is MODE */
+               fgets(string, sizeof(string), anafl); /* third line is COMPARE */
+               while (isSkip(string))     //jump over comment lines and blank lines
+               {
+                       fgets(string, sizeof(string), anafl);
+               }
+       }
+
+       if (strncasecmp(string, "comp", 4) != 0)
+       {
+               errorc(line, string);
+       }
+
+       /* at this point string contains the COMPARE command */
+
+       while (strncasecmp(string, "end", 3) != 0)
+       {
+               /* beginning of while loop */
+
+               if (strncasecmp(string, "comp", 4) == 0)
+               {
+                       /* If the string just read in has the COMPARE command:
+                        (1) increment compare counter and read in the two keywords.
+                        (2) get flags for the figures of merit (FOMs)
+                        (3) get the iteration numbers to be compared
+                        (4) compute the FOMs for these iteration numbers.
+                        (5) free arrays for next set of iteration numbers. */
+
+                       compare++; /* keeps count of number of COMPAREs read in */
+                       sscanf(string, "%*s%s %s", key1, key2);
+                       strncpy(keywrd1, key1, 4);
+                       strncpy(keywrd2, key2, 4);
+                       keywrd1[4] = '\0';
+                       keywrd2[4] = '\0';
+                       getfom(string, &stru, &poin, &hitr, &usr1, &usr2, &usr3, &usr4, &usr5, &iroi, &klds, &wsqd);
+
+                       getiters(anafl, &itr1, &itr2, &niters, string);
+
+                       fprintf(fomfl, " \n experiment= %d run= %d compare= %d\n", exp, run,
+                                       compare);
+
+                       computefom(itr1, itr2, niters, numpairs, pairs, num_mode, keywrd1, keywrd2, stru, poin, hitr, usr1, usr2, usr3, usr4, usr5,     iroi, klds, wsqd, fomfl);
+
+                       free(itr1);
+                       free(itr2);
+               }
+               if (strncasecmp(string, "mode", 4) == 0)
+               {
+                       /* If string just read in has the MODE command then increment
+                        mode counter and read the next string (which has the COMPARE
+                        command). */
+
+                       num_mode++;
+                       fgets(string, sizeof(string), anafl);
+                       while (isSkip(string))     //jump over comment lines and blank lines
+                       {
+                               fgets(string, sizeof(string), anafl);
+                       }
+               }
+       } /* end of while loop */
+
+       fclose(anafl);
+}
+
+/*
+ * This function coordinates the calculation and storage of the FOMs.
+ *
+ * INPUTS:
+ * itr1 - array of length niters containing the iteration numbers to be
+ * compared for the first algorithm.
+ * itr2 - array of length niters containing the iteration numbers to be
+ * compared for the second algorithm.
+ * niters - number of iterations to be compared.
+ * numpairs - for PAIRed structures: number of pairs of structures
+ * pairs - array of length 2*numpairs containing the indices of all paired
+ * structures.
+ * num_mode - number of MODE commands read in so far.
+ * keywrd1 - keyword which defines the first algorithm.
+ * keywrd2 - keyword which defines the second algorithm.
+ * stru - equals 1 if structural accuracy is to be computed, else equals 0.
+ * poin - equals 1 if pointwise accuracy is to be computed, else equals 0.
+ * hitr - equals 1 if hit-ratio is to be computed, else equals 0.
+ * user - equals 1 if user-defined FOM is to be computed, else equals 0.
+ * fomfl - file pointer to the file which stores the FOMs.
+ *
+ * OUTPUTS:
+ * none
+ */
+
+void computefom(int* itr1, int* itr2, int niters, int numpairs, int* pairs, int num_mode, char* keywrd1, char* keywrd2, int stru, int poin, int hitr, int usr1, int usr2, int usr3, int usr4, int usr5, int iroi, int klds, int wsqd, FILE* fomfl)
+{
+       double *fom1, *fom2;
+
+       /* allocate memory for the FOMs */
+       fom1 = (double *) malloc(niters * sizeof(double));
+       fom2 = (double *) malloc(niters * sizeof(double));
+
+       if ((fom1 == NULL) || (fom2 == NULL))
+       {
+               errorc("in analyze.c: memory allocation failed in ", "computefom");
+       }
+
+       /* Depending on the values of the FOM flags compute and print the
+        corresponding FOM */
+
+       if (stru == 1)
+       {
+               stru_acc(itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               printout(fomfl, "Structural Accuracy", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+       }
+
+       if (poin == 1)
+       {
+               pointwse(num_mode, itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               printout(fomfl, "Point-wise Accuracy", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+       }
+
+       if (usr1 == 1)
+       {
+               user_fom1(itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               printout(fomfl, "User-defined-1   ", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+       }
+
+       if (usr2 == 1)
+       {
+               user_fom2(itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               printout(fomfl, "User-defined-2   ", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+       }
+
+       if (usr3 == 1)
+       {
+               user_fom3(itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               printout(fomfl, "User-defined-3   ", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+       }
+
+       if (usr4 == 1)
+       {
+               user_fom4(itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               printout(fomfl, "User-defined-4   ", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+       }
+
+       if (usr5 == 1)
+       {
+               user_fom5(itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               printout(fomfl, "User-defined-5   ", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+       }
+
+       if (hitr == 1)
+       { /* hit-ratio is valid only if there
+        * exists paired structures */
+
+               if (numpairs != 0)
+               {
+                       hit_ratio(itr1, itr2, niters, pairs, numpairs, keywrd1, keywrd2, fom1, fom2);
+
+                       printout(fomfl, "Hit-ratio       ", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               }
+               else
+               {
+                       fprintf(fomfl, "\n    %s \t \t \t    %s\n", keywrd1, keywrd2);
+                       fprintf(fomfl,
+                                       "***** No paired structure in phantom for this run\n");
+               }
+       }
+       if (iroi == 1)
+       {
+               /* imagewise_roi is valid only if the number of paired structures is >= 2*/
+               if (numpairs >= 2)
+               {
+                       imagewise_roi(itr1, itr2, niters, pairs, numpairs, keywrd1, keywrd2,
+                                       fom1, fom2);
+                       printout(fomfl, "Imagewise-ROI       ", itr1, itr2, niters, keywrd1,
+                                       keywrd2, fom1, fom2);
+               }
+               else
+               {
+                       fprintf(fomfl, "\n    %s \t \t \t    %s\n", keywrd1, keywrd2);
+                       fprintf(fomfl, "***** Not enough paired structure "
+                                       "in phantom for this run\n");
+                       fprintf(fomfl, "******** The minimum number of paired structures "
+                                       "should be >= 2 \n");
+               }
+       }
+       if (klds == 1)
+       {
+               fom_klds(itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               printout(fomfl, "Kullback-Leibler distance   ", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+       }
+       if (wsqd == 1)
+       {
+               fom_weighted_squared_distance(itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+               printout(fomfl, "Weighted squared distance   ", itr1, itr2, niters, keywrd1, keywrd2, fom1, fom2);
+       }
+
+
+       free(fom1);
+       free(fom2);
+}
+
+/*
+ * This function prints out the computed FOMs
+ *
+ * INPUTS:
+ * see the above routine.
+ *
+ * OUTPUTS:
+ * none
+ */
+
+void printout(FILE* fomfl, char* fom, int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* fom1, double* fom2)
+{
+       fprintf(fomfl, "\n    %s \t\t\t\t    %s\n iter \t %s \t\t iter \t %s\n", keywrd1, keywrd2, fom, fom);
+
+       int i = 0;
+       for (i = 0; i < niters; i++)
+       {
+               fprintf(fomfl, " %d \t %.25f\t %d\t %.25f\n", itr1[i], fom1[i], itr2[i], fom2[i]);
+       }
+}
diff --git a/src/snark/analyze.h b/src/snark/analyze.h
new file mode 100644 (file)
index 0000000..f928b79
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/analyze.h $
+$LastChangedRevision: 137 $
+$Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+$Author: bprommegger $
+***********************************************************
+*/
+
+#ifndef ANALYZE_H
+#define ANALYZE_H
+
+
+void analyze(int exp,int run, int numpairs, int* pairs, char* anaflname, FILE* fomfl);
+
+void computefom(int* itr1, int* itr2, int niters, int numpairs, int* pairs, int num_mode, char* keywrd1, char* keywrd2, int stru, int poin, int hitr, int usr1, int usr2, int usr3, int usr4, int usr5, int iroi, int klds, int wsqd, FILE* fomfl);
+
+int *itr1,*itr2,niters,numpairs,*pairs,num_mode,hitr,stru,user,poin;
+
+void printout(FILE* fomfl, char* fom, int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2,double* fom1, double* fom2);
+
+#endif
diff --git a/src/snark/analyze2.c b/src/snark/analyze2.c
new file mode 100644 (file)
index 0000000..64b47ae
--- /dev/null
@@ -0,0 +1,231 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/analyze2.c $
+ $LastChangedRevision: 137 $
+ $Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+ $Author: bprommegger $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <malloc.h>
+#include <string.h>
+#include <strings.h>
+#include <stdio.h>
+#include "experimenter.h"
+#include "getfom.h"
+#include "getiters.h"
+#include "errorc.h"
+#include "signif1.h"
+#include "analyze2.h"
+
+/*
+ * This function reads the information in the file containing the comparisons
+ * to be made and coordinates the calculation and storage of the significance
+ * levels.
+ *
+ * INPUTS:
+ * iexp - experiment number.
+ * nrun - number of runs in a given experiment.
+ * tot_PAIRS - number of phantoms with PAIRed structures used for a given
+ * experiment.
+ * anaflname - name of file containing comparisons to be made.
+ *
+ * OUTPUTS:
+ * none.
+ */
+void analyze2(int iexp, int nrun, int tot_PAIRS, char* anaflname)
+{
+       int *itr1, *itr2, niters, stru, poin, hitr, usr1, usr2, usr3, usr4, usr5, iroi, klds, wsqd, compare = 0, mode_flag = 0;
+       int i;
+
+       char string[MAXLINESIZE], key1[50], sigflname[MAXLINESIZE], key2[50],
+                       keywrd1[50], keywrd2[50];
+
+       float lowden = 0.0, highden = 0.0;
+
+       FILE *anafl, *sigfl;
+
+       if ((anafl = fopen(anaflname, "r")) == NULL)
+       {
+               errorc("in analyze2.c: error in opening file ", anaflname);
+       }
+
+       fgets(string, sizeof(string), anafl); // get name of file to store significance levels
+       while (isSkip(string))     //jump over comment lines and blank lines
+       {
+               fgets(string, sizeof(string), anafl);
+       }
+
+       for (i = strlen(string) - 1; i >= 0; i--)
+       {
+               if (iscntrl(string[i]) || string[i] == ' ')
+                       string[i] = '\0';
+       }
+       if (strlen(string) == 0)
+               errorc("in analyze2.c: error in opening file ", sigflname);
+
+       strcpy(sigflname, string);
+       sprintf(sigflname, "%s.%d", sigflname, iexp);
+
+       if ((sigfl = fopen(sigflname, "w")) == NULL)
+       {
+               errorc("in analyze2.c: error in opening file ", sigflname);
+       }
+
+       fgets(string, sizeof(string), anafl); /* second line is either a MODE
+        * command or a COMPARE command */
+       while (isSkip(string))     //jump over comment lines and blank lines
+       {
+               fgets(string, sizeof(string), anafl);
+       }
+
+       if (strncasecmp(string, "mode", 4) == 0)
+       {
+               /* set mode_flag to 1 if second line is MODE and read in
+                * MODE values */
+               mode_flag = 1;
+               sscanf(string, "%*s %f %f", &lowden, &highden);
+       }
+
+       if (mode_flag == 1)
+       { /* if second line is MODE */
+               fgets(string, sizeof(string), anafl); /* third line is COMPARE */
+               while (isSkip(string))     //jump over comment lines and blank lines
+               {
+                       fgets(string, sizeof(string), anafl);
+               }
+       }
+
+       /* at this point string contains the COMPARE command */
+
+       while (strncasecmp(string, "end", 3) != 0)
+       {
+               /* beginning of while loop */
+
+               if (strncasecmp(string, "comp", 4) == 0)
+               {
+                       /* If the string just read in has the COMPARE command:
+                        * (1) increment compare counter and read in the two keywords.
+                        * (2) get flags for the figures of merit (FOMs)
+                        * (3) get the iteration numbers to be compared
+                        * (4) compute significance for these iteration numbers.
+                        * (5) free arrays for next set of iteration numbers. */
+
+                       compare++; /* keeps count of number of COMPAREs read in */
+                       sscanf(string, "%*s%s %s", key1, key2);
+                       strncpy(keywrd1, key1, 4);
+                       strncpy(keywrd2, key2, 4);
+                       keywrd1[4] = '\0';
+                       keywrd2[4] = '\0';
+                       getfom(string, &stru, &poin, &hitr, &usr1, &usr2, &usr3, &usr4, &usr5, &iroi, &klds, &wsqd);
+                       getiters(anafl, &itr1, &itr2, &niters, string);
+                       computesig(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, keywrd1, keywrd2, stru, poin, hitr, iroi, klds, wsqd, usr1, usr2, usr3, usr4, usr5, lowden, highden);
+                       free(itr1);
+                       free(itr2);
+               }
+
+               if (strncasecmp(string, "mode", 4) == 0)
+               {
+                       /* If string just read in has the MODE command then read in
+                        * clip values and read the next string (which has the COMPARE
+                        * command). */
+
+                       sscanf(string, "%*s %f %f", &lowden, &highden);
+                       fgets(string, sizeof(string), anafl);
+                       while (isSkip(string))     //jump over comment lines and blank lines
+                       {
+                               fgets(string, sizeof(string), anafl);
+                       }
+               }
+       } /* end of while loop */
+
+       fclose(anafl);
+       fclose(sigfl);
+}
+
+/*
+ * This function coordinates the calculation and storage of the significance
+ *
+ * INPUTS:
+ * iexp - experiment number.
+ * nrun - number of runs for experiment iexp.
+ * tot_PAIRS - number of phantoms with PAIRed structures for experiment iexp.
+ * compare - number of COMPARE commands read in so far.
+ * niters - number of iterations to be compared.
+ * itr1 - array of length niters containing the iteration numbers to be
+ * compared for the first algorithm.
+ * itr2 - array of length niters containing the iteration numbers to be
+ * compared for the second algorithm.
+ * sigfl - file pointer to the file which stores the significance levels
+ * keywrd1 - keyword which defines the first algorithm.
+ * keywrd2 - keyword which defines the second algorithm.
+ * stru - equals 1 if structural accuracy is to be computed, else equals 0.
+ * poin - equals 1 if pointwise accuracy is to be computed, else equals 0.
+ * hitr - equals 1 if hit-ratio is to be computed, else equals 0.
+ * user - equals 1 if user-defined FOM is to be computed, else equals 0.
+ * lowden - lower clip value of MODE command.
+ * highden - higher clip value of MODE command.
+ */
+
+void computesig(int iexp, int nrun, int tot_PAIRS, int compare, int niters, int* itr1, int* itr2, FILE* sigfl, char* keywrd1, char* keywrd2, int stru, int poin, int hitr, int iroi, int klds, int wsqd, int usr1, int usr2, int usr3, int usr4, int usr5, float lowden, float highden)
+{
+       //  Depending on the values of the FOM flags compute and print the corresponding significance levels
+
+       if (stru == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "Structural Accuracy", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (poin == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "Pointwise Accuracy", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (hitr == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "Hit-ratio", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (iroi == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "Imagewise-ROI", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (klds == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "Kullback-Leibler distance", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (wsqd == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "Weighted squared distance", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (usr1 == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "User-defined-1", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (usr2 == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "User-defined-2", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (usr3 == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "User-defined-3", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (usr4 == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "User-defined-4", keywrd1, keywrd2, lowden, highden);
+       }
+
+       if (usr5 == 1)
+       {
+               signif(iexp, nrun, tot_PAIRS, compare, niters, itr1, itr2, sigfl, "User-defined-5", keywrd1, keywrd2, lowden, highden);
+       }
+}
diff --git a/src/snark/analyze2.h b/src/snark/analyze2.h
new file mode 100644 (file)
index 0000000..0d47102
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/analyze2.h $
+$LastChangedRevision: 137 $
+$Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+$Author: bprommegger $
+***********************************************************
+*/
+
+#ifndef ANALYZE2_H
+#define ANALYZE2_H
+
+void analyze2(int iexp, int nrun, int tot_PAIRS, char* anaflname);
+void computesig(int iexp, int nrun, int tot_PAIRS, int compare, int niters, int* itr1, int* itr2, FILE* sigfl, char* keywrd1, char* keywrd2, int stru, int poin, int hitr, int iroi, int klds, int wsqd, int usr1, int usr2, int usr3, int usr4, int usr5, float lowden, float highden);
+
+
+#endif
diff --git a/src/snark/anglst.cpp b/src/snark/anglst.cpp
new file mode 100644 (file)
index 0000000..df6b373
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/anglst.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ anglst.cpp,v 1.3 2008/09/25 13:17:44 jklukowska Exp
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "consts.h"
+
+#include "anglst.h"
+
+anglst_class Anglst;
+
+anglst_class::~anglst_class()
+{
+       if (pbase != NULL)
+               delete[] pbase;
+       if (bth != NULL)
+               delete[] bth;
+       if (bsin != NULL)
+               delete[] bsin;
+       if (bcos != NULL)
+               delete[] bcos;
+}
+
+void anglst_class::Init(INTEGER prjnum)
+{
+       bth = new REAL[prjnum];
+       bsin = new REAL[prjnum];
+       bcos = new REAL[prjnum];
+}
+
+void anglst_class::InitDiv(REAL* pang, INTEGER prjnum)
+{
+       REAL theta;
+       REAL dtor;
+       int np;
+
+       dtor = Consts.pi / (REAL) 180.0;
+
+       for (np = 0; np < prjnum; np++)
+       {
+               theta = pang[np] * dtor;
+               bth[np] = theta;
+               bsin[np] = (REAL) sin(theta);
+               bcos[np] = (REAL) cos(theta);
+#ifdef FFCOMPARE
+#endif
+       }
+}
+
+/*
+ C.... ESTABLISH SIN AND COSINE TABLES NEEDED FOR DIVERGENT GEOMETRY
+ C.... FOR USE BY POSIT.
+ C.... CALLED BY RDPROJ,  EXALG,  AND EVAL.
+ */
+
+void anglst_class::genphi()
+{
+       INTEGER nmax;
+       REAL th;
+
+       nmax = (GeoPar.nrays - 1) / 2;
+       sphi = new REAL[nmax];
+       cphi = new REAL[nmax];
+
+       for (int nr = 0; nr < nmax; nr++)
+       {
+               if (GeoPar.arc)
+                       th = GeoPar.pinc / GeoPar.stod * (nr + 1);
+               if (GeoPar.tang)
+                       th = (REAL) atan2((nr + 1) * GeoPar.pinc, GeoPar.stod);
+
+               sphi[nr] = (REAL) sin(th);
+               cphi[nr] = (REAL) cos(th);
+       }
+}
+
diff --git a/src/snark/anglst.h b/src/snark/anglst.h
new file mode 100644 (file)
index 0000000..9b67d24
--- /dev/null
@@ -0,0 +1,34 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/anglst.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ anglst.h,v 1.3 2008/09/25 13:17:44 jklukowska Exp
+ */
+
+#ifndef ANGLST_H
+#define ANGLST_H
+
+#include "geom.h"
+
+extern class anglst_class
+{
+public:
+       REAL* bth;REAL* bsin;REAL* bcos;REAL* sphi;REAL* cphi;REAL* pbase;INTEGER incore;
+
+public:
+       void Init(INTEGER prjnum);
+       void InitDiv(REAL* pang, INTEGER prjnum);
+       void genphi();
+       void getang(INTEGER np, REAL* theta, REAL* sinth, REAL* costh);
+
+       REAL prdta(INTEGER np, INTEGER nr);
+       ~anglst_class();
+
+} Anglst;
+
+#endif
diff --git a/src/snark/art.cpp b/src/snark/art.cpp
new file mode 100644 (file)
index 0000000..2975785
--- /dev/null
@@ -0,0 +1,416 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/art.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS IS A GENERAL INPLEMENTATION OF ALGEBRAIC RECONSTRUUCTION
+ THIS SUBROUTINE IS CAPABLE OF EXECUTION THE FOLLOWING METHODS:
+
+ ART3 FROM
+ A RELAXATION METHOD FOR RECONSTRUCTING OBJECTS FROM NOISY
+ X-RAY, G.T. HERMAN, MATH. PROG.,V8(1975),1-19.
+ ART4 FROM
+ ITERATIVE QUADRATIC OPTIMIZATION WITH APPLICATION IN DI-
+ AGNOSTIC RADIOLOGY, G.T. HERMAN AND A. LENT, SUNYAB
+ DEPARTMENT OF COMPUTER SCIENCE, INTERNAL RE-
+ PORT NO. 122.
+ BAYESIAN FROM
+ A COMPUTER IMPLEMENTATION OF A BAYESIAN ANALYSIS OF IMAGE
+ RECONSTRUCTION, G.T. HERMAN , A. LENT, H. HURWITZ, AND
+ H.P. LUNG, SUNYAB DEPARTMENT OF COMPUTER SCIENCE INTERNAL
+ REPORT NO. 134.
+ WITH THE FOLLOWING OPTIONAL MODIFICATIONS ON THE RECONSTRUCTION
+ ART2-WAY CONSTRAINT
+ REFERENCE IS THE SAME AS ART4.
+ BINARY PATTERNS (BART)
+ RECONSTRUCTION OF BINARY PATTERNS FROM A FEW PROJECTIONS,
+ G.T. HERMAN, INTERNATIONAL COMPUTING SYMPOSIUM 1973,
+ 371-379.
+
+ IMPORTANT VARIABLES:
+ KOUNT - NUMBER OF RAYS USED IN EACH ITERATION
+ HALFWY- EQUALS TO (UPPER+LOWER)/2.0
+ THTOL - EQUALS TO (UPPER-LOWER)/1000.0
+ THRLO - (1) STARTING FROM LOWER, AND IS INCREMENTED BY
+ (UPPER-LOWER)/(KOUNT*2**(ITER+1)) AFTER EACH RECON-
+ STRUCTION LOOP IN THIS ROUTINE WHEN BART IS
+ SPECIFIED (BART WILL BE EXPLAINED LATER)
+ (2) EQUALS TO LOWER OTHERWISE
+ THRUP - (1) STARTING FROM UPPER, AND IS DECREMENTED BY THE SAME
+ AMOUNT AS INDICATED IN THRLO (1) AFTER EACH RECON-
+ STRUCTION LOOP WHEN BART IS SPECIFIED
+ (2) EQUALS TO UPPER OTHERWISE
+
+ THE FOLLOWING KEYWORDS ARE AVAILABLE FOR THE USER TO IMPLEMENT
+ THIS SUBROUTINE :
+
+ ART3 -
+ RECONSTRUCTION WILL BE BASED ON ART3 METHOD
+ ART4 -
+ RECONSTRUCTION WILL BE BASED ON ART4 METHOD
+ BAYESIAN -
+ RECONSTRUCTION WILL BE BASED ON BAYESIAN METHOD
+ CONSTRAINT -
+ EITHER "ART2" OR "BOUND" OR "BART" MUST BE SPECIFIED AFTER
+ THIS KEYWORD.  WHEN "ART2" IS SPECIFIED, THE ART2 WAY
+ CONSTRAINT IS USED IN THE RECONSTRUCTION.  IF "BOUND" IS
+ SPECIFIED, THE RECONSTRUCTION IS BOUNDED BY THE BOUNDARIES
+ "UPPER" AND "LOWER".  WHEN "BART" IS SPECIFIED, THE RECON-
+ STRUCTED PICTURE IS ASSUMED TO BE A BINARY PATTERN(WITH
+ GRAY LEVELS "UPPER" AND "LOWER").  AND THE PICTURE ELEMENTS AR
+ COMPARED WITH THRLO, THRUP, AND HALFWY WITH ASSOCIATED CON-
+ TRAINT.  WHEN LOFL IS ON, IF THE ORIGINAL PICTURE ELEMENT IS
+ LESS THAN THRLO AND ITS RECONSTRUCTION IS GREATER THAN HALFWY,
+ THEN THIS ELEMENT IS CHANGED TO HALFWY-THTOL.  WHEN UPFL IS
+ ON, IF THE ORIGINAL PICTURE ELEMENT IS GREATER THAN THRUP
+ AND ITS RECONSTRUCTION IS LESS THAN HALFWY THEN IT IS
+ CHANGED TO HALFWY+THTOL.
+ RELAX -
+ THE USER CAN SPECIFY THE VALUE OF THE RELAXATION PARAMETER TO
+ BE USED IN THE RECONSTRUCTION BY THIS OPTION.  THE RELAX-
+ ATION PARAMETER CAN BE EITHER CONSTANT OR VARIABLE.  IF A
+ CONSTANT IS DESIRED THE USER MUST SPECIFY "RELAX CONSTANT"
+ FOLLOWED BY A FLOATING POINT NUMBER.  IF THE PARAMETER IS
+ VARIABLE THEN "RELAX VARIABLE" MUST BE SPECIFIED, AND A
+ FUNCTION RSET(RECON,ITER,NP,NR,I,RAYSUM,LIST,WEIGHT)
+ FOR CALCULATING THE VARIABLE PARAMETER MUST
+ BE SUPPLIED BY THE USER, WHERE THE CALCULATED
+ RELAXATION PARAMETER IS RETURNED BY ASSIGNING THE VALUE TO
+ RSET.  THE DEFAULT IS CONSTANT 1.0.
+ CONRELAX -
+ THE MODIFIERS FOR CONRELAX IS THE SAME AS OPTION "RELAX".
+ IN THE VARIABLE CASE THE NAME OF THE USER SUPPLIED
+ FUNCTION IS CRSET(RECON,ITER,NP,NR,I,RAYSUM,LIST,WEIGHT).
+ NORM -
+ AN INTEGER MUST BE GIVEN AFTER "NORM".  THE USER HAS HIS
+ FREEDOM OF CHOOSING THE TYPE OF NORM (>0) USED IN THE ITER-
+ ATIVE STEP BY SPECIFYING THE INTEGER NUMBER OF THE NORM.
+ THE DEFAULT IS 2-NORM.
+ STEPS -
+ AN INTEGER MUST BE SPECIFIED AFTER THIS KEYWORD, AND THE
+ VALUE OF THE INTEGER IS THE NUMBER OF RAYS USED FOR THE RE-
+ CONSTRUCTION FOR EACH SNARK05 ITERATION.  THE RAYS CHOSEN
+ ONE AFTER ANOTHER ARE DETERMINED BY THE SNARK05 "SELECT"
+ COMMAND.  THE DEFAULT IS A NUMBER EQUIVALENT TO
+ PRJNUM*NRAYS.
+ NOMLZ -
+ THE FINAL RECONSTRUCTION OF EACH ITERATION
+ WILL BE NORMALIZED SO THAT THE AVERAGE DENSITY OF THE PICT-
+ URE EQUALS TO AVEDEN; OTHERWISE THE RECONSTRUCTION IS
+ NOT NORMALIZED.
+ TOLERANCE -
+ THERE ARE THREE POSSIBILITIES TO DEFINE THE TOLERANCE FOR
+ ART3 AND ART4:
+ (1) "TOLERANCE FIXED T", WHERE T IS A USER SUPPLIED FL-
+ OATING POINT NUMBER, AND IT IS USED AS THE TOLERANCE DUR-
+ ING THE RECONSTRUCTION.
+ (2) "TOLERANCE VARIABLE", THE TOLERANCE IS CHANGED FOR EACH
+ SNARK05 ITERATIVE STEP.  THE USER HAS TO SUPPLY A FUNC-
+ TION TSET(RECON,ITER,NP,NR,I,RAYSUM,LIST,WEIGHT)
+ SUCH THAT THE CALCULATED TOLERANCE IS ASSIGNED TO
+ TSET AT EXIT.
+ (3) "TOLERANCE NOISE T", THE TOLERANCE IS DEPENDENT ON THE
+ NOISE IN THE PROJECTION DATA.  IT IS CALCULATED BY
+ T*SQRT(VARIAN) WHERE VARIAN IS OBTAINED BY
+ CALLING FUNCTION ERRFAC.
+
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "fourie.h"
+#include "modefl.h"
+#include "consts.h"
+#include "uiod.h"
+#include "anglst.h"
+#include "errfac.h"
+#include "errpar.h"
+#include "pick.h"
+#include "pseudo.h"
+
+#include "art.h"
+
+INTEGER art_class::Init()
+{
+       //Xalg1User3.Open(); //Ran, bug 266
+       //ArtIn.delta_1 = NULL; //wei, 3/2005 //Ran, bug 266
+       return 0;
+}
+
+INTEGER art_class::Reset()
+{
+       // Xalg1User3.Close(); //Ran, bug 266
+       // if (ArtIn.delta_1 != NULL) delete[] ArtIn.delta_1; //wei,3/2005 //Ran, bug 266
+       if (!ArtIn.art3f)
+               delete[] ArtIn.totalRays; //wei, bug 266
+       return 0;
+}
+
+BOOLEAN art_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+
+       static INTEGER iflagr;
+       static INTEGER iflagt;
+       static INTEGER iflagc;
+       static REAL thrinc;
+       static REAL dist;
+       static REAL minprd;
+       static REAL rinc2;
+       INTEGER i;
+       INTEGER np;
+       INTEGER nr;
+       REAL raysum;
+       REAL theta;
+       REAL sinth;
+       REAL costh;
+       REAL v;
+       REAL psrsum;
+       INTEGER numb;
+       REAL snorm;
+       INTEGER j;
+       REAL diff;
+       REAL abdiff;
+
+       REAL sum;
+       REAL temp;
+       REAL averec;
+       REAL avedif;
+
+       BOOLEAN erf = true;
+       BOOLEAN erflag;
+       static BOOLEAN flag; //may not need to be static hstau
+
+       REAL pictk;
+
+       INTEGER area;
+
+       REAL pof2;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       if (iter == 1)
+       {
+               flag = FALSE;
+               iflagr = 1;
+               iflagt = 1;
+               iflagc = 1;
+
+               readin(recon, list, weight, &erflag);
+
+               if (erflag)
+               {
+                       return TRUE;
+               }
+
+               ArtIn.thrlo = Modefl.lower;
+               ArtIn.thrup = Modefl.upper;
+               thrinc = 0.0;
+               ArtIn.halfwy = (Modefl.upper + Modefl.lower) / (REAL) 2.0;
+               ArtIn.thtol = (Modefl.upper - Modefl.lower) / (REAL) 1000.0;
+               dist = Modefl.upper - Modefl.lower;
+
+               if (ArtIn.noisef)
+               {
+                       minprd = 0.0;
+                       Fourie.rinc = GeoPar.pinc;
+                       rinc2 = GeoPar.pinc * GeoPar.pinc;
+                       errpar(erf);
+               }
+       } // iter == 1
+
+       if (ArtIn.bartf)
+       {
+
+               pof2 = 1;
+               for (i = 0; i < iter + 1; i++)
+                       pof2 *= 2.0;
+
+               thrinc = dist / (ArtIn.kount * pof2);
+       }
+
+       // ONE ITERATION
+
+       for (i = 0; i < ArtIn.kount; i++)
+       {
+               pick(&np, &nr);
+               raysum = Anglst.prdta(np, nr);
+
+               if (!ArtIn.rconsf)
+               {
+
+                       // GET VARIABLE RELAXATION PARAMETER
+
+                       ArtIn.relax = rset(recon, iter, np, nr, iflagr, raysum, list,
+                                       weight, &flag);
+                       if (flag)
+                       {
+                               return TRUE;
+                       }
+               }
+               if (ArtIn.noisef)
+               {
+
+                       // GET VARIABLE TOLERANCE BASED ON NOISE IN PROJECTION
+
+                       if (!(GeoPar.line || GeoPar.uni))
+                       {
+                               Anglst.getang(np, &theta, &sinth, &costh);
+                               Fourie.rinc = GeoPar.pinc * MAX0(sinth, costh);
+                               rinc2 = Fourie.rinc * Fourie.rinc;
+                       }
+                       v = errfac(raysum, Fourie.rinc, rinc2);
+                       ArtIn.toler = ArtIn.ct * (REAL) sqrt(v);
+               }
+               else
+               {
+                       if (!ArtIn.tolerf)
+                       {
+
+                               // GET VARIABLE TOLERANCE
+
+                               ArtIn.toler = tset(recon, iter, np, nr, iflagt, raysum, list,
+                                               weight, &flag);
+                               if (flag)
+                               {
+                                       return TRUE;
+                               }
+                               if (ArtIn.toler < 0.0)
+                               {
+                                       fprintf(output,
+                                                       "\n          ***tolerance calculated at iter= %5i  np= %5i  nr= %5i  tolerance= %9.5f***",
+                                                       iter, np, nr, ArtIn.toler); //hstau
+
+                                       fprintf(output,
+                                                       "\n          ***error - tolerance can not be less than 0.0***"); //hstau
+                                       return TRUE;
+                               }
+                       }
+               }
+
+               if (!ArtIn.crf)
+               {
+
+                       // GET VARIABLE CR
+
+                       ArtIn.cr = crset(recon, iter, np, nr, iflagc, raysum, list, weight,
+                                       &flag);
+                       if (flag)
+                       {
+                               return TRUE;
+                       }
+               }
+
+               if (Blob.pix_basis)
+               {
+                       psrsum = pseudo(recon, np, nr, list, weight, &numb, &snorm,
+                                       GeoPar.line, ArtIn.art2f);
+               }
+               else
+               {
+                       psrsum = Blob.bpseudo(recon, np, nr, list, weight, &numb, &snorm,
+                                       GeoPar.line, ArtIn.art2f);
+               }
+
+               if (numb != 0)
+               {
+
+                       // CALCULATE P-NORM WHEN P IS OTHER THAN 2
+
+                       if (ArtIn.p != 2)
+                       {
+                               snorm = 0.0;
+                               for (j = 0; j < numb; j++)
+                               {
+                                       snorm += (REAL) pow(weight[j], ArtIn.p);
+                               }
+                       }
+                       if (snorm > Consts.zero)
+                       {
+                               diff = raysum - psrsum;
+                               abdiff = (REAL) fabs(diff);
+
+                               // BACKPROJECTION
+                               bkproj(recon, diff, abdiff, ArtIn.totalRays, np, nr, list,
+                                               weight, numb, snorm);
+
+                       }
+               }
+               // bug 222 - swr - 04/08/07
+               ArtIn.thrlo += thrinc;
+               ArtIn.thrup -= thrinc;
+       }
+
+       if (ArtIn.nomlf)
+       {
+
+               // NORMALIZATION
+
+               sum = 0.0;
+               for (i = 0; i < area; i++)
+               {
+                       temp = recon[i];
+                       temp = clip(temp, ArtIn.thrlo, ArtIn.thrup, 1.0);
+                       if (!Blob.pix_basis)
+                       { //if blobs
+                               if (i % 2 == Blob.pr)
+                               {
+                                       sum += temp;
+                               }
+                       }
+                       else
+                       {
+                               sum += temp;
+                       }
+               }
+
+               averec = sum / float(area);
+               if (!Blob.pix_basis)
+               {
+                       averec *= 2.0;
+               }
+               avedif = GeoPar.aveden - averec; //aveden in both basis coincide
+
+               // IN THE FOLLOWING LOOP OF 820 THE COMMENTED LINE WAS
+               // REPLACED WITH THE CODE INSIDE LOOP 820....10/13/87
+               // Dr. GABOR T HERMAN
+
+               for (i = 0; i < area; i++)
+               {
+
+                       pictk = recon[i] + avedif;
+                       if (!ArtIn.art2f)
+                       {
+                               pictk = clip(pictk, ArtIn.thrlo, ArtIn.thrup, 1.0);
+                               if (ArtIn.bartf)
+                               {
+                                       if (Modefl.lofl && (recon[i] <= ArtIn.thrlo)
+                                                       && (pictk >= ArtIn.halfwy))
+                                               pictk = ArtIn.halfwy - ArtIn.thtol;
+
+                                       if (Modefl.upfl && (recon[i] >= ArtIn.thrup)
+                                                       && (pictk <= ArtIn.halfwy))
+                                               pictk = ArtIn.halfwy + ArtIn.thtol;
+                               }
+                       }
+                       recon[i] = pictk;
+               }
+       }
+
+       return FALSE;
+}
+
diff --git a/src/snark/art.h b/src/snark/art.h
new file mode 100644 (file)
index 0000000..774f697
--- /dev/null
@@ -0,0 +1,84 @@
+/* 
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/art.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#ifndef XALG1_H
+#define XALG1_H      
+
+#include "alg.h"
+
+class artin_class
+{ 
+  public:
+  INTEGER kount;
+  INTEGER p;
+  INTEGER npin;    // projection curently in delta buffer
+       
+  REAL* totalRays;     //Ran, bug 266
+
+  BOOLEAN art2f;
+  BOOLEAN art3f;
+  BOOLEAN art4f;
+  BOOLEAN tolerf;
+  BOOLEAN rconsf;
+  BOOLEAN nomlf;
+  BOOLEAN bartf;
+  BOOLEAN bayef;
+  BOOLEAN noisef;
+  BOOLEAN crf;
+
+  REAL toler;
+  REAL relax;
+  REAL thrlo;
+  REAL thrup;
+  REAL halfwy;
+  REAL thtol;
+  REAL snr;
+  REAL snr2;
+  REAL cr;
+  REAL ct;
+};
+
+class art_class: public alg_class
+{
+private:
+  artin_class ArtIn;
+  //FileUser3_class Xalg1User3; //Ran, bug 266
+
+  REAL clip(REAL temp, REAL thrlo, REAL thrup, REAL relax);
+
+  REAL rset(
+    REAL* recon, 
+    INTEGER iter,
+    INTEGER np,
+    INTEGER nr,
+    INTEGER i,
+    REAL raysum, 
+    INTEGER* list,
+    REAL* weight,
+    BOOLEAN *flag
+  );
+
+  REAL tset(REAL* recon, INTEGER iter, INTEGER np, INTEGER nr,INTEGER i, REAL raysum, INTEGER* list, REAL* weight, BOOLEAN* flag);
+
+  REAL crset(REAL* recon, INTEGER iter, INTEGER np, INTEGER nr, INTEGER i, REAL raysum, INTEGER* list, REAL* weight, BOOLEAN* flag);
+
+  void readin(REAL* recon, INTEGER* list, REAL* weight, BOOLEAN* flag);
+
+  void bkproj( REAL* recon, REAL diff, REAL abdiff, REAL* ibase, INTEGER np, INTEGER nr, INTEGER* list, REAL* weight, INTEGER numb, REAL snorm);
+
+  void artbck(REAL* pict, REAL amt, INTEGER* list,REAL* weight,INTEGER numb,REAL thrlo,REAL thrup,REAL relax,BOOLEAN bartf,REAL halfwy,REAL thtol, BOOLEAN art2f);
+
+public:
+  INTEGER Init();
+  BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+  INTEGER Reset();
+};
+
+#endif      
diff --git a/src/snark/art_artbck.cpp b/src/snark/art_artbck.cpp
new file mode 100644 (file)
index 0000000..8a00dd6
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/art_artbck.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+
+ CALCULATE BACKPROJECTIONS (THE SAME AS BCKRAY)
+ WITH OPTION "HALF" IN ART
+*/
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "modefl.h"
+
+#include "art.h"
+void art_class::artbck(
+  REAL* pict,
+  REAL amt,
+  INTEGER* list,
+  REAL* weight,
+  INTEGER numb,
+  REAL thrlo,
+  REAL thrup,
+  REAL relax,
+  BOOLEAN bartf,
+  REAL halfwy,
+  REAL thtol,
+  BOOLEAN art2f
+)
+{  
+  INTEGER nb;
+  INTEGER k;
+  REAL pictk;
+
+  if(numb == 0) return;
+
+  for(nb = 0; nb < numb; nb++) {
+    k = list[nb];
+    pictk = pict[k];
+    pictk += amt * weight[nb];
+
+
+    if(!art2f) {
+      pictk = clip(pictk, thrlo, thrup, relax);
+
+      if(bartf) {
+
+        if(Modefl.lofl && (pict[k] <= thrlo) && (pictk >= halfwy)) {
+          pictk = halfwy - thtol;
+        }
+
+        if(Modefl.upfl && (pict[k] >= thrup) && (pictk <= halfwy)) {
+          pictk = halfwy + thtol;
+        }
+      }
+    }
+
+
+    pict[k] = pictk;
+  }
+  return;
+}      
diff --git a/src/snark/art_bkproj.cpp b/src/snark/art_bkproj.cpp
new file mode 100644 (file)
index 0000000..e7cce49
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/art_bkproj.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CALCULATE BACKPROJECTIONS
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "uiod.h"
+#include "geom.h"
+
+#ifdef FFCOMPARE
+#include "geom.h"
+#endif
+
+#include "art.h"
+
+void art_class::bkproj(REAL* recon, REAL diff,REAL abdiff,REAL* ibase, INTEGER np, INTEGER nr, INTEGER* list, REAL* weight, INTEGER numb, REAL snorm)
+{
+       REAL change;
+       REAL dual; //wei, bug 266
+       REAL a;
+       REAL b;
+       REAL factor;
+
+
+       if (ArtIn.bayef)
+       {
+               // BAYESIAN
+               //index = indexd(np, nr); //Ran, bug 266
+               dual = ArtIn.totalRays[np * GeoPar.nrays + nr];
+               change = diff - dual;  //wei, bug 266
+               snorm = (REAL) 1.0 + snorm * ArtIn.snr2;
+       }
+       else if (ArtIn.art4f)
+       {
+               // ART4
+               // index = indexd(np, nr); //Ran, bug 266
+               dual = ArtIn.totalRays[np * GeoPar.nrays + nr]; //wei, bug 266
+               a = diff + ArtIn.toler;
+               b = diff - ArtIn.toler;
+
+               change = MAX0(MIN0(a, dual), b);
+               ArtIn.totalRays[np * GeoPar.nrays + nr] -= change * ArtIn.relax; //wei, bug 266
+       }
+
+       // ART3
+       else
+       {
+               if (abdiff <= ArtIn.toler)
+               {
+                       return;
+               }
+
+               if (abdiff >= ArtIn.toler + ArtIn.toler)
+               {
+                       change = diff;
+               }
+               else
+               {
+                       // REFLECTION
+                       if (diff < 0)
+                               change = (REAL) 2.0 * (diff + ArtIn.toler); //  -2*toler < diff <-toler
+                       else
+                               change = (REAL) 2.0 * (diff - ArtIn.toler); //  toler < diff < 2* toler      by wei, 8/2005
+               }
+       }
+       // ADJUST RECONSTRUCTED PICTURE
+
+       factor = ArtIn.relax * change / snorm;
+
+#ifdef FFCOMPARE
+
+#endif  
+
+       if (ArtIn.bayef)
+       {
+               ArtIn.totalRays[np * GeoPar.nrays + nr] += factor;  //wei, bug 266
+               factor *= ArtIn.snr2;
+       }
+
+       ////////// dump recon ////////////
+#ifdef FFCOMPARE
+
+#endif
+       //////////////////////////////////
+
+
+       artbck(recon, factor, list, weight, numb, ArtIn.thrlo, ArtIn.thrup,
+                       ArtIn.cr, ArtIn.bartf, ArtIn.halfwy, ArtIn.thtol, ArtIn.art2f);
+
+       return;
+}
+
diff --git a/src/snark/art_clip.cpp b/src/snark/art_clip.cpp
new file mode 100644 (file)
index 0000000..0fff8bc
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/art_clip.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ GET CONSTRAINED VALUES BY ART2 WAY
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "modefl.h"
+
+#include "art.h"
+
+REAL art_class::clip(REAL temp, REAL thrlo, REAL thrup, REAL relax)
+{
+       if (!((temp >= thrlo) && (temp <= thrup)))
+       {
+               if (Modefl.lofl || Modefl.upfl)
+               {
+
+                       if (Modefl.lofl && (temp < thrlo))
+                       {
+                               temp += relax * (Modefl.lower - temp);
+                       }
+
+                       if (Modefl.upfl && (temp > thrup))
+                       {
+                               temp += relax * (Modefl.upper - temp);
+                       }
+               }
+       }
+       return temp;
+}
diff --git a/src/snark/art_crset.cpp b/src/snark/art_crset.cpp
new file mode 100644 (file)
index 0000000..d7a628b
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/art_crset.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "art.h"
+
+REAL art_class::crset(REAL* recon, INTEGER iter, INTEGER np, INTEGER nr, INTEGER i, REAL raysum, INTEGER* list, REAL* weight, BOOLEAN* flag)
+{
+  fprintf(output, "\n          **** error - the user did not supply function crset***");
+
+  *flag = TRUE;
+  
+  return 1.0;
+}
diff --git a/src/snark/art_readin.cpp b/src/snark/art_readin.cpp
new file mode 100644 (file)
index 0000000..622a1c3
--- /dev/null
@@ -0,0 +1,502 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/art_readin.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ READ IN INPUT OPTIONS AND SET DEFAULTS
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "modefl.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "int2str.h"
+#include "infile.h"
+#include "raysel.h"
+
+#include "art.h"
+
+/// !!! list & weight never used !!!
+
+void art_class::readin(REAL* recon, INTEGER* list, REAL* weight, BOOLEAN* flag)
+{
+       static const INTEGER bound = CHAR2INT('b', 'o', 'u', 'n');
+       static const INTEGER vari = CHAR2INT('v', 'a', 'r', 'i');
+       static const INTEGER noise = CHAR2INT('n', 'o', 'i', 's');
+       static const INTEGER art2 = CHAR2INT('a', 'r', 't', '2');
+       static const INTEGER cons = CHAR2INT('c', 'o', 'n', 's');
+       static const INTEGER bart = CHAR2INT('b', 'a', 'r', 't');
+       static const INTEGER fixed = CHAR2INT('f', 'i', 'x', 'e');
+
+       static const INTEGER norm = CHAR2INT('n', 'o', 'r', 'm');
+       static const INTEGER rela = CHAR2INT('r', 'e', 'l', 'a');
+       static const INTEGER art4 = CHAR2INT('a', 'r', 't', '4');
+       static const INTEGER tole = CHAR2INT('t', 'o', 'l', 'e');
+       static const INTEGER conr = CHAR2INT('c', 'o', 'n', 'r');
+       static const INTEGER step = CHAR2INT('s', 't', 'e', 'p');
+       static const INTEGER noml = CHAR2INT('n', 'o', 'm', 'l');
+       static const INTEGER baye = CHAR2INT('b', 'a', 'y', 'e');
+       static const INTEGER art3 = CHAR2INT('a', 'r', 't', '3');
+
+       int i;
+
+       BOOLEAN eol;
+       BOOLEAN boundf;
+
+       INTEGER word;
+       //REAL* delta; ///!!!!
+
+       // DEFAULT INITIALIZATION
+
+       ArtIn.p = 2;
+       ArtIn.relax = 1.0;
+       ArtIn.toler = 0.0;
+       //ArtIn.kount = GeoPar.prjnum * GeoPar.usrays; // change nrays to usrays. hstau 7/2003
+       {
+               if (RaySel.useray)  // select user
+                       ArtIn.kount = GeoPar.prjnum * GeoPar.usrays;
+               else
+                       //select snark
+                       ArtIn.kount = GeoPar.prjnum * GeoPar.snrays;
+       }  // set value to kount for select user or select snark. Wei   11/2004
+
+       ArtIn.npin = -1;
+       ArtIn.rconsf = TRUE;
+       ArtIn.cr = 1.0;
+       ArtIn.crf = TRUE;
+       ArtIn.art2f = FALSE;
+       ArtIn.art3f = FALSE;
+       ArtIn.art4f = FALSE;
+       ArtIn.tolerf = TRUE;
+       ArtIn.nomlf = FALSE;
+       boundf = FALSE;
+       ArtIn.bartf = FALSE;
+       ArtIn.bayef = FALSE;
+       ArtIn.noisef = FALSE;
+       *flag = FALSE;
+
+       INTEGER exp0[3] =
+       { art3, art4, baye };
+
+       word = InFile.getwrd(TRUE, &eol, exp0, 3);
+
+       if (eol)
+       {
+               fprintf(output,
+                               "\n          **** error - one and only one of the following options must be specified : art3, art4, bayesian***");
+               *flag = TRUE;
+               return;
+       }
+
+       if (word == art3)
+       {
+               ArtIn.art3f = TRUE;
+               fprintf(output, "\n          art3 method");
+       }
+
+       else if (word == art4)
+       {
+               ArtIn.art4f = TRUE;
+               fprintf(output, "\n          art4 method");
+       }
+
+       else
+       { //word == baye
+               ArtIn.bayef = TRUE;
+               ArtIn.snr = InFile.getnum(FALSE, &eol);
+               if (eol)
+               {
+                       fprintf(output,
+                                       "\n          **** error - must specify the snr in Bayesian option***");
+                       *flag = TRUE;
+                       return;
+               }
+
+               ArtIn.snr2 = ArtIn.snr * ArtIn.snr;
+               if (ArtIn.snr2 <= Consts.zero)
+               {
+                       fprintf(output,
+                                       "\n          **** error - snr**2= %10.6f must be greater than %12.4e***",
+                                       ArtIn.snr2, Consts.zero);
+
+                       *flag = TRUE;
+                       return;
+               }
+
+               fprintf(output, "\n          Bayesian method with  snr = %9.5f",
+                               ArtIn.snr);
+       }  // baye
+
+       INTEGER exp1[3] =
+       { rela, norm, tole };
+       word = InFile.getwrd(FALSE, &eol, exp1, 3);
+
+       if (eol)
+       {
+               fprintf(output, "\n          relaxation parameter is 1.0");
+               fprintf(output, "\n          norm is 2");
+               fprintf(output, "\n          tolerance is 0.0");
+               goto L20;
+               // read next line
+       }
+
+       if (word == rela)
+       {
+               INTEGER exp2[2] =
+               { cons, vari };
+               word = InFile.getwrd(FALSE, &eol, exp2, 2);
+
+               if (eol)
+               {
+                       fprintf(output,
+                                       "\n          **** error - with the option relaxation, one and only one of the following options must be specified : constant or variable***");
+                       *flag = TRUE;
+                       return;
+               }
+
+               if (word == cons)
+               {
+                       ArtIn.relax = InFile.getnum(FALSE, &eol);
+
+                       if (eol)
+                       {
+                               fprintf(output,
+                                               "\n          **** error - must specify the relaxation constant***");
+                               *flag = TRUE;
+                               return;
+                       }
+                       else
+                       {
+                               fprintf(output, "\n          relaxation parameter is %9.4f",
+                                               ArtIn.relax);
+                       }
+               }
+
+               else
+               {  //relax=vari
+                       ArtIn.rconsf = FALSE;
+                       fprintf(output, "\n          relaxation parameter is variable");
+               }
+
+               INTEGER exp1a[2] =
+               { norm, tole };
+               word = InFile.getwrd(FALSE, &eol, exp1a, 2);
+
+               if (word == norm)
+                       goto L10;
+               else if (word == tole)
+                       goto L15;
+               else
+               {
+                       fprintf(output, "\n          norm is 2");
+                       fprintf(output, "\n          tolerance is 0.0");
+                       goto L20;
+                       // eol: read next line
+               }
+       } // word == rela
+
+       else if (word == norm)
+       {
+               L10: ArtIn.p = InFile.getint(FALSE, &eol);
+
+               if (eol)
+               {
+                       fprintf(output,
+                                       "\n          **** error - must specify the norm***");
+                       *flag = TRUE;
+                       return;
+               }
+               else if (ArtIn.p < 0)
+               {
+                       fprintf(output, "\n          norm cannot be negative");
+                       *flag = TRUE;
+                       return;
+               }
+               else
+               {
+                       fprintf(output, "\n          norm is %5i", ArtIn.p);
+               }
+
+               INTEGER exp1b[1] =
+               { tole };
+               word = InFile.getwrd(FALSE, &eol, exp1b, 1);
+
+               if (word == tole)
+                       goto L15;
+               else
+               {
+                       fprintf(output, "\n          tolerance is 0.0");
+                       goto L20;
+                       // eol: read next line
+               }
+       }  // word == norm
+
+       else
+       { //word = tole
+
+               L15:
+               INTEGER exp3[3] =
+               { fixed, vari, noise };
+               word = InFile.getwrd(FALSE, &eol, exp3, 3);
+
+               if (eol)
+               {
+                       fprintf(output,
+                                       "\n          **** error - with the option tolerance, one and only one of the following options must be specified : fixed, variable, or noise***");
+                       *flag = TRUE;
+                       return;
+               }
+
+               if (word == fixed)
+               {
+                       ArtIn.toler = InFile.getnum(FALSE, &eol);
+
+                       if (eol)
+                       {
+                               fprintf(output,
+                                               "\n          **** error - must specify tolerance ***");
+                               *flag = TRUE;
+                               return;
+                       }
+
+                       else if (ArtIn.toler < 0.0)
+                       {
+                               fprintf(output,
+                                               "\n          **** error - tolerance can not be less than 0.0***");
+                               *flag = TRUE;
+                               return;
+                       }
+
+                       else
+                       {
+                               fprintf(output, "\n          tolerance is %9.4f", ArtIn.toler);
+                       }
+               } // fixed
+
+               else if (word == vari)
+               {
+                       ArtIn.tolerf = FALSE;
+                       fprintf(output, "\n          tolerance is variable");
+               }
+
+               else
+               { // noise
+                       ArtIn.noisef = TRUE;
+                       ArtIn.ct = InFile.getnum(FALSE, &eol);
+
+                       if (eol)
+                       {
+                               fprintf(output,
+                                               "\n          **** error - must specify tolerance ***");
+                               *flag = TRUE;
+                               return;
+                       }
+
+                       else if (ArtIn.ct < 0.0)
+                       {
+                               fprintf(output,
+                                               "\n          **** error - tolerance can not be less than 0.0***");
+                               *flag = TRUE;
+                               return;
+                       }
+
+                       else
+                       {
+                               fprintf(output,
+                                               "\n          tolerance is data dependent, noise factor%9.4f",
+                                               ArtIn.ct);
+                       }
+               } //noise
+       } //word == tole
+
+       L20:
+
+       INTEGER exp4[1] =
+       { cons };
+
+       word = InFile.getwrd(TRUE, &eol, exp4, 1);
+
+       if (eol)
+       {
+               fprintf(output,
+                               "\n          **** error - keyword constraint is missing***");
+               *flag = TRUE;
+               return;
+       }
+
+       INTEGER exp5[3] =
+       { art2, bound, bart };
+
+       word = InFile.getwrd(FALSE, &eol, exp5, 3);
+
+       if (eol)
+       {
+               fprintf(output,
+                               "\n          **** error - with the option constraint, one and only one of the following options must be specified : art2, bound, or bart***");
+               *flag = TRUE;
+               return;
+       }
+
+       if (word == art2)
+       {
+               ArtIn.art2f = TRUE;
+               fprintf(output, "\n          constraint art2 way");
+       }
+
+       else if (word == bound)
+       {
+               boundf = TRUE;
+               fprintf(output, "\n          constraint set to boundaries");
+       }
+
+       else
+       { //word == bart
+               ArtIn.bartf = TRUE;
+               if (!(Modefl.lofl && Modefl.upfl))
+               {
+                       fprintf(output,
+                                       "\n          *** error - both upfl and lofl must be on when bart is specified***");
+                       *flag = TRUE;
+                       return;
+               }
+
+               fprintf(output, "\n          constraint bart");
+
+       }  //bart
+
+       INTEGER exp6[3] =
+       { conr, step, noml };
+       word = InFile.getwrd(FALSE, &eol, exp6, 3);
+
+       if (eol)
+       {
+               fprintf(output, "\n          relaxation constraints with cr = 1.0");
+               fprintf(output, "\n          picture is not normalized");
+               goto L40;
+               // finished reading input
+       }
+       if (word == conr)
+       {
+               INTEGER exp7[2] =
+               { cons, vari };
+               word = InFile.getwrd(FALSE, &eol, exp7, 2);
+
+               if (eol)
+               {
+                       fprintf(output,
+                                       "\n          **** error - with the option conrelax, one and only one of the following options must be specified : constant or variable***");
+                       *flag = TRUE;
+                       return;
+               }
+
+               if (word == cons)
+               {
+                       ArtIn.cr = InFile.getnum(FALSE, &eol);
+
+                       if (eol)
+                       {
+                               fprintf(output,
+                                               "\n          **** error - must specify constraint relaxation constant***");
+                               *flag = TRUE;
+                               return;
+                       }
+                       fprintf(output, "\n          relax constraints with cr= %9.4f",
+                                       ArtIn.cr);
+               }
+               else
+               { //variable relax constaints
+                       ArtIn.crf = FALSE;
+                       fprintf(output, "\n          relax constraints with variable cr");
+               }
+
+               INTEGER exp6a[2] =
+               { step, noml };
+               word = InFile.getwrd(FALSE, &eol, exp6a, 2);
+
+               if (word == step)
+                       goto L30;
+               else if (word == noml)
+                       goto L35;
+               else
+               {
+                       fprintf(output, "\n          picture is not normalized");
+                       goto L40;
+                       // eol: finished
+               }
+       } // constraint relaxation
+
+       else if (word == step)
+       {
+               L30: ArtIn.kount = InFile.getint(FALSE, &eol);
+
+               if (eol)
+               {
+                       fprintf(output, "\n          **** error - must specify kount***");
+                       *flag = TRUE;
+                       return;
+               }
+               else if (ArtIn.kount <= 0)
+               {
+                       fprintf(output,
+                                       "\n          **** error - kount can not be less than 0 **");
+                       *flag = TRUE;
+                       return;
+               }
+
+               INTEGER exp6b[1] =
+               { noml };
+               word = InFile.getwrd(FALSE, &eol, exp6b, 1);
+
+               if (word == noml)
+                       goto L35;
+               else
+               {
+                       fprintf(output, "\n          picture is not normalized");
+                       goto L40;
+                       // eol: finished
+               }
+       }  // word = step
+
+       L35: //nomlz
+       ArtIn.nomlf = TRUE;
+       fprintf(output,
+                       "\n          picture is normalized to %9.4f after each iteration",
+                       GeoPar.aveden);
+
+       L40: if (!ArtIn.art3f)
+       {
+
+               // ALLOCATE AND INITIALIZE DUAL VARIABLES IN ART4
+               // OR IN BAYESIAN
+
+               //Ran, bug 266
+               ArtIn.totalRays = new REAL[GeoPar.nrays * GeoPar.prjnum];
+               for (i = 0; i < (GeoPar.nrays * GeoPar.prjnum); i++)
+               {
+                       ArtIn.totalRays[i] = 0.0;
+               }
+       }
+
+       fprintf(output, "\n          %5i rays are used for each iteration",
+                       ArtIn.kount);
+
+       if (Modefl.lofl)
+       {
+               fprintf(output, "\n          lower constraint = %9.4f", Modefl.lower);
+       }
+       if (Modefl.upfl)
+       {
+               fprintf(output, "\n          upper constraint = %9.4f", Modefl.upper);
+       }
+
+       return;
+}
+
diff --git a/src/snark/art_rset.cpp b/src/snark/art_rset.cpp
new file mode 100644 (file)
index 0000000..9533548
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/art_rset.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "art.h"
+
+      
+REAL art_class::rset( REAL* recon, INTEGER iter,INTEGER np, INTEGER nr, INTEGER i, REAL raysum,  INTEGER* list, REAL* weight, BOOLEAN *flag)
+{
+  fprintf(output, "\n           ****error - the user did not supply function rset***");
+  *flag = TRUE;
+  return 1.0;
+}    
diff --git a/src/snark/art_tset.cpp b/src/snark/art_tset.cpp
new file mode 100644 (file)
index 0000000..177cd23
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/art_tset.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "art.h"
+        
+REAL art_class::tset(REAL* recon, INTEGER iter, INTEGER np, INTEGER nr,INTEGER i, REAL raysum, INTEGER* list, REAL* weight, BOOLEAN* flag)
+{        
+  fprintf(output, "\n           **** error - the user did not supply function tset***");
+  
+  *flag = TRUE;
+  return 0.0;
+}       
diff --git a/src/snark/back.cpp b/src/snark/back.cpp
new file mode 100644 (file)
index 0000000..234b846
--- /dev/null
@@ -0,0 +1,441 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/back.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ COMBINED BACK-PROJECTION RECONSTRUCTION ALGORITHM.
+
+ THIS SUBROUTINE COMPUTES A BACK-PROJECTION RECONSTRUCTION
+ USING EITHER THE EQUATIONS OF THE LINES AS GIVEN BY RAY OR WRAY
+ OR BY INTERPOLATING BETWEEN THE GIVEN PROJECTION DATA TO
+ APPROXIMATE THE RADON TRANSFORM AT A PARTICULAR POINT.  THE
+ FORMER IS SPECIFIED BY THE 'DISCRETE' PARAMETER, THE LATTER BY
+ 'CONTINUOUS'.
+
+ IN THE DISCRETE CASE, THE USER HAS THE ADDITIONAL OPTIONS OF
+ SPECIFYING IF THE RAYSUM IS TO BE DIVIDED BY 'SNORM' BEFORE
+ BEING BACK-PROJECTED ('DISTRIBUTED') AND IF PIXELS WHICH ARE
+ INTERCEPTED BY A ZERO OR NEGATIVE RAY SHOULD BE REMOVED FROM
+ THE COMPUTATIONS ('ZEROIZING').
+
+ IN THE CONTINUOUS CASE, THE DESIRED INTERPOLATION METHOD MUST
+ BE SPECIFIED.  WARNING- THE CONTINUOUS CASE WEIGHTS PROJECTION
+ "NP" BY "(THETA(NP+1)-THETA(NP-1))/2.0".  IN ORDER TO ACCOMPLISH
+ THIS IT IS ASSUMED THAT THE PROJECTIONS ARE ARRANGED IN INCREASING
+ ORDER ON THETA AND THAT THETA(PRJNUM)-THETA(1) IS LESS THAN
+ PI IN THE PARALLEL CASE OR TWOPI IN THE DIVERGENT CASE.
+
+ THE RESULT OF THE BACK-PROJECTION WILL BE NORMALIZIED TO
+ THE CORRECT AVERAGE DENSITY IF EITHER 'ADDITIVE' OR 'MULTIPLICATIV
+ HAS BEEN SPECIFIED.  THE FORMER PERFORMS THE NORMALIZATION BY
+ THE ADDITION OF A CONSTANT TO THE ENTIRE PICTURE, THE LATTER BY
+ MULTIPLICATION.
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "fourie.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "bckprj.h"
+#include "anglst.h"
+#include "ray.h"
+#include "wray.h"
+
+#include "projfile.h"
+#include "infile.h"
+
+#include "back.h"
+
+BOOLEAN back_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       REAL neginf, zflag;
+       INTEGER word;
+       REAL* g = NULL;       //wei 3/2005
+       BOOLEAN disc, zeros, dist, add, mult;
+       BOOLEAN eol;
+       static const INTEGER hcont = CHAR2INT('c', 'o', 'n', 't');
+       static const INTEGER hdisc = CHAR2INT('d', 'i', 's', 'c');
+       static const INTEGER hdist = CHAR2INT('d', 'i', 's', 't');
+       static const INTEGER hzero = CHAR2INT('z', 'e', 'r', 'o');
+       static const INTEGER haddi = CHAR2INT('a', 'd', 'd', 'i');
+       static const INTEGER hmult = CHAR2INT('m', 'u', 'l', 't');
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+       static const INTEGER back_codes[6] =
+       {
+                       CHAR2INT('c', 'o', 'n', 't'),
+                       CHAR2INT('d', 'i', 's', 'c'),
+                       CHAR2INT('z', 'e', 'r', 'o'),
+                       CHAR2INT('d', 'i', 's', 't'),
+                       CHAR2INT('a', 'd', 'd', 'i'),
+                       CHAR2INT('m', 'u', 'l', 't') };
+
+       INTEGER nsize;
+       REAL thmod;
+       REAL thfac;
+       REAL theta;
+       REAL sinth;
+       REAL costh;
+       REAL theta0;
+       INTEGER np;
+       REAL theta1;
+       INTEGER np2;
+       REAL theta2;
+       REAL sinth2;
+       REAL costh2;
+       REAL w;
+       INTEGER nr;
+       INTEGER numb;
+       REAL snorm;
+       INTEGER nb;
+       INTEGER k;
+       REAL amt;
+       REAL sum;
+       INTEGER knt;
+       REAL corr;
+
+       if (iter > 1)
+               return FALSE;
+       neginf = -Consts.infin;
+       zflag = neginf + neginf;
+       dist = FALSE;
+       zeros = FALSE;
+       add = FALSE;
+       mult = FALSE;
+
+       // PROCESS CONTROL CARD
+
+       word = InFile.getwrd(TRUE, &eol, back_codes, 2);
+       if (word != hcont)
+       {
+               if (word != hdisc)
+               {
+                       fprintf(output, "\n **** neither continuous or discrete specified");
+                       return TRUE;
+               }
+
+               disc = TRUE;
+
+               word = InFile.getwrd(FALSE, &eol, &(back_codes[2]), 4);
+
+               if (word == hzero)
+               {
+                       zeros = TRUE;
+                       word = InFile.getwrd(FALSE, &eol, &(back_codes[3]), 3);
+               }
+
+               if (word == hdist)
+               {
+                       dist = TRUE;
+                       word = InFile.getwrd(FALSE, &eol, &(back_codes[4]), 2);
+               }
+
+       }
+       else
+       {
+               disc = FALSE;
+               Fourie.interp = InFile.getint(FALSE, &eol);
+               if ((eol) || (Fourie.interp < -1) || (Fourie.interp > 6))
+               {
+                       // ERROR CONDITIONS
+
+                       fprintf(output, "\n **** invalid interpolation method");
+
+                       return TRUE;
+               }
+
+               word = InFile.getwrd(FALSE, &eol, &(back_codes[4]), 2);
+       }
+
+       if (!eol)
+       {
+               if (word == haddi)
+                       add = TRUE;
+               if (word == hmult)
+                       mult = TRUE;
+       }
+
+       if (disc)
+       {
+               fprintf(output, "\n          discrete back-projection");
+       }
+       else
+       {
+
+               fprintf(output, "\n          continuous back-projection");
+
+               if (Fourie.interp == -1)
+               {
+                       fprintf(output, "\n          modified cubic spline interpolation");
+               }
+
+               if (Fourie.interp == 0)
+               {
+                       fprintf(output, "\n          band limiting sinc interpolation");
+               }
+
+               if (Fourie.interp > 0)
+               {
+                       fprintf(output, "\n          %2i order lagrange interpolation",
+                                       Fourie.interp);
+               }
+       }
+
+       if (dist)
+       {
+               fprintf(output, "\n          distributed back-projection");
+       }
+
+       if (zeros)
+       {
+               fprintf(output, "\n          zeroizing is in effect");
+       }
+
+       if (add)
+       {
+               fprintf(output, "\n          additive normalization");
+       }
+
+       if (mult)
+       {
+               fprintf(output, "\n          multiplicative normalization");
+       }
+
+       if (!disc)
+       {
+
+               // CONTINUOUS CASE
+
+               nsize = GeoPar.snrays + 2 * Fourie.interp;
+               if (Fourie.interp == -1)
+                       nsize = GeoPar.snrays + 6;
+
+               g = new REAL[nsize];
+
+               thmod = Consts.pi;
+               thfac = 2.0;
+               if (!GeoPar.par)
+               {
+                       thmod = Consts.twopi;
+                       thfac = 4.0;
+               }
+               Anglst.getang(GeoPar.prjnum - 1, &theta, &sinth, &costh);
+               theta0 = theta - thmod;
+
+               for (np = 0; np < GeoPar.prjnum; np++)
+               {
+
+                       ProjFile.ReadProj(np, g, nsize);
+
+                       Anglst.getang(np, &theta1, &sinth, &costh);
+
+                       np2 = np + 1;
+
+                       if (np == (GeoPar.prjnum - 1))
+                               np2 = 0;
+
+                       Anglst.getang(np2, &theta2, &sinth2, &costh2);
+
+                       if (np == (GeoPar.prjnum - 1))
+                               theta2 += thmod;
+
+                       w = (theta2 - theta0) / thfac;
+
+                       if (w <= 0.0)
+                       {
+                               fprintf(output,
+                                               "\n **** projection angles not in increasing order");
+
+                               if (g != NULL)
+                                       delete[] g;   //wei 3/2005
+                               return TRUE;
+                       }
+
+                       Fourie.rinc = GeoPar.pinc;
+
+                       if (GeoPar.div)
+                               Fourie.rinc *= GeoPar.radius / GeoPar.stod;
+                       if (GeoPar.vri)
+                               Fourie.rinc *= (REAL) MAX0(fabs(sinth), fabs(costh));
+                       if (GeoPar.strip)
+                               w /= Fourie.rinc;
+
+                       theta0 = theta1;
+
+                       for (nr = 0; nr < nsize; nr++)
+                       {
+                               g[nr] *= w;
+                       }
+
+                       bckprj(recon, GeoPar.nelem, g, nsize, sinth, costh,
+                                       GeoPar.pixsiz / Fourie.rinc, Fourie.interp);
+
+               }
+
+       }
+       else
+       {
+               // DISCRETE CASE
+
+               g = new REAL[GeoPar.nrays];
+
+               if (zeros)
+               {
+
+                       // FLAG PIXELS INTERCEPTED WITH ZERO OR NEGATIVE RAYS
+
+                       for (np = 0; np < GeoPar.prjnum; np++)
+                       {
+
+                               ProjFile.ReadProj(np, g, GeoPar.nrays);
+
+                               for (nr = GeoPar.fsnray; nr <= GeoPar.lsnray; nr++)
+                               { // changed < to <=. lajos Nov 17, 2004
+                                       if (g[nr] <= Consts.zero)
+                                       {
+
+                                               if (GeoPar.strip)
+                                                       ray(np, nr, list, weight, &numb, &snorm);
+                                               if (GeoPar.line)
+                                                       wray(np, nr, list, weight, &numb, &snorm);
+
+                                               if (numb != 0)
+                                               {
+
+                                                       for (nb = 0; nb < numb; nb++)
+                                                       {
+                                                               k = list[nb];
+                                                               recon[k] = zflag;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+
+                       // PERFORM DISCRETE BACK-PROJECTION
+               }
+
+               for (np = 0; np < GeoPar.prjnum; np++)
+               {
+
+                       ProjFile.ReadProj(np, g, GeoPar.nrays);
+                       for (nr = GeoPar.fsnray; nr <= GeoPar.lsnray; nr++)
+                       { // changed < to <=. lajos Nov 17, 2004
+
+                               if (GeoPar.strip)
+                                       ray(np, nr, list, weight, &numb, &snorm);
+                               if (GeoPar.line)
+                                       wray(np, nr, list, weight, &numb, &snorm);
+
+                               if (numb != 0)
+                               {
+                                       amt = g[nr];
+                                       if (dist)
+                                       {
+                                               if (zeros)
+                                               {
+
+                                                       // CORRECT SNORM BY REMOVING FLAGGED PIXELS
+                                                       snorm = 0.0;
+                                                       for (nb = 0; nb < numb; nb++)
+                                                       {
+                                                               k = list[nb];
+                                                               if (recon[k] > neginf)
+                                                                       snorm += weight[nb] * weight[nb];
+                                                       }
+                                               }
+                                               amt /= snorm;
+                                       }
+                                       for (nb = 0; nb < numb; nb++)
+                                       {
+                                               k = list[nb];
+                                               recon[k] += amt * weight[nb];
+                                       }
+                               }
+                       }
+
+               }
+       }
+
+       // PERFORM NORMALIZATION
+
+       if (!(add || mult))
+       {
+               if (!zeros)
+               {
+                       if (g != NULL)
+                               delete[] g;   //wei 3/2005
+                       return FALSE;
+               }
+               // NO NORMALIZATION REQUESTED - JUST CLEAR FLAGGED PIXELS
+
+               for (k = 0; k < GeoPar.area; k++)
+               {
+                       if (recon[k] <= neginf)
+                               recon[k] = 0.0;
+               }
+
+               if (g != NULL)
+                       delete[] g;   //wei 3/2005
+               return FALSE;
+
+               // COMPUTE TOTAL DENSITY AND NUMBER OF UNFLAGGED PIXELS
+       }
+
+       sum = 0.0;
+       knt = 0;
+
+       for (k = 0; k < GeoPar.area; k++)
+       {
+
+               if (recon[k] > neginf)
+               {
+                       sum += recon[k];
+                       knt++;
+               }
+
+       }
+
+       if (!mult)
+       {
+
+               // ADDITIVE CORRECTION TO AVERAGE DENSITY
+
+               corr = GeoPar.aveden - sum / ((REAL) (knt));
+
+               for (k = 0; k < GeoPar.area; k++)
+               {
+                       recon[k] += corr;
+                       if (recon[k] <= neginf)
+                               recon[k] = 0.0;
+               }
+               if (g != NULL)
+                       delete[] g;   //wei 3/2005
+               return FALSE;
+
+               // MULTIPLICATIVE CORRECTION TO AVERAGE DENSITY
+       }
+
+       corr = ((REAL) (knt)) * GeoPar.aveden / sum;
+
+       for (k = 0; k < GeoPar.area; k++)
+       {
+               if (recon[k] <= neginf)
+                       recon[k] = 0.0;
+               recon[k] *= corr;
+       }
+       if (g != NULL)
+               delete[] g;   //wei 3/2005
+       return FALSE;
+}
+
diff --git a/src/snark/back.h b/src/snark/back.h
new file mode 100644 (file)
index 0000000..9e08b45
--- /dev/null
@@ -0,0 +1,24 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/back.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef BACK_H
+#define BACK_H
+
+#include "alg.h"
+
+class back_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+};
+
+#endif      
diff --git a/src/snark/basis.cpp b/src/snark/basis.cpp
new file mode 100644 (file)
index 0000000..e0457cb
--- /dev/null
@@ -0,0 +1,120 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/basis.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ basis() establishes the basis function. The basis can be either "blob" or "voronoi". If blob basis, then one should also specify the support of the blob "blob.support", shape of the blob "Blob.shape", and the grid resolution "Blob.delta"
+
+ */
+
+#include <cstdio>
+#include <cmath>
+#include <cstdlib>
+
+#include "consts.h"
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "basis.h"
+#include "uiod.h"
+#include "int2str.h"
+#include "infile.h"
+
+void basis()
+{
+       INTEGER word;
+       REAL aux;
+
+       BOOLEAN eol;
+
+       static const INTEGER blob = CHAR2INT('b', 'l', 'o', 'b');
+       static const INTEGER pixel = CHAR2INT('p', 'i', 'x', 'e');
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+       static const INTEGER basis_codes[2] =
+       { CHAR2INT('b', 'l', 'o', 'b'), CHAR2INT('p', 'i', 'x', 'e') };
+
+       Blob.pix_basis = TRUE;
+
+       for (;;)
+       {
+
+               word = InFile.getwrd(FALSE, &eol, basis_codes, 2);
+
+               if (eol)
+               {
+                       break;
+               }
+
+               if (word == blob)
+               {
+                       Blob.pix_basis = FALSE;
+                       //default values
+                       Blob.delta = 2.0 * Consts.isqrt3 * GeoPar.pixsiz;
+                       //Blob.delta =   4.0 * Consts.isqrt3 * GeoPar.pixsiz;
+                       Blob.shape = 11.2828631556;
+                       Blob.support = 1.7865601396 * Blob.delta;
+                       //Blob.support = 2 * 1.7865601396 * Blob.delta;
+                       aux = InFile.getnum(FALSE, &eol);
+                       if (!eol)
+                       {
+                               Blob.support = aux;
+                               Blob.shape = InFile.getnum(FALSE, &eol);
+                               if (Blob.shape < 0.0)
+                               {
+                                       fprintf(output,
+                                                       "\n **** shape of a blob cannot be negative");
+                                       fprintf(output, "\n **** program aborted\n");
+                                       exit(333);
+                               }
+
+                               //delta = getnum(NULL, &eol);
+                               Blob.delta = InFile.getnum(FALSE, &eol);
+                               if ((Blob.delta <= Consts.zero)
+                                               || (Blob.support <= Consts.zero))
+                               {
+                                       fprintf(output,
+                                                       "\n **** delta and support must be greater than ZERO");
+                                       fprintf(output, "\n **** program aborted\n");
+                                       exit(333);
+                               }
+                       }
+
+                       Blob.setparam();
+                       Blob.table();
+
+                       break;
+               }
+
+               else if (word == pixel)
+               {
+                       Blob.pix_basis = TRUE;
+                       break;
+               }
+
+               else
+               {
+                       fprintf(output, "\n **** unknown basis %s", int2str(word));
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(333);
+               }
+       }
+       // ECHO OPTION SELECTED
+
+       if (Blob.pix_basis)
+       {
+               fprintf(output, "\n          pixel basis");
+       }
+
+       else
+       {
+               fprintf(output,
+                               "\n          blob basis with parameters: support = %10.4f shape = %10.4f delta = %10.4f",
+                               Blob.support, Blob.shape, Blob.delta);
+
+       }
+}
diff --git a/src/snark/basis.h b/src/snark/basis.h
new file mode 100644 (file)
index 0000000..25dab3b
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/basis.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef BASIS_H
+#define BASIS_H
+
+void basis();
+
+#endif
diff --git a/src/snark/bbldlst.cpp b/src/snark/bbldlst.cpp
new file mode 100644 (file)
index 0000000..5fca372
--- /dev/null
@@ -0,0 +1,40 @@
+/*      
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bbldlst.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS SUBROUTINE COMPUTES THE MAXIMAL SIZE OF THE LIST AND WEIGHT
+ ARRAYS NEEDED BY BRAY AND BWRAY.  IT ALLOCATES
+ THE MAXIMUM OF THESE VALUES FOR THE LIST AND WEIGHT ARRAYS.
+ */
+
+#include <cstdlib>     
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "blob.h"
+#include "uiod.h"
+
+void Blob_class::bbldlst(INTEGER** lbase, REAL** wbase)
+{
+       INTEGER npts;
+
+       if (GeoPar.strip)
+       {
+               npts = (INTEGER) (Blob.diag * (2 * GeoPar.pinc / Blob.delta + 1));
+               // use similar reasoning for the line case for pinc/2 instead of blob.support
+       }
+
+       if (GeoPar.line)
+       {
+               npts = (INTEGER) (Blob.diag * (4 * Blob.support / Blob.delta + 1));
+       }
+       *lbase = new INTEGER[npts];
+       *wbase = new REAL[npts];
+}
+
diff --git a/src/snark/bckprj.cpp b/src/snark/bckprj.cpp
new file mode 100644 (file)
index 0000000..c609e01
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bckprj.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ SUBROUTINE TO BACK-PROJECT THE DATA GIVEN THE THE ARRAY 'G'
+ ONTO THE SQUARE ARRAY 'A'.  G IS A VECTOR OF LENGTH M; A IS AN
+ N*N MATRIX.  THE BACK PROJECTION IS PERFORMED USING THE
+ INTERPOLATION METHOD GIVEN BY 'INTERP' PARALLEL TO THE UNIT
+ VECTOR GIVEN BY (CTH,STH).
+
+
+ This subroutine is modified so that it is not necessary to
+ call qintp for linear iteration (two-point Lagrange).
+ The exacution is done within this subroutine.
+ July 23, 1989
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "qintp.h"
+
+#include "bckprj.h"
+
+void bckprj(REAL* a, INTEGER n, REAL* g, INTEGER m, REAL sth, REAL cth,
+               REAL spac, INTEGER interp)
+{
+       INTEGER epos;
+       REAL nmid, mmid;
+
+       INTEGER ind;
+       REAL yinc;
+       REAL xinc;
+       REAL ypos;
+       REAL pos;
+       INTEGER j;
+       INTEGER i;
+       REAL er;
+       REAL qintp1;
+
+       nmid = (n - 1) / 2;
+       mmid = (m + 1) / 2;
+       ind = 0;
+       yinc = cth * spac;
+       xinc = -sth * spac;
+       ypos = nmid * yinc + mmid;
+
+       if (interp == 2)
+       {
+               for (i = 0; i < n; i++)
+               {
+                       pos = -nmid * xinc + ypos;
+                       for (j = 0; j < n; j++)
+                       {
+                               epos = (INTEGER) pos;
+                               er = pos - epos;
+                               qintp1 = g[epos - 1] + er * (g[epos] - g[epos - 1]);
+                               a[ind++] += qintp1;
+                               pos += xinc;
+                       }
+                       ypos -= yinc;
+               }
+       }
+       else
+       {
+               for (i = 0; i < n; i++)
+               {
+                       pos = -nmid * xinc + ypos;
+                       for (j = 0; j < n; j++)
+                       {
+                               a[ind++] += qintp(pos, g, m, interp);
+                               pos += xinc;
+                       }
+                       ypos -= yinc;
+               }
+       }
+       return;
+}
diff --git a/src/snark/bckprj.h b/src/snark/bckprj.h
new file mode 100644 (file)
index 0000000..d0b4a73
--- /dev/null
@@ -0,0 +1,17 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bckprj.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef BCKPRJ_H
+#define BCKPRJ_H      
+
+void bckprj(REAL* a, INTEGER n, REAL* g, INTEGER m, REAL sth, REAL cth,
+               REAL spac, INTEGER interp);
+
+#endif 
diff --git a/src/snark/bckray.cpp b/src/snark/bckray.cpp
new file mode 100644 (file)
index 0000000..7749620
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bckray.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "blkdta.h"
+#include "modefl.h"
+
+/// this function is never used !!!
+
+void bckray(REAL* pict, REAL amt, INTEGER* list, REAL* weight, INTEGER numb,
+               BOOLEAN constr)
+{
+       INTEGER nb;
+       INTEGER k;
+       REAL pictk;
+
+       // UPDATE THE RECONSTRUCTION PICT BY ADJUSTING THE DESIRED RAY
+       // BY THE GIVEN AMT.
+
+       if (numb == 0)
+               return;
+
+       for (nb = 0; nb < numb; nb++)
+       {
+               k = list[nb];
+               pictk = pict[k] + amt * weight[nb];
+               if (constr)
+               {
+                       if (Modefl.lofl)
+                               pictk = MAX0(pictk, Modefl.lower);
+                       if (Modefl.upfl)
+                               pictk = MIN0(pictk, Modefl.upper);
+               }
+               pict[k] = pictk;
+       }
+}
diff --git a/src/snark/bckray.h b/src/snark/bckray.h
new file mode 100644 (file)
index 0000000..5fa185e
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bckray.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef BCKRAY_H
+#define BCKRAY_H
+
+void bckray(REAL* pict, REAL amt, INTEGER* list, REAL* weight, INTEGER numb,
+               BOOLEAN constr);
+
+#endif
diff --git a/src/snark/bdhk.cpp b/src/snark/bdhk.cpp
new file mode 100644 (file)
index 0000000..a5d7e7e
--- /dev/null
@@ -0,0 +1,240 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bdhk.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "fourie.h"
+#include "modefl.h"
+#include "consts.h"
+#include "uiod.h"
+#include "anglst.h"
+#include "errfac.h"
+#include "errpar.h"
+#include "pick.h"
+#include "pseudo.h"
+#include <cstdio>
+#include <iostream>
+#include "infile.h"
+#include "anglst.h"
+#include <iomanip>
+#include <fstream>
+#include "second.h"
+#include "wray.h"
+#include "raysel.h"
+#include "bdhk.h"
+using namespace std;
+
+INTEGER bdhk_class::Init()
+{
+
+       flag_kount = TRUE;
+
+       if (RaySel.useray)
+               kount = GeoPar.prjnum * GeoPar.usrays;
+       else
+               kount = GeoPar.prjnum * GeoPar.snrays;
+       //finishNow=FALSE;
+       arrayRays = new struct NPNR[kount];
+       orderRays(arrayRays, kount);
+
+       //Lastrecon = new REAL[GeoPar.area]; // the array to keep the recon of the least TV seen so far
+       //total_time=0;
+       return 0;
+}
+
+INTEGER bdhk_class::Reset()
+{
+       delete[] arrayRays;
+       //delete [] Lastrecon;
+       return 0;
+}
+
+BOOLEAN bdhk_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+
+       INTEGER count = 0;
+
+       while (flag_kount)
+       {
+
+               REAL resX = 0;
+               REAL* v = new REAL[GeoPar.area];
+               REAL* d = new REAL[GeoPar.area];
+
+               if (iter == 1 && count == 0)
+               {
+                       BOOLEAN eol;
+                       REAL word;
+
+                       //checking for BETA
+                       word = InFile.getnum(TRUE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output,
+                                               "\n          **** error - you must specify 1 parameter list ***");
+                               return TRUE;
+                       }
+                       BETA = word;
+                       if (BETA <= Consts.zero)
+                       {
+                               fprintf(output,
+                                               "\n          **** error - BETA = %10.6f must be greater than %12.4e***",
+                                               word, Consts.zero);
+                               return TRUE;
+                       }
+                       else
+                               fprintf(output, "\n BETA       = %10.6f", word);
+
+                       //checking for kount
+                       word = InFile.getnum(FALSE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output, "\n          **** error - parameter list***");
+                               return TRUE;
+                       }
+
+                       if (word <= 0)
+                       {
+                               if (RaySel.useray)
+                                       KOUNT = GeoPar.prjnum * GeoPar.usrays;
+                               else
+                                       KOUNT = GeoPar.prjnum * GeoPar.snrays;
+                               fprintf(output,
+                                               "\n        KOUNT remained in default, KOUNT = %d                                       ***",
+                                               KOUNT);
+
+                       }
+                       else
+                       {
+                               KOUNT = word;
+                               fprintf(output, "\n KOUNT        = %10.6f", word);
+                       }
+
+               }  //end if (iter==1 && count==0)
+
+               resX = calculateResidual(recon, list, weight, arrayRays, kount);
+
+               BETA *= 2;
+
+               REAL* grad = new REAL[GeoPar.area];
+               REAL* reconBU = new REAL[GeoPar.area];
+
+               BOOLEAN flag = calculateGradientTV(grad, recon);
+
+               if (flag == FALSE)
+               {
+                       //initialiaze the d vector to all zero
+                       for (int iter1 = 0; iter1 < GeoPar.area; iter1++)
+                               d[iter1] = 0;
+               }
+               else
+               {
+                       //have d vector equal to g/||g||
+                       REAL norm_grad = calcNorm(grad);
+
+                       if (trace == 1)
+                               cout << endl << "norm_grad=" << norm_grad << "    " << endl
+                                               << endl;
+
+                       for (int iter1 = 0; iter1 < GeoPar.area; iter1++)
+                               d[iter1] = grad[iter1] / norm_grad;
+
+               }
+
+               REAL resAv;
+               REAL TVx = calcTV(recon);
+
+               if (trace == 1)
+                       cout << endl << endl << "TVx=" << TVx << "    ";
+
+               REAL TVv;
+               BOOLEAN logic = TRUE;
+               do
+               {
+                       if (trace == 1)
+                               cout << endl << "entered DO-WHILE" << endl;
+
+                       resAv = resX + 1;
+                       BETA /= 2;
+
+                       if (trace == 1)
+                               cout << endl << "BETA=" << BETA << "    " << endl;
+
+                       for (int iter1 = 0; iter1 < GeoPar.area; iter1++)
+                               v[iter1] = recon[iter1] - BETA * d[iter1];
+
+                       TVv = calcTV(v);
+
+                       if (trace == 1)
+                               cout << "TVv=" << TVv << "    " << endl;
+//*************************************************************************
+//CHECKING THE CONDITION:
+//~~~~~~~~~~~~~~~~~~~~~~~
+                       if (TVv <= TVx)
+                       {
+
+                               //Backing Up recon array as v is going to be passed to MyART
+                               for (int iter1 = 0; iter1 < GeoPar.area; iter1++)
+                               {
+                                       reconBU[iter1] = recon[iter1];
+                                       recon[iter1] = v[iter1];
+                               }  //now recon contains the vector v and will be passed to MyART
+
+                               if (trace == 1)
+                                       cout << endl << "resX=" << resX << "   ";
+
+                               MyART(recon, list, weight, arrayRays, kount);
+                               count += kount;
+
+                               resAv = calculateResidual(recon, list, weight, arrayRays,
+                                               kount);
+
+                               //if (trace == 1)
+                               //cout<<endl<<"resX="<<resX<<"   ";
+                               if (trace == 1)
+                                       cout << "resAv=" << resAv << endl << endl;
+
+                               if (resAv >= resX) //only if the condition in the while loop kept as TRUE, we let recon to go back to its previous state. Otherwise stays as X_k+1
+                               {
+                                       for (int iter1 = 0; iter1 < GeoPar.area; iter1++)
+                                               recon[iter1] = reconBU[iter1];
+                               }
+                               else
+                                       logic = FALSE;
+
+                       } // end if (TVv <= TVx)
+//**************************************************************************
+               } while (logic);
+
+               if (count >= KOUNT)
+                       flag_kount = FALSE;
+
+//deallocation of memory:
+               delete[] d;
+               delete[] v;
+               delete[] grad;
+               delete[] reconBU;
+
+               if (trace == 1)
+                       cout << "iter " << iter << " ENDED with BETA=" << BETA << endl
+                                       << endl;
+
+       } //end while (flag_kount)
+
+//returning snark iteration
+       flag_kount = TRUE;
+       return FALSE;
+
+} //end of snark iteration
+
diff --git a/src/snark/bdhk.h b/src/snark/bdhk.h
new file mode 100644 (file)
index 0000000..5839d6c
--- /dev/null
@@ -0,0 +1,74 @@
+/* 
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bdhk.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+
+#ifndef BDHK_H
+#define BDHK_H
+
+#include "alg.h"
+
+  struct NPNR
+  {
+    INTEGER NP;
+    INTEGER NR;
+  };
+
+class bdhk_class: public alg_class
+{
+private:
+//misl.h
+  
+  REAL AVER(REAL A, REAL B);
+
+  REAL neigSum_General(REAL* recon, REAL* d, int kernel_size);
+
+  REAL AVER3(REAL A, REAL B, REAL C);
+
+  REAL diffAbs(REAL A, REAL B);
+
+  REAL neigSum(REAL* recon, REAL* v);
+
+  void orderRays(struct NPNR* arrayRays, INTEGER kount);
+
+  REAL calcTV(REAL* recon);
+  
+  BOOLEAN calculateGradientTV(REAL* grad, REAL* recon);
+
+  REAL calcHalfNormSquare(REAL* recon);
+
+  REAL calcNorm(REAL* aVector);
+  //calcNorm calculates the square-root of the norm square of a vector ||V||
+  
+  REAL squareNorm(REAL* aVector);
+  //squareNorm calculates the norm square of a vector ||V||^2
+
+  REAL calculateResidual(REAL* recon, INTEGER* list, REAL* weight, struct NPNR* arrayRays, INTEGER kount);
+  //calculates the residual of recon from its pseudo projections
+
+  void MyART(REAL* recon, INTEGER* list, REAL* weight, struct NPNR* arrayRays, INTEGER kount);
+
+
+
+//algp.h
+   REAL BETA;
+   struct NPNR* arrayRays;
+   INTEGER kount;
+   INTEGER KOUNT; //user paramater to control "STEPS kount" like
+   BOOLEAN flag_kount;
+   INTEGER kernel_size;
+
+public:
+  INTEGER Init();
+  BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+  INTEGER Reset();
+};
+
+#endif      
diff --git a/src/snark/bdhk_misl.cpp b/src/snark/bdhk_misl.cpp
new file mode 100644 (file)
index 0000000..cbf38a9
--- /dev/null
@@ -0,0 +1,423 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bdhk_misl.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "fourie.h"
+#include "modefl.h"
+#include "consts.h"
+#include "uiod.h"
+#include "anglst.h"
+#include "errfac.h"
+#include "errpar.h"
+#include "pick.h"
+#include "pseudo.h"
+#include <cstdio>
+#include <iostream>
+#include "infile.h"
+#include "anglst.h"
+#include <iomanip>
+#include <fstream>
+#include "second.h"
+#include "wray.h"
+#include "raysel.h"
+#include "bdhk.h"
+using namespace std;
+
+REAL bdhk_class::AVER(REAL SUM, REAL NUM)
+{
+       return SUM / NUM;
+}
+
+REAL bdhk_class::AVER3(REAL A, REAL B, REAL C)
+{
+       REAL temp = (A + B + C) / 3.0;
+       return temp;
+}
+
+REAL bdhk_class::diffAbs(REAL A, REAL B)
+{
+       REAL dif = A - B;
+
+       if (dif < 0)
+               dif *= -1;
+
+       return dif;
+}
+
+REAL bdhk_class::neigSum(REAL* recon, REAL* d)
+{
+       REAL sum = 0;
+       REAL Pi1, Pi2, Pi3, Pi4, Dif1, Dif2, Dif3, Dif4;
+       for (int i = 0; i < GeoPar.area; i++)
+       {
+               if (i == 0) //upper left corner
+               {
+                       Pi1 = AVER3(recon[1], recon[GeoPar.nelem], recon[GeoPar.nelem + 1]);
+                       Dif1 = diffAbs(recon[i], Pi1);
+                       sum += Dif1;
+                       d[i] = Pi1 - recon[i];
+               }
+               else if (i == (GeoPar.nelem - 1)) //upper right corner
+               {
+                       Pi1 = AVER3(recon[GeoPar.nelem - 2], recon[2 * GeoPar.nelem - 2],
+                                       recon[2 * GeoPar.nelem - 1]);
+                       Dif1 = diffAbs(recon[i], Pi1);
+                       sum += Dif1;
+                       d[i] = Pi1 - recon[i];
+               }
+               else if (i == (GeoPar.area - GeoPar.nelem)) //lower left corner
+               {
+                       Pi1 = AVER3(recon[GeoPar.area - 2 * GeoPar.nelem],
+                                       recon[GeoPar.area - 2 * GeoPar.nelem + 1],
+                                       recon[GeoPar.area - GeoPar.nelem + 1]);
+                       Dif1 = diffAbs(recon[i], Pi1);
+                       sum += Dif1;
+                       d[i] = Pi1 - recon[i];
+               }
+               else if (i == (GeoPar.area - 1)) //lower right  corner
+               {
+                       Pi1 = AVER3(recon[GeoPar.area - 2],
+                                       recon[GeoPar.area - GeoPar.nelem - 1],
+                                       recon[GeoPar.area - GeoPar.nelem - 2]);
+                       Dif1 = diffAbs(recon[i], Pi1);
+                       sum += Dif1;
+                       d[i] = Pi1 - recon[i];
+               }
+
+               else if (i < GeoPar.nelem) //first row, not corners
+               {
+                       //two possibilities:
+
+                       Pi1 = AVER3(recon[i - 1], recon[i - 1 + GeoPar.nelem],
+                                       recon[i + GeoPar.nelem]);
+                       Pi2 = AVER3(recon[i + 1], recon[i + 1 + GeoPar.nelem],
+                                       recon[i + GeoPar.nelem]);
+
+                       Dif1 = diffAbs(recon[i], Pi1);
+                       Dif2 = diffAbs(recon[i], Pi2);
+
+                       if (Dif1 < Dif2)
+                       {
+                               sum += Dif1;
+                               d[i] = Pi1 - recon[i];
+
+                       }
+                       else
+                       {
+                               sum += Dif2;
+                               d[i] = Pi2 - recon[i];
+                       }
+               }
+
+               else if (i % GeoPar.nelem == 0) //first column, not corners
+               {
+                       //two possibilities:
+
+                       Pi1 = AVER3(recon[i + 1], recon[i - GeoPar.nelem],
+                                       recon[i - GeoPar.nelem + 1]);
+                       Pi2 = AVER3(recon[i + 1], recon[i + GeoPar.nelem],
+                                       recon[i + GeoPar.nelem + 1]);
+
+                       Dif1 = diffAbs(recon[i], Pi1);
+                       Dif2 = diffAbs(recon[i], Pi2);
+
+                       if (Dif1 < Dif2)
+                       {
+                               sum += Dif1;
+                               d[i] = Pi1 - recon[i];
+                       }
+                       else
+                       {
+                               sum += Dif2;
+                               d[i] = Pi2 - recon[i];
+                       }
+
+               }
+
+               else if (i % GeoPar.nelem == GeoPar.nelem - 1) //last  column, not corners
+               {
+                       //two possibilities:
+
+                       Pi1 = AVER3(recon[i - 1], recon[i - GeoPar.nelem - 1],
+                                       recon[i - GeoPar.nelem]);
+                       Pi2 = AVER3(recon[i - 1], recon[i + GeoPar.nelem],
+                                       recon[i + GeoPar.nelem - 1]);
+
+                       Dif1 = diffAbs(recon[i], Pi1);
+                       Dif2 = diffAbs(recon[i], Pi2);
+
+                       if (Dif1 < Dif2)
+                       {
+                               sum += Dif1;
+                               d[i] = Pi1 - recon[i];
+                       }
+                       else
+                       {
+                               sum += Dif2;
+                               d[i] = Pi2 - recon[i];
+                       }
+
+               }
+               else if (i > GeoPar.area - GeoPar.nelem) //last  row, not corners
+               {
+                       //two possibilities:
+
+                       Pi1 = AVER3(recon[i - 1], recon[i - GeoPar.nelem - 1],
+                                       recon[i - GeoPar.nelem]);
+                       Pi2 = AVER3(recon[i + 1], recon[i - GeoPar.nelem],
+                                       recon[i - GeoPar.nelem + 1]);
+
+                       Dif1 = diffAbs(recon[i], Pi1);
+                       Dif2 = diffAbs(recon[i], Pi2);
+
+                       if (Dif1 < Dif2)
+                       {
+                               sum += Dif1;
+                               d[i] = Pi1 - recon[i];
+                       }
+                       else
+                       {
+                               sum += Dif2;
+                               d[i] = Pi2 - recon[i];
+                       }
+
+               }
+               else //not in the bounderies but in the middle
+               {
+                       //four  possibilities:
+
+                       Pi1 = AVER3(recon[i - 1], recon[i - GeoPar.nelem - 1],
+                                       recon[i - GeoPar.nelem]);
+                       Pi2 = AVER3(recon[i + 1], recon[i - GeoPar.nelem],
+                                       recon[i - GeoPar.nelem + 1]);
+                       Pi3 = AVER3(recon[i - 1], recon[i - 1 + GeoPar.nelem],
+                                       recon[i + GeoPar.nelem]);
+                       Pi4 = AVER3(recon[i + 1], recon[i + GeoPar.nelem],
+                                       recon[i + GeoPar.nelem + 1]);
+
+                       Dif1 = diffAbs(recon[i], Pi1);
+                       Dif2 = diffAbs(recon[i], Pi2);
+                       Dif3 = diffAbs(recon[i], Pi3);
+                       Dif4 = diffAbs(recon[i], Pi4);
+
+                       if (Dif1 <= Dif2 && Dif1 <= Dif3 && Dif1 <= Dif4)
+                       {
+                               sum += Dif1;
+                               d[i] = Pi1 - recon[i];
+                       }
+                       else if (Dif2 <= Dif1 && Dif2 <= Dif3 && Dif2 <= Dif4)
+                       {
+                               sum += Dif2;
+                               d[i] = Pi2 - recon[i];
+                       }
+                       else if (Dif3 <= Dif1 && Dif3 <= Dif2 && Dif3 <= Dif4)
+                       {
+                               sum += Dif3;
+                               d[i] = Pi3 - recon[i];
+                       }
+                       else if (Dif4 <= Dif1 && Dif4 <= Dif2 && Dif4 <= Dif3)
+                       {
+                               sum += Dif4;
+                               d[i] = Pi4 - recon[i];
+                       }
+               }
+
+       }
+       REAL norm_d = calcNorm(d);
+
+       if (norm_d != 0)
+       {
+               //normalizing the d vector:
+               //~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+               for (int i1 = 0; i1 < GeoPar.area; i1++)
+                       d[i1] /= norm_d;
+       }
+
+       return sum;
+}
+
+REAL bdhk_class::calculateResidual(REAL* recon, INTEGER* list, REAL* weight,
+               struct NPNR* arrayRays, INTEGER kount)
+{
+       INTEGER np, nr, i, j, numb;
+       REAL snorm, temp1, b, res = 0;
+       for (i = 0; i < kount; i++)
+       {
+               np = arrayRays[i].NP;
+               nr = arrayRays[i].NR;
+               wray(np, nr, list, weight, &numb, &snorm);
+               b = Anglst.prdta(np, nr);
+               if (numb != 0)
+               {
+                       temp1 = 0;
+                       for (j = 0; j < numb; j++)
+                               temp1 += weight[j] * recon[list[j]];
+                       res += (pow((b - temp1), 2)) / snorm;
+               }       //end if
+       }       //end for
+       res = sqrt(res);
+       return res;
+}
+
+BOOLEAN bdhk_class::calculateGradientTV(REAL* grad, REAL* recon)
+{
+       //initialiaze the Gradient vector to all zero
+       for (int iter1 = 0; iter1 < GeoPar.area; iter1++)
+               grad[iter1] = 0;
+
+       //looping through case 1
+       for (int k = 0; k < (GeoPar.area - GeoPar.nelem); k++) //not including the last row
+       {
+               if (((k % GeoPar.nelem) - (GeoPar.nelem - 1)) != 0) //not in the last column
+               {
+
+                       REAL v1 = recon[k + 1] - recon[k];
+                       REAL v2 = recon[k + GeoPar.nelem] - recon[k];
+                       REAL deno = sqrt(v1 * v1 + v2 * v2);
+                       if (deno >= Consts.zero) //continue calculating the subgradients
+                               //there are three subgradients to consider. They are placed in k, k+1, k+nelem
+                               // (1) 2x_k - x_k+1 - x_k+nelem / deno
+                               grad[k] += (2 * recon[k] - recon[k + 1]
+                                               - recon[k + GeoPar.nelem]) / deno;
+
+               }        //end if
+
+       }        //end for k
+
+                        //looping through case 2
+       for (int k = 0; k < (GeoPar.area - GeoPar.nelem); k++) //not including the last row
+       {
+               if ((k % GeoPar.nelem) != 0) //not in the first column
+               {
+
+                       REAL v1 = recon[k] - recon[k - 1];
+                       REAL v2 = recon[k + GeoPar.nelem - 1] - recon[k - 1];
+                       REAL deno = sqrt(v1 * v1 + v2 * v2);
+                       if (deno >= Consts.zero) //continue calculating the subgradients
+                               grad[k] += (recon[k] - recon[k - 1]) / deno;
+
+               } //end if
+
+       } //end for k
+
+         //looping through case 3
+       for (int k = GeoPar.nelem; k < (GeoPar.area); k++) //not including the first row
+       {
+               if (((k % GeoPar.nelem) - (GeoPar.nelem - 1)) != 0) //not in the last column
+               {
+
+                       REAL v1 = recon[k + 1 - GeoPar.nelem] - recon[k - GeoPar.nelem];
+                       REAL v2 = recon[k] - recon[k - GeoPar.nelem];
+                       REAL deno = sqrt(v1 * v1 + v2 * v2);
+                       if (deno >= Consts.zero) //continue calculating the subgradients
+                               grad[k] += (recon[k] - recon[k - GeoPar.nelem]) / deno;
+
+               } //end if
+
+       } //end for k
+
+         // BOOLEAN flag=FALSE;
+       for (int i = 0; i < GeoPar.area; i++)
+       {
+               if (grad[i] != 0)
+                       return TRUE;
+       } //end for
+
+       return FALSE;
+
+} //end calculateGradient
+
+void bdhk_class::orderRays(struct NPNR* arrayRays, INTEGER kount)
+{
+       INTEGER np, nr, i;
+       for (i = 0; i < kount; i++)
+       {
+               pick(&np, &nr);
+               struct NPNR temp;
+               temp.NP = np;
+               temp.NR = nr;
+               arrayRays[i] = temp;
+       }
+}
+
+void bdhk_class::MyART(REAL* recon, INTEGER* list, REAL* weight,
+               struct NPNR* arrayRays, INTEGER kount)
+{
+       INTEGER np, nr, i, j, numb;
+       REAL snorm, temp, b, div, dif;
+
+       for (i = 0; i < kount; i++)
+       {
+               np = arrayRays[i].NP;
+               nr = arrayRays[i].NR;
+               wray(np, nr, list, weight, &numb, &snorm);
+               if (numb != 0)
+               {
+                       if (snorm <= Consts.zero)
+                       {
+                               cout << endl << "*** error ---> norm square is less than "
+                                               << Consts.zero << " ***";
+                               cout << endl << " *** ART CALCULATION ABORTED ***" << endl;
+                               return;
+                       }
+                       temp = 0;
+                       for (j = 0; j < numb; j++)
+                               temp += weight[j] * recon[list[j]];
+                       b = Anglst.prdta(np, nr);
+                       dif = b - temp;
+                       div = dif / snorm;
+                       for (j = 0; j < numb; j++)
+                               recon[list[j]] += div * weight[j];
+
+               } //end if
+       } //end for
+       return;
+} //end MyART
+
+REAL bdhk_class::calcHalfNormSquare(REAL* recon)
+{
+       REAL sum = squareNorm(recon) / 2;
+       return sum;
+}
+
+REAL bdhk_class::calcTV(REAL* recon)
+{
+       REAL sum = 0.0;
+
+       for (int x = 0; x < (GeoPar.area - GeoPar.nelem - 1); x++)
+       {
+               if (((x % GeoPar.nelem) - (GeoPar.nelem - 1)) != 0) //not last column
+                       sum += sqrt(
+                                       pow((recon[x + 1] - recon[x]), 2)
+                                                       + pow((recon[x + GeoPar.nelem] - recon[x]), 2));
+
+       }
+
+       return sum;
+}
+
+REAL bdhk_class::squareNorm(REAL* aVector)
+{
+       REAL sum = 0;
+       for (int i = 0; i < GeoPar.area; i++)
+               sum += aVector[i] * aVector[i];
+       return sum;
+}
+
+REAL bdhk_class::calcNorm(REAL* aVector)
+{
+       return sqrt(squareNorm(aVector));
+}
+
diff --git a/src/snark/bh_correction.cpp b/src/snark/bh_correction.cpp
new file mode 100644 (file)
index 0000000..75d0896
--- /dev/null
@@ -0,0 +1,787 @@
+/*      
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bh_correction.cpp $
+ $LastChangedRevision: 118 $
+ $Date: 2014-07-09 14:22:29 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ * Description:
+ *
+ * The class bh_correction is responsible for performing beam hardening
+ * correction for polychromatic input data. Given the prjfil that was calculated
+ * based on weighted average of attenuations at different energy levels and 
+ * corrections coefficients [1,2] it approximates monochromatic projection data 
+ * which is then used by the reconstruction algorithms.
+ *
+ * 
+ *
+ * References:
+ * [1] G. T. Herman, Image Reconstruction from Projections, 1980
+ * [2] snark14 manual
+ *
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+
+#include <unistd.h>
+#include <sys/types.h>
+
+#include <fstream>
+#include <string.h>
+
+#include "bh_correction.h"
+
+using namespace std;
+
+int bh_correction::readInputFilePoly()
+{
+
+       BOOLEAN eol, eol1, eol2;
+       int i, j;   //loop counter variables
+
+       //read in the number of iterations
+       noIter = InFile.getint(TRUE, &eol);
+       if (eol == TRUE) //too few values provided
+       {
+               fprintf(output, "\n **** ERROR: number of iterations missing\n"
+                               " **** program aborted\n\n");
+               exit(-1);
+       }
+       fprintf(output, "\n Number of iterations for beam hardening "
+                       "correction set to r = %i\n\n", noIter);
+
+       //read in the degree of the polynomial that approximates monochromatic
+       //projections given polychromatic projections
+       noDegree = InFile.getint(FALSE, &eol);
+       if (eol == TRUE) //too few values provided
+       {
+               fprintf(output, "\n **** ERROR: the degree is missing\n"
+                               " **** program aborted\n\n");
+               exit(-1);
+       }
+       fprintf(output, "\n The degree of the polynomial for beam hardening "
+                       "correction set to  %i\n\n", noDegree);
+
+       //read in the  coefficients of polynomial that approximates monochromatic
+       //projections given polychromatic projections
+       a = new REAL[noDegree + 1];
+       a[0] = InFile.getnum(TRUE, &eol);
+       if (eol == TRUE) //too few values provided
+       {
+               fprintf(output, "\n **** ERROR: too few polynomial coefficients \n"
+                               " **** program aborted\n\n");
+               exit(-1);
+       }
+       for (i = 1; i <= noDegree; i++)
+       {
+               a[i] = InFile.getnum(FALSE, &eol);
+               if (eol == TRUE) //too few values provided
+               {
+                       fprintf(output, "\n **** ERROR: too few polynomial coefficients \n"
+                                       " **** program aborted\n\n");
+                       exit(-1);
+               }
+       }
+
+       if (noIter != 0)
+       {
+               //read in the number of energy levels
+               //this should be the same as Spctrm.nergy, otherwise exit
+               nerg = InFile.getint(TRUE, &eol);
+               if (eol == TRUE) //too few values provided
+               {
+                       fprintf(output, "\n **** ERROR: the nerg is missing\n"
+                                       " **** program aborted\n\n");
+                       exit(-1);
+               }
+
+               if (nerg != Spctrm.nergy) //these two should be the same
+               {
+                       fprintf(output, "\n **** ERROR: the value of nerg does not agree\n"
+                                       "with the nomber of energy levels written on file11\n"
+                                       " **** program aborted\n\n");
+                       exit(-1);
+               }
+               fprintf(output, "\n The number of energy levels is %i\n\n", nerg);
+
+               //read in the number of points for piecewise linear conversion of
+               //phantom data from energy[0] to other energy levels
+               noPointsConv = InFile.getint(TRUE, &eol);
+               if (eol == TRUE) //too few values provided
+               {
+                       fprintf(output, "\n **** ERROR: the noPointsConv is missing\n"
+                                       " **** program aborted\n\n");
+                       exit(-1);
+               }
+               fprintf(output,
+                               "\n The number of points for conversion of the polynomial "
+                                               "for beam hardening correction set to %i\n\n",
+                               noPointsConv);
+
+               //increase noPointsConv by 1 since we need point (0,0)
+               noPointsConv++;
+               //read in the  points used for constant linear conversion of
+               //phantom data from energy[0] to other energy levels
+               for (j = 1; j < Spctrm.nergy; j++)
+               {
+                       //skip j=0 since there is no conversion from the energy[0] to energy[0]
+                       c[j] = new point[noPointsConv];
+
+                       c[j][0].x = 0.0; //these are always 0.0
+                       c[j][0].y = 0.0; //because vacum attenuates nothing at all energy levels
+
+                       for (i = 1; i < noPointsConv; i++)
+                       {
+                               c[j][i].x = InFile.getnum(TRUE, &eol1);
+                               c[j][i].y = InFile.getnum(FALSE, &eol2);
+                               if (eol1 == TRUE || eol2 == TRUE) //too few values provided
+                               {
+                                       fprintf(output, "\n **** ERROR: too few point for "
+                                                       "energy level %i \n **** program aborted\n\n", j);
+                                       exit(-1);
+                               }
+                       }
+               }
+       }
+
+       return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+int bh_correction::correction(SnarkPrjFile * BHC_PrjFile)
+{
+       INTEGER i, j, k; //loop counters
+       INTEGER r = 0;
+       REAL x, y, u, den; //store elementary object descriptions
+       char command[256]; //store command line to be used in system() call
+       char filename[256]; //store file name created on the run
+       char line[256]; //store temporarly a line of a file
+
+       if (noIter == 0)
+       {
+               sprintf(command, "cp %s/q_p0 prjfil", tempDir);
+               if (system(command) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not execute  command"
+                                       "%s\n  **** program aborted\n\n", command);
+                       exit(-1);
+               }
+               return 0;
+       }
+
+       //an input file for reconstruction part of iteration,
+       //uses existing prjfil to generate recfil
+       ofstream bhcInputFromPrjfil;
+       //an array of input files to be created based on the recfil created by
+       //reconstruction step during an iterative run
+       //[0] will be used for monochromatic input file
+       //[1] will be used for polychromatic input file
+       ofstream bhcInputFiles[2];
+
+       //a copy of the original input file for the main snark14 run
+       //it is needed here for information about projection generation, etc.
+       ifstream inputFile;
+
+       //a recfil from the itermediate reconstruction during the iterative process
+       DIGFileSnarkRec bhcRecfil;
+
+       unsigned int NoOfPixels, NoOfRecSets;
+
+       //a reconstruction image for the intermediate reconstruction during
+       //the iterative process
+       REAL * bhcRecBuffer;
+
+       /* make sure that the nergy prjfil's are present,
+        * this projfil's contain the origila projection data corrected by multi-
+        * plying by the correction coefficient provided by the user in the input
+        * file
+        */
+
+       /* create nergy input files that use the same structures as the original
+        * input file, use PROJECTION OLD and run convolution algorithm for
+        * reconstruction
+        */
+
+       //create and open input files
+       //copy the original input file to the temp directory and open it for reading
+       sprintf(command, " cp file11 %s/inputFile.in                    ", tempDir);
+       if (system(command) != 0)
+       {
+               fprintf(output,
+                               "\n **** ERROR: could not copy input file to inputFile.in\n "
+                                               " **** program aborted\n\n");
+               exit(-1);
+       }
+
+       //open a new input file for writing
+
+       sprintf(filename, "%s/bhc_in.in", tempDir);
+       bhcInputFromPrjfil.open(filename);
+       if (!bhcInputFromPrjfil.is_open())
+       {
+               fprintf(output, "\n **** ERROR: could not open file %s from "
+                               "temp directory\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       //create input files that use the existing prjfil's to perform the reconstruction
+       bhcInputFromPrjfil << "PICTURE RECONSTUCTION " << GeoPar.nelem << " "
+                       << GeoPar.pixsiz << "\n";
+       bhcInputFromPrjfil << "PROJECTION OLD \n";
+       bhcInputFromPrjfil << "EXECUTE CONV \n";
+       bhcInputFromPrjfil << "monochromatic intermediate reconstruction\n";
+       bhcInputFromPrjfil << "hamming 0.54 2 \n";
+       bhcInputFromPrjfil << "END\n";
+
+       //close the input file
+       bhcInputFromPrjfil.close();
+
+       //allocalte needed memory
+       //bhcRecfils = new DIGFileSnarkRec[Spctrm.nergy];
+       //bhcRec_buffer = new REAL * [Spctrm.nergy];
+       NoOfPixels = GeoPar.nelem * GeoPar.nelem;
+
+       /* repeat noIter times
+        */
+       for (r = 0; r < noIter; r++)
+       {
+               sprintf(filename, "%s/inputFile.in", tempDir);
+               inputFile.open(filename);
+               if (!inputFile.is_open())
+               {
+                       fprintf(output,
+                                       "\n **** ERROR: could not read the inputFile.in from "
+                                                       "temp directory\n  **** program aborted\n\n");
+                       exit(-1);
+               }
+
+               /* run snark14 and create new input files based on reconstruction images,
+                * then create monochromatic projections (nergy of them) and polychromatic
+                * projections in order to perform the next step of iterative data refinement
+                *
+                * correct the data in projfil's and prepare the input files for the next
+                * round of iterative data refinement step
+                */
+
+               //run snark14 to obtain reconstruction in recfil
+               //for (i = 0; i < Spctrm.nergy; i++) {
+               //rename the existing q_p%i to prjfil
+               sprintf(command, "cd %s\n cp q_p%i  prjfil", tempDir, r);
+               if (system(command) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not execute  command "
+                                       "%s\n  **** program aborted\n\n", command);
+                       exit(-1);
+               }
+               //run snark14 with input file in"i".in
+               sprintf(command, "cd %s\n snark14 bhc_in.in >out.out", tempDir);
+               if (system(command) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not execute  command "
+                                       "%s\n  **** program aborted\n\n", command);
+                       exit(-1);
+               }
+               //rename the recfil, so it is not lost at the next run of snark14
+               sprintf(command, "cd %s\n mv recfil recfil%i", tempDir, r);
+               if (system(command) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not execute  command "
+                                       "%s\n  **** program aborted\n\n", command);
+                       exit(-1);
+               }
+               //}
+
+               //open just created recfil's and prepare data for reading
+
+               sprintf(filename, "%s/recfil%i", tempDir, r);
+               if (bhcRecfil.Open(filename) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not open file "
+                                       "%s (r = %i)\n  **** program aborted\n\n", filename, r);
+                       exit(-1);
+               }
+
+               // verify that there is only one reconstruction set (convolution
+               // produces only one)
+
+               if (bhcRecfil.GetNoOfRecSets(&NoOfRecSets) != 0)
+               {
+                       fprintf(output,
+                                       "\n **** ERROR: could not read the number of reconstruction"
+                                                       " sets from file %s\n  **** program aborted\n\n",
+                                       filename);
+                       exit(-1);
+               }
+               if (NoOfRecSets != 1)
+               {
+                       fprintf(output, "\n **** ERROR: the number (= %i) of reconstruction"
+                                       " sets from file %s is incorrect, should be =1\n  "
+                                       "**** program aborted\n\n", NoOfRecSets, filename);
+                       exit(-1);
+               }
+
+               //allocate space for reconstuction data
+               bhcRecBuffer = new REAL[NoOfPixels];
+
+               //select the reconstruction
+               if (bhcRecfil.SelectRec(0) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not select reconstruction #0 "
+                                       " from file %s "
+                                       "**** program aborted\n\n", filename);
+                       exit(-1);
+               }
+
+               //read in the data from the reconstruction pixel by pixel
+               bhcRecfil.GetRecData(bhcRecBuffer);
+
+               //close the recfil
+               bhcRecfil.Close();
+
+               //}
+
+               //  create new set of input files for monochromatic projections (overwrite the old ones)
+               //with structures being pixel by pixel
+               //description based on the reconstruction images from recfil's above;
+               //  create an input file for polychromatic projection with density
+               //values based on densities obtained in the reconstruction recfil's
+               //and distibution based on the original input file
+
+               //open the monochromatic input file for writing
+               //and the polychromatic input file for writing
+               for (i = 0; i < 2; i++)
+               {
+                       sprintf(filename, "%s/%iin_rec%i.in", tempDir, r, i);
+                       bhcInputFiles[i].open(filename);
+                       if (!bhcInputFiles[i].is_open())
+                       {
+                               fprintf(output, "\n **** ERROR: could not open file %s from "
+                                               "temp directory\n  **** program aborted\n\n", filename);
+                               exit(-1);
+                       }
+               }
+
+               //start copying initial lines from the original input file to
+               //the new input files
+               //  until lines
+               //       SPECTRUM POLYCHROMATIC imax
+               //       d1 p1 d2 p2  ... d1imax  pimax
+               // are encountered
+               for (i = 0; i < 2; i++)
+               {
+                       bhcInputFiles[i] << "CREATE\n";
+               }
+
+               while (!inputFile.eof())
+               {
+                       inputFile.getline(line, 255);
+                       if (!strncasecmp(line, "SPEC", 4))
+                       {        //if line starts with the word "SPECTRUM"
+                               break; //jump out of the loop
+                       }
+                       //otherwise write the line to all the newly created input files
+                       for (i = 0; i < 2; i++)
+                       {
+                               bhcInputFiles[i] << line << "\n";
+                       }
+               }
+               //write the line
+               //       SPECTRUM MONOCHROMATIC "Spctrm.energy[i]
+               // to the monochromatic input files
+
+               bhcInputFiles[0] << "SPECTRUM MONOCHROMATIC   " << Spctrm.energy[0]
+                               << "\n";
+
+               //write the lines
+               //       SPECTRUM POLYCHROMATIC "Spctrm.nergy"
+               //       Spctrm.energy[0]  Spctrm.engwt[0] ... Spctrm.energy[nergy-1]  Spctrm.engwt[nergy-1]
+               // to the polychromatic input file
+               bhcInputFiles[1] << "SPECTRUM POLYCHROMATIC  " << Spctrm.nergy << "\n";
+               for (i = 0; i < Spctrm.nergy; i++)
+               {
+                       bhcInputFiles[1] << Spctrm.energy[i] << "  "
+                                       << 100 * Spctrm.engwt[i] << "   ";
+               }
+               bhcInputFiles[1] << "\n";
+               //write the line
+               //       OBJECTS
+               // to the input files
+               for (i = 0; i < 2; i++)
+               {
+                       bhcInputFiles[i] << "OBJECTS" << "\n";
+               }
+
+               //write the pixel by pixel description of the reconstruction image
+               // to the input files
+               INTEGER sizeHalf = 0.5 * GeoPar.nelem;
+
+               for (k = 0; k < NoOfPixels; k++)
+               {
+                       x = (k % GeoPar.nelem - sizeHalf) * GeoPar.pixsiz;
+                       y = (k / GeoPar.nelem - sizeHalf) * GeoPar.pixsiz;
+                       u = GeoPar.pixsiz / 2;
+                       den = bhcRecBuffer[k];
+
+                       bhcInputFiles[0] << "RECT\t" << x << "\t" << y << "\t" << u << "\t"
+                                       << u << "\t" << 0 << "\t" << den << "\n";
+
+                       bhcInputFiles[1] << "RECT\t" << x << "\t" << y << "\t" << u << "\t"
+                                       << u << "\t" << 0 << "\t";
+
+                       bhcInputFiles[1] << den << "\nDENS";
+
+                       //compute the densities using piecewise linear conversion function
+                       for (i = 1; i < Spctrm.nergy; i++)
+                       {
+                               //REAL denden = 1.0;
+                               REAL nextden = 0.0;
+                               REAL m, mm;     //slope and y intercept of the line segment
+
+                               for (j = 1; j < noPointsConv; j++)
+                               {
+                                       if (den < c[i][j].x
+                                                       || (j == noPointsConv - 1 && den > c[i][j].x))
+                                       {
+                                               m = (c[i][j].y - c[i][j - 1].y)
+                                                               / (c[i][j].x - c[i][j - 1].x);
+                                               mm = c[i][j].y - m * c[i][j].x;
+                                               nextden = m * den + mm;
+                                               break;
+                                       }
+                                       if (den == c[i][j].x)
+                                       {
+                                               nextden = c[i][j].y;
+                                               break;
+                                       }
+
+                               }
+                               bhcInputFiles[1] << "\t" << nextden;
+                       }
+
+                       bhcInputFiles[1] << "\n";
+               }
+
+               //write the lines in input files up to line
+               //      PROJECTION PSEUDO
+               for (i = 0; i < 2; i++)
+               {
+                       bhcInputFiles[i] << "LAST 1 \n" << "PHANTOM  AVERAGE "
+                                       << Creacm.nave1 << "\n" << GeoPar.nelem << "    "
+                                       << GeoPar.pixsiz << "\n" << "RAYSUM \n" << "PICTURE TEST \n"
+                                       << "PROJECTION BHPSEUDO \n"
+                                       << "psudo run to create prjfil for correction\n";
+               }
+
+               //skip through lines of the original input file until line
+               //   GEOMETRY ....
+               //is encountered
+               while (!inputFile.eof())
+               {
+                       inputFile.getline(line, 256);
+                       if (!strncasecmp(line, "GEOM", 4))
+                       {        //if line starts with the word "GEOM"
+                               break; //jump out of the loop
+                       }
+               }
+
+               //copy the lines from the original input file to all the new
+               // input files until the line
+               //    BACKGROUND ...
+               //is encountered
+               for (i = 0; i < 2; i++)
+               {
+                       bhcInputFiles[i] << line << "\n";
+               }
+               while (!inputFile.eof())
+               {
+                       inputFile.getline(line, 255);
+                       //write the line to all the newly created input files
+                       for (i = 0; i < 2; i++)
+                       {
+                               bhcInputFiles[i] << line << "\n";
+                       }
+                       if (!strncasecmp(line, "BACK", 4))
+                       {        //if line starts with the word "BACKGROUND"
+                               break; //jump out of the loop
+                       }
+               }
+
+               //finish the files with END line and close the files
+               for (i = 0; i < 2; i++)
+               {
+                       bhcInputFiles[i] << "END \n";
+                       bhcInputFiles[i].close();
+               }
+               //close the original input file
+               inputFile.close();
+
+               //obtain projection data from the input files created above
+
+               for (i = 0; i < 2; i++)
+               {
+
+                       //run snark14 with input file %rin"i".in
+                       sprintf(command, "cd %s\n snark14 %iin_rec%i.in >out%i.out",
+                                       tempDir, r, i, i);
+                       if (system(command) != 0)
+                       {
+                               fprintf(output, "\n **** ERROR: could not execute  command"
+                                               "%s\n  **** program aborted\n\n", command);
+                               exit(-1);
+                       }
+                       //rename the prjfil, so it is not lost at the next run of snark14
+                       if (i == 1)
+                               sprintf(command, "cd %s\n mv prjfil p%i", tempDir, r);
+                       else
+                               sprintf(command, "cd %s\n mv prjfil m%i", tempDir, r);
+                       if (system(command) != 0)
+                       {
+                               fprintf(output, "\n **** ERROR: could not execute  command"
+                                               "%s\n  **** program aborted\n\n", command);
+                               exit(-1);
+                       }
+               }
+
+               //correct the projection data following the formula
+               //m[i] = miu q[p][i] + (m'[i] - miu q(p')[i])
+               idr_correction(r);
+
+       } //end of repeat noIter times
+
+       fprintf(output, "\n **** Finished the iterations\n\n");
+
+       /* write the final value of m[0] to prjfil that will be passed to the remainder
+        * of the run of snark14
+        */
+
+       sprintf(command, "cp %s/q_p%i prjfil", tempDir, noIter);
+       if (system(command) != 0)
+       {
+               fprintf(output, "\n **** ERROR: could not execute  command"
+                               "%s\n  **** program aborted\n\n", command);
+               exit(-1);
+       }
+
+       //if (bhcRecfil != NULL) delete [] bhcRecfil;
+       //if (bhc_InputFiles != NULL) delete [] bhc_InputFiles;
+       if (bhcRecBuffer != NULL)
+               delete[] bhcRecBuffer;
+       return -1;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+int bh_correction::idr_correction( INTEGER r)
+{
+       //correct the projection data following the formula
+       //m[i] = miu q[p][i] + (m'[i] - miu q(p')[i])
+       REAL miu = 1.0; //the relaxation parameter, for now permanently set to 1.0
+       unsigned INTEGER i, j, k;  //loop counters
+       DIGFileSnarkProj Org, NewM, NewP, Corrected;
+       char filename[256];
+       //char command[256];
+       REAL** Buffer = new REAL*[4]; //buffer to store a projection data
+
+       unsigned int NoOfRays;
+       unsigned int NoOfProjections;
+       ProjFileMH MainHeader;
+       ProjFileAH ApplicationHeader;
+       ProjFilePrjH ProjectionHeader[3];
+
+       //open original prjfil corrected by coefficient at energy level 0
+       //   bhc/q_p0
+       //read Main Header and Application Header of the file
+       sprintf(filename, "%s/q_p0", tempDir);
+       if (Org.Open(filename) != 0)
+       {
+               fprintf(output, "\n **** ERROR: could not open file "
+                               "%s (Org)\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       if (Org.GetNoOfRays(&NoOfRays) != 0)
+       {
+               fprintf(output,
+                               "\n **** ERROR: could not read the number of rays from  file "
+                                               "%s\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       if (Org.GetNoOfProjs(&NoOfProjections) != 0)
+       {
+               fprintf(output,
+                               "\n **** ERROR: could not read the number of projections from  file "
+                                               "%s\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       if (Org.GetMainHeader(&MainHeader) != 0)
+       {
+               fprintf(output, "\n **** ERROR: could not read Main Header of  file "
+                               "%s\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       if (Org.GetAppHeader(&ApplicationHeader) != 0)
+       {
+               fprintf(output,
+                               "\n **** ERROR: could not read Application Header of  file "
+                                               "%s\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       //open just created monochromatic prjfil at energy level i
+       //   bhc/m%r
+       sprintf(filename, "%s/m%i", tempDir, r);
+       if (NewM.Open(filename) != 0)
+       {
+               fprintf(output, "\n **** ERROR: could not open file "
+                               "%s\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       //open just created polychromatic prjfil
+       //   bhc/p%r
+       sprintf(filename, "%s/p%i", tempDir, r);
+       if (NewP.Open(filename) != 0)
+       {
+               fprintf(output, "\n **** ERROR: could not open file "
+                               "%s\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       //open prjfil that will contain corrected data,
+       //   bhc/q_p%r
+       //set its Main Header and Application Header
+       sprintf(filename, "%s/q_p%i", tempDir, r + 1);
+       if (Corrected.Open(filename, &MainHeader) != 0)
+       {
+               fprintf(output, "\n **** ERROR: could not open file "
+                               "%s\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       if (Corrected.SetAppHeader(&ApplicationHeader) != 0)
+       {
+               fprintf(output,
+                               "\n **** ERROR: could not set Application Header of file "
+                                               "%s\n  **** program aborted\n\n", filename);
+               exit(-1);
+       }
+
+       //allocate memory to store a single projection data
+       for (j = 0; j < 4; j++)
+       {
+               (Buffer[j]) = new REAL[NoOfRays];
+       }
+
+       for (j = 0; j < NoOfProjections; j++)
+       {
+
+               // array set selection
+               if (Org.SelectProj(j) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not select projection of file"
+                                       "Org\n  **** program aborted\n\n");
+                       exit(-1);
+               }
+               //get projection header
+               if (Org.GetProjHeader(&ProjectionHeader[0]) != 0)
+               {
+                       fprintf(output,
+                                       "\n **** ERROR: could not get projection header from file"
+                                                       "Org\n  **** program aborted\n\n");
+                       exit(-1);
+               }
+               //get projection data
+               if (Org.GetProjData(Buffer[0]) != 0)
+               {
+                       fprintf(output,
+                                       "\n **** ERROR: could not get projection data from file"
+                                                       "Org\n  **** program aborted\n\n");
+               }
+
+               // array set selection
+               if (NewM.SelectProj(j) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not select projection of file"
+                                       "NewM\n  **** program aborted\n\n");
+                       exit(-1);
+               }
+
+               //get projection data
+               if (NewM.GetProjData(Buffer[1]) != 0)
+               {
+                       fprintf(output,
+                                       "\n **** ERROR: could not get projection data from file"
+                                                       "NewM\n  **** program aborted\n\n");
+               }
+
+               // array set selection
+               if (NewP.SelectProj(j) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not select projection of file"
+                                       "NewP\n  **** program aborted\n\n");
+                       exit(-1);
+               }
+
+               //get projection data
+               if (NewP.GetProjData(Buffer[2]) != 0)
+               {
+                       fprintf(output,
+                                       "\n **** ERROR: could not get projection data from file"
+                                                       "NewP\n  **** program aborted\n\n");
+               }
+
+               //calculate corrected value for each ray in the projection
+
+               for (k = 0; k < NoOfRays; k++)
+               {
+
+                       REAL den = Buffer[2][k];
+                       REAL denden = 1.0;
+                       REAL newden = 0.0;
+                       for (i = 0; i <= noDegree; i++)
+                       {
+                               newden += denden * a[i];
+                               denden = denden * den;
+                       }
+
+                       Buffer[3][k] = miu * Buffer[0][k] + Buffer[1][k] - miu * newden;
+               }
+
+               //add corrected projection to the Corrected file
+               if (Corrected.AppendProj(&ProjectionHeader[0], Buffer[3]) != 0)
+               {
+                       fprintf(output, "\n **** ERROR: could not append projection to file"
+                                       "Corrected\n  **** program aborted\n\n");
+               }
+       }
+
+       //close the files
+       Org.Close();
+       NewM.Close();
+       NewP.Close();
+       Corrected.Close();
+
+       //delete allocated memory
+       if (Buffer[0] != NULL)
+               delete[] Buffer[0];
+       if (Buffer[1] != NULL)
+               delete[] Buffer[1];
+       if (Buffer[2] != NULL)
+               delete[] Buffer[2];
+       if (Buffer[3] != NULL)
+               delete[] Buffer[3];
+       delete Buffer;
+
+       return 0;
+}
+
diff --git a/src/snark/bh_correction.h b/src/snark/bh_correction.h
new file mode 100644 (file)
index 0000000..74a670e
--- /dev/null
@@ -0,0 +1,117 @@
+/*      
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bh_correction.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ * Description:
+ *
+ * The class bh_correction is responsible for performing beam hardening
+ * correction for polychromatic input data. Given the prjfil that was calculated
+ * based on weighted average of attenuations at different energy levels and 
+ * corrections coefficients [1,2] it approximates monochromatic projection data 
+ * which is then used by the reconstruction algorithms.
+ *
+ * 
+ *
+ * References:
+ * [1] G. T. Herman, Image Reconstruction from Projections, 1980
+ * [2] SNARK08 manual
+ *
+ */
+
+#include "creacm.h"
+#include "spctrm.h"
+#include "uiod.h"
+
+#include "snark.h"
+#include "recfile.h"
+#include "file11.h"
+#include "projfile.h"
+#include "infile.h"
+
+#ifndef _BH_CORRECTION_H
+#define        _BH_CORRECTION_H
+
+//jk 8/26/08   for use with beam hardening correction by non-parametric 
+// function
+class bin
+{
+public:
+       unsigned int noOfItems;
+       double aveOfValues;
+       double midValue;
+
+};
+
+class binCollection
+{
+public:
+
+};
+
+class point
+{
+public:
+       REAL x;REAL y;
+};
+
+class bh_correction
+{
+private:
+
+public:
+
+       BOOLEAN bhc;BOOLEAN bhc_poly;
+
+       char tempDir[256];
+
+       INTEGER nerg;       //number of energy levels read from the input file
+       //should be the same as Spectrm.nergy
+
+       INTEGER noIter;          //number of iterations
+
+       //POLY
+       REAL * a;           //array of polynomial coefficients
+       INTEGER noDegree;       //degree of the polynomial
+       INTEGER noDegreeConv;   //degree of the polynomials for converting
+       //phantom data from energy[0] to other energy levels
+       REAL * b[7];        //array of polynomial coefficients for converting
+                                               //phantom data from energy[0] to other energy levels
+
+       INTEGER noPointsConv; //number of points used for piecewise linear conversion
+       point * c[7];       //list of points for each energy level that are used
+                                               //in piecewise linear conversion
+
+                                               //BOOLEAN bhc_copied;
+       bh_correction()
+       {
+               bhc = FALSE;
+               bhc_poly = FALSE;
+               a = NULL;
+               for (int i = 0; i < 7; i++)
+                       c[i] = NULL;
+       }
+
+       ~bh_correction()
+       {
+               if (a != NULL)
+                       delete[] a;
+               for (int i = 6; i >= 0; i--)
+               {
+                       if (c[i] != NULL)
+                               delete[] c[i];
+               }
+       }
+
+       INTEGER readInputFilePoly();
+
+       INTEGER correction(SnarkPrjFile * BHC_PrjFile);INTEGER idr_correction(
+                       INTEGER r);
+
+};
+#endif /* _BH_CORRECTION_H */
+
diff --git a/src/snark/blanks.c b/src/snark/blanks.c
new file mode 100644 (file)
index 0000000..6620838
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blanks.c $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ Previously part of SuperSNARK
+ */
+
+#include <string.h>
+#include "blanks.h"
+
+/* returns the number of blanks in a string */
+
+unsigned int blanks(char* string)
+{
+       unsigned int i, length = 0;
+       for (i = 0; i < strlen(string); i++)
+       {
+
+               if (string[i] == ' ')
+               {
+                       length++;
+               }
+       }
+       return length;
+}
diff --git a/src/snark/blanks.h b/src/snark/blanks.h
new file mode 100644 (file)
index 0000000..fd886a0
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blanks.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blanks.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#ifndef BLANKS_H
+#define BLANKS_H
+
+unsigned int blanks(char* string);
+
+#endif
\ No newline at end of file
diff --git a/src/snark/bldlst.cpp b/src/snark/bldlst.cpp
new file mode 100644 (file)
index 0000000..3895d29
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bldlst.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+
+ THIS SUBROUTINE COMPUTES THE MAXIMAL SIZE OF THE LIST AND WEIGHT
+ ARRAYS NEEDED BY RAY AND WRAY.  IT ALLOCATES
+ THE MAXIMUM OF THESE VALUES FOR THE LIST AND WEIGHT ARRAYS.
+*/
+
+#include <cstdlib>     
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "uiod.h"
+#include "bldlst.h"
+                                         
+void bldlst(INTEGER** lbase, REAL** wbase)
+{  
+  INTEGER npts;
+
+  npts = 2 * GeoPar.nelem;
+   
+  if(GeoPar.strip) {
+    npts = 2 * GeoPar.nelem * (INTEGER)ceil(GeoPar.pinc / GeoPar.pixsiz);  // bug82 - swr - 2/20/05
+  }
+
+  *lbase = new INTEGER[npts];
+  *wbase = new REAL[npts];
+}      
+
diff --git a/src/snark/bldlst.h b/src/snark/bldlst.h
new file mode 100644 (file)
index 0000000..95c13e9
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bldlst.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#ifndef BLDLST_H
+#define BLDLST_H
+      
+void bldlst(INTEGER** lbase, REAL** wbase);
+
+#endif
diff --git a/src/snark/blkdta.cpp b/src/snark/blkdta.cpp
new file mode 100644 (file)
index 0000000..b14c739
--- /dev/null
@@ -0,0 +1,18 @@
+/*    
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blkdta.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#include <cstdio>
+#include "blkdta.h"
+
+INTEGER trace = 0;
+
+
+
+
diff --git a/src/snark/blkdta.h b/src/snark/blkdta.h
new file mode 100644 (file)
index 0000000..63fde4e
--- /dev/null
@@ -0,0 +1,44 @@
+/* 
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blkdta.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#ifndef BLKDATA_H
+#define BLKDATA_H
+
+#define REAL    double
+//#define REAL    float
+#define INTEGER int
+#define BOOLEAN bool
+#define CHAR    char
+
+#define TRUE    true
+#define FALSE   false
+
+// macros
+#define CHAR2INT(CHAR1, CHAR2, CHAR3, CHAR4) ( (((INTEGER)(CHAR1))<<24) | (((INTEGER)(CHAR2))<<16) | (((INTEGER)(CHAR3))<<8) | (((INTEGER)(CHAR4))))
+
+#define SQR(NUM1) ((NUM1)*(NUM1))
+
+// Array of complex numbers
+#define CA(ARRAY, ELEMENT, INDEX) ARRAY[(ELEMENT) + 2 * (INDEX)]
+
+#define MIN0(ARG1, ARG2) (((ARG1) > (ARG2)) ? (ARG2) : (ARG1))
+#define MAX0(ARG1, ARG2) (((ARG1) < (ARG2)) ? (ARG2) : (ARG1))
+
+
+extern INTEGER trace;
+
+#ifdef WIN32
+
+// changed "rint" to "round". Lajos, Jan 25, 2005
+#define round(X) (floor((X) + 0.5))
+
+#endif
+
+#endif
diff --git a/src/snark/blob.cpp b/src/snark/blob.cpp
new file mode 100644 (file)
index 0000000..c538017
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blob.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "blob.h"
+
+Blob_class Blob;
+
+Blob_class::Blob_class()
+{
+       pix_basis = TRUE;
+       support = 0.0;
+       shape = 0.0;
+       delta = 0.0;
+       area = 0;
+       diag = 0;
+       M = 0;
+       H = 0;
+
+}
+;
diff --git a/src/snark/blob.h b/src/snark/blob.h
new file mode 100644 (file)
index 0000000..3880b61
--- /dev/null
@@ -0,0 +1,70 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blob.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef BLOB_H
+#define BLOB_H
+
+#include "blkdta.h"
+#include "blob.h"
+
+#define samp   100000
+
+// common blob variables
+
+extern class Blob_class
+{
+private:
+
+       REAL radial(REAL dist);REAL lintegral(REAL dist);REAL dc();
+       void p2b_neighb(INTEGER k, INTEGER j, REAL* pict, REAL *nc, REAL rneigh);
+       void Correct(
+       REAL* pict,
+       REAL* blob_array,
+       REAL* u,
+       REAL* Delta,
+       REAL* Gamma,
+       INTEGER* que,
+       INTEGER count,
+       INTEGER* ncount,
+       REAL* sd,
+       REAL width,
+       REAL frelax);
+
+public:
+       BOOLEAN pix_basis;   //true if pixel basis, false if blob basis
+       REAL support;    // support of a blob
+       REAL shape;    //  shape of a blob
+       REAL delta;    // resolution of the (hexagonal) grid
+       INTEGER area;     // M*H
+       INTEGER diag; // number of diag containing blob centers in the underlying square grid (M+H)/2
+       INTEGER M; // number of underlying square grid points in the horizontal direction
+       INTEGER H; // number of underlying square grid points in the vertical direction
+       REAL *recon;      // array of the blob coefficients
+       REAL *vtable;    // values of the blob function at distances 1e-5*k*support
+       REAL *ltable;   // values of the proj of a blob at distances 1e-5*k*support
+       INTEGER lkf, lkl, ljf, ljl;INTEGER lmf, lml;INTEGER lhf, lhl;INTEGER M2, H2;INTEGER pr;REAL sampiblob; // samp/support
+       REAL di2;        // delta/2
+       REAL di2sq3;     // sqrt3*delta/2
+
+       Blob_class();
+       void setparam();
+       void table();
+       void blob2pix(REAL *blob_array, REAL *pict);
+       void pix2blob(REAL* pict, REAL* blob_array);
+       void footp(REAL* pict, REAL* blob_array, INTEGER option);
+       void bpix(INTEGER nv, INTEGER nh, INTEGER *list, REAL* weight, INTEGER *numb, REAL *snorm);
+       void bwray(INTEGER np,INTEGER nr, INTEGER* list, REAL* weight, INTEGER* numb, REAL* snorm);
+       void bray(INTEGER np, INTEGER nr, INTEGER* list, REAL* weight, INTEGER* numb, REAL* snorm);
+       REAL bpseudo(REAL* pict,INTEGER np,INTEGER nr,INTEGER* list,REAL* weight,INTEGER* numb,REAL* snorm,BOOLEAN line,BOOLEAN constr);
+       void bbldlst(INTEGER** lbase, REAL** wbase);
+       void bsmooth(REAL* a, INTEGER H, INTEGER M, REAL thresh, REAL w1, REAL w2);
+} Blob;
+
+#endif
diff --git a/src/snark/blob2pix.cpp b/src/snark/blob2pix.cpp
new file mode 100644 (file)
index 0000000..938ad1a
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blob2pix.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ This subroutine converts an image function in Blob basis into that in Voronoi basis (square pixels). This subroutine uses blob footprints for speeding up. 
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "blob.h"
+#include "uiod.h"
+
+void Blob_class::blob2pix(REAL *blob_array, REAL *pict)
+{
+       footp(blob_array, pict, 1);
+
+       return;
+}
+
diff --git a/src/snark/blob_bpix.cpp b/src/snark/blob_bpix.cpp
new file mode 100644 (file)
index 0000000..120d2ea
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blob_bpix.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ subroutine to perform a task similar to bwray() but pixels instead of the rays
+
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+
+void Blob_class::bpix(INTEGER nv, INTEGER nh, INTEGER *list, REAL* weight,
+               INTEGER *numb, REAL *snorm)
+{
+       INTEGER multp;
+       INTEGER m, h, m1, h1;
+       INTEGER mc, hc;
+       INTEGER mf, hf, ml, hl;
+       INTEGER M2, H2;
+       INTEGER nelem2;
+       INTEGER mx, hy;
+       INTEGER ind, n;
+       INTEGER m0, h0;
+
+       REAL xc, yc;
+       REAL dinv2 = (REAL) 2.0 / Blob.delta;
+       REAL dinv2sq3 = dinv2 * Consts.isqrt3;
+
+       REAL dist, distx, disty; // dist is the distance betw a blob center and a pixel center. (distx, disty) is the vector distance
+       REAL dispx, dispy; // (dispx, dispy) is the displacement from the center of a blob to the center of the nearest pixel.
+
+       multp = (INTEGER) floor(Blob.support / Blob.delta + 0.5) + 1;
+
+       H2 = (INTEGER) (Blob.H / 2);
+       M2 = (INTEGER) (Blob.M / 2);
+       nelem2 = (INTEGER) (GeoPar.nelem / 2);
+
+       REAL* footpx = new REAL[4 * multp + 1];
+       REAL* footpy = new REAL[4 * multp + 1];
+
+       for (m0 = -2 * multp; m0 <= 2 * multp; m0++)
+       {
+               footpx[m0 + 2 * multp] = (REAL) m0 * Blob.di2;
+       }
+
+       for (h0 = -2 * multp; h0 <= 2 * multp; h0++)
+       {
+               footpy[h0 + 2 * multp] = (REAL) h0 * Blob.di2sq3;
+       }
+
+// coord of the center of the pixel (nh, nv)
+       xc = GeoPar.pixsiz * (nh - nelem2);
+       yc = GeoPar.pixsiz * (nelem2 - nv);
+
+       mx = (INTEGER) floor(dinv2 * xc + 0.5); // coord of the center of
+
+       hy = (INTEGER) floor(dinv2sq3 * yc + 0.5);        // the nearest blob
+
+       mc = mx;
+       hc = hy;
+
+       // displacement of the pixel footprint with resp to the nearest blob center
+       dispx = di2 * mx - xc;
+       dispy = di2sq3 * hy - yc;
+
+       mf = MAX0(lmf, mc - 2 * multp);
+       ml = MIN0(lml, mc + 2 * multp);
+
+       hf = MAX0(lhf, hc - 2 * multp);
+       hl = MIN0(lhl, hc + 2 * multp);
+
+       (*numb) = 0;
+       (*snorm) = 0.0;
+
+       if (ml < lmf || mf > lml || hl < lhf || hf > lhl)
+               return;
+       for (h = hf; h <= hl; h++)
+       {
+               h0 = h - hc;
+               disty = footpy[h0 + 2 * multp] + dispy; //the y in the x-y coord and the h in the m-h coord are in the same direction
+               if (fabs(disty) > Blob.support)
+                       continue;
+
+               for (m = mf; m <= ml; m++)
+               {
+                       m0 = m - mc;
+                       distx = footpx[m0 + 2 * multp] + dispx;
+                       if (fabs(distx) > Blob.support)
+                               continue;
+
+                       if ((m + h) % 2 == 0)
+                       {
+                               m1 = m + M2;
+                               h1 = h + H2;
+                               ind = h1 * Blob.M + m1;
+
+                               dist = sqrt(distx * distx + disty * disty);
+                               if (dist < Blob.support)
+                               {
+                                       n = (INTEGER) round(dist * sampiblob); // changed "rint" to "round". Lajos, Jan 25, 2005
+                                       list[(*numb)] = ind;
+                                       weight[(*numb)] = Blob.vtable[n];
+
+                                       (*snorm) += (Blob.vtable[n] * Blob.vtable[n]);
+                                       (*numb)++;
+                               }
+                       } //for m+h
+               } // for m
+       }  //for h
+
+       delete[] footpx;  // bug 92 - Lajos - 03/02/2005
+       delete[] footpy;  // bug 92 - Lajos - 03/02/2005
+       return;
+}
+
diff --git a/src/snark/blob_footp.cpp b/src/snark/blob_footp.cpp
new file mode 100644 (file)
index 0000000..4a2bc50
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blob_footp.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ subroutine to perform the forward (1) or backward (-1) "projection" using blob footprints
+
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+
+void Blob_class::footp(REAL *blob_array, REAL *pict, INTEGER option)
+{
+       INTEGER mult; //max number of pixels whose center is covered by a blob
+       INTEGER m, h, m1, h1; // (m,h) coord of the center of a blob in the underlying sq grid. m1 * Blob.H + h1 index in the blob array.
+       INTEGER k, j; //(j,k) coord of the center of a pixel
+       INTEGER k0, j0;
+       INTEGER jc, kc; // index of the nearest pixel
+       INTEGER jf, kf, jl, kl; //upper and lower bound for j and k given a blob
+       INTEGER nelem2;
+       INTEGER jx, ky;
+       INTEGER ind, n;
+
+       REAL xc, yc, auy;
+       REAL ipixsiz = (REAL) 1.0 / GeoPar.pixsiz;
+       REAL dist, distx, disty; // dist is the distance betw a blob center and a pixel center. (distx, disty) is the vector distance
+       REAL dispx, dispy; // (dispx, dispy) is the displacement from the center of a blob to the center of the nearest pixel.
+
+       mult = (INTEGER) floor(Blob.support / GeoPar.pixsiz + 0.5) + 1;
+
+       nelem2 = (INTEGER) (GeoPar.nelem / 2);
+
+       REAL* footx = new REAL[2 * mult + 1];
+       REAL* footy = new REAL[2 * mult + 1];
+
+       for (k0 = -mult; k0 <= mult; k0++)
+       {
+               footy[k0 + mult] = (REAL) k0 * GeoPar.pixsiz;
+       }
+
+       for (j0 = -mult; j0 <= mult; j0++)
+       {
+               footx[j0 + mult] = (REAL) j0 * GeoPar.pixsiz;
+       }
+
+       // initialization for forward operation
+       if (option == 1)
+       {
+               for (k = 0; k < GeoPar.nelem; k++)
+               {
+                       for (j = 0; j < GeoPar.nelem; j++)
+                       {
+                               pict[k * GeoPar.nelem + j] = 0.0;
+                       }
+               }
+       }
+
+       //initialization for backward operation
+       else if (option == -1)
+       {
+               for (j = 0; j <= Blob.area; j++)
+               {
+                       if (j % 2 == Blob.pr)
+                       {
+                               blob_array[j] = 0.0;
+                       }
+               }
+       }
+
+       // forward or backward operation
+
+       for (h = lhf; h <= lhl; h++)
+       {
+               for (m = lmf; m <= lml; m++)
+               { // m and h must have the same parity!!
+                       if ((m + h) % 2 == 0)
+                       {
+
+                               xc = di2 * m;  // coord of the center of the blob (m,h)
+                               yc = di2sq3 * h;
+                               auy = ipixsiz * yc;
+                               jx = (INTEGER) floor(ipixsiz * xc + 0.5); // coord of the center of
+
+                               ky = (INTEGER) floor(auy + 0.5);        // the nearest pixel
+
+                               jc = jx + nelem2; // bring to the right address
+                               kc = (INTEGER) floor(-auy + 0.5) + nelem2;
+
+                               // displacement of the footprint with resp to the nearest pixel center
+                               dispx = jx * GeoPar.pixsiz - xc;
+
+                               dispy = ky * GeoPar.pixsiz - yc;
+
+                               jf = MAX0(ljf, jc - mult);
+                               jl = MIN0(ljl, jc + mult);
+
+                               kf = MAX0(lkf, kc - mult);
+                               kl = MIN0(lkl, kc + mult);
+
+                               if (jl < ljf || jf > ljl || kl < lkf || kf > lkl)
+                                       continue;
+
+                               m1 = m + Blob.M2;
+                               h1 = h + Blob.H2;
+
+                               ind = h1 * Blob.M + m1;
+
+                               for (k = kf; k <= kl; k++)
+                               {
+                                       k0 = k - kc;
+                                       disty = footy[k0 + mult] - dispy; //the y in the x-y coord and the k in the j-k coord are in the opposite directions
+                                       if (fabs(disty) > Blob.support)
+                                               continue;
+
+                                       for (j = jf; j <= jl; j++)
+                                       {
+                                               j0 = j - jc;
+                                               distx = footx[j0 + mult] + dispx;
+                                               if (fabs(distx) > Blob.support)
+                                                       continue;
+
+                                               dist = sqrt(distx * distx + disty * disty);
+                                               if (dist < Blob.support)
+                                               {
+                                                       n = (INTEGER) round(dist * sampiblob); // changed "rint" to "round". Lajos, Jan 25, 2005
+                                                       //forward case
+                                                       if (option == 1)
+                                                       {
+                                                               pict[k * GeoPar.nelem + j] += (blob_array[ind]
+                                                                               * Blob.vtable[n]);
+                                                       }
+
+                                                       //backward case
+                                                       else if (option == -1)
+                                                       {
+                                                               blob_array[ind] += (pict[k * GeoPar.nelem + j]
+                                                                               * Blob.vtable[n]);
+                                                       }
+                                               }
+
+                                       }
+                               }
+
+                       }
+               }
+       }
+
+       delete[] footx;  // bug 92 - Lajos - 03/02/2005
+       delete[] footy;  // bug 92 - Lajos - 03/02/2005
+       return;
+}
+
diff --git a/src/snark/blob_functions.cpp b/src/snark/blob_functions.cpp
new file mode 100644 (file)
index 0000000..cb40f86
--- /dev/null
@@ -0,0 +1,220 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blob_functions.cpp $
+$LastChangedRevision: 45 $
+$Date: 2014-06-12 19:31:23 -0400 (Thu, 12 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+
+ There are three subroutines:
+
+ 1. dc  computes the DC term of the blob defined by the function kaiser 
+    (i.e., Robert Lewitt's original definition of a blob) blob function at 
+    distance "dist",
+
+ 2. radial computes the normalized blob function at distance "dist", and 
+
+ 3. lintegral computes the line integral of a blob at distance "dist".
+
+*/
+
+#include <cstdio>
+#include <cmath>
+
+#include "consts.h"
+#include "blkdta.h"
+#include "blob.h"
+
+REAL kaiser_proj(REAL s);
+INTEGER kaiser(REAL* temp, REAL dist);
+static REAL bessi3(REAL shape);
+static REAL bessi2(REAL shape);
+
+REAL Blob_class::dc()
+{   
+  REAL ans;
+  REAL r = Blob.support;
+  REAL shape = Blob.shape;
+  //REAL fshape = fabs(shape); shape is supposted to be non-negative
+
+  ans = 2 * Consts.pi * r * r * bessi3(shape) / (shape * bessi2(shape));
+  //tracer
+  //fprintf(output,"\ndc = %f  ", ans); 
+  //tracer   
+  return ans;
+}
+
+
+REAL Blob_class::radial(REAL dist)
+{   
+  REAL ans;
+  REAL dc = Blob.dc(); 
+  kaiser(&ans, dist);
+  // now comes the normalization
+  ans = ans * Consts.sqrt3 / 2.0 * Blob.delta * Blob.delta / dc;
+ //tracer
+  //fprintf(output,"\nblob factor = %f  ", sqrt3 / 2.0 * Blob.delta * Blob.delta / dc); 
+  //tracer   
+   return ans;
+}
+
+REAL Blob_class::lintegral(REAL dist)
+{   
+  REAL ans;
+  REAL dc = Blob.dc(); 
+  
+  ans = kaiser_proj(dist);
+  ans = ans * Consts.sqrt3 / 2.0 * Blob.delta * Blob.delta / dc;  //normalisation
+
+  return ans;
+}
+
+
+// Function to compute the Bessel 0
+
+static REAL bessi0(REAL x)
+{
+  REAL y,ax,ans;
+
+  ax = fabs(x);
+  if(ax < 3.75) {
+    y = (x * x) / (3.75 * 3.75);
+    ans = 1.0 + y * (3.5156229 + y * (3.0899424 + y * (1.2067492
+        + y * (0.2659732 + y * (0.360768e-1 + y * 0.45813e-2)))));
+  }
+  else {
+    y = 3.75 / ax;
+    ans = (exp(ax) / sqrt(ax)) * (0.39894228 + y * (0.1328592e-1
+        + y * (0.225319e-2 + y * (-0.157565e-2 + y * (0.916281e-2
+        + y * (-0.2057706e-1 + y * (0.2635537e-1 + y * (-0.1647633e-1
+        + y * 0.392377e-2))))))));
+  }
+  return ans;
+}
+
+// Function to compute the Bessel 1
+static REAL bessi1(REAL x)
+{
+  REAL ax, ans, y;
+
+  ax = fabs(x);
+  if(ax < 3.75) {
+    y = x / 3.75;
+    y *= y;
+    ans = ax * (0.5 + y * (0.87890594 + y * (0.51498869 + y * (0.15084934
+        + y * (0.2658733e-1 + y * (0.301532e-2 + y * 0.32411e-3))))));
+  }
+  else {
+    y = 3.75 / ax;
+    ans = 0.2282967e-1 + y * (-0.2895312e-1 + y * (0.1787654e-1
+        - y * 0.420059e-2));
+    ans = 0.39894228 + y * (-0.3988024e-1 + y * (-0.362018e-2
+        + y * (0.163801e-2 + y * (-0.1031555e-1 + y * ans))));
+    ans *= (exp(ax) / sqrt(ax));
+  }
+
+  return (x < 0.0)? -ans : ans;
+}
+
+
+// Function to compute the Bessel 2
+
+static REAL bessi2(REAL x)
+{
+  REAL ans;
+
+  if(x <= Consts.zero) {
+    ans = 0.0;
+  }
+  else {
+    ans = bessi0(x) - (2.0 / x) * bessi1(x);
+  }
+
+  return ans;
+}
+
+// Function to compute the Bessel 3
+static REAL bessi3(REAL x)
+{
+  REAL ans;
+
+  if(x <= Consts.zero) {
+    ans = 0.0;
+  }
+  else {
+    ans = bessi1(x) - (4.0 / x) * bessi2(x);
+  }
+  return ans;
+}
+/* Function to compute the value of the Spatial Kaiser-Bessel Function */
+/*
+ * dist stands for the radial distance from the blob center (variable)
+ * CONSTANTS:
+ * Blob.support stands for the radius
+ * Blob.shape for the decay (shape of the blob)
+ *
+ */
+
+INTEGER kaiser(REAL* ans, REAL dist)
+{
+  REAL rda,rdas,arg,w;
+
+  rda = dist / Blob.support;
+  rdas = rda * rda;
+  if(rdas <= 1.0) {
+    arg = Blob.shape * sqrt(1.0 - rdas);
+
+    if(fabs(Blob.shape) < Consts.zero) {
+      // if(Blob.shape==0.0)
+      w = (1.0 - rdas) * (1.0 - rdas);
+    }
+    else {
+      w = (1.0 - rdas) * bessi2(arg) / bessi2(Blob.shape);
+      //fprintf(output,"\ny=%f",*y);
+    }
+  }
+  else {
+    w = 0.0;
+  }
+
+  *ans = w;
+
+  return 1;
+}
+
+
+// Function to compute the value of the Spatial Kaiser-Bessel Function
+//
+//      Value of line integral through Kaiser-Bessel radial function
+//      (n >=2 dimensions) at distance s from center of function.
+// Blob.support stands for the radius
+// Blob.shape for the decay (shape of the blob)
+
+REAL kaiser_proj(REAL s)
+{
+  REAL sda, sdas, w, arg, p;
+
+  sda = s / Blob.support;
+  sdas = sda * sda;
+  w = 1.0 - sdas;
+  if(w > 1.0e-10) {
+    arg = Blob.shape * sqrt(w);
+
+    if(Blob.shape == 0.0) {
+      p = 2.0 * Blob.support * w * w * sqrt(w) * (8.0 / 15.0);
+    }
+    else {
+      p = (2.0 * Blob.support/Blob.shape) * w *\
+        ((3.0/(arg * arg) + 1.0) * sinh(arg) - (3.0/arg) * cosh(arg) ) / bessi2(Blob.shape);
+    }
+  }   
+  else {
+    p = 0.0;
+  }
+
+  return p;
+}
+
+
diff --git a/src/snark/blob_setparam.cpp b/src/snark/blob_setparam.cpp
new file mode 100644 (file)
index 0000000..c59e120
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blob_setparam.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+
+ Given the grid resolution (Blob.delta), this subroutine computes the number of (hexagonal) grids points, so that the picture region of area = GeoPar.nelem * GeoPar.pixsiz is covered by the voronoi neighbourhoods of the grid points. 
+
+ The number of horizontal and vertical grid points of the underlying square grid are respectively Blob.M and Blob.H
+
+ Both Blob.M and Blob.H are assumed to be odd number, so 
+ Blob.M = 2*m1+1 and Blob.H = 2*h1 + 1
+
+ The total number of grid points of the underlying square grid is denoted by Blob.area that is equal to Blob.M * Blob.H 
+
+*/
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+
+
+void Blob_class::setparam()
+{  
+
+  INTEGER m1, h1, mid0, mid1, pr0, pr1;
+
+  m1 = (INTEGER)floor(GeoPar.nelem * GeoPar.pixsiz/(Blob.delta));
+  h1 = (INTEGER)floor(GeoPar.nelem * GeoPar.pixsiz/(Consts.sqrt3 * Blob.delta));
+
+  pr0  = m1 % 2;
+  pr1 = (m1 + 1) % 2;
+
+  mid0  = m1 + 1 - pr0;
+  mid1 = m1 + 1 - pr1;
+  
+  Blob.M = (INTEGER)(2 * m1 + 1);
+  Blob.H = (INTEGER)(2 * h1 + 1);
+  Blob.diag = (Blob.M + Blob.H) / 2;
+  Blob.area = Blob.M * Blob.H; 
+  Blob.ljf = 0;
+  Blob.ljl = GeoPar.nelem - 1;
+  Blob.lkf = 0;
+  Blob.lkl = GeoPar.nelem - 1;
+  Blob.lhf = (INTEGER)(-1 * (INTEGER)(Blob.H / 2));
+  Blob.lhl = (INTEGER)((Blob.H - 1) / 2);
+  Blob.lmf = -1 * (INTEGER)(Blob.M / 2);
+  Blob.lml = (INTEGER)((Blob.M - 1) / 2);
+  Blob.H2 = (INTEGER)(Blob.H / 2);
+  Blob.M2 = (INTEGER)(Blob.M / 2);
+  Blob.pr = (M2+H2)%2;  
+  Blob.sampiblob = samp / Blob.support;
+  Blob.di2 = (REAL) 0.5 * Blob.delta; 
+  Blob.di2sq3 = Consts.sqrt3 * di2;
+  
+  fprintf(output, "\n          hexagonal grid: there are %5i rows, the middle row has %5i grid points and the row next to the middle one has %5i grid points", Blob.H, mid0, mid1);
+}
+
diff --git a/src/snark/blob_table.cpp b/src/snark/blob_table.cpp
new file mode 100644 (file)
index 0000000..9d94200
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/blob_table.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "uiod.h"
+
+void Blob_class::table()
+{
+       INTEGER i;
+       REAL dist = 0.0;
+
+       REAL blobisamp;
+
+       Blob.vtable = new REAL[samp];
+       Blob.ltable = new REAL[samp + 1]; //for convinience in bwray.cpp when nint=samp, by wei, 1/2005
+
+       blobisamp = (REAL) 1.0 / samp * Blob.support;
+
+       for (i = 0; i < samp; i++)
+       {
+               Blob.vtable[i] = Blob.radial(dist);
+               Blob.ltable[i] = Blob.lintegral(dist);
+
+               dist += blobisamp;
+       }
+
+       Blob.ltable[samp] = Blob.ltable[samp - 1]; //the same value for nint=samp and nint=samp-1, by wei, 1/2005
+
+}
+
diff --git a/src/snark/bpseudo.cpp b/src/snark/bpseudo.cpp
new file mode 100644 (file)
index 0000000..acbcfac
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bpseudo.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+// COMPUTE THE PSEUDO PROJECTION OF RAY NR IN PROJECTION NP OF
+// THE PICTURE PICT IN THE BLOB CASE.
+#include <cstdio>
+
+#include "blkdta.h"
+#include "modefl.h"
+#include "blob.h"
+#include "uiod.h"
+
+REAL Blob_class::bpseudo(REAL* pict, INTEGER np, INTEGER nr, INTEGER* list, REAL* weight, INTEGER* numb, REAL* snorm, BOOLEAN line, BOOLEAN constr)
+{
+       int nb, k;
+       REAL pictk;
+       REAL sum = 0.0;
+
+       if (!line)
+       {
+               Blob.bray(np, nr, list, weight, numb, snorm);
+       }
+       else
+       {
+               Blob.bwray(np, nr, list, weight, numb, snorm);
+       }
+
+       if (*numb != 0)
+       {
+               for (nb = 0; nb < *numb; nb++)
+               {
+                       k = list[nb];
+                       pictk = pict[k];
+                       if (constr)
+                       {
+                               if (Modefl.lofl)
+                                       pictk = MAX0(pictk, Modefl.lower);
+                               if (Modefl.upfl)
+                                       pictk = MIN0(pictk, Modefl.upper);
+                       }
+                       sum += pictk * weight[nb];
+               }
+       }
+//  pseudo=sum;
+
+       if (trace > 5)
+       {
+               fprintf(output,
+                               "\n          bpseudo  np = %5i  nr = %5i  bpseudo = %9.4f", np,
+                               nr, sum);
+       }
+       return sum;
+}
diff --git a/src/snark/bray.cpp b/src/snark/bray.cpp
new file mode 100644 (file)
index 0000000..60002d7
--- /dev/null
@@ -0,0 +1,568 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bray.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ this subroutine is the WRAY for blobs
+ */
+
+#include <cstdio>
+#include <cmath>
+#include <stdlib.h>
+
+#include "consts.h"
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "posit.h"
+#include "anglst.h"
+
+#include "uiod.h"
+
+void Blob_class::bray(INTEGER np, INTEGER nr, INTEGER* list, REAL* weight, INTEGER* numb, REAL* snorm)
+{
+       INTEGER i;
+       INTEGER a, b;
+       INTEGER ac, bc, bc1, ac1;
+       INTEGER af, al;
+       INTEGER bf, bl;
+       INTEGER laf, lal;
+       INTEGER lbf, lbl;
+       INTEGER h, m;
+       INTEGER lmf, lml;
+       INTEGER h1, m1;
+       INTEGER mcov;
+       REAL n;
+       INTEGER sign;
+       INTEGER M2, H2;
+
+       REAL ax, ay, axid, ayid;
+       REAL mx, my;
+       REAL theta, sinth, costh;
+       REAL prfx, prlx, prfy, prly;
+
+       REAL x, y, yup, ylo;
+       REAL ddeltain, ddeltaout;
+       REAL dc, dc1;
+       REAL ydelta; //xdelta not used
+
+       REAL slope, islope;
+       REAL coef, icoef;
+       REAL ord, cte, ctes;
+       REAL fcosang;
+       REAL multf;
+       REAL pinc2;
+       REAL hex_voronoi;
+
+       // bug 168 - swr - 9/24/05
+       if (GeoPar.div)
+       {
+               fprintf(output,
+                               "\n         ***** bray is not usable with divergent geometry\n");
+               exit(1);
+       }
+
+       *numb = 0;
+
+       *snorm = 0;
+
+       hex_voronoi = Consts.sqrt3 / 2.0 * Blob.delta * Blob.delta;
+
+       multf = GeoPar.pinc / (2.0 * Blob.delta); // pinc/2
+       pinc2 = GeoPar.pinc / 2.0;
+
+       laf = (INTEGER) (-0.5 * ((int) (Blob.M / 2) + (int) (Blob.H / 2)));
+       lal = (INTEGER) (0.5 * ((int) ((Blob.M - 1) / 2) + (int) ((Blob.H - 1) / 2)));
+
+       lbf = -1 * (INTEGER) (Blob.H / 2);
+       lbl = (INTEGER) ((Blob.H - 1) / 2);
+
+       lmf = -1 * (INTEGER) (Blob.M / 2);
+       lml = (INTEGER) ((Blob.M - 1) / 2);
+
+       prfx = -0.25 * (Blob.M - 1.0);
+       prlx = (-1) * prfx;
+
+       prfy = -0.25 * Consts.sqrt3 * (Blob.H - 1.0);
+       prly = (-1) * prfy;
+
+       H2 = (INTEGER) (Blob.H / 2);
+       M2 = (INTEGER) (Blob.M / 2);
+       posit(np, nr, &ax, &ay, &mx, &my);
+       axid = ax / Blob.delta;
+       ayid = ay / Blob.delta;
+
+       sinth = my;
+       costh = mx;
+       theta = acos(mx);
+       if (my < 0)
+       {
+               theta = 2 * Consts.pi - theta; //theta is not from getang, but different from ray to ray, by wei 1/2005
+       }
+       //added 7/19, think of theta as always betw 0 and pi
+       if (theta > Consts.pi)
+       {
+               theta = theta - Consts.pi;
+               sinth = -sinth;
+               costh = -costh; //never used anyway
+               my = -my;
+               mx = -mx;
+       }
+
+       if (fabs(my) > Consts.zero)
+       {  // non-horizontal lines
+
+               islope = mx / my;
+               ord = (axid - islope * ayid);
+               coef = 0.5 * (Consts.sqrt3 * islope - 1);
+
+               if (theta < Consts.pi / 6 || theta > 2.0 * Consts.pi / 3.0)
+               {  // type 1
+
+                       cte = multf / my; // for the "side rays"
+                       slope = my / mx;
+                       icoef = 1.0 / coef;
+                       fcosang = (REAL) fabs(cos(theta + Consts.pi / 6.0));
+
+                       mcov = (INTEGER) ceil(multf / fcosang);
+                       ddeltain = Blob.delta * fcosang;
+                       ddeltaout = Blob.delta * sinth;
+
+                       if (theta < Consts.pi / 6)
+                       {
+                               sign = 1;
+                       }
+                       else
+                       {
+                               sign = -1;
+                       }
+
+                       ctes = cte * sign;
+
+                       // parameters of the first grid point
+                       //find optimum af
+
+                       x = prfx;
+                       yup = (x - ord + ctes) * slope;
+                       ylo = (x - ord - ctes) * slope;
+
+                       if (sign == 1)
+                       { // + slope
+
+                               if (yup < prfy)
+                               {
+                                       yup = prfy;
+                                       x = ord - ctes + islope * yup;
+                               }
+                               ac = (INTEGER) floor(x - yup * Consts.isqrt3);
+                       }
+                       else
+                       { //sign == -1
+
+                               ac = (INTEGER) floor(x - yup * Consts.isqrt3);
+                               if (ylo > prly)
+                               {
+                                       ylo = prly;
+                                       x = ord + ctes + islope * ylo;
+                                       ac = (INTEGER) floor(x - ylo * Consts.isqrt3);
+                               }
+                       }
+
+                       af = MAX0(laf, ac);
+
+                       //find optimum al
+
+                       x = prlx;
+                       yup = (x - ord + ctes) * slope;
+                       ylo = (x - ord - ctes) * slope;
+
+                       if (sign == 1)
+                       { // + slope
+
+                               if (ylo > prly)
+                               {
+                                       ylo = prly;
+                                       x = ord + ctes + islope * yup;
+                               }
+                               ac = (INTEGER) ceil(x - ylo * Consts.isqrt3);
+                       }
+                       else
+                       { //sign == -1
+
+                               ac = (INTEGER) ceil(x - ylo * Consts.isqrt3);
+                               if (yup < prfy)
+                               {
+                                       yup = prfy;
+                                       x = ord - ctes + islope * yup;
+                                       ac = (INTEGER) ceil(x - yup * Consts.isqrt3);
+                               }
+                       }
+
+                       al = MIN0(lal, ac);
+
+                       //done with af and al
+                       a = af;
+                       bc = (INTEGER) (floor(icoef * (a - ord)));
+
+                       bf = MAX0(bc - mcov, lbf);
+                       bl = MIN0(bc + mcov, lbl);
+
+                       x = a + 0.5 * bc;
+                       y = 0.5 * Consts.sqrt3 * bc;
+                       dc = Blob.delta * (REAL) fabs(-my * (axid - x) + mx * (ayid - y));
+                       bc1 = bc + 1;
+                       dc1 = ddeltain - dc;
+
+                       b = bc;
+                       n = dc;
+                       m = 2 * a + b;
+                       h = b;
+                       m1 = m + M2;
+                       h1 = h + H2;
+
+                       //starting the loops--------------------------------
+
+                       while (a <= al)
+                       {
+                               if (bf <= bl)
+                               {
+                                       while (b >= bf)
+                                       {
+
+                                               if (m >= lmf && m <= lml && b <= lbl)
+                                               {
+                                                       if (n < pinc2)
+                                                       {
+
+                                                               list[*numb] = h1 * Blob.M + m1;
+
+                                                               *numb = *numb + 1;
+                                                       }
+                                               }
+
+                                               b--;
+                                               m--;
+                                               m1--;
+                                               h1--;
+                                               n += ddeltain;
+                                       }
+
+                                       b = bc1;
+                                       n = dc1;
+                                       m = 2 * a + b;
+                                       h = b;
+                                       m1 = m + M2;
+                                       h1 = h + H2;
+
+                                       while (b <= bl)
+                                       {
+
+                                               if (m >= lmf && m <= lml && b >= lbf)
+                                               {
+                                                       if (n < pinc2)
+                                                       {
+
+                                                               list[*numb] = h1 * Blob.M + m1;
+                                                               *numb = *numb + 1;
+                                                       }
+                                               }
+
+                                               b++;
+                                               m++;
+                                               // h++;
+                                               m1++;
+                                               h1++;
+                                               n += ddeltain;
+                                       }
+                               } //if bf<= bl
+
+                               dc = dc + (REAL) sign * ddeltaout;
+                               dc1 = ddeltain - dc;
+
+                               if (dc > ddeltain || dc < 0.0)
+                               {
+                                       bc = bc + sign;
+                                       dc = (REAL) sign * (fabs(dc) - ddeltain);
+                                       bc1 = bc + 1;
+                                       dc1 = ddeltain - dc;
+                                       bf = MAX0(bc - mcov, lbf);
+                                       bl = MIN0(bc + mcov, lbl);
+                               }
+
+                               a++;
+                               b = bc;
+                               n = dc;
+                               m = 2 * a + b;
+                               h = b;
+                               m1 = m + M2;
+                               h1 = h + H2;
+
+                       } //while a
+               }   //type 1
+
+               else
+               {   // type 2
+                       fcosang = (REAL) fabs(cos(theta + Consts.pi / 6.0));
+                       mcov = (INTEGER) ceil(multf / sinth);
+
+                       // constants independent of the first grid point
+                       bf = lbf;
+                       bl = lbl;
+                       ddeltain = Blob.delta * sinth;
+                       ddeltaout = Blob.delta * fcosang;
+
+                       if (theta < Consts.pi / 3)
+                       {
+                               sign = 1;
+                       }
+                       else
+                       {
+                               sign = -1;
+                       }
+
+                       //----------------------------------------------
+                       // parameters of the first grid point
+
+                       b = bf;
+
+                       ac = (INTEGER) (floor(coef * b + ord));
+
+                       af = MAX0(ac - mcov, laf);
+                       al = MIN0(ac + mcov, lal);
+
+                       x = ac + 0.5 * b;
+                       y = 0.5 * Consts.sqrt3 * b;
+                       dc = Blob.delta * (REAL) fabs(-my * (x - axid) + mx * (y - ayid));
+
+                       ac1 = ac + 1;
+                       dc1 = ddeltain - dc;
+
+                       //init values
+                       a = ac;
+                       n = dc;
+                       m = 2 * a + b;
+                       h = b;
+                       m1 = m + M2;
+                       h1 = h + H2;
+
+                       while (b <= bl)
+                       {
+                               if (af <= al)
+                               {
+                                       while (a >= af)
+                                       {
+
+                                               if (m >= lmf && m <= lml)
+                                               {
+
+                                                       if (n < pinc2)
+                                                       {
+                                                               list[*numb] = h1 * Blob.M + m1;
+
+                                                               *numb = *numb + 1;
+                                                       }
+                                               }
+                                               a--;
+                                               m -= 2;
+                                               m1 -= 2;
+                                               n += ddeltain;
+                                       }
+
+                                       a = ac1;
+                                       n = dc1;
+                                       m = 2 * a + b;
+                                       h = b;
+                                       m1 = m + M2;
+                                       h1 = h + H2;
+
+                                       while (a <= al)
+                                       {
+
+                                               if (m >= lmf && m <= lml)
+                                               {
+                                                       if (n < pinc2)
+                                                       {
+
+                                                               list[*numb] = h1 * Blob.M + m1;
+
+                                                               *numb = *numb + 1;
+                                                       }
+                                               }
+                                               a++;
+                                               m += 2;
+                                               m1 += 2;
+                                               n += ddeltain;
+                                       }
+                               } //if af <= al
+
+                               dc = dc + (REAL) sign * ddeltaout;
+                               dc1 = ddeltain - dc;
+
+                               if (dc > ddeltain || dc < 0.0)
+                               {
+
+                                       ac = ac + sign;
+                                       dc = (REAL) sign * (fabs(dc) - ddeltain);
+                                       ac1 = ac + 1;
+                                       dc1 = ddeltain - dc;
+                                       af = MAX0(ac - mcov, laf);
+                                       al = MIN0(ac + mcov, lal);
+                               }
+
+                               b++;
+                               a = ac;
+                               n = dc;
+                               m = 2 * a + b;
+                               h = b;
+                               m1 = m + M2;
+                               h1 = h + H2;
+
+                       } //while b
+               }  // type 2
+       }         // if non- horizontal line.
+
+       else
+       {
+
+               fcosang = cos(Consts.pi / 6.0);
+
+               mcov = (INTEGER) ceil(multf / fcosang);
+
+               // constants independent of the first grid point
+               ddeltain = Blob.delta * fcosang;
+
+               // parameters of the first grid point
+               //find optimum af
+
+               x = prfx;
+               yup = ayid + multf;
+               ylo = yup - 2 * multf;
+
+               ac = (INTEGER) floor(x - yup * Consts.isqrt3);
+
+               af = MAX0(laf, ac);
+
+               //find optimum al
+
+               x = prlx;
+               ac = (INTEGER) ceil(x - ylo * Consts.isqrt3);
+               al = MIN0(lal, ac);
+
+               //done with af and al
+
+               a = af;
+               bc = (INTEGER) (floor(2 * ayid * Consts.isqrt3));
+               bf = MAX0(bc - mcov, lbf);
+               bl = MIN0(bc + mcov, lbl);
+
+               y = 0.5 * Consts.sqrt3 * bc;
+               ydelta = y * Blob.delta;
+               dc = (REAL) fabs(ydelta - ay);
+               bc1 = bc + 1;
+               dc1 = ddeltain - dc;
+               //nc1 = (INTEGER)(samp_pinc * dc1);
+
+               // init values
+               b = bc;
+               n = dc;
+               m = 2 * a + b;
+               h = b;
+               m1 = m + M2;
+               h1 = h + H2;
+
+               // starting the loops
+
+               while (a <= al)
+               {
+                       if (bf <= bl)
+                       {
+                               while (b >= bf)
+                               {
+
+                                       if (m >= lmf && m <= lml && b <= lbl)
+                                       {
+                                               if (n < pinc2)
+                                               {
+
+                                                       list[*numb] = h1 * Blob.M + m1;
+
+                                                       *numb = *numb + 1;
+                                               }
+                                       }
+                                       b--;
+                                       m--;
+                                       m1--;
+                                       h1--;
+                                       n += ddeltain;
+                               }
+
+                               b = bc1;
+                               n = dc1;
+                               m = 2 * a + b;
+                               h = b;
+                               m1 = m + M2;
+                               h1 = h + H2;
+
+                               while (b <= bl)
+                               {
+
+                                       if (m >= lmf && m <= lml && b >= lbf)
+                                       {
+                                               if (n < pinc2)
+                                               {
+
+                                                       list[*numb] = h1 * Blob.M + m1;
+
+                                                       *numb = *numb + 1;
+                                               }
+                                       }
+                                       b++;
+                                       m++;
+                                       m1++;
+                                       h1++;
+                                       n += ddeltain;
+                               }
+                       } // if bf <= bl
+
+                       a++;
+                       b = bc;
+                       //n = nc;
+                       n = dc;
+                       m = 2 * a + b;
+                       h = b;
+                       m1 = m + M2;
+                       h1 = h + H2;
+
+               } //while a
+       }  // fabs (my)==0
+
+       if (*numb != 0)
+       {
+               for (i = 0; i < *numb; i++)
+               {
+                       weight[i] = hex_voronoi;
+               }
+       }
+
+       *snorm = hex_voronoi * hex_voronoi * (*numb);
+       if (trace > 6)
+       {
+               fprintf(output,
+                               "\n          bray    np = %5i  nr = %5i  numb = %5i  snorm = %10.4f",
+                               np, nr, *numb, *snorm);
+       }
+
+       if ((*numb > 0) && (trace > 9))
+       {
+               for (int i = 0; i < *numb; i++)
+               {
+
+                       fprintf(output, "\n                  %5i", list[i]);  //bug 139
+               }
+       }
+       return;
+}
diff --git a/src/snark/bsmooth.cpp b/src/snark/bsmooth.cpp
new file mode 100644 (file)
index 0000000..594edb1
--- /dev/null
@@ -0,0 +1,173 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bsmooth.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ A NINE-POINT WEIGHTED, NON-LINEAR SMOOTHING PROCEDURE.
+ FOR DETAILS, SEE THE SNARK MANUAL.
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "consts.h"
+#include "uiod.h"
+#include "blob.h"
+
+void Blob_class::bsmooth(
+REAL* a,      // image
+               INTEGER M,    // number of rows
+               INTEGER H,    // number of columns
+               REAL thresh,  // treshold
+               REAL w1,      // weight of center
+               REAL w2      // weight of horizontal and diag neighbous
+               )
+{
+       REAL w3 = w2;       // weight of diagonal neighbous
+       REAL* row1 = new REAL[M]; // row buffer 1
+       REAL* row2 = new REAL[M]; // row buffer 2
+       REAL* pres = row2;        // current row before smooth
+       REAL* prev = row1;        // previous row before smooth
+       INTEGER lmf, lml;
+       INTEGER lhf, lhl;
+       INTEGER m, h;
+       INTEGER m1, h1;
+       INTEGER ind;
+
+       BOOLEAN once = TRUE; // message flag
+
+       REAL centre;      // curent grid point value
+
+       REAL smuth;       // weighted sum of neighbours
+       REAL divide;      // sum of weights
+       REAL value;       // neighbour value
+
+       lhf = (INTEGER) (-1 * (INTEGER) (H / 2));
+       lhl = (INTEGER) ((H - 1) / 2);
+
+       lmf = -1 * (INTEGER) (M / 2);
+       lml = (INTEGER) ((M - 1) / 2);
+
+       for (h = lhl; h >= lhf; h--)
+       {
+               REAL* itemp = prev;  // swap the buffers (necessary?)
+               prev = pres;
+               pres = itemp;
+
+               for (m = lmf; m <= lml; m++)
+               { // m and h must have the same parity!!
+                       if ((m + h) % 2 == 0)
+                       {
+                               m1 = m + Blob.M2;
+                               h1 = h + Blob.H2;
+                               ind = h1 * M + m1;
+
+                               centre = a[ind];
+                               pres[m1] = centre;
+                               smuth = w1 * centre;
+                               divide = w1;
+
+                               if (h != lhl)
+                               {                   // if not first row
+                                       if (m != lmf)
+                                       {                 // if not first column
+                                               value = prev[m1 - 1];       // prev row prev column  #1
+
+                                               if ((REAL) fabs(value - centre) <= thresh)
+                                               {
+                                                       smuth += w3 * value;
+                                                       divide += w3;
+                                               }
+                                       }
+
+                                       if (m != lml)
+                                       {              // if not last column
+                                               value = prev[m1 + 1];      // prev row, next column   #2
+
+                                               if ((REAL) fabs(value - centre) <= thresh)
+                                               {
+                                                       smuth += w3 * value;
+                                                       divide += w3;
+                                               }
+                                       }
+                               }
+
+                               if (m >= lmf + 2)
+                               {                   // if not first or second column
+                                       value = pres[m1 - 2];        // same row, two prev column #3
+
+                                       if ((REAL) fabs(value - centre) <= thresh)
+                                       {
+                                               smuth += w2 * value;
+                                               divide += w2;
+                                       }
+                               }
+
+                               if (m <= lml - 2)
+                               {        // if not last column or one before last one
+                                       value = a[ind + 2];          // same row, two next column #4
+
+                                       if ((REAL) fabs(value - centre) <= thresh)
+                                       {
+                                               smuth += w2 * value;
+                                               divide += w2;
+                                       }
+                               }
+
+                               if (h != lhf)
+                               {             // if not last row
+                                       if (m != lmf)
+                                       {                 // if not first column
+                                               value = a[ind - M - 1];     // next row prev column   #5
+
+                                               if ((REAL) fabs(value - centre) <= thresh)
+                                               {
+                                                       smuth += w3 * value;
+                                                       divide += w3;
+                                               }
+                                       }
+
+                                       if (m != lml)
+                                       {           // if not last column
+                                               value = a[ind - M + 1];      // next row next column  #6
+
+                                               if ((REAL) fabs(value - centre) <= thresh)
+                                               {
+                                                       smuth += w3 * value;
+                                                       divide += w3;
+                                               }
+                                       }
+                               }
+
+                               if ((REAL) fabs(divide) > Consts.zero)
+                               {
+                                       a[ind] = smuth / divide;
+                               }
+                               else
+                               {
+                                       if (once)
+                                       {
+                                               fprintf(output, "\n *** warning - sum of weights=zero");
+                                               once = FALSE;
+                                       }
+
+                                       a[ind] =
+                                                       ((smuth - Consts.infin) > 0) ? (REAL) 1.0 :
+                                                       (smuth == Consts.infin) ? (REAL) 0.0 : (REAL) -1.0;
+                               }
+
+                               //l+=2;    //blob grid
+                       }
+               }
+       }
+
+       delete[] row1;  // bug 92 - Lajos - 03/02/2005
+       delete[] row2;  // bug 92 - Lajos - 03/02/2005
+
+       return;
+}
diff --git a/src/snark/bwray.cpp b/src/snark/bwray.cpp
new file mode 100644 (file)
index 0000000..7c49b83
--- /dev/null
@@ -0,0 +1,582 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bwray.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ this subroutine is the WRAY for blobs
+
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "consts.h"
+#include "blkdta.h"
+#include "blob.h"
+#include "posit.h"
+#include "anglst.h"
+
+#include "uiod.h"
+
+#include "raylen.h"
+
+void Blob_class::bwray(INTEGER np, INTEGER nr, INTEGER* list, REAL* weight,
+               INTEGER* numb, REAL* snorm)
+{
+       INTEGER a, b;
+       INTEGER ac, bc, bc1, ac1;
+       INTEGER af, al;
+       INTEGER bf, bl;
+       INTEGER laf, lal;
+       INTEGER lbf, lbl;
+       INTEGER h, m;
+       INTEGER lmf, lml;
+       INTEGER h1, m1;
+       INTEGER mcov;
+       REAL n;
+       INTEGER nint;
+       INTEGER sign;
+       INTEGER M2, H2;
+
+       REAL ax, ay, axid, ayid;
+       REAL mx, my;
+       REAL theta, sinth, costh;
+       REAL prfx, prlx, prfy, prly;
+
+       REAL x, y, yup, ylo;
+       REAL ddeltain, ddeltaout;
+       REAL dc, dc1;
+       REAL ydelta; //xdelta not used
+
+       REAL slope, islope;
+       REAL coef, icoef;
+       REAL ord, cte, ctes;
+       REAL fcosang;
+       REAL samp_support;
+       REAL multf;
+
+       *numb = 0;
+
+       *snorm = 0;
+
+       posit(np, nr, &ax, &ay, &mx, &my);
+
+       if (0 >= raylen(SOT_rect, ax, ay, mx, my, 0, 0, GeoPar.nelem * GeoPar.pixsiz / 2.0, GeoPar.nelem * GeoPar.pixsiz / 2.0, 1, 0))
+       {
+               return; // bug 111, if ray(np, nr) miss all pixels in the image, return numb=0, by wei, 6/2005
+       }
+
+       multf = Blob.support / Blob.delta;
+
+       samp_support = (REAL) samp / Blob.support;
+
+       laf = (INTEGER) (-0.5 * ((int) (Blob.M / 2) + (int) (Blob.H / 2)));
+       lal =
+                       (INTEGER) (0.5
+                                       * ((int) ((Blob.M - 1) / 2) + (int) ((Blob.H - 1) / 2)));
+
+       lbf = -1 * (INTEGER) (Blob.H / 2);
+       lbl = (INTEGER) ((Blob.H - 1) / 2);
+
+       lmf = -1 * (INTEGER) (Blob.M / 2);
+       lml = (INTEGER) ((Blob.M - 1) / 2);
+
+       prfx = -0.25 * (Blob.M - 1.0);
+       prlx = (-1) * prfx;
+
+       prfy = -0.25 * Consts.sqrt3 * (Blob.H - 1.0);
+       prly = (-1) * prfy;
+
+       H2 = (INTEGER) (Blob.H / 2);
+       M2 = (INTEGER) (Blob.M / 2);
+       axid = ax / Blob.delta;
+       ayid = ay / Blob.delta;
+       sinth = my;
+       costh = mx;
+
+       if (mx == 0)
+               theta = Consts.pi * 0.5;
+       else
+               theta = (REAL) atan2(my, mx);
+
+       if (theta < 0)
+               theta += Consts.pi * 2; //use atan2 instead of acos for more acuracy,the range of atan2 is [-pi,pi], by wei 1/2005
+
+       //added 7/19, think of theta as always being betw 0 and pi
+       if (theta > Consts.pi)
+       {
+               theta = theta - Consts.pi;
+               sinth = -sinth;
+               costh = -costh; //never used anyway
+               my = -my;
+               mx = -mx;
+       }
+
+       if (fabs(my) > Consts.zero)
+       {  // non-horizontal lines
+
+               islope = mx / my;
+               ord = (axid - islope * ayid);
+               coef = 0.5 * (Consts.sqrt3 * islope - 1);
+
+               if (theta < Consts.pi / 6 || theta > 2.0 * Consts.pi / 3.0)
+               {  // type 1
+
+                       cte = multf / my; // for the "side rays"
+                       slope = my / mx;
+                       icoef = 1.0 / coef;
+                       fcosang = (REAL) fabs(cos(theta + Consts.pi / 6.0));
+
+                       mcov = (INTEGER) ceil(multf / fcosang);
+                       ddeltain = Blob.delta * fcosang;
+                       ddeltaout = Blob.delta * sinth;
+
+                       if (theta < Consts.pi / 6)
+                       {
+                               sign = 1;
+                       }
+                       else
+                       {
+                               sign = -1;
+                       }
+
+                       ctes = cte * sign;
+
+                       x = prfx;
+                       yup = (x - ord + ctes) * slope;
+                       ylo = (x - ord - ctes) * slope;
+
+                       if (sign == 1)
+                       { // + slope
+
+                               if (yup < prfy)
+                               {
+                                       yup = prfy;
+                                       x = ord - ctes + islope * yup;
+                               }
+
+                               ac = (INTEGER) floor(x - yup * Consts.isqrt3);
+                       }
+                       else
+                       { //sign == -1
+
+                               ac = (INTEGER) floor(x - yup * Consts.isqrt3);
+                               if (ylo > prly)
+                               {
+                                       ylo = prly;
+                                       x = ord + ctes + islope * ylo;
+                                       ac = (INTEGER) floor(x - ylo * Consts.isqrt3);
+                               }
+                       }
+
+                       af = MAX0(laf, ac);
+
+                       x = prlx;
+                       yup = (x - ord + ctes) * slope;
+                       ylo = (x - ord - ctes) * slope;
+
+                       if (sign == 1)
+                       { // + slope
+
+                               if (ylo > prly)
+                               {
+                                       ylo = prly;
+                                       x = ord + ctes + islope * yup;
+                               }
+                               ac = (INTEGER) ceil(x - ylo * Consts.isqrt3);
+                       }
+                       else
+                       { //sign == -1
+
+                               ac = (INTEGER) ceil(x - ylo * Consts.isqrt3);
+                               if (yup < prfy)
+                               {
+                                       yup = prfy;
+                                       x = ord - ctes + islope * yup;
+                                       ac = (INTEGER) ceil(x - yup * Consts.isqrt3);
+                               }
+                       }
+                       al = MIN0(lal, ac);
+                       a = af;
+                       bc = (INTEGER) (floor(icoef * (a - ord)));
+
+                       bf = MAX0(bc - mcov, lbf);
+                       bl = MIN0(bc + mcov, lbl);
+
+                       x = a + 0.5 * bc;
+                       y = 0.5 * Consts.sqrt3 * bc;
+                       dc = Blob.delta * (REAL) fabs(-my * (axid - x) + mx * (ayid - y));
+
+                       bc1 = bc + 1;
+                       dc1 = ddeltain - dc;
+
+                       // initial values
+                       b = bc;
+                       n = dc;
+                       m = 2 * a + b;
+                       h = b;
+                       m1 = m + M2;
+                       h1 = h + H2;
+
+                       //starting the loops--------------------------------
+
+                       while (a <= al)
+                       {
+                               if (bf <= bl)
+                               {
+                                       while (b >= bf)
+                                       {
+
+                                               if (m >= lmf && m <= lml && b <= lbl)
+                                               {
+
+                                                       if (n < Blob.support)
+                                                       {
+
+                                                               list[*numb] = h1 * Blob.M + m1;
+                                                               nint = (INTEGER) round(samp_support * n); // changed "rint" to "round". Lajos, Jan 25, 2005
+
+                                                               weight[*numb] = Blob.ltable[nint];
+
+                                                               *snorm += weight[*numb] * weight[*numb];
+                                                               *numb = *numb + 1;
+                                                       }
+                                               }
+                                               b--;
+                                               m--;
+                                               m1--;
+                                               h1--;
+                                               n += ddeltain;
+                                       }
+
+                                       b = bc1;
+                                       n = dc1;
+                                       m = 2 * a + b;
+                                       h = b;
+                                       m1 = m + M2;
+                                       h1 = h + H2;
+
+                                       while (b <= bl)
+                                       {
+
+                                               if (m >= lmf && m <= lml && b >= lbf)
+                                               {
+                                                       if (n < Blob.support)
+                                                       {
+
+                                                               list[*numb] = h1 * Blob.M + m1;
+                                                               nint = (INTEGER) round(samp_support * n); // changed "rint" to "round". Lajos, Jan 25, 2005
+
+                                                               weight[*numb] = Blob.ltable[nint];
+
+                                                               *snorm += weight[*numb] * weight[*numb];
+                                                               *numb = *numb + 1;
+                                                       }
+                                               }
+                                               b++;
+                                               m++;
+                                               // h++;
+                                               m1++;
+                                               h1++;
+                                               n += ddeltain;
+                                       }
+                               } //if bf<= bl
+
+                               dc = dc + (REAL) sign * ddeltaout;
+
+                               dc1 = ddeltain - dc;
+
+                               if (dc > ddeltain || dc < 0.0)
+                               {
+                                       bc = bc + sign;
+                                       dc = (REAL) sign * (fabs(dc) - ddeltain);
+                                       bc1 = bc + 1;
+                                       dc1 = ddeltain - dc;
+                                       bf = MAX0(bc - mcov, lbf);
+                                       bl = MIN0(bc + mcov, lbl);
+                               }
+
+                               a++;
+                               b = bc;
+                               n = dc;
+                               m = 2 * a + b;
+                               h = b;
+                               m1 = m + M2;
+                               h1 = h + H2;
+                       } //while a
+               }   //type 1
+
+               else
+               {   // type 2
+                       fcosang = (REAL) fabs(cos(theta + Consts.pi / 6.0));
+                       mcov = (INTEGER) ceil(multf / sinth);
+                       // constants independent of the first grid point
+                       bf = lbf;
+                       bl = lbl;
+                       ddeltain = Blob.delta * sinth;
+                       ddeltaout = Blob.delta * fcosang;
+
+                       if (theta < Consts.pi / 3)
+                       {
+                               sign = 1;
+                       }
+                       else
+                       {
+                               sign = -1;
+                       }
+
+                       //----------------------------------------------
+                       // parameters of the first grid point
+
+                       b = bf;
+
+                       ac = (INTEGER) (floor(coef * b + ord));
+
+                       af = MAX0(ac - mcov, laf);
+                       al = MIN0(ac + mcov, lal);
+
+                       x = ac + 0.5 * b;
+                       y = 0.5 * Consts.sqrt3 * b;
+                       dc = Blob.delta * (REAL) fabs(-my * (x - axid) + mx * (y - ayid));
+
+                       ac1 = ac + 1;
+                       dc1 = ddeltain - dc;
+
+                       //init values
+                       a = ac;
+                       n = dc;
+                       m = 2 * a + b;
+                       h = b;
+                       m1 = m + M2;
+                       h1 = h + H2;
+
+                       // starting the loop .....................
+
+                       while (b <= bl)
+                       {
+                               if (af <= al)
+                               {
+                                       while (a >= af)
+                                       {
+
+                                               if (m >= lmf && m <= lml)
+                                               {
+
+                                                       if (n < Blob.support)
+                                                       {
+                                                               list[*numb] = h1 * Blob.M + m1;
+                                                               nint = (INTEGER) round(samp_support * n); // changed "rint" to "round". Lajos, Jan 25, 2005
+
+                                                               weight[*numb] = Blob.ltable[nint];
+
+                                                               *snorm += weight[*numb] * weight[*numb];
+                                                               *numb = *numb + 1;
+                                                       }
+                                               }
+                                               a--;
+                                               m -= 2;
+                                               m1 -= 2;
+                                               n += ddeltain;
+                                       }
+
+                                       a = ac1;
+                                       n = dc1;
+                                       m = 2 * a + b;
+                                       h = b;
+                                       m1 = m + M2;
+                                       h1 = h + H2;
+
+                                       while (a <= al)
+                                       {
+                                               if (m >= lmf && m <= lml)
+                                               {
+                                                       if (n < Blob.support)
+                                                       {
+
+                                                               list[*numb] = h1 * Blob.M + m1;
+
+                                                               nint = (INTEGER) round(samp_support * n); // changed "rint" to "round". Lajos, Jan 25, 2005
+
+                                                               weight[*numb] = Blob.ltable[nint];
+
+                                                               *snorm += weight[*numb] * weight[*numb];
+                                                               *numb = *numb + 1;
+                                                       }
+                                               }
+                                               a++;
+                                               m += 2;
+                                               m1 += 2;
+                                               n += ddeltain;
+                                       }
+                               } //if af <= al
+
+                               dc = dc + (REAL) sign * ddeltaout;
+
+                               dc1 = ddeltain - dc;
+
+                               if (dc > ddeltain || dc < 0.0)
+                               {
+                                       ac = ac + sign;
+                                       dc = (REAL) sign * (fabs(dc) - ddeltain);
+
+                                       ac1 = ac + 1;
+                                       dc1 = ddeltain - dc;
+
+                                       af = MAX0(ac - mcov, laf);
+                                       al = MIN0(ac + mcov, lal);
+                               }
+
+                               b++;
+                               a = ac;
+                               n = dc;
+                               m = 2 * a + b;
+                               h = b;
+                               m1 = m + M2;
+                               h1 = h + H2;
+                       } //while b
+               }  // type 2
+       }         // if non- horizontal line.
+
+       else
+       {  //if horizontal line (my == 0)
+
+               fcosang = cos(Consts.pi / 6.0);
+
+               mcov = (INTEGER) ceil(multf / fcosang);
+
+               // constants independent of the first grid point
+               ddeltain = Blob.delta * fcosang;
+
+               //parameters of the first grid point
+               //find optimum af
+
+               x = prfx;
+               yup = ayid + multf;
+               ylo = yup - 2 * multf;
+
+               ac = (INTEGER) floor(x - yup * Consts.isqrt3);
+
+               af = MAX0(laf, ac);
+
+               //find optimum al
+
+               x = prlx;
+               ac = (INTEGER) ceil(x - ylo * Consts.isqrt3);
+               al = MIN0(lal, ac);
+
+               //done with af and al
+
+               a = af;
+               bc = (INTEGER) (floor(2 * ayid * Consts.isqrt3));
+               bf = MAX0(bc - mcov, lbf);
+               bl = MIN0(bc + mcov, lbl);
+
+               y = 0.5 * Consts.sqrt3 * bc;
+               ydelta = y * Blob.delta;
+               dc = (REAL) fabs(ydelta - ay);
+               bc1 = bc + 1;
+               dc1 = ddeltain - dc;
+
+               // init values
+               b = bc;
+               n = dc;
+               //n = nc;
+               m = 2 * a + b;
+               h = b;
+               m1 = m + M2;
+               h1 = h + H2;
+
+               while (a <= al)
+               {
+                       if (bf <= bl)
+                       {
+                               while (b >= bf)
+                               {
+
+                                       if (m >= lmf && m <= lml && b <= lbl)
+                                       {
+                                               if (n < Blob.support)
+                                               {
+
+                                                       list[*numb] = h1 * Blob.M + m1;
+                                                       nint = (INTEGER) round(samp_support * n); // changed "rint" to "round". Lajos, Jan 25, 2005
+
+                                                       weight[*numb] = Blob.ltable[nint];
+                                                       *snorm += weight[*numb] * weight[*numb];
+                                                       *numb = *numb + 1;
+                                               }
+                                       }
+                                       b--;
+                                       m--;
+
+                                       m1--;
+                                       h1--;
+                                       n += ddeltain;
+                               }
+
+                               b = bc1;
+                               n = dc1;
+                               m = 2 * a + b;
+                               h = b;
+                               m1 = m + M2;
+                               h1 = h + H2;
+
+                               while (b <= bl)
+                               {
+                                       if (m >= lmf && m <= lml && b >= lbf)
+                                       {
+                                               if (n < Blob.support)
+                                               {
+
+                                                       list[*numb] = h1 * Blob.M + m1;
+                                                       nint = (INTEGER) round(samp_support * n); // changed "rint" to "round". Lajos, Jan 25, 2005
+
+                                                       weight[*numb] = Blob.ltable[nint];
+
+                                                       *snorm += weight[*numb] * weight[*numb];
+                                                       *numb = *numb + 1;
+                                               }
+                                       }
+                                       b++;
+                                       m++;
+
+                                       m1++;
+                                       h1++;
+                                       n += ddeltain;
+                               }
+                       } // if bf <= bl
+
+                       a++;
+                       b = bc;
+                       n = dc;
+                       //n = nc;
+                       m = 2 * a + b;
+                       h = b;
+                       m1 = m + M2;
+                       h1 = h + H2;
+
+               } //while a
+       }  // fabs (my)==0
+
+       if (trace > 6)
+       {
+               fprintf(output,
+                               "\n          bwray    np = %5i  nr = %5i  numb = %5i  snorm = %10.4f",
+                               np, nr, *numb, *snorm);
+       }
+
+       if ((*numb > 0) && (trace > 9))
+       {
+               for (int i = 0; i < *numb; i++)
+               {
+
+                       fprintf(output, "\n                  %5i     %10.4f", list[i],
+                                       weight[i]);  //bug 139
+               }
+       }
+       return;
+}
diff --git a/src/snark/check_if_iroi.c b/src/snark/check_if_iroi.c
new file mode 100644 (file)
index 0000000..71ef3a6
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/check_if_iroi.c $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <string.h>
+#include <strings.h>
+
+#include "check_if_iroi.h"
+#include "experimenter.h"
+#include "errorc.h"
+#include "analyze.h"
+#include "getfom.h"
+
+void check_if_iroi(char * anaflname, //name of ANALYSIS file
+               int * iroi_used //flag to be set if IROI fom is to be used
+               )
+{
+       int stru, poin, hitr, usr1, usr2, usr3, usr4, usr5, iroi;
+
+       char string[MAXLINESIZE], key1[50], line[MAXLINESIZE], key2[50],
+                       keywrd1[50], keywrd2[50];
+
+       FILE *anafl; //ANALYSIS file
+
+       *iroi_used = 0;
+
+       //open anaflname for reading
+       strcpy(line, "In check_if_iroi.c: error in file");
+       sprintf(line, "%s %s at line ", line, anaflname);
+
+       if ((anafl = fopen(anaflname, "r")) == NULL)
+       {
+               errorc("in check_if_iroi.c: error in opening file ", anaflname);
+       }
+
+       while (fgets(string, sizeof(string), anafl) != NULL)
+       {
+               if (strncasecmp(string, "comp", 4) == 0)
+               {
+                       if ((strcasestr(string, "IROI") != NULL))
+                       {
+                               *iroi_used = 1;
+                       }
+               }
+
+       }
+
+       fclose(anafl);
+
+       return;
+
+} //end of check_if_iroi ( )
+
diff --git a/src/snark/check_if_iroi.h b/src/snark/check_if_iroi.h
new file mode 100644 (file)
index 0000000..96e7286
--- /dev/null
@@ -0,0 +1,20 @@
+/* 
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/check_if_iroi.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+ */
+
+#ifndef _CHECK_IF_IROI_H
+#define        _CHECK_IF_IROI_H
+
+
+void check_if_iroi( char *   anaflname,  //name of ANALYSIS file
+                  int * iroi_used   //flag to be set if IROI fom is to be used 
+                  );
+
+#endif /* _CHECK_IF_IROI_H */
+
diff --git a/src/snark/chtoin.cpp b/src/snark/chtoin.cpp
new file mode 100644 (file)
index 0000000..bf5493f
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/chtoin.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ CONVERT A NUMERIC CHARACTER INTO A DIGIT
+ REVISED BY G. FRIEDER, JULY 1981
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "chtoin.h"
+
+INTEGER chtoin(CHAR hol)
+{
+       CHAR digits[10] =
+       { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
+       int i;
+
+       for (i = 0; i < 10; i++)
+       {
+               if (hol != digits[i])
+                       continue;
+
+               return i;
+       }
+       return 0;
+}
diff --git a/src/snark/chtoin.h b/src/snark/chtoin.h
new file mode 100644 (file)
index 0000000..0f20bb3
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/chtoin.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#ifndef CHTOIN_H
+#define CHTOIN_H
+
+INTEGER chtoin(CHAR hol);
+
+#endif
diff --git a/src/snark/cin.cpp b/src/snark/cin.cpp
new file mode 100644 (file)
index 0000000..33e23e2
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/cin.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS FUNCTION CALCULATE THE INTEGRAL OF (1.-COS(U))/U W.R.T. U
+ FROM 0 TO X USING RATIONAL APPROXIMATIONS
+ REFERENCES :
+ 1) POLYNOMIAL APPROXIMATIONS TO INTEGRAL TRANSFORMS,
+ J. WIMP
+ MATHEMATICS OF COMPUTATION, 15, 1961, P.P.177
+ 2) APPROXIMATIONS FOR DIGITAL COMPUTERS,
+ C. HASTINGS
+ PRINCETON UNIVERSITY PRESS, 1955, P.P.198
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+
+#include "cin.h"
+
+REAL cin(REAL x)
+{
+
+       static const REAL gamma = (REAL) 0.5772156649;
+       static const REAL a2n0 = (REAL) 0.1352962627;
+       REAL ang;
+       REAL anginc;
+       static const REAL a2n[6] = { (REAL) -0.4232751922, (REAL) 0.0182227219, (REAL) 0.000415765, (REAL) 56716.e-10, (REAL) -511.e-10, (REAL) 3.e-10 };
+
+       REAL xsq;
+       REAL f;
+       REAL g;
+
+       if (x == 0)
+               return 0;
+
+       x = (REAL) fabs(x);
+
+       if (x < 1)
+       {
+
+               REAL cin_tmp = gamma - a2n0;
+               ang = 0.;
+               anginc = (REAL) 2.0 * (REAL) atan(sqrt(4. - x * x) / x);
+               for (int i = 0; i < 6; i++)
+               {
+                       ang += anginc;
+                       cin_tmp -= a2n[i] * (REAL) cos(ang);
+               }
+               return cin_tmp;
+       }
+
+       xsq = x * x;
+
+       f = ((xsq + (REAL) 7.241163) * xsq + (REAL) 2.463936) / ((xsq + (REAL) 9.068580) * xsq + (REAL) 7.157433) / x;
+
+       g = ((xsq + (REAL) 7.547478) * xsq + (REAL) 1.564072) / ((xsq + (REAL) 12.723684) * xsq + (REAL) 15.723606) / xsq;
+
+       return gamma + (REAL) log(x) - f * (REAL) sin(x) + g * (REAL) cos(x);
+}
diff --git a/src/snark/cin.h b/src/snark/cin.h
new file mode 100644 (file)
index 0000000..82ea5ff
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/cin.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef CIN_H
+#define CIN_H
+
+REAL cin(REAL x);
+
+#endif      
diff --git a/src/snark/congeo.cpp b/src/snark/congeo.cpp
new file mode 100644 (file)
index 0000000..294f272
--- /dev/null
@@ -0,0 +1,148 @@
+/*  
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/congeo.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+
+ THIS SUBROUTINE TRANSFORMS ONE DIVERGENT BEAM OF
+ PROJECTION DATA
+ PROJEC(NR),NR=1,2,...,NRAYS,
+ WITH DETECTOR SPACING PINC ( AND EITHER ARC OR
+ TANGENT ) INTO A COMPLETE FAN-BEAM OF PROJECTION
+ DATA
+ NUPROJ(L),L=1,NURAYS,
+ AT DETECTOR SPACING NUPINC ( AS IF WE HAD THE ARC
+ CASE ), WHERE NURAYS IS EVEN, AND NURAYS*NUPINC
+ EQUALS PI*STOD, SUCH THAT NUPROJ(L) IS THE LINE INTEGRAL
+ FOR THE RAY THROUGH THE SOURCE, THAT MAKES ANGLE
+ L*(NUPINC/RADIUS) RADIANS
+ WITH THE LINE ORTHOGONAL TO THE CENTRAL RAY IN THE
+ DIVERGENT BEAM.THE CENTRAL RAYS ARE PROJEC(NRAYS/2+1)
+ AND PROJEC(NURAYS/2+1).
+ NUPNTS HAS TO BE INITIALIZED AS FOLLOWS:
+ NUPNTS(NURAYS/2-I)=I*NUPINC/PINC, I=1,...,NURAYS/2-1,
+ SO NUPNTS(NURAYS/2-I) IS THE SCALED POSITION OF THE
+ I-TH RAY ON THE CIRCLE OF DETECTORS, MEASURED RELATIVE
+ TO THE CENTRAL RAY.
+
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "congeo.h"
+
+void congeo(REAL* projec, INTEGER nrays, REAL* nuproj, INTEGER nurays, REAL* nupnts)
+{
+
+       INTEGER nur2;
+       INTEGER nra2;
+       INTEGER indist;
+       INTEGER j;
+       INTEGER indnu;
+       INTEGER indpro;
+       INTEGER i;
+       REAL space;
+       INTEGER irefl;
+       INTEGER indref;
+       INTEGER nr2;
+       INTEGER l;
+
+       nur2 = nurays / 2;
+       nra2 = nrays / 2;
+
+       // THE FIRST (TANGENT) RAY
+
+       nuproj[0] = 0.0;
+
+       // THE CENTER RAY
+
+       nuproj[nur2] = projec[nra2];
+
+       // FILL IN POINTS OUTSIDE ORIGINAL TABLE
+
+       indist = nra2;
+       j = 1;
+       for (;;)
+       {
+               j++;
+               if (nupnts[j - 1] < float(indist))
+                       break;
+               nuproj[j] = 0.0;
+               indnu = nurays - j + 2;
+               nuproj[indnu] = 0.0;
+       }
+
+//      THE POINTS INSIDE THE TABLE
+
+       indist = indist - 1;
+       indpro = nra2 - indist + 1;
+
+       for (i = j; i < nur2; i++)
+       {
+               for (;;)
+               {
+                       space = nupnts[i - 1] - ((REAL) (indist));
+                       if (space >= 0)
+                               break;
+                       indist--;
+                       indpro++;
+               }
+               nuproj[i] = space * projec[indpro - 1] + ((REAL) 1.0 - space) * projec[indpro];
+
+               // THE CORRESPONDING POINTS ON THE NEGATIVE AXIS
+
+               irefl = nurays - i + 2;
+               indref = nrays - indpro + 1;
+               nuproj[irefl] = ((REAL) 1.0 - space) * projec[indref]
+                               + space * projec[indref + 1];
+
+       }
+
+       if (trace < 5)
+               return;
+
+       nr2 = nurays / 2 - 1;
+
+       fprintf(output, "\n         interpolation performed at points:");
+       for (l = 0; l < nr2; l++)
+       {
+               if ((l % 5) == 0)
+               {
+                       fprintf(output, "\n          ");
+               }
+               fprintf(output, "%13.6e", nupnts[l]);
+       }
+
+       fprintf(output, "\n         projection data");
+       for (l = 0; l < nrays; l++)
+       {
+               if ((l % 5) == 0)
+               {
+                       fprintf(output, "\n          ");
+               }
+               fprintf(output, "%13.6e", projec[l]);
+       }
+
+       fprintf(output, "\n         interpolated projection data");
+       for (l = 0; l < nurays; l++)
+       {
+               if ((l % 5) == 0)
+               {
+                       fprintf(output, "\n          ");
+               }
+               fprintf(output, " %13.6e", nuproj[l]);
+       }
+
+       trace--;
+
+       return;
+}
diff --git a/src/snark/congeo.h b/src/snark/congeo.h
new file mode 100644 (file)
index 0000000..7bc6f9a
--- /dev/null
@@ -0,0 +1,17 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/congeo.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef CONGEO_H
+#define CONGEO_H
+
+void congeo(REAL* projec, INTEGER nrays, REAL* nuproj, INTEGER nurays,
+               REAL* nupnts);
+
+#endif      
diff --git a/src/snark/consts.cpp b/src/snark/consts.cpp
new file mode 100644 (file)
index 0000000..f086162
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/consts.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "consts.h"
+
+const REAL Consts_class::zero = (REAL) 1.0e-20;
+const REAL Consts_class::infin = (REAL) 1.0e20;
+
+// PI
+//REAL    pi = (REAL) 3.141592654;
+const REAL Consts_class::pi = (REAL) 3.1415926535897932384626433832795;
+
+// 2 * PI
+//REAL    twopi = (REAL) 6.283185307;
+const REAL Consts_class::twopi = (REAL) 6.283185307179586476925286766559;
+
+// PI * PI
+//REAL    pisq = (REAL) 9.869604401;
+const REAL Consts_class::pisq = (REAL) 9.8696044010893586188344909998762;
+
+// PI / 2
+//REAL    pid2 = (REAL) 1.570796327;
+const REAL Consts_class::pid2 = (REAL) 1.5707963267948966192313216916398;
+
+// 3 ^ 0.5
+//REAL    sqrt3 = (REAL) 1.7320508;
+const REAL Consts_class::sqrt3 = (REAL) 1.7320508075688772935274463415059;
+
+// 1 / (3 ^ 0.5) 
+//REAL    isqrt3 = (REAL) 0.57735027;
+const REAL Consts_class::isqrt3 = (REAL) 0.57735026918962576450914878050196;
+
+Consts_class Consts;
diff --git a/src/snark/consts.h b/src/snark/consts.h
new file mode 100644 (file)
index 0000000..19f31f0
--- /dev/null
@@ -0,0 +1,37 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/consts.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef CONSTS_H
+#define CONSTS_H
+
+#include "blkdta.h"
+
+//      common /consts/ zero, infin, pi, twopi, pisq, pid2
+//      real zero, infin, pi, twopi, pisq, pid2
+
+// data zero, infin/ 1.0e-20, 1.0e20/
+// data pi, twopi, pisq, pid2/
+// 3.141592654, 6.283185307, 9.869604401, 1.570796327/
+
+extern class Consts_class
+{
+public:
+       static const REAL zero;
+       static const REAL infin;
+       static const REAL pi;
+       static const REAL twopi;
+       static const REAL pisq;
+       static const REAL pid2;
+       static const REAL sqrt3;
+       static const REAL isqrt3;
+
+} Consts;
+
+#endif
diff --git a/src/snark/contur.cpp b/src/snark/contur.cpp
new file mode 100644 (file)
index 0000000..d0e4b6c
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/contur.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ A PROCEDURE TO CONTOUR A RECONSTRUCTION INTO A BLACK-WHITE PICTURE
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "math.h" //added. hstau
+#include "consts.h"
+#include "uiod.h"
+
+#include "contur.h"
+
+void contur(REAL* a, INTEGER m, INTEGER n, REAL thresh, REAL w1, REAL w2, REAL w3)
+{
+       INTEGER i, last = m * n;
+       REAL t = thresh;
+
+       if (w3 >= Consts.zero)
+       {
+               REAL min, max, amin, amax, ai, at;
+
+               if ((GeoPar.aveden <= w1) || (GeoPar.aveden >= w2))
+               {
+                       fprintf(output,
+                                       "\n **** invalid parameters to contour - (aveden <= w1 or w2 <= aveden)");
+                       fprintf(output, "\n **** contour failed to continue");
+                       return;
+               };
+
+               // find min and max
+               min = a[0];
+               max = a[0];
+               for (i = 1; i < last; i++)
+               {
+                       ai = a[i];
+                       if (ai < min)
+                               min = ai;
+                       if (ai > max)
+                               max = ai;
+               };
+
+               if ((max - min) < Consts.zero)
+               {
+                       fprintf(output, "\n **** picture is a constant");
+                       fprintf(output, "\n **** contour failed to continue");
+                       return;
+               };
+
+               // perform a bisection search
+               min = min - 0.00001;
+               amin = w2;
+               amax = w1;
+               while ((amin != GeoPar.aveden) && (amax != GeoPar.aveden) && (max - min > 0.00001))
+               {
+                       t = (min + max) / 2.0;
+                       at = 0;
+                       for (i = 0; i < last; i++)
+                       {
+                               if (a[i] <= t)
+                                       at += w1;
+                               else
+                                       at += w2;
+                       };
+                       at /= last;
+                       if (at < GeoPar.aveden)
+                       {
+                               max = t;
+                               amax = at;
+                       }
+                       else
+                       {
+                               min = t;
+                               amin = at;
+                       }
+               };
+
+               if (amin - GeoPar.aveden < GeoPar.aveden - amax)
+                       t = min;
+               else
+                       t = max;
+
+               fprintf(output, "\n         contour threshold = %10.4f", t);
+       };
+
+       for (i = 0; i < last; i++)
+       {
+               if (a[i] <= t)
+                       a[i] = w1;
+               else
+                       a[i] = w2;
+       };
+
+       return;
+}
diff --git a/src/snark/contur.h b/src/snark/contur.h
new file mode 100644 (file)
index 0000000..37b3e63
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/contur.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#ifndef COUNTUR_H
+#define COUNTUR_H
+
+void contur(REAL* a, INTEGER m, INTEGER n, REAL thresh, REAL w1, REAL w2, REAL w3);
+
+#endif      
diff --git a/src/snark/conv.cpp b/src/snark/conv.cpp
new file mode 100644 (file)
index 0000000..6cbf179
--- /dev/null
@@ -0,0 +1,315 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/conv.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+
+ THIS IS A GENERAL IMPLEMENTATION OF THE THREE BEST KNOWN
+ CONVOLUTION METHODS, NAMELY THOSE OF BRACEWELL + RIDDLE[1],
+ RAMACHANDRAN + LAKSHMINARAYANAN[2], AND SHEPP + LOGAN[3].
+ THE CONTROL CARD FOLLOWING THE EXECUTE CARD CONTAINS (IN THE
+ SNARK FREE FORMAT) THE FOLLOWING INFORMATION:
+ 1) THE DESIRED FILTER ("BAND", "SINC", "COSINE" OR "HAMMING")
+ 2) THE CUTOFF PARAMETER (OR THE VALUE OF ALPHA FOR HAMMING)
+ 3) THE INTERPOLATION METHOD DESIRED
+ THE BAND LIMITING FILTER CORRESPONDS TO THE FILTER USED BY
+ BRACEWELL + RIDDLE(1) AND RAMACHANDRAN + LAKSHMINARAYANAN(2).
+ THE SINC FILTER IS GENERALIZATION OF THE FILTER USED BY SHEPP
+ + LOGAN(2).
+ THE COSINE FILTER IS A COMMON LOWPASS FILTER APPLIED TO THE
+ RECONSTRUCTION PROBLEM.
+ THE HAMMING FILTER IS THE GENERALIZED HAMMMING FILTER, A SPECI
+ CASE OF WHICH WAS USED BY CHESLER + REIDERER(4).
+ THE CUTOFF VALUE REPRESENTS THE FRACTION OF FOURIER SPACE
+ POWER TO INCLUDE IN THE RECONSTRUCTION.  WHEN 'CUTOFF' IS ZERO,
+ IT IS TAKEN TO 1.0.  WHEN 'CUTOFF' IS NEGATIVE, IT IS SET
+ TO '2.0*PRJNUM*PINC/(PI*NELEM*PIXSIZ)'.  IF 'CUTOFF' IS GREATER
+ THAN 1.0, IT IS SET TO 1.0.
+ IF 'UNI' = .TRUE. (UNIFORM SPACING SPECIFIED),
+ THEN THE CUTOFF FORMS A CIRCULAR REGION IN FOURIER SPACE
+ WRERE THE DIAMETER OF THE CIRCLE IS 'CUTOFF/PIXSIZ'.
+ IF 'VRI' = .TRUE. THEN THE CUTOFF FORMS A SQUARE REGION WHERE
+ THE LENGTH OF A SIDE IS 'CUTOFF/PIXSIZ'.
+ EXAMPLE CONTROL CARD SEQUENCE
+ EXECUTE CONVOLUTION
+ BAND LIMITING CUTOFF = -1.0 INTERPOLATION = 2
+ WARNING.....
+ THIS VERSION OF THE CONVOLUTION METHOD WEIGHTS PROJECTION "NP"
+ BY "(THETA(NP+1)-THETA(NP-1))/2.0".  IN ORDER TO ACCOMPLISH THIS
+ IT IS ASSUMED THAT THE PROJECTIONS ARE ARRANGED IN INCREASING
+ ORDER ON THETA AND THAT THETA(PRJNUM)-THETA(1) IS LESS THAN
+ PI IN THE PARALLEL CASE OR TWOPI IN THE DIVERGENT CASE.
+
+ REFERENCES:
+ [1]  BRACEWELL + RIDDLE, INVERSION OF FAN-BEAM SCANS IN RADIO
+ ASTROMOMY, ASTROPHYS. J., V.150, PP.427-434 (1967).
+ [2]  RAMACHANDRAN + LAKSHMINARAYANAN, THREE-DIMENSIONAL
+ RECONSTRUCTION FROM RADIOGRAPHS AND ELECTRON MICROGRAPHS:
+ APPLICATION OF CONVOLUTIONS INSTEAD OF FOURIER TRANSFORMS,
+ PROC. NAT. ACAD. SCI. U.S., V.68, PP.2236-2240 (1971).
+ [3]  SHEPP + LOGAN, THE FOURIER RECONSTRUCTION OF A HEAD SECTION,
+ IEEE TRANS. NUCL. SCI., NS-21, PP.21-43 (1974).
+ [4]  CHESLER + RIEDERER, RIPPLE SUPPRESSION DURING RECONSTRUCTION
+ IN TRANSVERSE TOMOGRAPHY, PHYS. MED. BIOL., V.20, PP.632-636
+ (1975).
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "fourie.h"
+#include "consts.h"
+#include "uiod.h"
+#include "int2str.h"
+#include "anglst.h"
+#include "bckprj.h"
+#include "qinit.h"
+#include "projfile.h"
+#include "infile.h"
+
+#include "conv.h"
+
+BOOLEAN conv_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+
+       INTEGER filter;
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+       static const INTEGER fname[4] =
+       {
+                       CHAR2INT('b', 'a', 'n', 'd'),
+                       CHAR2INT('s', 'i', 'n', 'c'),
+                       CHAR2INT('c', 'o', 's', 'i'),
+                       CHAR2INT('h', 'a', 'm', 'm')
+       };
+
+       REAL thmod;
+       REAL thfac;
+       INTEGER word;
+       BOOLEAN eol;
+       INTEGER ndelta;
+       INTEGER gpnum;
+       REAL* g = NULL;        //wei 3.2005
+       INTEGER qnum;
+       REAL* q = NULL;        //wei 3.2005
+       REAL* gp = NULL;        //wei 3.2005
+       REAL theta;
+       REAL sinth;
+       REAL costh;
+       REAL theta0;
+       INTEGER np;
+       REAL theta1;
+       INTEGER np2;
+       REAL theta2;
+       REAL sinth2;
+       REAL costh2;
+       REAL w;
+       INTEGER izro;
+       REAL* gpi;
+       INTEGER nr;
+       REAL* gi;
+       REAL* qi;
+       REAL sum;
+       INTEGER iz;
+       INTEGER i;
+
+       // INITIALIZATION
+
+       if (iter > 1)
+               return FALSE;
+       thmod = Consts.pi;
+       thfac = 2.0;
+       if (!GeoPar.par)
+       {
+               thmod = Consts.twopi;
+               thfac = 4.0;
+       }
+
+       word = InFile.getwrd(TRUE, &eol, fname, 4);
+       for (filter = 0; filter < 4; filter++)
+       {
+               if (word == fname[filter])
+                       goto L30;
+       }
+
+       fprintf(output, "\n***** %s is not a valid filter name", int2str(word)); //(JD 12/31/03)
+
+       return TRUE;
+
+       L30: Fourie.cutoff = InFile.getnum(FALSE, &eol);
+       Fourie.interp = InFile.getint(FALSE, &eol);
+
+       if (eol)
+       {
+               fprintf(output, "\n *** not enough arguments");
+
+               return TRUE;
+       }
+
+       if (Fourie.cutoff < 0.0)
+               Fourie.cutoff = (REAL) 2.0 * GeoPar.prjnum * GeoPar.pinc
+                               / ((REAL) Consts.pi * GeoPar.nelem * GeoPar.pixsiz);
+       if (Fourie.cutoff <= Consts.zero)
+               Fourie.cutoff = 1.0; // bug 151 - swr - 9/24/05
+       if (Fourie.cutoff > 1.0)
+               Fourie.cutoff = 1.0;
+
+       fprintf(output, "\n          convolution reconstruction algorithm");
+       fprintf(output, "\n          using filter %s", int2str(word));
+       fprintf(output, "\n          cutoff (or alpha) = %10.4f", Fourie.cutoff);
+
+       if ((Fourie.interp < -1) || (Fourie.interp > 6))
+       {
+               fprintf(output, "\n *** invalid interpolation %4i", Fourie.interp);
+
+               return TRUE;
+       }
+
+       if (Fourie.interp > 0)
+       {
+               fprintf(output, "\n         %2i point lagrange interpolation",
+                               Fourie.interp);
+       }
+       if (Fourie.interp < 0)
+       {
+               fprintf(output, "\n          cubic spline interpolation");
+       }
+       if (Fourie.interp == 0)
+       {
+               fprintf(output, "\n          band limiting (sinc) interpolation");
+       }
+
+       ndelta = 2 * Fourie.interp;
+       if (Fourie.interp < 0)
+               ndelta = 6;
+       gpnum = GeoPar.snrays + ndelta;
+
+       // G IS THE BASE OF PROJECTION DATA
+
+       g = new REAL[GeoPar.usrays];
+
+       // Q IS THE BASE OF THE CONVOLUTING FUNCTION VALUES
+
+       qnum = GeoPar.nrays + ndelta;
+
+       q = new REAL[qnum];
+
+       qinit(q, qnum, filter, Fourie.cutoff);
+
+       // GP IS THE BASE OF THE CONVOLUTED PROJECTIONS
+
+       gp = new REAL[gpnum];
+
+       // BEGIN THE RECONSTRUCTION
+
+       Anglst.getang(GeoPar.prjnum - 1, &theta, &sinth, &costh);
+
+       theta0 = theta - thmod;
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+
+               ProjFile.ReadProj(np, g, GeoPar.usrays);
+
+               Anglst.getang(np, &theta1, &sinth, &costh);
+
+               // COMPUTE THE WEIGHT FOR THE PROJECTION
+
+               np2 = np + 1;
+
+               if (np == GeoPar.prjnum - 1)
+                       np2 = 0;
+
+               Anglst.getang(np2, &theta2, &sinth2, &costh2);
+
+               if (np == (GeoPar.prjnum - 1))
+                       theta2 += thmod;
+               w = (theta2 - theta0) / thfac;
+               if (w <= 0.0)
+               {
+                       fprintf(output, "\n *** angles not in increasing order");
+
+                       if (g != NULL)
+                               delete[] g;
+                       if (q != NULL)
+                               delete[] q;
+                       if (gp != NULL)
+                               delete[] gp;         //wei 3/2005
+
+                       return TRUE;
+               }
+
+               Fourie.rinc = GeoPar.pinc;
+
+               if (GeoPar.vri)
+                       Fourie.rinc = GeoPar.pinc * (REAL) MAX0(fabs(sinth), fabs(costh));
+               if (GeoPar.div)
+                       Fourie.rinc = GeoPar.pinc * GeoPar.radius / GeoPar.stod;
+
+               w /= Fourie.rinc;
+
+               if (GeoPar.strip)
+                       w /= Fourie.rinc;
+
+               theta0 = theta1;
+
+               // COMPUTE CONVOLUTED PROJECTIONS
+
+               izro = (GeoPar.usrays - gpnum) / 2;
+
+               gpi = gp;
+
+               for (nr = 0; nr < gpnum; nr++)
+               {
+                       gi = g;
+                       qi = q + abs(izro);
+                       sum = 0.0;
+
+                       iz = MIN0(izro, GeoPar.usrays);
+                       if (iz > 0)
+                       {
+                               for (i = 0; i < iz; i++)
+                               {
+                                       sum += *gi * *qi;
+                                       gi++;
+                                       qi--;
+                               }
+                       }
+
+                       izro++;
+                       iz = MAX0(izro, 1);
+                       if (iz <= GeoPar.usrays)
+                       {
+                               for (i = iz; i <= GeoPar.usrays; i++)
+                               {
+                                       sum += *gi * *qi;
+                                       gi++;
+                                       qi++;
+                               }
+                       }
+
+                       *gpi++ = w * sum;
+               }
+
+               // BACK PROJECT THE DATA
+               bckprj(recon, GeoPar.nelem, gp, gpnum, sinth, costh,
+                               GeoPar.pixsiz / Fourie.rinc, Fourie.interp);
+
+       }
+
+       if (g != NULL)
+               delete[] g;
+       if (q != NULL)
+               delete[] q;
+       if (gp != NULL)
+               delete[] gp;         //wei 3/2005
+
+       return FALSE;
+}
+
diff --git a/src/snark/conv.h b/src/snark/conv.h
new file mode 100644 (file)
index 0000000..8ccebab
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/conv.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#ifndef CONV_H
+#define CONV_H      
+
+#include "alg.h"
+
+class conv_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif // CONV_H
diff --git a/src/snark/creacm.cpp b/src/snark/creacm.cpp
new file mode 100644 (file)
index 0000000..e5fd748
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creacm.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#include <cstdio>
+#include "creacm.h"
+
+creacm_class Creacm;
+
+creacm_class::creacm_class()
+{
+       picflg = FALSE;
+       prjflg = FALSE;
+       crt12 = FALSE;
+       modif = FALSE;
+       erflag = FALSE;
+       nave1 = 1;
+
+       // test = 0;
+       pang = NULL;
+       test = NULL;
+}
+
+creacm_class::~creacm_class()
+{
+       if (test != NULL)
+               delete[] test;
+}
+
diff --git a/src/snark/creacm.h b/src/snark/creacm.h
new file mode 100644 (file)
index 0000000..52b8ca7
--- /dev/null
@@ -0,0 +1,29 @@
+/* 
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creacm.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#ifndef CERACM_H
+#define CERACM_H
+
+#include "blkdta.h"
+
+extern class creacm_class
+{
+public:
+       BOOLEAN picflg;BOOLEAN prjflg;BOOLEAN crt12;BOOLEAN modif;BOOLEAN erflag;CHAR name[81];INTEGER percnt[7];INTEGER nave1;INTEGER nobj;INTEGER iseed;INTEGER varseed;INTEGER word1;INTEGER word2;INTEGER word3;REAL* test;REAL* pang;
+
+       REAL* recon;
+
+       REAL aperwt[13];
+
+       creacm_class();
+       ~creacm_class();
+} Creacm;
+
+#endif
diff --git a/src/snark/creaer.cpp b/src/snark/creaer.cpp
new file mode 100644 (file)
index 0000000..a16581d
--- /dev/null
@@ -0,0 +1,165 @@
+/*      
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creaer.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS SUBROUTINE HANDLES THE ERRORS ENCOUNTERED IN INPUT DATA
+ PHASE FOR CREATR
+ */
+
+#include <cstdlib>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "creacm.h"
+#include "uiod.h"
+
+#include "int2str.h"      
+
+#include "creaer.h"
+
+void creaer(INTEGER code)
+{
+       INTEGER word;
+
+       Creacm.erflag = TRUE;
+       word = code;
+       if ((code < 1) || (code > 27))
+               code = 2;
+
+       switch (code)
+       {
+
+       case 1:
+               fprintf(output,
+                               "\n **** only one create/picture/projection command allowed");
+               break;
+
+       case 2:
+               fprintf(output, "\n **** keyword -  %s  - missing", int2str(word));
+               break;
+
+       case 3:
+               fprintf(output, "\n **** 0 or more than 7 energy levels");
+               break;
+
+       case 4:
+               fprintf(output,
+                               "\n **** percentage of photons is negative or total is not = 100");
+               break;
+
+       case 5:
+               fprintf(output,
+                               "\n **** unknown object type - not ellipse, rectangle, triangle, sector or segment");
+               break;
+
+       case 6:
+               fprintf(output,
+                               "\n **** value for semiaxes for object is negative, 0 or too small");
+               break;
+
+       case 7:
+               fprintf(output, "\n **** scale factor is too small or zero");
+               break;
+
+       case 8:
+               fprintf(output,
+                               "\n **** value for nave1 or nave2 is negative, zero, or even; or nave2 > 13");
+               break;
+
+       case 9:
+               fprintf(output, "\n **** value for nelem is negative, 0 or even");
+               break;
+
+       case 10:
+               fprintf(output,
+                               "\n **** negative, zero or too small a value for pixsiz or pinc");
+               break;
+
+       case 11:
+               fprintf(output, "\n **** inconsistent geometry specification");
+               break;
+
+       case 12:
+               fprintf(output,
+                               "\n **** uniform or variable spacing must be specified");
+               break;
+
+       case 13:
+               fprintf(output, "\n **** nrays is negative, zero or even");
+               break;
+
+       case 14:
+               fprintf(output, "\n **** number of projections is negative or zero");
+               break;
+
+       case 15:
+               fprintf(output,
+                               "\n **** ray calculation option must be user or program");
+               break;
+
+       case 16:
+               fprintf(output, "\n **** calibration type out of range");
+               break;
+
+       case 17:
+               fprintf(output,
+                               "\n **** scattering peak or width is negative, zero or too small");
+               break;
+
+       case 18:
+               fprintf(output,
+                               "\n **** unknown noise type or keyword or seed/back missing");
+               break;
+
+       case 19:
+               fprintf(output,
+                               "\n **** aperture weight given is negative, or sum of aperture weights is negative or zero");
+               break;
+
+       case 20:
+               fprintf(output, "\n **** equal spacing but only 1 projection");
+               break;
+
+       case 21:
+               fprintf(output,
+                               "\n **** mono or polychromatic spectrum must be specified");
+               break;
+
+       case 22:
+               fprintf(output, "\n");
+               break;
+
+       case 23:
+               fprintf(output,
+                               "\n **** picture description must preceed projection data");
+               break;
+
+       case 24:
+               fprintf(output,
+                               "\n **** test picture not present - pseudo data not created");
+               break;
+
+       case 25:
+               fprintf(output,
+                               "\n **** unexpected end of file or line, insufficient data");
+               break;
+
+       case 26:
+               fprintf(output,
+                               "\n **** quantum mean or calibration is negative or too small");
+               break;
+
+       case 27:
+               fprintf(output,
+                               "\n **** value of multiplicative noise mean is too small");
+               break;
+       };
+
+       fprintf(output, "\n **** program aborted\n");
+       exit(-1);
+}
diff --git a/src/snark/creaer.h b/src/snark/creaer.h
new file mode 100644 (file)
index 0000000..6fdf118
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creaer.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#ifndef CREAER_H
+#define CREAER_H      
+
+void creaer(INTEGER code);
+
+#endif
diff --git a/src/snark/creaph.cpp b/src/snark/creaph.cpp
new file mode 100644 (file)
index 0000000..ebe5ea9
--- /dev/null
@@ -0,0 +1,445 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creaph.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+
+ GENERATES A TEST PHANTOM
+ *
+ *                             jk 11/18/2007 introducing variability
+ *                             jk 05/30/2008 redesigned and corrected implementation of variability
+ *              the variability has to be added to each pixel at each energy
+ *              level (polychromatic data) - in case of monochromatic data 
+ *              there is simply only one energy level
+ *              each pixel value is calculated according to the formula:
+ *              1/(NAVE1^2) sum_{k=1 to NAVE1^2} sum_{j=1 to NOBJ} delta_{k,j}
+ *                         sum_{i=1 to NERGY} (1+g_{j,i}) d_{j,i}p_{i}
+ *              (see snark14 manual for explanation of the above value)
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+#include <string.h>
+#include <time.h>
+
+#include "blkdta.h"
+#include "creacm.h"
+#include "geom.h"
+#include "objects.h"
+#include "uiod.h"
+
+#include "file11.h"
+
+#include "creaph.h"
+
+#include "assert.h"
+
+//jk 11/18/2007 introducing variability
+//following header files needed for adding tissue variability 
+#include "DIGGauss.h"
+#include "consts.h"
+//jk  05/30/08   a new header file needed
+#include "spctrm.h"
+
+void creaph()
+{
+
+       int i, j, k, n, ii, jj, index, ne; //loop counter variables
+       REAL g; //temp variable for Gaussian value
+       INTEGER rows; //temp variable for storing number of items in the rows
+
+       REAL nmid;
+
+       REAL unew;
+       REAL vnew;
+       REAL covru;
+       REAL covrv;
+       REAL sivru;
+       REAL sivrv;
+       REAL diam;
+       REAL vbyusq;
+       REAL xcntr;
+       REAL ycntr;
+       REAL denobj[7]; //temporarily stores the density of a pixel during computations
+       //the value for each energy level is needed (max 7)
+
+       REAL co;
+       REAL si;
+
+       INTEGER ny;
+       REAL yo;
+       INTEGER nx;
+       REAL densit[7]; //temporarily stores the density of a pixel during computations
+       //the value for each energy level is needed (max 7)
+
+       INTEGER ny0;
+       INTEGER nx0;
+
+       INTEGER npts;
+       INTEGER sample;
+       INTEGER itype;
+
+       REAL yc, xc, xo;
+
+       // ALLOCATE WORKING SPACE - ONLY ONE ROW OF PIXELS IS NEEDED AT ONCE
+
+       REAL * test_aray[8]; //stores a row of pixels at a time (alocated below)
+       //each pixel needs a value for each energy level (7 of them)
+       //the last item is used to store the average value
+       REAL* coord_aray = NULL;
+
+       //allocate enough space for one row (up to 7 energy levels + one more for average
+       for (ne = 0; ne < 8; ne++)
+               test_aray[ne] = new REAL[GeoPar.nelem];
+
+       //jk 11/18/2007 introducing variability
+       //allocate memory for the array that holds variability data
+       //(for each of the energy levels)
+       //do so only if the variability is not equal to zero
+       memset(variab_array, 0, 7);
+       if (variab_set)
+       {
+               for (ne = 0; ne < Spctrm.nergy; ne++)
+               {
+                       variab_array[ne] = new REAL[GeoPar.nelem * GeoPar.nelem];
+                       memset(variab_array[ne], 0, 7);
+               }
+
+       }
+
+       //jk 09/19/2008 modifying how polychromatic pseudo projections are computed
+       //in the iterative runs of beam hardening correction
+       memset(phantom_poly_array, 0, 7);
+       for (ne = 0; ne < Spctrm.nergy; ne++)
+       {
+               phantom_poly_array[ne] = new REAL[GeoPar.nelem * GeoPar.nelem];
+               memset(phantom_poly_array[ne], 0, GeoPar.nelem * GeoPar.nelem);
+       }
+
+       // THIS RUN IS FIRST GENERATION OF PHANTOM
+       // ALLOCATE SPACE FOR SUBPIXELS
+       npts = GeoPar.nelem * Creacm.nave1;
+
+       coord_aray = new REAL[npts];
+
+       nmid = (REAL) (npts / 2);
+
+       // PRESET THE COORDINATES OF EACH SUBPIXEL CENTER
+       for (n = 0; n < npts; n++)
+       {
+               coord_aray[n] = (((REAL) (n)) - nmid) * GeoPar.pixsiz
+                               / ((REAL) (Creacm.nave1));
+       }
+
+       // COMPUTE THE NUMBER OF SAMPLES PER PIXEL FOR AVERAGING
+       sample = Creacm.nave1 * Creacm.nave1;
+
+       //set the seed for variability creation
+       if (variab_set)
+       {
+               if (Creacm.varseed < 0)
+                       Srand(time(NULL));
+               else if (Creacm.varseed > 0)
+                       Srand(Creacm.varseed);
+               else
+                       Srand(1); //this generates the default sequence as if Srand was
+               //not called (it is called here to start this default
+               //sequence over
+       }
+
+       for (ne = 0; ne < Spctrm.nergy; ne++)
+       {
+
+               ny0 = -Creacm.nave1;
+               nx0 = 0;
+
+               // GET EACH PIXEL DENSITY
+               for (j = 0; j < GeoPar.nelem; j++)              // for each pix row
+               {
+
+                       ny0 += Creacm.nave1;
+
+                       for (k = 0; k < GeoPar.nelem; k++)
+                       {
+                               // clear row buffer
+                               test_aray[ne][k] = 0;
+                       }
+
+                       // IF NO OBJECT SPECIFIED THEN GENERATE BLANK PHANTOM
+                       if (Creacm.nobj > 0)
+                       {
+
+                               // for each object
+                               for (index = 0; index < Creacm.nobj; index++)
+                               {
+
+                                       itype = objects[index].type;
+
+                                       // SKIP IF OBJECT WAS DELETED FROM LIST
+                                       co = objects[index].cosang;
+                                       si = objects[index].sinang;
+                                       if (fabs(co - 1) < 0.000001)
+                                               co = 1.;
+                                       if (fabs(co + 1) < 0.000001)
+                                               co = -1.;
+                                       if (fabs(co) < 0.000001)
+                                               co = 0.;
+                                       if (fabs(si - 1) < 0.000001)
+                                               si = 1.;
+                                       if (fabs(si + 1) < 0.000001)
+                                               si = -1.;
+                                       if (fabs(si) < 0.000001)
+                                               si = 0.;
+                                       unew = objects[index].u;
+                                       vnew = objects[index].v;
+                                       covru = co / unew;
+                                       covrv = co / vnew;
+                                       sivru = si / unew;
+                                       sivrv = si / vnew;
+                                       // 9/12/2012 jklukowska                                 
+                                       //if the unew and/or vnew are smaller than the size of the pixel,
+                                       //use the size of the pixel as max 
+                                       diam = (REAL) 1.5 * MAX0(MAX0(unew, vnew), GeoPar.pixsiz);
+//                    diam = (REAL) 1.5 * MAX0(unew, vnew);
+                                       vbyusq = (vnew / unew) * (vnew / unew);
+                                       xcntr = objects[index].cx;
+                                       ycntr = objects[index].cy;
+
+                                       denobj[ne] = objects[index].den1[ne];
+
+                                       ny = ny0;
+
+                                       // for each subpix
+                                       for (jj = 0; jj < Creacm.nave1; jj++)
+                                       {
+
+                                               // SHIFT THE ORIGIN TO THE CENTER OF THE OBJECT
+                                               yo = -coord_aray[ny] - ycntr;
+                                               ny++;
+
+                                               // TEST IF THE POINT (X,Y) IS INSIDE THE INDEXED OBJECT
+                                               // IF THE ROW WE ARE AT IS OUTSIDE MAXIMUM EXTENT OF
+                                               // OBJECT, GET NEXT OBJECT
+                                               if (fabs(yo) > diam)
+                                                       goto L95;
+                                               // goto nex object
+
+                                               // MOVE ACROSS COLUMNS
+
+                                               nx = nx0;
+                                               // for each pixel in row
+                                               for (i = 0; i < GeoPar.nelem; i++)
+                                               {
+                                                       densit[ne] = 0.0;
+
+                                                       // for each subpixel
+                                                       for (ii = 0; ii < Creacm.nave1; ii++)
+                                                       {
+
+                                                               xo = coord_aray[nx] - xcntr;
+                                                               nx++;
+
+                                                               // IF COLUMN IS LEFT OF EXTENT, INCREASE X
+                                                               if (xo < -diam)
+                                                                       goto L70;
+                                                               // goto next column
+
+                                                               // IF COLUMN IS RIGHT OF EXTENT,UPDATE PIXEL ARRAY,THEN GET NEXT Y
+                                                               if (xo > diam)
+                                                               {
+                                                                       // HERE xo .gt. diam
+                                                                       test_aray[ne][i] += densit[ne];
+
+                                                                       goto L90;
+                                                                       // goto next row
+                                                               }
+                                                               // pixel within object radius
+                                                               // ROTATE BY ANGLE OF TILT
+                                                               xc = (REAL) fabs(xo * covru + yo * sivru);
+
+                                                               // CHECK XC FOR FUZZ
+                                                               if (fabs(xc) < 0.000001)
+                                                                       xc = 0.0;
+                                                               if (fabs(xc + 1.0) < 0.000001)
+                                                                       xc = -1.0;
+                                                               if (fabs(xc - 1.0) < 0.000001)
+                                                                       xc = 1.0;
+
+                                                               if (xc <= 1.0)
+                                                               {
+
+                                                                       yc = (yo * covrv - xo * sivrv);
+
+                                                                       // CHECK YC FOR FUZZ
+                                                                       if (fabs(yc) < 0.000001)
+                                                                               yc = 0.0;
+                                                                       if (fabs(yc - 1.0) < 0.000001)
+                                                                               yc = 1.0;
+                                                                       if (fabs(yc + 1.0) < 0.000001)
+                                                                               yc = -1.0;
+
+                                                                       if (yc <= 1.0)
+                                                                       {
+                                                                               switch (itype)
+                                                                               {
+                                                                               case SOT_elip: // ELLIPSE
+
+                                                                                       if ((yc >= -1.0)
+                                                                                                       && ((xc * xc + yc * yc - 1.0)
+                                                                                                                       < 0.000001))
+                                                                                       {
+                                                                                               // added tolerance - swr 11/26/04
+                                                                                               densit[ne] += denobj[ne];
+                                                                                       }
+                                                                                       break;
+
+                                                                               case SOT_rect: // RECTANGLE
+                                                                                       if (yc >= -1.0)
+                                                                                       {
+                                                                                               densit[ne] += denobj[ne];
+                                                                                       }
+                                                                                       break;
+
+                                                                               case SOT_tria: // TRIANGLE
+                                                                                       // CHECK TO SEE IF POINT IS CONTAINED IN TRIANGULAR AREA
+                                                                                       if ((yc >= 0.0)
+                                                                                                       && (xc <= (1.0 - yc)))
+                                                                                       {
+                                                                                               densit[ne] += denobj[ne];
+                                                                                               // NOW THE POINT IS INSIDE
+                                                                                               // THE OBJECTS BOUNDARIES
+                                                                                       }
+                                                                                       break;
+
+                                                                               case SOT_segm: // SEGMENT
+                                                                                       if (yc <= 0.0)
+                                                                                       {
+
+                                                                                               // CHECK TO SEE IF POINT IS CONTAINED IN TRIANGULAR AREA
+                                                                                               if (xc <= (1.0 - yc))
+                                                                                               {
+                                                                                                       //if(xc > 1.0-yc) goto L60;
+
+                                                                                                       // TEST IF POINT IS BEYOND CIRCULAR ARC
+                                                                                                       if ((xc * xc)
+                                                                                                                       <= (1.0
+                                                                                                                                       + yc
+                                                                                                                                                       * vbyusq
+                                                                                                                                                       * (2.0
+                                                                                                                                                                       - yc)))
+                                                                                                       {
+                                                                                                               // NOW THE POINT IS INSIDE THE OBJECTS BOUNDARIES
+                                                                                                               densit[ne] +=
+                                                                                                                               denobj[ne];
+
+                                                                                                       }
+                                                                                               }
+                                                                                       }
+                                                                                       break;
+
+                                                                               case SOT_sect: // SECTOR
+
+                                                                                       // CHECK TO SEE IF POINT IS CONTAINED IN TRIANGULAR AREA
+                                                                                       if (xc <= (1.0 - yc))
+                                                                                       {
+                                                                                               //if(xc > 1.0-yc) goto L60;
+                                                                                               // TEST IF POINT IS BEYOND CIRCULAR ARC
+                                                                                               if ((xc * xc)
+                                                                                                               <= (1.0
+                                                                                                                               + yc * vbyusq
+                                                                                                                                               * (2.0
+                                                                                                                                                               - yc)))
+                                                                                               {
+                                                                                                       // NOW THE POINT IS INSIDE THE OBJECTS BOUNDARIES
+                                                                                                       densit[ne] += denobj[ne];
+                                                                                               }
+                                                                                       }
+                                                                                       break;
+
+                                                                               }
+                                                                       }
+                                                               }
+                                                               L70: ;
+                                                       } // for(ii
+                                                       test_aray[ne][i] += densit[ne];
+
+                                               } //for(i
+                                               L90: ;
+                                       } //for(jj
+
+                                       L95: ;
+                               } //for(index
+
+                       }
+
+                       rows = j * GeoPar.nelem; //this avoids repetitive multiplications below
+
+                       for (k = 0; k < GeoPar.nelem; k++)
+                       {
+                               // TAKE THE AVERAGE BY DIVIDING BY THE NUMBER OF SAMPLES
+                               if (Creacm.nave1 != 1)
+                               {
+                                       test_aray[ne][k] /= sample;
+                               }
+                               //jk 11/18/2007 introducing variability
+                               //ADD TISSUE VARIABILITY TO THE PHANTOM DATA
+                               //variab_array[row][column] is assigned the value of variability for
+                               //each pixel
+
+                               //if the pixel belongs to the background (i.e. the density value
+                               //is zero for each energy level) the value is set to 0
+                               //(no variability is added to the background pixels)
+                               if (variab_set)
+                               {
+
+                                       if (fabs(test_aray[ne][k]) > Consts.zero)
+                                       {
+                                               g = Gauss(0.0, variability) * test_aray[ne][k];
+                                               test_aray[ne][k] += g;
+                                               variab_array[ne][k + rows] = g;
+
+                                       }
+
+                                       else
+                                       {
+                                               variab_array[ne][k + rows] = 0;
+                                       }
+
+                               }
+
+                               phantom_poly_array[ne][k + rows] = test_aray[ne][k];
+                       }
+                       for (k = 0; k < GeoPar.nelem; k++)
+                       {
+                               assert(phantom_poly_array[ne][rows + k] == test_aray[ne][k]);
+                       }
+
+                       //write row of pixels to file11 (use the weighted average
+                       //of all the energy levels)
+                       //File11.WriteRowOfPhanPixels(test_aray[7], GeoPar.neleM);
+                       // jk 07/08/2008 use the value of the first energy level
+                       // for phantom, instead of the weighted average)
+                       if (ne == 0)
+                               File11.WriteRowOfPhanPixels(test_aray[0], GeoPar.nelem);
+
+               }  //for j
+       } //for ne
+       File11.WriteEndOfPhan();
+
+       //delete allocated memory
+       if (coord_aray != NULL)
+               delete[] coord_aray;
+
+       for (ne = 0; ne < 8; ne++)
+       {
+               if (test_aray[ne] != NULL)
+                       delete[] test_aray[ne];
+       }
+       //delete[] test_aray;
+
+       return;
+}
diff --git a/src/snark/creaph.h b/src/snark/creaph.h
new file mode 100644 (file)
index 0000000..12bff0b
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creaph.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#ifndef CREAPH_H
+#define CREAPH_H
+
+void creaph();
+
+#endif
diff --git a/src/snark/creapr.cpp b/src/snark/creapr.cpp
new file mode 100644 (file)
index 0000000..c67c2a3
--- /dev/null
@@ -0,0 +1,289 @@
+/*
+**********************************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creapr.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+**********************************************************************
+
+ * THIS SUBROUTINE GENERATES PROJECTION DATA
+ * Modified to simulate emission tomography if quanin = 4 by D. Odhner
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+#include <time.h>
+
+#include "blkdta.h"
+#include "creacm.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "noise.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include <DIGGauss.h>
+#include <DIGPoisson.h>
+#include "posit.h"
+#include "anglst.h"
+#include "raylen.h"
+#include "file11.h"
+#include "anglst.h"
+
+#include "creapr.h"
+
+//jk 11/18/2007 introducing variability
+#include "ray.h"
+#include "wray.h"
+
+
+// bug 221 - moved noise stuff to noise.cpp - swr - 3/2/07
+
+void creapr(  ) {
+
+    REAL sum;
+    REAL variability_subray_sum;
+
+    REAL theta, sinth, costh, raysum;
+    REAL weight;
+    REAL strpwt;
+
+    INTEGER i, k, n, nnr, np, l, nr, nb;
+
+    //jk 11/18/2007 introducing variability
+    //variables needed for computation of projections through 
+    INTEGER * list;
+    list = new INTEGER[2 * GeoPar.nelem];
+    REAL * weight_pix;
+    weight_pix = new REAL[2 * GeoPar.nelem];
+    INTEGER * numb;
+    numb = new INTEGER;
+    REAL * snorm;
+    snorm = new REAL;
+
+
+    REAL* ind;
+    REAL* nlo;
+
+    REAL emr[13][7], ax, ay, mx, my;
+    REAL* pbase = NULL; //wei 3/2005
+
+    // COMPUTE PROJECTION BY PROJECTION  HENCE WE NEED SPACE FOR
+    // ONLY ONE PROJECTION OF LENGTH NRAYS
+    // NLO WILL DENOTE THE FIRST RAY AND NHI THE LAST RAY
+
+
+    pbase = new REAL[GeoPar.usrays];
+    nlo = pbase;
+
+    //jk 09/28/2008 start the seed for noise generation here, so it is not
+    //influenced by variability number generation
+    
+    //if any type of noise is used
+    if (NoisePar.quanin != NONOISE || NoisePar.addnfl 
+            || NoisePar.ultnfl || NoisePar.sctnfl) {
+        //then set the seed
+        if (Creacm.iseed < 0) Srand(time(NULL));     // bug 184 - swr - 11/04/05
+        else if (Creacm.iseed > 0) Srand(Creacm.iseed);
+        else Srand(1);  //set the default seed so that the default sequence 
+                        //is the same regardless of presence of variability before
+    }
+
+    
+    //jk 11/18/2007 introducing variability
+    //stores the value of projection, written to the FILE11 after each projection
+    //hence we need only one
+    REAL * pseudoray = NULL;
+    pseudoray = new REAL[GeoPar.usrays];
+
+
+    // SUBDIVIDE RAYS FOR AVERAGING OVER  NAVE2 SUBRAYS/SUBSTRIPS
+    // CHANGE PINC, NRAYS AND MIDRAY IN /GEOM/ FOR USE BY POSIT.
+    // WHEN RDPROJ IS DONE THEESE VALUES WILL BE RESTORED
+    // SAVE PINC IN WEIGHT FOR STRIP CASE
+
+    weight = GeoPar.pinc;
+    strpwt = weight;
+    GeoPar.pinc /= GeoPar.nave2;
+    GeoPar.nrays = GeoPar.usrays * GeoPar.nave2;
+    GeoPar.midray = GeoPar.nrays / 2;
+
+    // STORE SINE AND COSINE OF ANGLE SUBTENDED BY EACH SUBRAY AT SOURCE
+    // FOR DIVERGENT CASE ONLY FOR USE BY 'POSIT'
+
+    if (GeoPar.div) Anglst.genphi();
+
+
+    // SELECT PROJECTION BY PROJECTION AND CALCULATE PROJECTION DATA
+
+    // IF PHANTOM IS BLANK ATTENUATION IS THAT DUE TO BACKGROUND
+
+    for (n = 0; n < GeoPar.nave2; n++) 
+       {
+        for (l = 0; l < Spctrm.nergy; l++) 
+               {
+            emr[n][l] = NoisePar.raysum(Spctrm.backgr[l]);
+        }
+    }
+
+    for (np = 0; np < GeoPar.prjnum; np++) { //230
+        // IF CALIBRATION TYPE 1   GET THE CALIBRATION MEASUREMENT HERE
+
+        Anglst.getang(np, &theta, &sinth, &costh);
+
+        if (GeoPar.vri) strpwt = (REAL) (MAX0(fabs(sinth), fabs(costh)) * weight);
+
+        nnr = 0;
+
+        for (nr = 0; nr < GeoPar.usrays; nr++) 
+               {
+
+            if (!Creacm.modif) 
+                       {
+                if (Creacm.nobj > 0) 
+                               {
+
+                    // CALCULATE CONTRIBUTION TO ATTENUATION BY EACH OBJECT FOR
+                    // EACH SUBRAY (1 TO NRAYS)
+
+                    for (n = 0; n < GeoPar.nave2; n++) 
+                                       {
+
+                        posit(np, nnr, &ax, &ay, &mx, &my);
+                        nnr++;
+
+                        for (k = 0; k < Creacm.nobj; k++) 
+                                               {
+#ifdef FFCOMPARE
+                                                       
+                            REAL raylen_temp = raylen(objects[k].type, ax, ay, mx, my, objects[k].cx, objects[k].cy, objects[k].u, objects[k].v, objects[k].cosang, objects[k].sinang);
+
+                            // rounding !!!
+                            raylen_temp = (REAL) ((INTEGER) ((REAL) 10.0 * raylen_temp)) / (REAL) 10.0;
+
+                            objects[k].rayl = raylen_temp;
+
+#else
+                            objects[k].rayl = raylen(objects[k].type, ax, ay, mx, my, objects[k].cx, objects[k].cy, objects[k].u, objects[k].v, objects[k].cosang, objects[k].sinang);
+#endif
+                        }
+                        
+                        
+                        //////////////////////////////////////////////////////////////////////////////////////////
+                        //if variability is set then we need to add line integrals through variability data
+                        //to calculations of projection data
+                        if (variab_set) 
+                                               {
+                            
+                                                       //                            get information about the pixels through which the ray passes
+                                                       //                            (it will be used below when the contributions are computed 
+                                                       //                            for each energy level):
+                                                       //                            
+                                                       //                            numb      THE NUMBER OF PIXELS A RAY PASSES THROUGH
+                                                       //                            snorm     SUM OF SQUARES OF WEIGHTS
+                                                       //                            weight_pix    THE LENGTH OF A RAY IN A PIXEL(CORRESPONDING TO
+                                                       //                                      ENTRY IN THE ARRAY LIST)
+                                                       //                            list      THE LIST OF INDECIES INTO THE ARRAY variab_array THAT CORRESP
+                                                       //                                      TO THE SILECTED PIXELS
+                                                       //                            values of ax, ay, mx and my are reused from a previous call to 
+                                                       //                            posit(np, nnr, &ax, &ay, &mx, &my);
+                            wray(np, nnr, list, weight_pix, numb, snorm, &ax, &ay, &mx, &my);
+                            
+                        }
+
+                        //////////////////////////////////////////////////////////////////////////////////////////                    
+                        //add together all the contributions to the subray    
+                        for (l = 0; l < Spctrm.nergy; l++) 
+                                               {
+                            //background absorption
+                            raysum = Spctrm.backgr[l];
+                            //variability (if present)
+                            if (variab_set) 
+                                                       {
+                                variability_subray_sum = 0.0;
+                                //if the ray went through any pixels compute the contribution to the integral
+                                if (*numb != 0) 
+                                                               {
+                                    //for each pixels through which the ray goes
+                                    for (nb = 0; nb < *numb; nb++) 
+                                                                       {
+                                        //add the contribution of the pixel to subray at energy level l
+                                         variability_subray_sum += variab_array[l][list[nb]] * weight_pix[nb];
+                                    }
+                                }
+                                
+                                raysum += variability_subray_sum; //jk 5/21/2008  add the line ray sum for variability
+                            }
+                            //contributions from all the objects
+                            for (k = 0; k < Creacm.nobj; k++) 
+                                                       {
+                                raysum += objects[k].den1[l] * objects[k].rayl;
+                            }
+
+                            emr[n][l] = NoisePar.raysum(raysum);
+                        } // for l
+                    }  //for n
+                } //if (Creacm.nobj > 0) 
+            } //if (!Creacm.modif)
+
+            
+            // CALCULATE NO. OF PHOTONS OR ABSORPTION WEIGHTED BY APERTURE WT
+            // AND THE SPECTRAL DISTRIBUTION
+
+            sum = 0.0;
+            for (n = 0; n < GeoPar.nave2; n++) 
+                       {
+                for (l = 0; l < Spctrm.nergy; l++) 
+                               {
+                    sum += Creacm.aperwt[n] * Spctrm.engwt[l] * emr[n][l];
+                }
+            }
+
+
+            // APPLY QUANTUM NOISE
+            pbase[nr] = NoisePar.applyQuantumNoise(np, nr, sum);
+
+        }
+
+        // COMPUTE ATTENUATION
+        NoisePar.scatterNoise(pbase);
+
+
+        // GET ACTUAL ATTENUATION AFTER CALIBRATION AND APPLY ADDITIVE, MULT
+        // NOISE
+        ind = pbase;
+        for (nr = 0; nr < GeoPar.usrays; nr++) 
+               {
+            *ind = NoisePar.computeAttenuation(np, nr, *ind);
+            if (GeoPar.strip) *ind *= strpwt;
+
+            *ind = NoisePar.multiplicativeNoise(*ind);
+            *ind = NoisePar.additiveNoise(*ind);
+
+
+            ind++;
+        }
+
+        File11.WriteProj(theta, pbase, GeoPar.usrays);
+
+    }
+
+    File11.WriteEndOfProj();
+
+    //Clean up all the allocated memory
+    if (pbase != NULL) delete[] pbase;
+    if (list != NULL) delete [] list;
+    if (weight_pix != NULL) delete [] weight_pix;
+    if (numb != NULL) delete numb;
+    if (snorm != NULL) delete snorm;
+    if (pseudoray != NULL) delete pseudoray;
+    
+    for (i= 6; i >= 0; i--) 
+       {
+        if (variab_array[i] != NULL)  delete [] variab_array[i];  //it was allocated in creaph.cpp 
+    }
+    
+    return;
+}
diff --git a/src/snark/creapr.h b/src/snark/creapr.h
new file mode 100644 (file)
index 0000000..b1f862f
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+**********************************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creapr.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+**********************************************************************
+*/
+
+#ifndef CREAPR_H
+#define CREAPR_H
+      
+void creapr();
+
+#endif
diff --git a/src/snark/create_phantom.c b/src/snark/create_phantom.c
new file mode 100644 (file)
index 0000000..de4e373
--- /dev/null
@@ -0,0 +1,395 @@
+/*
+**********************************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/create_phantom.c $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+**********************************************************************
+
+ Previously part of SuperSNARK
+ */
+
+/*--------------------------------------------------------------------------
+ * Super Snark V 1.0
+ * Written by Jingsheng Zheng... November 1993
+ * Modified by Jolyon Browne ... June 1993
+ * --------------------------------------------------------------------------*/
+
+#include <string.h>
+#include <strings.h>
+#include <stdlib.h>
+
+#include "experimenter.h"
+#include "blanks.h"
+#include "errorc.h"
+#include "create_phantom.h"
+
+/*--------------------------------------------------------------------------
+ * This fuction generates the input lines that defines the elemental
+ * objects as required by the CREATE command.
+ *
+ * INPUTS:
+ * phan_flname - phantom filename (Note: the list of phantom filenames are
+ * stored in the ensemble data file).
+ * seed - seed used for the random number generator.
+ * navel, nelem,pixsz - modifiers described by Set 4 of the SNARK CREATE
+ * input sequence (see the SNARK manual for details).
+ *
+ * OUTPUTS:
+ * structure - string array of length num_str containing the elemental object
+ * description.
+ * num_str - number of structures in the phantom.
+ * num_pairs - for PAIRed structures, this is the number of pairs of
+ * structures.
+ * pairs - array of length 2*num_pairs containing the indicies of all PAIRed
+ * structures.
+ * ----------------------------------------------------------------------------*/
+
+void create_phantom(
+        char* phan_flname,
+        long seed,
+        int navel,
+        int nelem,
+        float pixsz,
+        char*** structure, //jk 01/01/08 modified to remove
+        // restriction for number of structures
+        int* num_str,
+        int* num_pairs,
+        int** pairs, //jk 01/01/08 modified to remove
+        // restriction for number of structures
+        int iroi_used //jk  09/07/2008   added a check to verify that
+        //density of one out of each paired  structures is zero
+        )
+{
+    float cx, cy, u, v, ang, den1, den2, prob, tmp;
+    float scale, sd;
+    int i, nstr = 0, npair = 0, tot_nstr = 0; //jk 01/01/2008 added tot_nstr
+    //variable to keep track of the number
+    //of structures in the phantom
+    int scaleCount = 0; //keeps track of how many times line starting with SCALE
+                        //appeared in the input file (it should be exactly 1
+                        //at the end of the file construction).
+
+    char shape[10], keyword[4], string[MAXLINESIZE];
+    FILE *phanfl;
+
+    *num_pairs = 0;
+
+    //jk 09/20/2008
+    char spect[10], spectType[15];
+    int erg, nerg;
+    int poly = 0;
+    int change = 0;
+    char toc[14][MAXLINESIZE];
+    int polyErg[7];
+    int polyProb[7];
+    char string_alt[MAXLINESIZE];
+    long phantom_seed = (long) (100000000 * drand48() );
+
+    if ((phanfl = fopen(phan_flname, "r")) == NULL) {
+        errorc("In create_phantom.c: error in opening file ", phan_flname);
+    }
+
+    /* print out beginning of CREATE input sequence */
+
+    fprintf(pstream, "CREATE\n");
+    fprintf(pstream, "%s, seed used in experimenter to generate this file = %ld\n", phan_flname, seed);
+
+    // jk 09/20/2008 adding polychromatic data option
+    if (fgets(string, sizeof (string), phanfl) == NULL) {
+        errorc("error: premature end of file encountered ", phan_flname);
+    }
+    while ( isSkip(string) ) //it's a comment line,
+    {                          //echo it to output and read next line
+        if( isComment(string) )
+        {
+            fprintf(pstream, "%s", string);
+            if ( fgets(string, sizeof (string), phanfl) == NULL) break;
+        }
+    }
+    if (strncasecmp(string, "SPEC", 4) == 0) 
+       {
+        sscanf(string, "%s%s%i", spect, spectType, &erg);
+        
+               if (strncasecmp(spectType, "mono", 4) == 0)
+            fprintf(pstream, "SPECTRUM MONOCHROMATIC %i\n", erg);
+        
+               else if (strncasecmp(spectType, "poly", 4) == 0) 
+               {
+            nerg = erg;
+            if (nerg > 7) 
+                       {
+                errorc("error: too many energy levels specified ", phan_flname);
+            }
+            poly = 1;
+            fprintf(pstream, "SPECTRUM POLYCHROMATIC %i\n", nerg);
+        }
+    }
+    if (poly) 
+       {
+        if (fgets(string, sizeof (string), phanfl) == NULL) 
+               {
+            errorc("error: premature end of file encountered ", phan_flname);
+        }
+        while ( isBlank(string) ) //skip blank lines
+            if ( fgets(string, sizeof (string), phanfl) == NULL) break;
+               
+               fprintf(pstream, "%s", string);
+    }
+
+    fprintf(pstream, "OBJECTS\n");
+
+
+    /* jk 01/01/08
+     * scan the file to count the structures, then
+     * allocate two arrays: structure[][] and pairs[] to hold the info about
+     * the structures
+     * this allows for "unlimited" number of structures in the phantom
+     */
+    while ((fgets(string, sizeof (string), phanfl)) != NULL) 
+       {
+
+        if (   strncasecmp(string, "dumm", 4) == 0 ||
+                strncasecmp(string, "sing", 4) == 0 ||
+                strncasecmp(string, "pair", 4) == 0 ||
+                strncasecmp(string, "scal", 4) == 0) 
+               {
+            
+                       /* keyword is 'dummy','pair', 'single' or 'scale' */
+            strncpy(keyword, string, 4);
+        } 
+               
+               else if ( isSkip(string) ) //the line is a comment or blank, skip it
+               {;} 
+               
+               else if (strncasecmp(keyword, "pair", 4) == 0) 
+               {
+            tot_nstr = tot_nstr + 2;
+        } 
+               
+               else if (strncasecmp(keyword, "sing", 4) == 0) 
+               {
+            tot_nstr = tot_nstr + 1;
+        }
+        /*else do nothing - DUMMY structures do not count */
+    }
+
+    //allocate the arrays
+    *pairs = calloc(tot_nstr, sizeof (int));
+
+    *structure = calloc(tot_nstr, sizeof (char*));
+
+    for (i = 0; i < tot_nstr; i++) 
+       {
+        (*structure)[i] = calloc(MAXLINESIZE, sizeof (char));
+    }
+
+    //set pointer to the file at its beginning
+    rewind(phanfl);
+
+    while ((fgets(string, sizeof (string), phanfl)) != NULL) 
+       {
+
+        if (   strncasecmp(string, "dumm", 4) == 0 ||
+                strncasecmp(string, "sing", 4) == 0 ||
+                strncasecmp(string, "pair", 4) == 0 ||
+                strncasecmp(string, "scal", 4) == 0 ||
+                strncasecmp(string, "spec", 4) == 0) 
+               {
+            /* keyword is 'dummy','pair', */
+            strncpy(keyword, string, 4); /* 'single' or 'scale'  or 'spec'*/
+        }
+               
+               else if ( isComment(string) ) //the line is a comment, echo it to pstream
+               {
+                       fprintf(pstream, "%s", string);
+               }
+               
+               else if ( isBlank(string) ) //the line is blank, skip it
+               {;}
+               
+        else if (strncasecmp(keyword, "spec", 4) == 0) 
+               {
+            //ignore the next line after spec, if any; if was written to pstream before
+        } 
+               
+               else if (strncasecmp(keyword, "pair", 4) == 0) 
+               {
+                        /* if a paired structure:
+                        (a) increment number of pairs read in;
+                        (b) read in description of pair;
+                        (c) errorchk2: make sure paired objects have unequal densities;
+                        (d) randomly assign densities and save first structure;
+                        (e) print out structure description onto SNARK input stream;
+                        (f) save second structure and also print this structure's
+                        description onto SNARK input stream. 
+                        */
+
+            if (strlen(string) - 1 != blanks(string) && isValidObject(string) )        /* non-blank line */
+            {   
+                               (*num_pairs)++;
+                sscanf(string, "%s%f%f%f%f%f%f%f%f", shape, &cx, &cy, &u, &v,
+                        &ang, &den1, &den2, &prob);
+                errorchk2(den1, den2, prob, iroi_used);
+                if (poly)  //read the next two lines with polychromatic densities
+                {
+                                       fgets(string, sizeof (string), phanfl);
+                    while ( isSkip(string) ) //it's a comment line,
+                    {                    //echo it to output and read next line
+                        if( isComment(string) )     fprintf(pstream, "%s", string);
+                        if ( fgets(string, sizeof (string), phanfl) == NULL) break;
+                    }
+
+                    fgets(string_alt, sizeof (string), phanfl);
+                    while ( isSkip(string) ) //it's a comment line,
+                    {                    //echo it to output and read next line
+                        if( isComment(string) )     fprintf(pstream, "%s", string);
+                        if ( fgets(string, sizeof (string), phanfl) == NULL) break;
+                    }
+                }
+                change = 0;
+                if (drand48() > prob) 
+                               {
+                    tmp = den1;
+                    den1 = den2;
+                    den2 = tmp;
+                    change = 1;
+                }
+                sprintf((*structure)[nstr], "%s %f %f %f %f %f", shape, cx, cy, u, v, ang);
+                (*pairs)[npair++] = nstr + 1;
+                fprintf(pstream, "%s %f\n", (*structure)[nstr++], den1);
+                if (poly)  //print the remaining densities for polychromatic
+                {    
+                                       if (change) fprintf(pstream, "%s", string_alt);
+                    else fprintf(pstream, "%s", string);
+                }
+                sprintf((*structure)[nstr], "%s %f %f %f %f %f", shape, -cx, cy, u, v, -ang);
+                (*pairs)[npair++] = nstr + 1;
+                fprintf(pstream, "%s %f\n", (*structure)[nstr++], den2);
+                if (poly)  //print the remaining densities for polychromatic
+                {
+                                       if (change) fprintf(pstream, "%s", string);
+                    else fprintf(pstream, "%s", string_alt);
+                }
+            }  
+                       else errorc("Wrong command string in ", phan_flname);
+        } 
+               else if (strncasecmp(keyword, "sing", 4) == 0) 
+               {
+                       /* if a single structure then print out its description onto
+                       SNARK's input stream. Also save this structure's description */
+
+            if (strlen(string) - 1 != blanks(string) && isValidObject(string) )         /* non-blank line */
+            {
+                               fprintf(pstream, "%s", string);
+                sscanf(string, "%s%f%f%f%f%f", shape, &cx, &cy, &u, &v, &ang);
+                sprintf((*structure)[nstr++], "%s %f %f %f %f %f", shape, cx, cy, u, v, ang);
+                if (poly)  //read and print the next  line with polychromatic densities
+                {
+                                       fgets(string, sizeof (string), phanfl);
+                    while ( isSkip(string) ) //it's a comment line,
+                    {                    //echo it to output and read next line
+                        if( isComment(string) )     fprintf(pstream, "%s", string);
+                        if ( fgets(string, sizeof (string), phanfl) == NULL) break;
+                    }
+                    fprintf(pstream, "%s", string);
+                }
+            }  
+                       else errorc("Wrong command string in ", phan_flname);
+        }/* for 'scale' and 'dummy' merely echo the input */
+               
+               else if (strncasecmp(keyword, "scal", 4) == 0) 
+               {
+                       tmp = sscanf(string, "%f%f", &scale, &sd);
+            if (tmp == 2)   //print all: scale, phantom_seed and sd
+            {
+                               if (sd <= 0)  errorc("Value of standard deviation cannot be negative "
+                                           "in SCALE followup line in ", phan_flname);
+                fprintf(pstream, "last %f %ld %f \n", scale, phantom_seed, sd);
+            }
+            else if (tmp == 1)   //print only scale
+                fprintf(pstream, "last %f \n", scale);
+            else
+                errorc("Invalid SCALE followup line in ", phan_flname);
+            scaleCount++;
+        } 
+               else if (strncasecmp(keyword, "dumm", 4) == 0) 
+               {
+            if (strlen(string) - 1 != blanks(string) && isValidObject(string) ) 
+                       {
+                fprintf(pstream, "%s", string);
+                if (poly) { //read and print the next line with polychromatic densities
+                    fgets(string, sizeof (string), phanfl);
+                    while ( isSkip(string) ) //it's a comment line,
+                    {                    //echo it to output and read next line
+                        if( isComment(string) )     fprintf(pstream, "%s", string);
+                        if ( fgets(string, sizeof (string), phanfl) == NULL) break;
+                    }
+                    fprintf(pstream, "%s", string);
+                }
+            }  
+                       else errorc("Wrong command string in ", phan_flname);
+                       
+        } 
+               else errorc("Wrong command string in ", phan_flname);
+               
+    }
+
+    if( scaleCount != 1)
+        errorc("SCALE and its followup line should appear exactly once in ", phan_flname);
+
+    *num_str = nstr;
+    fclose(phanfl);
+    fprintf(pstream, "phantom average %d\n", navel);
+    fprintf(pstream, "%d %f \n", nelem, pixsz);
+}
+
+/*
+ * This function checks to make sure that PAIRed structures do
+ * not have the same density. Also checks to ensure that the probability
+ * flag is a valid number
+ */
+
+void errorchk2(float den1, float den2, float prob, int iroi_used)
+{
+    if (den1 == den2) 
+       {
+        errorc("error: ", "paired structures with equal densities");
+    }
+
+    if (prob > 1 || prob < 0) 
+       {
+        errorc("error: ", "invalid probability for paired structures");
+    }
+
+    //jk 09/07/2008
+    //added a check to verify that density of one out of each 
+    //paired  structures is zero
+    if (iroi_used) 
+       {
+        if (den1 != 0) 
+               {
+            if (den2 != 0) 
+                       {
+                errorc("error: ", "when IROI is used, one of the paired structures "
+                        "has to have density of zero, the other non-zero");
+            } 
+        } 
+               else 
+               {
+            if (den2 != 0) 
+                       { 
+                       //that's fine
+            } 
+                       else 
+                       {
+                errorc("error: ", "when IROI is used, one of the paired structures "
+                        "has to have density of zero, the other non-zero");
+            }
+
+        }
+
+    }
+
+}
diff --git a/src/snark/create_phantom.h b/src/snark/create_phantom.h
new file mode 100644 (file)
index 0000000..1600fd5
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/create_phantom.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#ifndef CREATE_PHANTOM_H
+#define CREATE_PHANTOM_H
+
+void create_phantom(char* phan_flname, long seed, int navel, int nelem, float pixsz,char*** structure, int* num_str, int* num_pairs, int** pairs, int iroi_used);
+
+void errorchk2(float den1,float den2,float prob, int iroi_used);
+
+#endif
\ No newline at end of file
diff --git a/src/snark/creatr.cpp b/src/snark/creatr.cpp
new file mode 100644 (file)
index 0000000..f407b83
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creatr.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+ */
+
+// CREATR GENERATES FILE11 WITH THE FORMAT REQUIRED
+// FOR INPUT BY THE 'PICTURE' AND 'PROJECTION' COMMANDS
+
+#include <cstdlib>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "creacm.h"
+#include "uiod.h"
+
+#include "geom.h"
+#include "creatr.h"
+#include "creaer.h"
+#include "creaph.h"
+#include "creapr.h"
+#include "second.h"
+
+#include "file11.h"
+#include "infile.h"
+
+void creatr() {
+    REAL time;
+    REAL begin;
+    REAL end;
+
+    static BOOLEAN called = FALSE;
+
+    //??  real aperwt
+
+    // TEST FOR MULTIPLE CALLS FOR CREATR; CALLED = .TRUE. IF
+    // CREATR HAS BEEN CALLED ONCE
+
+    if (called) {
+        creaer(1);
+    }
+    called = TRUE;
+
+
+    // INPUT PHASE
+
+    InFile.CreaInCrea();
+
+    // IF ERFLAG IS SET TO .TRUE. THEN INPUT HAS ERRORS; ABORT JOB
+    if (Creacm.erflag) {
+        fprintf(output, "\n **** error in inputfile");
+        fprintf(output, "\n **** program aborted\n");
+        exit(-1);
+    }
+
+    // IF PHANTOM IS SPECIFIED, PICFLG = .TRUE. THEN START CREATING FILE1
+
+    if (Creacm.picflg) {
+        second(&begin);
+        File11.wrhdr(CHAR2INT('p', 'h', 'a', 'n'));
+        creaph( );
+        second(&end);
+        time = end - begin;
+
+
+        fprintf(output, "\n         %10.3f seconds phantom creation", time); // changed precision to three digits - swr 1/21/06
+    }
+
+    // IF RAYSUMS ARE SPECIFIED, PRJFLG = .TRUE. , START CREATING FILE11
+
+    if (Creacm.prjflg) {
+        second(&begin);
+        File11.wrhdr(CHAR2INT('r', 'a', 'y', 's'));
+        File11.Flush();
+        creapr( );
+        File11.Flush();
+        second(&end);
+        time = end - begin;
+
+        fprintf(output, "\n         %10.3f seconds projection data creation", time); // changed precision to two digits - swr 1/21/06
+    }
+
+}
diff --git a/src/snark/creatr.h b/src/snark/creatr.h
new file mode 100644 (file)
index 0000000..d97531a
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/creatr.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+***********************************************************
+*/
+
+#ifndef CREATR_H
+#define CREATR_H
+      
+void creatr();
+    
+#endif   
diff --git a/src/snark/dcon.cpp b/src/snark/dcon.cpp
new file mode 100644 (file)
index 0000000..f792810
--- /dev/null
@@ -0,0 +1,725 @@
+/*
+**********************************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/dcon.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+**********************************************************************
+
+ PURPOSE :
+     THIS IS A CONVOLUTION TYPE RECONSTRUCTION ALGORITHM FOR
+     DIVERGENT BEAM PROJECTION DATA.  VARIOUS KINDS OF REGULARIZING
+     FUNCTIONS ARE IMPLEMENTED.
+ INPUT FILE :
+     TWO (OR MORE) DATA CARDS HAVE TO BE SUPPLIED BY THE USER
+     FOLLOWING EXECUTION COMMAND. THE INFORMATION ON AND AFTER
+     THE THIRD CARD ARE FILTER PARAMETERS, THEREFORE THEY ARE
+     FILTER DEPENDENT.
+      CARD            LIST
+      ====            ====
+       1      INTERP,MISSP,NCONR,WCONV,METHOD
+       2      NF
+       3      C,ALPHA          -- IF(NF.NE.4HLINE
+                                  .AND.NF.NE.4HBAND)
+       3      X1,Y1,X2,Y2,...,XL,YL
+                               -- IF(NF.EQ.4HLINE)
+     DESCRIPTION OF INPUT PARAMETERS :
+       INTERP - PARAMETER WHICH SPECIFIES INTERPOLATION METHOD,
+                THE VALUE OF INTERP MUST LIE BETWEEN -1 AND 6 AND
+                HAS THE FOLLOWING MEANING:
+                -1 -- MODIFIED CUBIC SPLINE INTERPOLATION,
+                 0 -- BAND-LIMITING (SINC) INTERPOLATION,
+                POSITIVE -- INTERP-POINTS LAGRANGE INTERPOLATION.
+       MISSP  - EVERY MISSP'TH PROJECTION IS TO BE USED IN
+                RECONSTRUCTION.
+       NCONR  - NUMBER OF RAYS USED ON EACH SIDE OF CONVOLUTION,
+                FULL CONVOLUTION USED IF NCONR IS NEGATIVE.
+       WCONV  - WEIGHT FOR CENTER RAY IN PRE-SMOOTHING.
+       METHOD - PARAMETER WHICH DETERMINES THE METHOD IN FINDING
+                THE RAY NUMBER AND WEIGHT FOR BACK PROJECTION.
+                 0 -- ACCURATE BACK PROJECTION,
+                 1 -- WEIGHT FOR BACKPROJECTION APPROXIMATED,
+                -1 -- BOTH WIEGHT AND RAY NUMBER APPROXIMATED.
+       NF     - FILTER NAME, CAN BE ONE OF LINE, HAMMING, SINC,
+                EXPONENTIAL, PARABOLIC, COSINE, SHEPP, OR BAND.
+       C      - RATIO OF FILTER BANDWIDTH TO NYQUIST CUTOFF FREQ.
+       ALPHA  - PARAMETER USED IN HAMMING FILTER ONLY.
+       (XN,YN)- COORDINATES WHICH DEFINE THE FILTER FUNCTION
+                  SEE SNARK05 MANUAL FOR DETAIL
+     EXAMPLES OF CONTROL CARD SEQUENCE :
+       1)     4    1   -1  1.0    0
+          HAMMING
+                 1.0      0.54
+       2)     2    3  100 0.75    1
+          LINE
+                 0.3       1.0       0.5       0.7
+                 0.8       0.4       1.0       0.0
+       3)     0    1   -1  0.9   -1
+          BAND-LIMITING
+ WARNING :
+     IT IS ASSUMED THAT PROJECTION ANGLES ARE GIVEN IN INCREASING
+     ORDER AND THE LAST ANGLE IS LESS THAN THE FIRST ANGLE PLUS
+     TWOPI.
+     IT IS THE RESPONSBILITY OF THE USER TO CHECK THAT USRAYS
+     IS LARGE ENOUGH FOR THE INTERPOLATION METHOD TO WORK.
+ REFERENCES :
+     1) FAST IMAGE RECONSTRUCTION BASED ON A RADON INVERSION
+        FORMULA APPROPRIATE FOR RAPIDLY COLLECTED DATA
+        G. T. HERMAN AND A. NAPARSTEK
+        SIAM JOURNAL ON APPLIED MATHEMATICS V.33 (1977)
+     2) FILTER SELECTION FOR FAN-BEAM CONVOLUTION RECONSTRUCTION
+        ALGORITHM
+        T. CHANG AND G. T. HERMAN
+        J. COMPUTER ASSISTED TOMOGRAPHY, TO APPEAR
+ WRITTEN BY T. CHANG, MAY 1977
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+*/
+
+#include <cmath>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "consts.h"
+#include "uiod.h"
+#include "anglst.h"
+#include "qintp.h"
+#include "second.h"
+#include "projfile.h"
+#include "infile.h"
+
+#include "dcon.h"
+
+BOOLEAN dcon_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+  //fprintf(output,"\n xalg4");
+  
+  static const INTEGER band = CHAR2INT('b','a','n','d');
+  
+  // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+  // added missing options from "dcon_dconft.cpp". Lajos, Jan 13, 2005
+  static const INTEGER dcon_codes[8] =
+  {
+    CHAR2INT('b','a','n','d'),
+    CHAR2INT('l','i','n','e'),
+    CHAR2INT('h','a','m','m'),
+    CHAR2INT('p','a','r','a'),
+    CHAR2INT('e','x','p','o'),
+    CHAR2INT('s','i','n','c'),
+    CHAR2INT('c','o','s','i'),
+    CHAR2INT('s','h','e','p')
+  };
+
+
+  BOOLEAN eol;
+  REAL theta,sinth,costh;
+
+  REAL kpr;
+  REAL* g = NULL;
+  REAL* g1= NULL;
+
+  REAL* q1 = NULL;
+  REAL* q2 = NULL;
+  REAL*  detecn = NULL;
+
+
+  ////////////////////
+
+  INTEGER interp;
+  int i;
+  INTEGER missp;
+  INTEGER nconr;
+  REAL wconv;
+  INTEGER method;
+  REAL wconw;
+  INTEGER nf;
+  INTEGER nraym;
+  REAL fmdray;
+
+  INTEGER mdraym;
+  INTEGER mraym2;
+  REAL halfl;
+
+  REAL rcube;
+
+  REAL alfa;
+
+  REAL pcovst;
+
+  REAL sigma;
+
+  REAL ctime;
+
+  REAL btime;
+
+  REAL beg;
+
+  REAL end;
+  REAL ftime;
+  REAL* ncos = NULL;
+
+  REAL limmid;
+
+  REAL* mdmod;
+  REAL* modi = NULL;
+  REAL* mdg;
+  REAL* mdg1;
+  REAL anginy;
+
+  REAL angiin;
+
+  REAL sbtrin;
+
+  REAL factor;
+
+  INTEGER lpj;
+  REAL beta0;
+
+  int np;
+  REAL dtc;
+
+  REAL datm;
+  REAL dath;
+  REAL datl;
+
+  REAL cbeg;
+  int k;
+  REAL* mr1;
+  REAL* ml1;
+  REAL* mr;
+  REAL* ml;
+  REAL pr1;
+  REAL pr2;
+  REAL pl1;
+  REAL pl2;
+  REAL* mq1;
+  REAL* mq2;
+  int i1;
+  REAL cend;
+  REAL beta1;
+
+  REAL sbeta;
+
+  REAL cbeta;
+
+  REAL w;
+
+  REAL b;
+  REAL cbhl;
+  REAL sbhl;
+  REAL cbpxs;
+
+  REAL sbpxs;
+
+  REAL usini;
+  REAL ucosi;
+
+  REAL bovrc;
+  REAL wbkpjy;
+
+  REAL wincy;
+
+  REAL wincx;
+
+  REAL angsin;
+  REAL angcos;
+
+  REAL anginc;
+
+  REAL subtr;
+
+  INTEGER ind;
+
+  int iy;
+  REAL usin;
+  REAL ucos;
+  REAL wbkpj;
+  REAL ang;
+  int ix;
+
+  REAL bend;
+
+  BOOLEAN ret_xalg4;
+
+  ////////////////////
+  if(GeoPar.nrays <= 1) {
+
+    fprintf(output, "\n         ***** nrays too small - job aborted *****");
+
+    return TRUE;
+  }
+
+  // ALL BUT THE FIRST ITERATION ARE FOR SMOOTHING ONLY
+
+  ret_xalg4 = FALSE;
+  if(iter > 1) return false;
+
+  // CHECK DATA COLLECTING GEOMETRY
+
+  if(!GeoPar.div) {
+    fprintf(output, "\n      *****geometry error*****");
+    fprintf(output, "\n\n     this algorithm is written for fan beam only \n\n");
+    return TRUE;
+  }
+
+  // READ CHECK AND ECHO USER SUPPLIED INFORMATION
+
+  interp = InFile.getint(TRUE, &eol);
+
+  if((interp < -1) || (interp > 6)) {
+
+    fprintf(output, "\n          ***** illegal value for interp *****");
+    ret_xalg4 = TRUE;
+  }
+
+  i = GeoPar.nrays - GeoPar.snrays;
+  if(((interp == -1) && (i < 2)) || ((interp > 2) && (i < (interp-2)))) {
+
+    fprintf(output, "\n          ***** size of modified projection data too small");
+    fprintf(output, "\n               for interpolation method specified *****");
+
+    ret_xalg4 = TRUE;
+  }
+
+  missp = InFile.getint(FALSE, &eol);
+
+  if((missp <= 0) || (missp >= GeoPar.prjnum)) {
+    fprintf(output, "\n         ***** illegal value for missp *****");
+
+    ret_xalg4 = TRUE;
+  }
+
+
+  nconr = InFile.getint(FALSE, &eol);
+  wconv = InFile.getnum(FALSE, &eol);
+  if((wconv <= 0) || (wconv > 1)) {
+    fprintf(output, "\n         ***** illegal value for wconv *****");
+
+        ret_xalg4 = TRUE;
+  }
+
+
+  method = InFile.getint(FALSE, &eol);
+    
+  if(eol) {
+    fprintf(output, "\n         ***** insufficient data item - end of line encountered *****");
+
+    return TRUE;
+  }
+
+  if(ret_xalg4) return ret_xalg4;
+
+  if(interp > 0) {
+    fprintf(output, "\n          %1i point lagrange interpolation", interp);
+  }
+
+  if(interp < 0) {
+    fprintf(output, "\n          cubic spline interpolation");
+  }
+
+  if(interp == 0) {
+    fprintf(output, "\n          band limiting (sinc) interpolation");
+  }
+
+  fprintf(output, "\n          one out of every %5i projection(s) used for reconstruction", missp);
+    
+
+  if((nconr < 0) || (nconr >= GeoPar.nrays)) nconr = GeoPar.nrays - 1;
+
+  fprintf(output, "\n          %3i points used on each side of convolution", nconr);
+
+  wconw = (REAL) 0.5 * ((REAL) 1.0 - wconv);
+  fprintf(output, "\n          pre-smoothing weight on center ray = %6.4f", wconv);
+  fprintf(output, "\n          pre-smoothing weight on side rays  = %6.4f", wconw);
+
+
+  if(method > 0) {
+    fprintf(output, "\n          weight for back-projection approximated");
+  }
+
+  if(method == 0) {
+    fprintf(output, "\n          accurate back-projection");
+  }
+
+  if(method < 0) {
+    fprintf(output, "\n          both weight and ray number for back-projection approximated");
+  }
+
+  nf = InFile.getwrd(TRUE, &eol, dcon_codes, 8);
+  if(eol) {
+    fprintf(output, "\n         ***** insufficient data item - end of line encountered *****");
+
+    return TRUE;
+  }
+
+  // USE HERMAN, LAKSHMINARAYANAN AND NAPARSTEK'S ALGORITHM FOR
+  // BAND-LIMITING FILTER
+
+  if(nf == band) {
+    fprintf(output, "\n          band-limiting filter");
+
+    dconbl(recon, interp, missp, nconr, wconv, method);
+    return ret_xalg4;
+  }
+
+  // INITIALIZE CONSTANTS
+
+  nraym = GeoPar.nrays - 1;
+  fmdray = (REAL) GeoPar.midray + 1;
+  mdraym = GeoPar.midray;
+  mraym2 = GeoPar.midray - 1;
+  halfl = (REAL) GeoPar.midpix * GeoPar.pixsiz;
+  rcube = GeoPar.radius * GeoPar.radius * GeoPar.radius;
+  alfa = GeoPar.pinc / GeoPar.stod;
+
+  // INITIALIZE CONSTANTS FOR TANGENT DETECTOR CASE
+  // DETECN IS THE BASE FOR THE ARRAY WHICH STORES THE
+  // ARC DETECTOR LOCATIONS IN TANGENT DETECTOR UNIT
+
+  if(!(GeoPar.arc || (GeoPar.nrays <= 3))) {
+    pcovst = alfa;
+    alfa = (REAL) atan((REAL) mdraym * alfa) / (REAL) mdraym;
+
+    
+    detecn = new REAL[mraym2];
+
+    sigma = alfa;
+    for(i = 0; i < mraym2; i++) {
+      detecn[i] = (REAL)( (REAL) sin(sigma) / (REAL) cos(sigma)) / pcovst;
+      sigma += alfa;
+    }
+  }
+
+  // INITIALIZE TIMERS
+
+  ctime = 0.;
+  btime = 0.;
+  second(&beg);
+
+  // ALLOCATE WORK AREAS FOR CONVOLUTING FUNCTION
+  // Q1 IS THE INDEX FOR THE FIRST ELEMENT IN Q1(M)
+  // Q2 IS THE INDEX FOR THE FIRST ELEMENT IN Q2(M)
+
+  q1 = new REAL[GeoPar.nrays+1];        //(JD 11/06)
+  q2 = new REAL[GeoPar.nrays+1];        //(JD 11/06)
+
+  // CONVOLUTING FUNCTION
+
+  if(dconft(q1, q2, nconr+1, alfa, nf)) { 
+    
+
+  if(detecn != NULL) delete[] detecn ;
+  if(q1 != NULL) delete[] q1 ;
+  if(q2 != NULL) delete[] q2 ;
+  if(ncos != NULL) delete[] ncos ;
+  if(g != NULL) delete[] g ;
+  if(g1 != NULL) delete[] g1;
+  if(modi != NULL) delete[] modi ;           //wei 3/2005
+  
+    return TRUE;
+  }
+  second(&end);
+  ftime = end - beg;
+
+  // WEIGHT ARRAY FOR CONVOLUTION
+  // NCOS IS THE BASE FOR CONVOLUTION WEIGHT ARRAY
+
+  ncos = new REAL[mdraym];
+
+  sigma = alfa;
+
+  for(i = 0; i < mdraym; i++) {
+    ncos[i] = (REAL) cos(sigma);
+    sigma += alfa;
+  }
+
+  // ALLOCATE AREAS FOR PROJECTION DATA
+  // G IS THE BASE FOR PROJECTION DATA FOR ONE PROJECTION
+  // G1 IS THE BASE FOR WEIGHTED PROJECTION DATA
+  // MODI IS THE BASE FOR MODIFIED PROJECTION DATA
+
+  g = new REAL[GeoPar.nrays];
+  g1 = new REAL[GeoPar.nrays];
+
+  modi = new REAL[GeoPar.nrays];
+
+  limmid = (REAL) MIN0(nconr, mdraym);
+
+  //mdmod = modi + GeoPar.midray + 1;
+  //mdg = g + GeoPar.midray + 1;
+  //mdg1 = g1 + GeoPar.midray + 1;
+  mdmod = modi + GeoPar.midray;        //(JD 11/06)
+  mdg = g + GeoPar.midray;        //(JD 11/06)
+  mdg1 = g1 + GeoPar.midray;        //(JD 11/06)
+
+  anginy = SQR(GeoPar.pixsiz / GeoPar.radius);
+  angiin = (REAL) GeoPar.midpix * anginy;
+  sbtrin = (REAL) GeoPar.midpix * angiin;
+  factor = (REAL) 0.25 * alfa * GeoPar.radius / Consts.pisq;
+  //lpj = ((GeoPar.prjnum-1) / missp) * missp + 1;
+  lpj = ((GeoPar.prjnum-1) / missp) * missp;    //new indexing (from zero) (JD)
+
+  Anglst.getang(lpj, &beta0, &sinth, &costh);
+  //Anglst.getang(1, &theta, &sinth, &costh);
+  Anglst.getang(0, &theta, &sinth, &costh);    //new indexing (from zero) (JD)
+    
+  if((theta + Consts.twopi) <=  beta0) {
+
+    fprintf(output, "\n         ***** illegal arrangement of projection angles *****");
+
+    
+  if(detecn != NULL) delete[] detecn ;
+  if(q1 != NULL) delete[] q1 ;
+  if(q2 != NULL) delete[] q2 ;
+  if(ncos != NULL) delete[] ncos ;
+  if(g != NULL) delete[] g ;
+  if(g1 != NULL) delete[] g1;
+  if(modi != NULL) delete[] modi ;           //wei 3/2005
+  
+    return TRUE;
+  }
+
+  // THIS IS WHERE THE RECONSTRUCTION STARTS
+  // BUILD UP RECONSTRUCTED PICTURE ONE PROJECTION AT A TIME
+
+  for(np = 0; np < GeoPar.prjnum; np += missp) {
+    ProjFile.ReadProj(np, g, GeoPar.nrays);
+
+    // CONVERT THE PROJECTION DATA TO ARC GEOMETRY BY LINEAR
+    // INTERPOLATION IF NECESSARY
+
+    if(!(GeoPar.arc || GeoPar.nrays <= 3)) {
+
+      *mdg1 = *mdg;
+
+      //for(i = 0; i < mraym2; i++){
+      for(i = 1; i <= mraym2; i++){        //(JD 11/06)
+        dtc = detecn[i-1];
+        *(mdg1+i) = qintp(fmdray + dtc, g, GeoPar.nrays, 2);
+        *(mdg1-i) = qintp(fmdray - dtc, g, GeoPar.nrays, 2);
+      }
+
+      for(i = 1; i < nraym; i++){
+        g[i] = g1[i];
+      }
+    
+    }
+
+    // PRE-SMOOTHING OF PROJECTION DATA
+
+    if(wconv != 1.0) {
+      datm = g[0];
+      dath = g[1];
+      g[0] = wconv * datm + wconw * dath;
+
+      //for(i = 1; i < nraym; i++) {
+      for(i = 1; i < nraym; i++) {         //(JD 11/06)
+        datl = datm;
+        datm = dath;
+        dath = g[i+1];
+        g[i] = wconv * datm + wconw * (dath + datl);
+      }
+
+      g[GeoPar.nrays-1] = wconv * dath + wconw * datm;
+    }
+
+    // WEIGHTED PROJECTION DATA
+
+    *(mdg1) = *(mdg);
+
+    //for(i = 0; i < mdraym; i++) {
+    for(i = 1; i <= mdraym; i++) {        //(JD 11/06)
+      //*(mdg1+i) = *(mdg+i) * ncos[i];
+      //*(mdg1-i) = *(mdg-i) * ncos[i];
+      *(mdg1+i) = *(mdg+i) * ncos[i-1];      //(JD 11/06)
+      *(mdg1-i) = *(mdg-i) * ncos[i-1];      //(JD 11/06)
+    }
+
+    // CONVOLUTION
+
+    second(&cbeg);
+    mdmod[0] = *q1 * (*mdg1) + (*q2) * (*mdg);
+    if(nconr != 0) {
+
+      //for(i = 0; i < limmid; i++) {
+      for(i = 1; i <= limmid; i++) {      //(JD 11/06)
+        mdmod[0] += *(q1+i) * ( *(mdg1+i) + *(mdg1-i) )+ *(q2+i) * ( *(mdg+i) + *(mdg-i));
+      }
+    }
+
+    //for(k = 0; k < mdraym; k++) {
+    for(k = 1; k <= mdraym; k++) {                 //(JD 11/06)
+      mr1 = mdg1+k;
+      ml1 = mdg1-k;
+      mr = mdg+k;
+      ml = mdg-k;
+      pr1 = *q1 * (*mr1);
+      pr2 = *q2 * (*mr);
+      pl1 = *q1 * (*ml1);
+      pl2 = *q2 * (*ml);
+      if(nconr != 0) {
+
+        //for(i = 0; i < nconr; i++) {
+        for(i = 1; i <= nconr; i++) {              //(JD 11/06)
+          if((k+i) > mdraym) { 
+
+            //for(i1 = i; i1 < nconr; i1++) {
+            for(i1 = i; i1 <= nconr; i1++) {       //(JD 11/06)
+
+              //if(!((mr1-i1) <= g1)) {
+              if(!((mr1-i1) <= (g1-1))) { //i.e. if (mr1-i1) <g1
+                mq1 = q1 + i1;
+                mq2 = q2 + i1;
+                pr1 += *mq1 * *(mr1-i1);
+                pr2 += *mq2 * *(mr -i1);
+                pl1 += *mq1 * *(ml1+i1);
+                pl2 += *mq2 * *(ml +i1);
+                //break;        //(JD 11/06)
+              }
+            }
+            break;
+          }
+          mq1 = q1 + i;
+          mq2 = q2 + i;
+          pr1 += *mq1 * (*(mr1+i) + *(mr1-i));
+          pr2 += *mq2 * (*(mr +i) + *(mr -i));
+          pl1 += *mq1 * (*(ml1+i) + *(ml1-i));
+          pl2 += *mq2 * (*(ml +i) + *(ml -i));
+        }
+
+      }
+
+      //*(mdmod + k) = pr1 + pr2 * ncos[k];
+      //*(mdmod - k) = pl1 + pl2 * ncos[k];
+      *(mdmod + k) = pr1 + pr2 * ncos[k-1];   // (JD 11/07/03)
+      *(mdmod - k) = pl1 + pl2 * ncos[k-1];   // (JD 11/07/03)
+
+    }
+
+#ifdef FFCOMPARE
+    fprintf(output,"\n xalg4: modi");
+    for(i = 0; i < GeoPar.nrays; i++) {
+      if((i % 3) == 0) fprintf(output,"\n");
+      fprintf(output," %36.30f", (double) modi[i]);
+    }
+#endif
+
+    second(&cend);
+    ctime += cend-cbeg;
+
+    // COMPUTE THE TRAPEZOIDAL WIDTH FOR BETA INTEGRATION
+
+    beta1 = theta;
+    sbeta = -costh;
+    cbeta = sinth;
+    if(np < lpj) Anglst.getang(np + missp, &theta, &sinth, &costh);
+    if((np < lpj) && (theta <= beta1)) {
+      fprintf(output, "\n         ***** illegal arrangement of projection angles *****");
+
+  
+  if(detecn != NULL) delete[] detecn ;
+  if(q1 != NULL) delete[] q1 ;
+  if(q2 != NULL) delete[] q2 ;
+  if(ncos != NULL) delete[] ncos ;
+  if(g != NULL) delete[] g ;
+  if(g1 != NULL) delete[] g1;
+  if(modi != NULL) delete[] modi ;           //wei 3/2005
+  
+      return TRUE;
+    }
+
+    //if(np >= lpj) Anglst.getang(1,&theta, &sinth, &costh);
+    if(np >= lpj) Anglst.getang(0,&theta, &sinth, &costh);         // (JD 11/07/03)
+    w = (REAL) 0.5 * (REAL) fmod(Consts.twopi + theta - beta0, Consts.twopi);
+
+    beta0 = beta1;
+    b = w * factor;
+
+    // BACK PROJECTION
+
+    cbhl = halfl * cbeta;
+    sbhl = halfl * sbeta;
+    cbpxs = GeoPar.pixsiz * cbeta;
+    sbpxs = GeoPar.pixsiz * sbeta;
+    usini = sbhl - cbhl;
+    ucosi = GeoPar.radius - sbhl - cbhl;
+
+    if(method != 0) {
+      bovrc = b / rcube;
+      wbkpjy = (GeoPar.radius + (REAL) 2.0 * (cbhl + sbhl)) * bovrc;
+      wincy = (REAL) -2.0 * cbpxs * bovrc;
+      wincx = (REAL) -2.0 * sbpxs * bovrc;
+
+      if(method <= 0) {
+        angsin = sbhl;
+        angcos = GeoPar.radius - cbhl;
+        anginc = cbpxs / GeoPar.radius - angiin;
+        subtr = cbhl / GeoPar.radius - sbtrin;
+      }
+    }
+
+    ind = 0;
+    for(iy = 0; iy < GeoPar.nelem; iy++) {
+      if(method >= 0) {
+        usini -= sbpxs;
+        usin = usini;
+        ucosi += cbpxs;
+        ucos = ucosi;
+      }
+      if(method != 0) {
+        wbkpjy = wbkpjy + wincy;
+        wbkpj = wbkpjy;
+        if(method <= 0) {
+          angsin -= sbpxs;
+          angcos += cbpxs;
+          anginc += anginy;
+          subtr += angiin;
+          ang = (REAL) atan2(angsin, angcos) - subtr;
+        }
+      }
+      for(ix = 0; ix < GeoPar.nelem; ix++) {
+
+        if(method >= 0) {
+
+          usin += cbpxs;
+          ucos += sbpxs;
+          ang = (REAL) atan2(usin, ucos);
+        }
+
+        if(method == 0) {
+
+          wbkpj = b / (usin * usin + ucos * ucos);
+        }
+        else {
+          wbkpj += wincx;
+          if(method < 0) ang += anginc;
+        }
+        kpr = fmdray - ang / alfa;
+        recon[ind] += qintp(kpr, modi, GeoPar.nrays, interp) * wbkpj;
+       ind++;
+      }
+
+    }
+
+    second(&bend);
+    btime += bend - cend;
+  }
+  fprintf(output, "\n          total time for obtaining convoluting function was %10.3f seconds", ftime); // changed precision to three digits - swr 1/21/06
+  fprintf(output, "\n          total time for convolution was                    %10.3f seconds", ctime); // ditto
+  fprintf(output, "\n          total time for back-projection was                %10.3f seconds", btime); // ditto
+
+  if(detecn != NULL) delete[] detecn ;
+  if(q1 != NULL) delete[] q1 ;
+  if(q2 != NULL) delete[] q2 ;
+  if(ncos != NULL) delete[] ncos ;
+  if(g != NULL) delete[] g ;
+  if(g1 != NULL) delete[] g1;
+  if(modi != NULL) delete[] modi ;           //wei 3/2005
+  
+  return ret_xalg4;
+}
+     
diff --git a/src/snark/dcon.h b/src/snark/dcon.h
new file mode 100644 (file)
index 0000000..df8df18
--- /dev/null
@@ -0,0 +1,26 @@
+/* 
+**********************************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/dcon.h $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+**********************************************************************
+*/
+
+#ifndef XALG4_H
+#define XALG4_H
+
+#include "alg.h"
+
+class dcon_class: public alg_class
+{
+private:
+  BOOLEAN dconft(REAL* q1, REAL* q2, INTEGER nconrp, REAL alfa, INTEGER nf);
+  void    dconbl(REAL* recon, INTEGER interp, INTEGER missp, INTEGER nconr, REAL wconv, INTEGER method);
+
+public:
+  BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+};
+
+#endif      
diff --git a/src/snark/dcon_dconbl.cpp b/src/snark/dcon_dconbl.cpp
new file mode 100644 (file)
index 0000000..70bfa47
--- /dev/null
@@ -0,0 +1,503 @@
+/*
+**********************************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/dcon_dconbl.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+**********************************************************************
+
+ CONVOLUTION-TYPE METHOD FOR DIVERGENT DATA WITH BAND-LIMITING
+ FILTER.
+     BASED ON
+        CONVOLUTION RECONSTRUCTION TECHNIQUES FOR DIVERGENT BEAMS
+        G. T. HERMAN, A. V. LAKSHMINARAYANAN AND A. NAPARSTEK
+        COMPUTERS IN BIOLOGY AND MEDICINE
+        TO APPEAR
+     WRITTEN BY G. T. HERMAN, MARCH 1975
+     REVISED FOR THE CDC3500, MARCH 1976
+     REVISED FOR SNARK77 BY T. CHANG, MAY 1977
+ ***********************************************************
+*/
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+#include "anglst.h"
+#include "qintp.h"
+#include "second.h"
+#include "projfile.h"
+
+#include "dcon.h"
+
+#ifdef FFCOMPARE
+
+REAL Sin(REAL x)
+{
+  REAL sum = 0;
+
+  REAL y = x;
+  REAL z = 1;
+  REAL a = 1;
+
+  for(int i = 1; i < 10; i++) {
+    if((i % 2) == 0) {
+      sum -= z/a;
+    }
+    else {
+      sum += z/a;
+    }
+
+    a *= (2 * i + 1) * 2 * i; // !
+    z *= x * x; // x ^ (2 *  i)
+  }
+
+  return x * sum;
+}
+
+#else
+
+#define Sin(X) sin((X))
+
+#endif
+
+void dcon_class::dconbl(REAL* recon, INTEGER interp, INTEGER missp, INTEGER nconr, REAL wconv, INTEGER method)
+{      
+////////////////////////////////////////////////////////
+
+  INTEGER limup;
+  REAL wconw;
+  REAL* j = NULL;
+  INTEGER mdrym1;
+  REAL* mq = NULL;
+  REAL alfa;
+  REAL alfasq;
+  REAL a;
+  int i;
+  int m;
+  int n;
+
+  INTEGER nraym1;
+  REAL concen;
+  INTEGER limmid;
+
+  REAL halfl;
+  REAL twodr;
+  REAL fmidry;
+  INTEGER lastpr;
+  REAL beta0;
+  REAL sinth;
+  REAL costh;
+  REAL theta;
+  REAL stime;
+  REAL ctime;
+  REAL btime;
+  REAL bend;
+  int np;
+  REAL dtam;
+  REAL dtar;
+  int nr;
+  REAL dtal;
+  REAL send;
+  INTEGER mqm;
+  int nm;
+  INTEGER inp;
+
+  INTEGER inm;
+  INTEGER inr;
+  REAL pr;
+  INTEGER inl;
+  REAL pl;
+  int mm;
+  REAL cend;
+  REAL cbeta;
+  REAL sbeta;
+  REAL beta1;
+  REAL w;
+  REAL rcosi;
+  REAL rcosy;
+  REAL rcosx;
+  REAL rsini;
+  REAL rsiny;
+  REAL rsinx;
+  REAL wtwodr;
+  REAL wjrfi;
+  REAL wjrfx;
+  REAL wjrfy;
+  REAL anginy;
+  REAL angiin;
+  REAL fkjrfx;
+  REAL subtr;
+  REAL sob;
+  REAL cob;
+  REAL wrsq;
+  REAL prini;
+  INTEGER ind;
+  REAL rcos;
+  REAL rsin;
+  REAL wjrf;
+  REAL fract;
+  REAL fkjrf;
+  REAL* mod;
+  int k;
+  REAL usq;
+  REAL frynum;
+  REAL p;
+
+////////////////////////////////////////////////////////
+  REAL* g;
+
+  // ASSIGN SPACE FOR SMOOTHED PROJECTION DATA, ECHO SMOOTHING WEIGHTS
+
+  g = new REAL[GeoPar.nrays];
+  limup = GeoPar.nrays - 1; // index of last ray
+
+  if(!((wconv > 0.0) && (wconv <= 1.0))) wconv = (REAL) 1.0;
+  wconw = ((REAL) 1.0 - wconv) / (REAL) 2.0;
+
+  // ALLOCATE SPACE FOR CONVOLUTION INFORMATION
+
+  j = new REAL[GeoPar.nrays];
+
+  mdrym1 = GeoPar.midray - 1;
+
+  //mq = new REAL[mdrym1];
+  mq = new REAL[mdrym1 + 1];  //(JD 1/20/04)
+
+
+  // WEIGHT ARRAY J(I)
+
+  alfa = GeoPar.pinc / GeoPar.stod;
+  alfasq = alfa * alfa;
+  a = alfa * GeoPar.radius;
+  j[GeoPar.midray] = a;
+
+  for(i = 1; i <= GeoPar.midray; i++) 
+  {
+    if(GeoPar.tang) j[GeoPar.midray + i] = a / (REAL) sqrt((REAL) 1.0 + alfasq * SQR(((REAL)(i))));
+    if(GeoPar.arc) j[GeoPar.midray + i]  = a * (REAL) cos( ((REAL)(i)) * alfa);
+    j[GeoPar.midray - i] = j[GeoPar.midray + i];
+  }
+
+  ////////////////////////////////////////////////////
+#ifdef FFCOMPARE
+  fprintf(output,"\n***** test data 1 *****************************");
+  for(i = 0; i < GeoPar.nrays; i++) 
+  {
+    if((i % 3) == 0) fprintf(output,"\n");
+    fprintf(output," %36.30f", j[i]);
+  }
+  fprintf(output,"\n");
+#endif
+  ////////////////////////////////////////////////////
+
+
+  // CONVOLUTING FUNCTION Q(M)
+
+  for(m = 0; m < GeoPar.midray; m++) 
+  {
+    n = 2 * m + 1; // 1, 3, 5, ...
+    if(GeoPar.tang) mq[m] = (REAL) -1.0 / ((REAL) 2.0 * SQR(Consts.pi * n * a));
+#ifndef FFCOMPARE
+    if(GeoPar.arc) mq[m] = (REAL) -1.0 / ((REAL) 2.0 * SQR(Consts.pi * (REAL) sin((REAL) (n * alfa))));
+
+#else
+    REAL xxx = n * alfa;
+    REAL yyy = Sin(xxx);
+    REAL zzz = sin(xxx);
+
+    if(GeoPar.arc) mq[m] = (REAL) -1.0 / ((REAL) 2.0 * SQR(Consts.pi * yyy));
+
+//    fprintf(output,"\n %36.30f %36.30f %36.30f", (double) mq[m], (double) xxx, (double) alfa);
+    fprintf(output,"\n %36.30f", (double) mq[m]);
+#endif
+  }
+
+  ////////////////////////////////////////////////////
+#ifdef FFCOMPARE
+  fprintf(output,"\n***** test data 2*****************************");
+  for(m = 0; m < GeoPar.midray; m++) 
+  {
+    if((m % 3) == 0) fprintf(output,"\n");
+    fprintf(output," %36.30f", mq[m]);
+  }
+  fprintf(output,"\n");
+#endif
+  ////////////////////////////////////////////////////
+
+
+
+  // CONSTANTS NEEDED FOR CONVOLUTION AND BACKPROJECTION
+
+  nraym1 = GeoPar.nrays - 1;
+  if(GeoPar.tang) concen = (REAL) 1.0 / ((REAL) 8.0 * SQR(a));
+  if(GeoPar.arc) concen = (REAL) 1.0 / ((REAL) 8.0 * SQR(alfa));
+  limmid = MIN0(nconr, mdrym1);
+  mod = new REAL[GeoPar.nrays];
+
+  ///midmod = mod + midray;
+  halfl = ((REAL)(GeoPar.midpix)) * GeoPar.pixsiz;
+  twodr = (REAL) 2.0 / GeoPar.radius;
+  fmidry = (REAL) GeoPar.midray + 1;
+
+  // INITIALIZE BETA0 TO BE USED IN CALCULATING WEIGHTS FOR
+  // BETA INTEGRATION
+
+  lastpr = ((GeoPar.prjnum - 1) / missp) * missp;
+  Anglst.getang(lastpr, &beta0, &sinth, &costh);
+  Anglst.getang(0, &theta, &sinth, &costh);
+
+
+  // INITIALIZE TIMERS
+
+  stime = 0.0;
+  ctime = 0.0;
+  btime = 0.0;
+  second(&bend);
+
+
+  // THIS IS WHERE THE RECONSTRUCTION STARTS
+  // BUILD UP RECONSTRUCTED PICTURE ONE PROJECTION AT A TIME
+
+  for(np = 0; np < GeoPar.prjnum; np += missp) 
+  {
+
+    ProjFile.ReadProj(np, g, GeoPar.nrays);
+    
+    // debug ////////////////////////////////////////////////////
+    // input verification
+#ifdef FFCOMPARE
+    fprintf(output,"\n**********************************");
+    for(nr = 0; nr < GeoPar.nrays; nr++) 
+       {
+      if((nr % 3) == 0) fprintf(output,"\n");
+      fprintf(output," %36.30f", g[nr]);
+    }
+#endif
+    //////////////////////////////////////////////////////
+
+
+    dtam = g[0];
+    dtar = g[1];
+    g[0] = (wconv * dtam + wconw * dtar) * j[0];
+
+    for(nr = 1; nr < nraym1; nr++) 
+       {
+      dtal = dtam;
+      dtam = dtar;
+      dtar = g[nr + 1];
+      g[nr] = (wconv * dtam + wconw * (dtar + dtal)) * j[nr];
+    }
+
+    dtal = dtam;
+    dtam = dtar;
+    g[nraym1] = (wconv * dtam + wconw * dtal) * j[nraym1];
+
+    second(&send);
+    stime += send - bend;
+
+
+#ifdef FFCOMPARE
+    fprintf(output,"\n***** test data 3 *****************************");
+    for(nr = 0; nr < nraym1; nr++) {
+      if((nr % 3) == 0) fprintf(output,"\n");
+      fprintf(output," %36.30f", g[nr]);
+    }
+    fprintf(output,"\n");
+#endif
+
+
+    // COMPUTE CONVOLUTED PROJECTION DATA
+
+    p = concen * g[GeoPar.midray];
+
+    mqm = 0;
+    for(nm = 1; nm <= limmid; nm += 2) {
+      p += (g[GeoPar.midray + nm] + g[GeoPar.midray - nm]) * mq[mqm];
+      mqm++;
+    }
+
+    mod[GeoPar.midray] = p;
+
+    // WE HAVE NOW TAKEN CARE OF THE CENTER RAY
+
+    for(m = 1; m <= GeoPar.midray; m++) {
+      inr = GeoPar.midray + m;
+      pr = concen * g[inr];
+      inl = GeoPar.midray - m;
+      pl = concen * g[inl];
+
+      if(!(nconr == 0)) {
+
+        mqm = 0;
+
+        for(nm = 1; nm <= nconr; nm += 2) {
+          inp = inr + nm;
+          if(inp > limup) {
+            for(mm = nm; mm <= nconr; mm += 2) {
+              inm = inr - mm;
+              if(inm < 0) break;
+              pr += g[inm] * mq[mqm];
+              inp = inl + mm;
+              pl += g[inp] * mq[mqm];
+              mqm++;
+            }
+            break;
+          }
+
+          inm = inr - nm;
+
+          pr += ( g[inp] + g[inm] ) * mq[mqm];
+          inp = inl + nm;
+          inm = inl - nm;
+          pl += ( g[inp] + g[inm] ) * mq[mqm];
+
+
+
+          mqm++;
+        }
+      }
+
+      mod[GeoPar.midray + m] = pr;
+      mod[GeoPar.midray - m] = pl;
+
+    }
+
+#ifdef FFCOMPARE
+
+  fprintf(output,"\n***** test data mod *****************************");
+  for(m = 0; m < GeoPar.nrays; m++) {
+    if((m % 3) == 0) fprintf(output,"\n");
+    fprintf(output," %36.30f", mod[m]);
+  }
+  fprintf(output,"\n");
+
+#endif
+  ////////////////////////////////////////////////////
+  
+
+    second(&cend);
+    ctime += cend - send;
+
+    // BACK-PROJECT CONVOLUTED PROJECTION DATA
+
+    cbeta = sinth;
+    sbeta = -costh;
+
+    // CALCULATE WEIGHTS FOR BETA INTEGRATION
+
+    beta1 = theta;
+    if(np >= lastpr) Anglst.getang(0, &theta, &sinth, &costh);
+    if(np < lastpr) Anglst.getang(np+missp, &theta, &sinth, &costh);
+
+    w = (REAL) fmod(Consts.twopi + theta - beta0, Consts.twopi) / (REAL) 2.0;
+
+    beta0 = beta1;
+
+    // CALCULATE BACK-PROJECTION INFORMATION
+
+    rcosi = halfl * (sbeta - cbeta);
+    rcosy = - GeoPar.pixsiz * sbeta;
+    rcosx = GeoPar.pixsiz * cbeta;
+    rsini = -halfl * (sbeta + cbeta);
+    rsiny = rcosx;
+    rsinx = -rcosy;
+    if(GeoPar.arc) w /= SQR(GeoPar.radius);
+    wtwodr = w * twodr;
+    wjrfi = w - wtwodr * rsini;
+    wjrfx = -wtwodr * rsinx;
+    wjrfy = -wtwodr * rsiny;
+    anginy = (SQR(GeoPar.pixsiz / GeoPar.radius)) / alfa;
+    angiin = ((REAL)(GeoPar.midpix)) * anginy;
+    fkjrfx = rcosx / a - angiin;
+    subtr = fkjrfx * GeoPar.midpix;
+    sob = halfl * sbeta;
+    cob = GeoPar.radius - halfl * cbeta;
+    wrsq = w * SQR(GeoPar.radius);
+    prini = GeoPar.radius + rsini;
+
+    // BACK-PROJECTION
+
+    ind = 0;
+    for(i = 0; i < GeoPar.nelem; i++) 
+       {
+               if(method >= 0) 
+               {
+                       rcosi += rcosy;
+                       rcos = rcosi;
+                       prini += rsiny;
+                       rsin = prini;
+               }
+               if(method != 0) 
+               {
+
+                       wjrfi += wjrfy;
+                       wjrf = wjrfi;
+                       if(method <= 0) {
+                               sob += rcosy;
+                               cob += rsiny;
+                               fract = sob / cob;
+                               fkjrfx += anginy;
+                               subtr += angiin;
+                               if(GeoPar.arc) fract = (REAL) atan(fract);
+                               fkjrf = fract / alfa - subtr;
+                       }
+               }
+
+               for(k = 0; k < GeoPar.nelem; k++) 
+               {
+                       if(method >= 0) 
+                       {
+                               rcos += rcosx;
+                               rsin += rsinx;
+
+                               if(method <= 0) 
+                               {
+                                       usq = SQR(rsin);
+                                       if(GeoPar.arc) usq += SQR(rcos);
+                                       wjrf = wrsq / usq;
+                               }
+                               fract = rcos / rsin;
+                               if(GeoPar.arc) fract = (REAL) atan(fract);
+                               fkjrf = fract / alfa;
+                       }
+                       if(method != 0) 
+                       {
+                               wjrf += wjrfx;
+                               if(method < 0) fkjrf += fkjrfx;
+                       }
+                       frynum = fmidry - fkjrf;
+
+
+#ifdef FFCOMPARE
+                       fprintf(output,"\n frynum = %36.30f wjrf = %36.30f", frynum, wjrf);
+#endif
+
+
+                       recon[ind] += wjrf * qintp(frynum, mod, GeoPar.nrays, interp);
+
+
+                       ind++;
+               }
+    }
+
+    second(&bend);
+    btime += bend - cend;
+  }
+  
+  fprintf(output, "\n          total time for obtaining smoothed projection data was %9.3f", stime);   // changed precision to two digits - swr 1/21/06
+  fprintf(output, "\n          total time for convoluting projection data was %16.3f", ctime);         // ditto
+  fprintf(output, "\n          total time for back-projecting was %28.3f", btime);                     // ditto
+
+  
+  if(j != NULL) delete[] j;
+  if(mq != NULL) delete[] mq ;           //wei 3/2005
+  
+  delete[] mod;  // bug 92 - Lajos - 03/02/2005
+  delete[] g;  // bug 92 - Lajos - 03/02/2005
+  return;
+}      
diff --git a/src/snark/dcon_dconft.cpp b/src/snark/dcon_dconft.cpp
new file mode 100644 (file)
index 0000000..00bd9b2
--- /dev/null
@@ -0,0 +1,395 @@
+/*
+**********************************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/dcon_dconft.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+**********************************************************************
+
+ THIS FUNCTION IS USED IN DIVERGENT BEAM CONVOLUTION ALGORITHM
+ TO CALCULATE THE CONVOLUTING FUNCTIONS Q1(M) AND Q2(M) FOR
+ ARC DETECTOR CASE
+*/
+
+#include <cmath>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "region.h"
+#include "consts.h"
+#include "uiod.h"
+#include "int2str.h"
+#include "infile.h"
+#include "cin.h"
+
+#include "dcon.h"
+
+BOOLEAN dcon_class::dconft(REAL* q1, REAL* q2, INTEGER nconrp, REAL alfa, INTEGER nf)
+{
+  
+  INTEGER m;
+  REAL aa;
+  REAL ya;
+  REAL bb;
+  REAL yb;
+  REAL a;
+  REAL b;
+  REAL slope;
+  REAL sigma;
+  REAL api;
+  REAL bpi;
+  REAL ampi;
+  REAL bmpi;
+  REAL sinsgm;
+  REAL sinamp;
+  REAL cosamp;
+  REAL sinbmp;
+  REAL cosbmp;
+  REAL c;
+  REAL cpi;
+  REAL cm;
+  REAL cmp;
+  REAL alpha;
+  INTEGER is;
+  REAL scmp;
+  REAL ccmp;
+  REAL cm2;
+  REAL cmp2;
+  REAL e;
+  REAL xcin;
+  REAL cinf;
+
+  REAL y0;
+  REAL p;
+  REAL cr;
+
+  
+  BOOLEAN eol;
+
+  static const INTEGER hline = CHAR2INT('l','i','n','e');
+  static const INTEGER hhamm = CHAR2INT('h','a','m','m');
+  static const INTEGER hpara = CHAR2INT('p','a','r','a');
+  static const INTEGER hexpo = CHAR2INT('e','x','p','o');
+  static const INTEGER hsinc = CHAR2INT('s','i','n','c');
+  static const INTEGER hcosi = CHAR2INT('c','o','s','i');
+  static const INTEGER hshep = CHAR2INT('s','h','e','p');
+
+
+  // INITIALIZE CONSTANTS FOR CONVOLUTING FUNCTION
+
+  for(m = 0; m < nconrp; m++) 
+  {
+    q1[m] = 0.;
+    q2[m] = 0.;
+  }
+
+  // FILTER FUNCTION DEFINED BY LINES WHICH CONNECTING THE COORDINATES
+  // OF (AA,YA) AND (BB,YB)
+
+  if(nf != hline) goto L50;
+  fprintf(output, "\n          filter function composed of following lines");
+
+  aa = 0.;
+  ya = 1.;
+  bb = InFile.getnum(TRUE, &eol);
+
+  if(eol) goto L400;
+  yb = InFile.getnum(FALSE, &eol);
+
+  if(eol) yb = InFile.getnum(TRUE, &eol);
+  if(eol) goto L400;
+
+L20:
+  if((aa-bb) > 0) 
+  { 
+L25:
+    fprintf(output, "\n          unrealistic parameters aa = %10.4f   bb = %10.4f", aa, bb);
+    fprintf(output, "\n                                 ya = %10.4f   yb = %10.4f", ya, yb);
+       return TRUE;
+  }
+
+  if((aa-bb) < 0) 
+  { 
+    if((ya < yb) || (bb > 1) || (yb < 0)) goto L25;
+
+    a = aa / (REAL) 2.0 / alfa;
+    b = bb / (REAL) 2.0 / alfa;
+    slope = (yb - ya) / (b - a);
+    y0 = ya - a * slope;
+    sigma = alfa;
+    api = aa * Consts.pi;
+    bpi = bb * Consts.pi;
+    ampi = api;
+    bmpi = bpi;
+    fprintf(output, "\n            (%6.4f,%6.4f) to (%6.4f,%6.4f)", aa, ya, bb, yb);
+
+    p = (REAL) -4.0 * Consts.pisq * (y0*(b+a)*(b-a) / (REAL) 2.0 + slope * (b*b*b-a*a*a) / (REAL) 3.0);
+    q1[0] = q1[0] + p;                           //(JD 11/06/03)
+    q2[0] = q2[0] - (REAL) 2.0 * p;              //(JD 11/06/03)
+
+    for(m = 1; m < nconrp; m++) 
+       {
+               sinsgm = (REAL) sin(sigma);
+               sinamp = (REAL) sin(ampi);
+               cosamp = (REAL) cos(ampi);
+               sinbmp = (REAL) sin(bmpi);
+               cosbmp = (REAL) cos(bmpi);
+
+               q1[m] -= (ya * cosamp - yb * cosbmp + slope * (sinbmp - sinamp) / Consts.twopi / sigma) / sinsgm / sinsgm;
+               q2[m] += (Consts.twopi * (yb * b * sinbmp - ya * a * sinamp) + slope * (b * cosbmp - a * cosamp - (sinbmp - sinamp) / Consts.twopi / sigma) / sigma) / sinsgm;
+
+               sigma += alfa;
+               ampi += api;
+               bmpi += bpi;
+    }
+  }
+
+  if((yb != 0.)) 
+  {
+    aa = bb;
+    ya = yb;
+    bb = InFile.getnum(FALSE, &eol);
+
+    if(eol) bb = InFile.getnum(TRUE, &eol);
+    if(eol) goto L400;
+
+    yb = InFile.getnum(FALSE, &eol);
+
+    if(eol) yb = InFile.getnum(TRUE, &eol);
+
+    if(eol) goto L400;
+    goto L20;
+  }
+  return FALSE;
+
+  // FILTER BANDWIDTH -  A=C/ALFA
+
+L50:
+  c = InFile.getnum(TRUE, &eol);
+  if(eol) goto L400;
+  if((c <= 0.) || (c > 1.)) c = 1.;
+  cpi = c * Consts.pi;
+  sigma = alfa;
+  cm = c;
+  cmp = cpi;
+
+//.... HAMMING LOW PASS FILTER
+//....   F(X)=ALPHA+(1.-ALPHA)*COS(2.*PI*X/A)
+
+  if(nf != hhamm) goto L90;
+  alpha = InFile.getnum(FALSE, &eol);
+
+  if(eol) alpha = 1.;
+  fprintf(output, "\n          hamming low pass filter");
+  fprintf(output, "\n           alpha= %7.3f", alpha);
+
+  cr = (REAL) 1.0 / c;
+  Region.d1 = (REAL) 1.0 - alpha;
+  q1[0] = (REAL) 0.5 * SQR(c / alfa) * ((REAL) 4.0 * Region.d1 - alpha * Consts.pisq);  //(JD 11/06/03)
+  q2[0] = (REAL) -2.0 * q1[0];                //(JD 11/06/03)
+  is = 1;                                     //(JD 11/06/03)
+
+L60:
+       for(m = is; m < nconrp; m++)                    //(JD 11/06/03)
+       {          
+               if(fabs(((float)(m)) - cr) < Consts.zero) goto L80;          //(JD 11/06/03)
+               scmp = (REAL) sin(cmp);
+               ccmp = (REAL) cos(cmp);
+               b = (REAL) sin(sigma);
+               cm2 = cm * cm;
+               q1[m] = -(cm2 - alpha + ((Region.d1 - alpha) * cm2 + alpha) * ccmp) / b / b / (cm2 - (REAL) 1.0);
+               q2[m] = c * ((cm2 - (REAL) 1.0) * (cm2 * (alpha - Region.d1) - alpha) * Consts.pi * scmp - (REAL) 2.0 * cm * Region.d1 * ((REAL) 1.0 + ccmp)) / b / (REAL) SQR(cm2 - (REAL) 1.0) / alfa;
+               sigma += alfa;
+               cmp += cpi;
+               cm += c;
+       }
+  goto L600;
+
+L80:
+  b = (REAL) sin(sigma);
+  q1[m] = (REAL) -2.0 * alpha / b / b;
+  q2[m] = (REAL) 0.25 * Region.d1 * c * Consts.pisq / b / alfa;
+  is = m+1;
+  sigma += alfa;
+  cm += c;
+  cmp += cpi;
+  goto L60;
+
+
+L90:
+  if(nf != hpara) goto L110;
+  fprintf(output, "\n           parabolic low pass filter");
+
+  q1[0] = (REAL) -0.25 * SQR(cpi/alfa);           //(JD 11/06/03)
+  q2[0] = (REAL) -2.0 * q1[0];                    //(JD 11/06/03)
+
+  for(m = 1; m < nconrp; m++) {
+    scmp = (REAL) sin(cmp);
+    ccmp = (REAL) cos(cmp);
+    b = (REAL) sin(sigma);
+    cmp2 = cmp * cmp;
+    q1[m] = ((REAL) 2.0 *(cmp * scmp - (REAL) 1.0 + ccmp) - cmp2) / (REAL) SQR(b*cmp);
+    q2[m] = (REAL) 2.0 *((REAL) 2.0*cmp*scmp+((REAL) 2.0-cmp2)*ccmp-(REAL) 2.0) / b / sigma / cmp2;
+    sigma += alfa;
+    cmp += cpi;
+  }
+  goto L600;
+
+
+L110:
+       if(nf != hexpo) goto L130;
+       fprintf(output, "\n           exponential low pass filter");
+
+       e = (REAL) 2.7182818;
+       q1[0] = (REAL) -0.5 * (e - (REAL) 2.0) / (e - (REAL) 1.0) * SQR(cpi/alfa);       //(JD 11/06/03)
+       q2[0] = (REAL) -2. * q1[0];                                                      //(JD 11/06/03)
+       for(m = 1; m < nconrp; m++) 
+       {
+               scmp = (REAL) sin(cmp);
+               ccmp = (REAL) cos(cmp);
+               b = (REAL) sin(sigma);
+               cmp2 = cmp * cmp;
+               q1[m] = -e / (e - (REAL) 1.0) * ((REAL) 1.0 - ccmp + cmp * ((e - (REAL) 1.0) * cmp / e - scmp)) / b / b / ((REAL) 1.0 + cmp2);
+               q2[m] = e / (e - (REAL) 1.0) * cmp2 * ((REAL) -2.0 / e + ((REAL) 1.0 - cmp2) * ccmp + (REAL) 2.0 * cmp * scmp) / b / sigma / SQR((REAL) 1.0 + cmp2);
+               sigma += alfa;
+               cmp += cpi;
+       }
+  goto L600;
+
+
+L130:
+  if(nf != hsinc) goto L160;
+  fprintf(output, "\n           sinc low pass filter");
+
+  cr = (REAL) 1.0 / c;
+  q1[0] = (REAL) -2.0 * SQR(c/alfa);                  //(JD 11/06/03)
+  q2[0] = (REAL) -2.0 * q1[0];                        //(JD 11/06/03)
+  is = 1;                                             //(JD 11/06/03)
+
+L140:
+       for(m = is; m < nconrp; m++) 
+       {                  //(JD 11/06/03)
+               b = (REAL) sin(sigma);
+               xcin = cin(cmp - Consts.pi) - cin(cmp + Consts.pi);
+               q1[m] = (REAL) 0.5 * cm * xcin / b / b;
+               if(fabs(((float)(m)) - cr) < Consts.zero) goto L155;       //(JD 11/19/03)
+               q2[m] = c * ((REAL) -0.5 * xcin - cm * ((REAL) 1.0 + (REAL) cos(cmp)) / (cm * cm - (REAL) 1.0)) / b / alfa;
+               cm += c;
+               sigma += alfa;
+               cmp += cpi;
+       }
+  goto L600;
+
+L155:
+  q2[m] = (REAL) 0.5 * c * cin(Consts.pi + Consts.pi) / b / alfa;
+  cm += c;
+  sigma += alfa;
+  cmp += cpi;
+  is = m+1;
+  goto L140;
+
+
+L160:
+  if(nf != hcosi) goto L200;
+  fprintf(output, "\n           cosine low pass filter");
+
+  cr = (REAL) 0.5 / c;
+  q1[0] = (REAL) 2.0 * ((REAL) 2.0 - Consts.pi) * SQR(c / alfa);     //(JD 11/06/03)
+  q2[0] = (REAL) -2.0 * q1[0];                                       //(JD 11/06/03)
+  is=1;                                                              //(JD 11/06/03)
+
+L170:
+
+
+       for(m=is; m < nconrp; m++)                                                                              //(JD 11/06/03)
+       {                                      
+               b = (REAL) sin(sigma);
+               if(fabs(float(m) - cr) < Consts.zero) goto L190;     //(JD 11/19/03)
+               scmp = (REAL) sin(cmp);
+               ccmp = (REAL) cos(cmp);
+               cm2 = (REAL) 4.0 * cm * cm;
+               q1[m] = ((REAL) 2.0 * cm * scmp - cm2) / b / b / (cm2 - (REAL) 1.0);
+               q2[m] = (REAL) 2.0 * c / alfa * ((REAL) -4.0 * cm + (cm2 + (REAL) 1.0) * scmp - cmp * (cm2 - (REAL) 1.0) * ccmp) / SQR(cm2 - (REAL) 1.0) / b;
+               cm += c;
+               sigma += alfa;
+               cmp += cpi;
+       }
+
+  goto L600;
+
+L190:
+  q1[m] = (REAL) -0.5 / b / b;
+  q2[m] = (REAL) 0.125 * ((REAL) 4.0 + Consts.pisq) * c / alfa / b;
+  cm += c;
+  sigma += alfa;
+  cmp += cpi;
+  is = m + 1;
+  goto L170;
+
+  // SHEPP AND LOGAN'S SINC FILTER
+
+L200:
+  if(nf != hshep) goto L240;
+  fprintf(output, "\n           shepp and logan's sinc filter");
+
+  q1[0] = (REAL) -4.0 * SQR(c/alfa);                //(JD 11/06/03)
+  q2[0] = (REAL) -2.0 * q1[0];                      //(JD 11/06/03)
+  cr = (REAL) 0.5 / c;
+  is = 1;                                           //(JD 11/06/03)
+
+L210:
+
+       for(m = is; m < nconrp; m++)                                     //(JD 11/06/03)
+       {                          
+               b = (REAL) sin(sigma);
+               cm2 = cm * cm;
+               cinf = cin(cmp + Consts.pid2) - cin(cmp - Consts.pid2);
+               q1[m] = -cm * cinf / b / b;
+               //if(fabs(((float)(m - 1)) - cr) < Consts.zero) goto L230;
+               if(fabs(((float)(m)) - cr) < Consts.zero) goto L230;           //(JD 11/19/03)
+               q2[m] = c / alfa / b * (cinf + ((REAL) 2.0 * cm2 * (REAL) sin(cmp) - cm) / (cm2 - (REAL) 0.25));
+               sigma += alfa;
+               cm += c;
+               cmp += cpi;
+
+       }
+
+  goto L600;
+
+L230:
+  q2[m] = c / alfa / b * (cin(Consts.pi) + (REAL) 1.0);
+  sigma += alfa;
+  cm += c;
+  cmp += cpi;
+  is = m+1;
+  goto L210;
+
+L240:
+
+  // UNKNOWN FILTER NAME
+  fprintf(output, "\n           can not recognize filter name -- %s  job abolished", int2str(nf));
+  return TRUE;
+
+  // WRONG INPUT DATA
+
+L400:
+  fprintf(output, "\n           *****insufficient data items - job aborted*****");
+  return TRUE;
+
+  // JOB FINISHED
+
+L600:
+  fprintf(output, "\n           band-width = %7.3f * nyquist cutoff freq.", c);
+  return FALSE;
+}
+
+
+
+
+
+
+
+
+
+   
diff --git a/src/snark/disp.cpp b/src/snark/disp.cpp
new file mode 100644 (file)
index 0000000..468bd21
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+**********************************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/disp.cpp $
+$LastChangedRevision: 85 $
+$Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+$Author: agulati $
+**********************************************************************
+
+ PRODUCE THE NUMERIC DISPLAY OF A RECONSTRUCTION ON THE PRINTER.
+ CALLED BY DISP.
+*/
+
+#include <cstdio>
+
+#include "blkdta.h"
+
+#include "disp.h"
+
+void disp(REAL* a, INTEGER nrow, INTEGER mcol, REAL scale, FILE* file)
+{
+    
+  INTEGER nlim;
+  INTEGER n;
+  int m, i;
+  INTEGER mfst;
+  INTEGER mlst;
+  INTEGER ifst;
+  INTEGER ilst;
+
+
+  fprintf(file, "\n                    scaling factor = %10.4f\n", scale);      
+      
+  nlim = nrow * mcol;
+  for(n = 0; n < nlim; n++) {
+  
+    a[n] = scale * a[n]; 
+  }
+
+  for(mfst = 0; mfst < mcol; mfst+=10) { // bug 130 - fix loop increment - swr - 7/6/05
+    mlst = MIN0(mfst + 9, mcol - 1);  // Bug 130 - fix the number of columns printed. Lajos, 7/8/05
+    fprintf(file, "\n\n                    printing columns %4i to %4i", mfst, mlst);
+    fprintf(file, "\n\n           ");
+    for(m = mfst; m <= mlst; m++) {
+      fprintf(file, " %10i", m);
+    }
+
+    ifst = mfst;
+    ilst = mlst;
+    for(n = 0; n <nrow; n++) {
+      fprintf(file, "\n  %5d     ",n);
+      for(i = ifst; i <= ilst; i++) {
+        fprintf(file, " %10.4f", a[i]);
+      }
+
+      ifst += mcol;
+      ilst += mcol;
+    }
+  }
+  return;
+}
diff --git a/src/snark/disp.h b/src/snark/disp.h
new file mode 100644 (file)
index 0000000..5809329
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/disp.h $
+ $LastChangedRevision: 79 $
+ $Date: 2014-07-01 15:33:39 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#ifndef DISP_H
+#define DISP_H
+
+void disp(REAL* a, INTEGER nrow, INTEGER mcol, REAL scale, FILE* file);
+
+#endif
diff --git a/src/snark/disply.cpp b/src/snark/disply.cpp
new file mode 100644 (file)
index 0000000..ca6b650
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/disply.cpp $
+ $LastChangedRevision: 79 $
+ $Date: 2014-07-01 15:33:39 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "int2str.h"
+#include "disp.h"
+
+#include "recfile.h"
+#include "infile.h"
+
+#include "disply.h"
+
+void disply()
+{
+       // was in post but it is realy local
+       CHAR prjnam[81];
+       CHAR phnnam[81];
+       CHAR recnam[81];
+
+       // was in geo but it is realy local
+       INTEGER nelem;
+       INTEGER area;
+
+       INTEGER word, flags[51];
+       unsigned int count, iter;
+       CHAR algn[5];
+       REAL scale;
+       REAL* Recon;
+       BOOLEAN eol, phan;
+
+       phan = FALSE;
+       scale = 1.0;
+
+       static const INTEGER hphan = CHAR2INT('p', 'h', 'a', 'n');
+       static const INTEGER hscal = CHAR2INT('s', 'c', 'a', 'l');
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+       static const INTEGER disply_codes[2] =
+       { CHAR2INT('p', 'h', 'a', 'n'), CHAR2INT('s', 'c', 'a', 'l') };
+
+       for (;;)
+       {
+               word = InFile.getwrd(FALSE, &eol, disply_codes, 2);
+               if (eol)
+                       break;
+
+               switch (word)
+               {
+               case hphan:
+                       phan = TRUE;
+                       break;
+
+               case hscal:
+                       scale = InFile.getnum(FALSE, &eol);
+                       break;
+
+               }
+       }
+
+       if (RecFile.Open("recfil") != 0)
+       {
+               fprintf(output, "\n **** unable to open recfil");
+               fprintf(output, "\n **** DISPLAY execution aborted\n");
+               return;
+       }
+
+       if (RecFile.GetNelem(&nelem) != 0)
+       {
+               ;
+       }
+
+       if (RecFile.GetProjName(prjnam) != 0)
+       {
+               ;
+       }
+
+       area = nelem * nelem;
+       //GeoPar.midpix = (GeoPar.nelem + 1) / 2;
+
+       InFile.listit(flags);
+
+       Recon = new REAL[area];
+
+       // if phantom selected
+       if (phan)
+       {
+               if (RecFile.ReadPhan(phnnam, Recon) != 0)
+               {
+                       fprintf(output, "\n **** phantom not present\n");
+               }
+               else
+               {
+                       fprintf(output, "\n     display of phantom\n");
+
+                       fprintf(output, "\n     phantom name:    %s", phnnam);
+
+                       disp(Recon, nelem, nelem, scale, output);
+               }
+       }
+
+       while (RecFile.ReadRec(recnam, algn, &count, &iter, Recon) == 0)
+       {
+
+               // if selected
+               if (flags[iter - 1] != 0)
+               {
+
+                       fprintf(output, "\n\n     reconstruction using %s iter %4i\n", algn,
+                                       count);
+
+                       fprintf(output, "\n     projection data: %s", prjnam);
+
+                       if (iter > 0)
+                       {
+                               fprintf(output, "\n     execution name:  %s", recnam);
+                       }
+
+                       disp(Recon, nelem, nelem, scale, output);
+               }
+       }
+
+       delete[] Recon;  // bug 92 - Lajos - 03/02/2005
+
+       fprintf(output, "\n");  // end of file reached
+       RecFile.Close();
+       return;
+}
diff --git a/src/snark/disply.h b/src/snark/disply.h
new file mode 100644 (file)
index 0000000..9191818
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/disply.h $
+ $LastChangedRevision: 79 $
+ $Date: 2014-07-01 15:33:39 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#ifndef DISPLY_H
+#define DISPLY_H
+
+void disply();
+
+#endif      
diff --git a/src/snark/dist.cpp b/src/snark/dist.cpp
new file mode 100644 (file)
index 0000000..7d6a7a6
--- /dev/null
@@ -0,0 +1,324 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ dist.cpp,v 1.2 2008/08/25 16:11:08 jklukowska Exp
+
+ COMPARE THE RECONSTRUCTION WITH THE TEST PICTURE
+ ***** INPUT VARIABLES *****
+ A,B:     TWO NELEM*NELEM ARRAYS CONTAINING THE TWO PICTURES
+ TO BE COMPARED.
+ LINEF:    A LOGICAL VARIABLE WHICH DETERMINES IF THE RESIDUAL
+ IS TO BE COMPUTED IN LINE OR STRIP MODE.
+ LIST,WEIGHT: ARRAYS NECESSARY FOR RAY AND WRAY.
+ FLAG:     INDICATOR TO CONTROL RESIDUAL COMPUTATION.
+ FLAG.NE.1 CAUSES RESIDUAL TO BE COMPUTED.
+ ***** OUTPUT VARIABLES *****
+ AVE(J):      THE AVERAGE DENSITY IN REGION J OF PICTURE B.
+ DIS(J):      THE TWO NORM DISTANCE IN REGION J BETWEEN A AND B.
+ REL(J):      THE ONE NORM DISTANCE IN REGION J BETWEEN A AND B.
+ VAR(J):      THE VARIANCE IN REGION J OF PICTURE B.
+ STD(J):      THE STANDARD DEVIATION IN REGION J OF B (=SQRT(VAR)).
+ RESID:    THE RESIDUAL- I.E. THE TWO NORM OF THE DIFFERENCE
+ BETWEEN THE PSEUDO PROJECTION OF B AND THE GIVEN
+ PROJECTION DATA FOR THE WHOLE PICTURE.
+
+ ---  Modified 4/1/88 to enable evaluation of subregions, either
+ through boundary selection by geomtric descriptions OR (OR BOTH)
+ pixel selection through density windowing wrt to phantom.
+ ---  Only pixels within the specified regions and density window
+ will be used in computing the metrics
+ ---  A switch ISW is added to indicate whether the phantom is passed through
+ the first array, a(), or the second array, b(), so that density
+ selection can always be referenced wrt the phantom
+ */
+
+#include <cstdlib>       
+#include <cstdio>
+#include <cmath>
+#include <stdio.h>
+#include <iostream>
+#include <limits>
+#include "math.h"
+#include "blkdta.h"
+#include "geom.h"
+#include "region.h"
+#include "anglst.h"
+#include "pseudo.h"
+#include "blob.h"
+#include "consts.h"
+#include "anglst.h"
+#include "creacm.h"
+#include "eval.h"
+#include "DistanceMeasureWSQD.h"
+
+void Eval_class::dist(
+INTEGER isw,
+REAL* a,
+REAL* b,
+BOOLEAN linef,
+INTEGER* list,
+REAL* weight,
+INTEGER flag,
+REAL* ave,
+REAL* dis,
+REAL* rel,
+REAL* var,
+REAL* std,
+REAL* resid,
+BOOLEAN fresid,
+REAL* klds,
+BOOLEAN fklds,
+REAL* wsqd,
+BOOLEAN fwsqd)
+{
+       REAL xd;
+       REAL yd;
+       REAL arg;
+
+       REAL theta, sinth, costh;
+
+       REAL raysum;
+       REAL psum;
+       INTEGER numb;
+       REAL snorm;
+       REAL rinc;
+       REAL drecon;
+       REAL dfantom;
+       REAL dtmp;
+       REAL divis;
+       REAL t1;
+       REAL t2;
+       REAL sumx;
+       REAL rel1;
+       REAL sumx2;
+
+       INTEGER npt1;
+       INTEGER rarea;
+       INTEGER i1;
+       INTEGER idx0;
+       INTEGER objtyp;
+       REAL rdis;
+       REAL wsqds;
+
+       // The near0 parameter is added to allow resetting non-zero variances
+       // (presumably arising from rounding error), computed variance < near0
+       // will be set to zero
+
+       REAL near0 = (REAL) 1e-5;
+
+       //  Repeat for other specified regions until all are considered
+       for (INTEGER ObjJ = 0; ObjJ < ObjN; ObjJ++)
+       {
+
+               t1 = Obj[ObjJ].t1;
+               t2 = Obj[ObjJ].t2;
+               sumx = 0.0;
+               rel1 = 0.0;
+               sumx2 = 0.0;
+               rdis = 0;
+               wsqds = 0.0;
+               divis = 0.0;
+               npt1 = 0;
+
+               objtyp = Obj[ObjJ].objcod;
+
+               // Specified region is the whole picture
+               if (objtyp == 0)
+               {
+
+                       // Test if pixel density (of phantom) is within selected range,
+                       // pixel outside density range are excluded
+                       for (int i = 0; i < GeoPar.area; i++)
+                       {
+
+                               if (isw == 0)
+                               {
+                                       dtmp = a[i];
+                               }
+                               else
+                               {
+                                       dtmp = b[i];
+                               }
+
+                               if ((dtmp >= t1) && (dtmp <= t2))
+                               {
+                                       dfantom = a[i];
+                                       drecon = b[i];
+                                       sumx += drecon;
+                                       sumx2 += SQR(drecon);
+                                       drecon = (REAL) fabs(dfantom - drecon);
+                                       rel1 += drecon;
+                                       divis += drecon * drecon;
+                                       npt1++;
+                               }
+                       }
+               }
+               else
+               {
+
+                       // Call subroutine "subreg" to compute parameters of specified region.
+                       subreg(ObjJ);
+
+                       idx0 = (Region.iy1 - 2) * GeoPar.nelem;
+
+                       for (int j = Region.iy1; j <= Region.iy2; j++)
+                       {
+                               xd = Region.xd0;
+                               yd = Region.yd0;
+                               idx0 += GeoPar.nelem;
+
+                               // Test if current pixel is in specified region
+                               for (int i = Region.ix1; i <= Region.ix2; i++)
+                               {
+                                       if (objtyp == 1)
+                                       {
+                                               // Rectangular subregion
+                                               if ((fabs(xd) > Region.aplus)
+                                                               || (fabs(yd) > Region.bplus))
+                                                       goto L222;
+                                       }
+                                       else
+                                       {
+                                               // Elliptical subregion
+                                               arg = (xd * xd) / Region.asq + (yd * yd) / Region.bsq;
+                                               if (arg > 1.0001)
+                                                       goto L222;
+                                       }
+
+                                       // Test if pixel density is within selected range
+                                       i1 = idx0 + i;
+
+                                       if (isw == 0)
+                                       {
+                                               dtmp = a[i1];
+                                       }
+                                       else
+                                       {
+                                               dtmp = b[i1];
+                                       }
+
+                                       if ((dtmp >= t1) && (dtmp <= t2))
+                                       {
+                                               dfantom = a[i1];
+                                               drecon = b[i1];
+                                               sumx += drecon;
+                                               sumx2 += SQR(drecon); // sumx2 += SQR(drecon - ave[ObjJ]);
+                                               drecon = (REAL) fabs(dfantom - drecon);
+                                               rel1 += drecon;
+                                               divis += drecon * drecon;
+                                               npt1++;
+                                       }
+
+                                       L222: xd += Region.d1;
+                                       yd -= Region.d2;
+                               }
+
+                               Region.xd0 -= Region.d2;
+                               Region.yd0 -= Region.d1;
+                       }
+               }
+
+               rel[ObjJ] = rel1;
+               Obj[ObjJ].npt = npt1;
+               rarea = npt1;
+               ave[ObjJ] = sumx / rarea;
+               dis[ObjJ] = (REAL) sqrt(divis / rarea);
+               var[ObjJ] = MAX0((REAL) 0.0, sumx2 / rarea - SQR(ave[ObjJ]));
+
+               // Reset very small non-zero variance (presumably due to rounding
+               // error) to zero
+
+               if (var[ObjJ] <= near0)
+               {
+                       var[ObjJ] = 0;
+               }
+
+               std[ObjJ] = (REAL) sqrt(var[ObjJ]);
+       }
+
+       // ALLOW USER TO SKIP EXPENSIVE STATISTIC COMPUTATION
+       if ((fresid || fklds || fwsqd) && flag != 1)
+       {
+               rdis = 0;
+               REAL kldis = 0;
+               bool kldserrorreported=false;
+               for (int np = 0; np < GeoPar.prjnum; np++)
+               {
+                       rinc = GeoPar.pinc;
+                       Anglst.getang(np, &theta, &sinth, &costh);
+
+                       if (GeoPar.vri)
+                       {
+                               rinc = GeoPar.pinc * MAX0((REAL) fabs(sinth), (REAL) fabs(costh));
+                       }
+
+                       for (int nr = GeoPar.fusray; nr <= GeoPar.lusray; nr++)
+                       {
+                               raysum = Anglst.prdta(np, nr);
+                               psum = pseudo(b, np, nr, list, weight, &numb, &snorm, linef, TRUE);
+
+                               if (numb != 0)
+                               {
+                                       if (linef && !GeoPar.line) raysum /= rinc;
+                                       if (!linef && GeoPar.line) raysum *= rinc;
+                                       rdis += SQR(psum - raysum);
+
+                                       // calculate kullback-leibler distance
+                                       if (!fklds)
+                                       {
+                                               // if it wasn't requested, set it to nan
+                                               kldis=nan("");
+                                       }
+                                       else if (raysum<0 && !kldserrorreported)
+                                       {
+                                               // report on non-applicability
+                                               std::cout << "\n****Warning: Negative raysum in prjfil detected, KLDS is not applicable and will be nan!";
+                                               kldis=nan("");
+                                               kldserrorreported=true;
+                                       }
+                                       // if it was requested and no errors occured, perform calculation
+                                       else if (!kldserrorreported && !isnan(kldis) && kldis!=std::numeric_limits<double>::infinity() && kldis!=std::numeric_limits<double>::max())
+                                       {
+                                               if (raysum<=Consts.zero && psum<=Consts.zero)
+                                               {
+                                                       // do nothing
+                                               }
+                                               else if (raysum<=Consts.zero)
+                                               {
+                                                       kldis += psum;
+                                               }
+                                               else if (psum<=Consts.zero)
+                                               {
+                                                       // set to infinity
+                                                       if (std::numeric_limits<double>::has_infinity) kldis = std::numeric_limits<double>::infinity();
+                                                       else kldis = std::numeric_limits<double>::max();
+                                               }
+                                               else
+                                               {
+                                                       if ((raysum / psum) > Consts.zero) kldis += (raysum * log(raysum / psum));
+                                                       else kldis += (raysum * log(Consts.zero));
+
+                                                       kldis += psum - raysum;
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               *resid = (REAL) sqrt(rdis);
+               *klds = kldis;
+
+               if (fwsqd) {
+                       DistanceMeasureWSQD* distanceMeasureWSQD = new DistanceMeasureWSQD();
+                       *wsqd = distanceMeasureWSQD->calculateDistance(b, list, weight);
+                       delete distanceMeasureWSQD;
+               }
+       }
+       return;
+}
diff --git a/src/snark/doline.cpp b/src/snark/doline.cpp
new file mode 100644 (file)
index 0000000..24115e4
--- /dev/null
@@ -0,0 +1,192 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/doline.cpp $
+ $LastChangedRevision: 79 $
+ $Date: 2014-07-01 15:33:39 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+
+ POST-PROCESSING ROUTINE TO GENERATE LINE DISPLAYS OF
+ RECONSTRUCTIONS.
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "lines.h"
+
+//#include "int2str.h"
+#include "recfile.h"
+#include "infile.h"
+
+#include "doline.h"
+
+void doline()
+{
+       // was in post but it is realy local
+       CHAR prjnam[81];
+       CHAR phnnam[81];
+       CHAR recnam[81];
+
+       // was in geo but it is realy local
+       INTEGER nelem;
+       INTEGER area;
+
+       REAL scale, denmin, denmax;
+       INTEGER word, lineno, linumb[4], flag[51];
+       REAL* Phantom;
+       REAL* Recon;
+       CHAR algn[5];
+       unsigned INTEGER count, iter;
+       BOOLEAN eol;
+       BOOLEAN minfl, maxfl;
+
+       INTEGER index;
+
+       int i;
+
+       static const INTEGER hscal = CHAR2INT('s', 'c', 'a', 'l');
+       static const INTEGER hcolu = CHAR2INT('c', 'o', 'l', 'u');
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+       static const INTEGER doline_codes[2] = { CHAR2INT('s', 'c', 'a', 'l'), CHAR2INT('c', 'o', 'l', 'u') };
+
+       if (RecFile.Open("recfil") != 0)
+       {
+               fprintf(output, "\n **** unable to open recfil");
+               fprintf(output, "\n **** LINE execution aborted\n");
+               return;
+       }
+
+       if (RecFile.GetNelem(&nelem) != 0)
+       {
+               ;
+       }
+
+       if (RecFile.GetProjName(prjnam) != 0)
+       {
+               ;
+       }
+
+       area = nelem * nelem;
+       //GeoPar.midpix = (GeoPar.nelem + 1) / 2;
+
+       lineno = 0;
+       minfl = FALSE;
+       maxfl = FALSE;
+       scale = 1.0;
+
+       for (;;)
+       {
+               word = InFile.getwrd(FALSE, &eol, doline_codes, 2);
+
+               if (eol)
+               {
+                       fprintf(output, "\n **** no columns requested");
+                       fprintf(output, "\n **** LINE execution aborted\n");
+                       RecFile.Close();
+                       return;
+               }
+
+               if (word == hscal)
+               {
+                       scale = InFile.getnum(FALSE, &eol);
+                       continue;
+               };
+
+               if (word == hcolu)
+                       break;
+       }
+
+       for (;;)
+       {
+               index = InFile.getint(FALSE, &eol);
+
+               if (eol)
+                       break;
+
+               if ((index >= 0) && (index < nelem))
+               {
+
+                       if (lineno >= 4)
+                               break;
+                       linumb[lineno++] = index;
+               }
+               else
+               {
+                       fprintf(output,
+                                       "\n **** requested column %d is not in the range (0, %d)",
+                                       index, nelem - 1);
+                       fprintf(output, "\n **** COLUMN %d ignored", index);
+               }
+
+       }
+
+       if (lineno == 0)
+       {
+               fprintf(output, "\n **** no columns requested");
+               fprintf(output, "\n **** LINE execution aborted\n");
+               RecFile.Close();
+               return;
+       }
+
+       InFile.listit(flag);
+
+       Phantom = new REAL[area];
+       Recon = new REAL[area];
+
+       // load phantom
+       if (RecFile.ReadPhan(phnnam, Phantom) != 0)
+       {
+               fprintf(output, "\n **** phantom not present");
+               fprintf(output, "\n **** LINE execution aborted\n");
+               RecFile.Close();
+               return;
+       }
+
+       if (!minfl)
+       {
+               denmin = Phantom[0];
+               for (i = 1; i < area; i++)
+               {
+                       if (Phantom[i] < denmin)
+                               denmin = Phantom[i];
+               }
+       }
+       if (!maxfl)
+       {
+               denmax = Phantom[0];
+               for (i = 1; i < area; i++)
+               {
+                       if (Phantom[i] > denmax)
+                               denmax = Phantom[i];
+               }
+       }
+
+       // Load reconstructed images
+       while (RecFile.ReadRec(recnam, algn, &count, &iter, Recon) == 0)
+       {
+
+               if (flag[iter - 1] != 0)
+               {
+                       fprintf(output,
+                                       "\n     lines display of reconstruction using %s iter %d\n",
+                                       algn, count);
+                       fprintf(output, "\n     phantom name:    %s", phnnam);
+                       fprintf(output, "\n     projection data: %s", prjnam);
+                       fprintf(output, "\n     execution name:  %s", recnam);
+                       lines(Phantom, Recon, nelem, nelem, scale, lineno, linumb, output);
+               }
+       }
+
+       delete[] Recon;  // bug 92 - Lajos - 03/02/2005
+       delete[] Phantom;  // bug 92 - Lajos - 03/02/2005
+
+       fprintf(output, "\n ");
+
+       RecFile.Close();
+       return;
+}
diff --git a/src/snark/doline.h b/src/snark/doline.h
new file mode 100644 (file)
index 0000000..45236d4
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/doline.h $
+ $LastChangedRevision: 79 $
+ $Date: 2014-07-01 15:33:39 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#ifndef DOLINE_H
+#define DOLINE_H
+      
+void doline();
+
+#endif
diff --git a/src/snark/effpick.cpp b/src/snark/effpick.cpp
new file mode 100644 (file)
index 0000000..fcc07aa
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/effpick.cpp $
+ $LastChangedRevision: 79 $
+ $Date: 2014-07-01 15:33:39 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "uiod.h"
+#include "blkdta.h"
+#include "primfc.h"
+#include "effpick.h"
+
+void factorization(INTEGER num, INTEGER** decomp, INTEGER *num_dig)
+{
+       // factorizes num and put the factors into vector decomp of size num_dig
+
+       INTEGER m2s, nipf, mnipf, k;
+
+       INTEGER* ipf = NULL;
+
+
+       if (num == 1)
+       {  //bug 144 earlier version gets *num_dig=0 when num == 1
+               *num_dig = 1;
+               *decomp = new INTEGER[1];
+               *decomp[0] = 1;
+               return;
+       }
+
+       else
+       { //num > 1
+
+               mnipf = (INTEGER) ceil(log((REAL) num) / log(2.0));
+
+               ipf = new INTEGER[mnipf];
+               primfc(num, &m2s, &nipf, ipf, mnipf);
+
+               *num_dig = m2s + nipf;
+               *decomp = new INTEGER[*num_dig];
+
+               for (k = 0; k < m2s; k++)
+               {
+                       (*decomp)[k] = 2;
+               }
+
+               for (k = 0; k < nipf; k++)
+               {
+                       (*decomp)[k + m2s] = ipf[k];
+               }
+
+               delete[] ipf;  //wei 3/2005
+               return;
+       }
+}
+
+void tau_map(INTEGER num_dig, INTEGER* decomp, INTEGER* old_num,
+               INTEGER* new_num)
+{
+       // see the definition of the tau mapping in "Herman and Meyer. Algebraic reconstruction techniques can be made computationally efficient. IEEE Trans. on Medical Imaging 12: 600--609. 1993"
+       static INTEGER cont, ind;
+
+       if (old_num[0] == -1)
+       {
+               for (cont = 0; cont < num_dig; cont++)
+               {
+                       old_num[cont] = 0;
+                       new_num[cont] = 0;
+               }
+               return;
+       }
+
+       for (cont = 0; cont < num_dig; cont++)
+       {
+               if (old_num[cont] != decomp[cont] - 1)
+               {
+                       ind = cont;
+                       break;
+               }
+       }
+
+       for (cont = 0; cont < num_dig; cont++)
+       {
+               if (cont < ind)
+               {
+                       new_num[cont] = 0;
+               }
+               else if (cont == ind)
+               {
+                       new_num[cont] = old_num[cont] + 1;
+               }
+               else
+               {
+                       new_num[cont] = old_num[cont];
+               }
+       }
+
+       for (cont = 0; cont < num_dig; cont++)
+               old_num[cont] = new_num[cont];
+}
+
+void get_base(INTEGER* decomp, INTEGER num_dig, INTEGER** base)
+{
+       // given the factorization vector decomp (of size num_dig) in increasing order, the routine returns another vector whose components are the accumulative product of decomp in the reversed order
+       INTEGER cont, aux;
+
+       aux = 1;
+
+       *base = new INTEGER[num_dig];
+
+       (*base)[num_dig - 1] = 1;
+
+       for (cont = 0; cont < num_dig - 1; cont++)
+       {
+               aux = aux * decomp[num_dig - cont - 1];
+               (*base)[num_dig - cont - 2] = aux;
+       }
+
+       return;
+
+}
+
+void nu_map(INTEGER num_dig, INTEGER* base, INTEGER* num, INTEGER* result)
+{
+       // given the the vector num whose components are the digits of a number written in base "base", this routines returns that number as "result"
+       INTEGER cont;
+
+       *result = 0;
+
+       for (cont = 0; cont < num_dig; cont++)
+       {
+               *result = *result + base[cont] * num[cont];
+       }
+
+}
+
+void pi_map(INTEGER num_dig, INTEGER* decomp, INTEGER* base, INTEGER** old_num,
+               INTEGER** new_num, INTEGER* res)
+{
+       // given the factorizaton vector decomp and the vector base, this routines is the composition of nu_map and tau_map
+
+       tau_map(num_dig, decomp, (*old_num), (*new_num));
+       nu_map(num_dig, base, (*new_num), res);
+
+
+       return;
+}
+
diff --git a/src/snark/effpick.h b/src/snark/effpick.h
new file mode 100644 (file)
index 0000000..1af364d
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ **********************************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/effpick.h $
+ $LastChangedRevision: 79 $
+ $Date: 2014-07-01 15:33:39 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ **********************************************************************
+ */
+
+#ifndef EFFPICK_H
+#define EFFPICK_H
+
+void factorization(INTEGER num, INTEGER** decomp, INTEGER *num_dig);
+
+void get_base(INTEGER* decomp, INTEGER num_dig, INTEGER** base);
+
+void pi_map(INTEGER num_dig, INTEGER* decomp, INTEGER* base, INTEGER** old_num,
+               INTEGER** new_num, INTEGER* res);
+
+#endif
diff --git a/src/snark/emap.cpp b/src/snark/emap.cpp
new file mode 100644 (file)
index 0000000..c8689dd
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/emap.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ===========================================================================
+ maximum a-posteriori probability expectation maximization algorithm
+ for the reconstruction in emission tomography (Herman, De Pierro, and
+ Gai, "On Methods for Maximum A Posteriori Image Reconstruction with
+ a Normal Prior," Technical Report MIPG181, Medical Image Processing
+ Group, Dept. of Radiology, Univ. of Pennsylvania, 1992.)
+
+ input line in snark:
+ gamma  [eval sy1 sy2]]
+ e.g.:  1.0    eval 10  1
+ ===========================================================================
+ */
+
+#include <cstdio>
+#include <cstdlib>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "blob.h"
+#include "uiod.h"
+
+#include "emap.h"
+
+INTEGER emap_class::Init()
+{
+       MAPUser1 = fopen("MAPUser1", "r+");
+       MAPEM.qj = NULL;
+       MAPEM.Kx = NULL;
+       MAPEM.Sx = NULL;
+       MAPEM.Wjj = NULL;
+       MAPEM.Sjjinv = NULL;
+       MAPEM.prj = NULL;                       //wei 3/2005
+
+       return 0;
+}
+
+INTEGER emap_class::Reset()
+{
+       fclose(MAPUser1);
+       if (MAPEM.qj != NULL)
+               delete[] MAPEM.qj;
+       if (MAPEM.Kx != NULL)
+               delete[] MAPEM.Kx;
+       if (MAPEM.Sx != NULL)
+               delete[] MAPEM.Sx;
+       if (MAPEM.Wjj != NULL)
+               delete[] MAPEM.Wjj;
+       if (MAPEM.Sjjinv != NULL)
+               delete[] MAPEM.Sjjinv;
+       if (MAPEM.prj != NULL)
+               delete[] MAPEM.prj;                //wei 3/2005
+       return 0;
+}
+
+BOOLEAN emap_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       INTEGER area;
+       BOOLEAN flag;  //added hstau 1/04
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+//------------------------   statements    ----------------------------
+       if (iter == 1)
+       {
+
+               MAPUser1 = fopen("MAPUser1", "w");
+
+               if (GeoPar.par)
+               {
+                       MAPEM.delta = MAX0((REAL) 1.0,
+                                       (REAL) 2.0 * (GeoPar.pixsiz / GeoPar.pinc));
+               }
+               else
+               {
+                       MAPEM.delta = GeoPar.pixsiz / (GeoPar.pinc * (REAL) sqrt(2.) * (GeoPar.radius - (REAL) sqrt(.5) * GeoPar.pixsiz * GeoPar.nelem) / GeoPar.stod);
+               }
+
+               MAPEM.delta++;
+
+               if (((INTEGER) MAPEM.delta) > GeoPar.usrays)
+               {
+                       MAPEM.delta = (REAL) GeoPar.usrays;
+               }
+
+               // nelem not used. hstau
+               ReadInp(area, GeoPar.nelem, GeoPar.usrays, GeoPar.prjnum, &flag); //hstau 1/04
+
+               if (flag)
+                       return TRUE; //added hstau 1/04
+
+               if (MAPEM.gamma1 <= Consts.zero)
+               {
+                       MAPEM.gamma1 = 0.0;
+               }
+
+               if (GeoPar.nelem == 1)
+                       MAPEM.gamma1 = 0.0;                                  //wei 1/2005
+
+               if (!Blob.pix_basis && MAPEM.gamma1 > 0.0)
+               {
+                       fprintf(output,
+                                       "\n *** error: gamma must be 0.0 when using blob basis");
+                       return TRUE;  //it was exit(1); bug 123, hstau 7/8/05
+               }
+
+               InitMAP(recon);
+       }  // iter ==1
+
+       for (MAPEM.idy = 0; MAPEM.idy <= MAPEM.idymax - 1; MAPEM.idy++)
+       {
+               for (MAPEM.idx = 0; MAPEM.idx <= MAPEM.idxmax - 1; MAPEM.idx++)
+               {
+                       if (MAP(recon))
+                               return TRUE;            //added by wei, 1/2005
+               }
+       }
+
+       if (MAPEM.mapevl)
+       {
+               EvalMAP(recon, iter);
+       }
+
+       return FALSE;
+}
diff --git a/src/snark/emap.h b/src/snark/emap.h
new file mode 100644 (file)
index 0000000..aef84fa
--- /dev/null
@@ -0,0 +1,40 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/emap.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef EMAP_H
+#define EMAP_H
+
+#include <cstdio>
+#include "alg.h"
+
+class MAPEM_class
+{
+public:
+       REAL* qj;REAL* Kx;REAL* Sx;REAL* Wjj;REAL* prj;INTEGER idxmax, idymax, idx,
+                       idy;REAL* Sjjinv;REAL gamma1, sclfactor, delta;BOOLEAN mapevl;
+};
+
+class emap_class: public alg_class
+{
+private:
+       MAPEM_class MAPEM;
+       FILE* MAPUser1;
+
+       void EvalMAP(REAL* recon, INTEGER iter);
+       void InitMAP(REAL* recon);
+       void ReadInp(INTEGER area, INTEGER nelem, INTEGER usrays, INTEGER prjnum, BOOLEAN *flag);BOOLEAN MAP(REAL* recon);
+       void applyK(REAL* source, REAL* dest, INTEGER nelem);BOOLEAN findqpart( INTEGER np, INTEGER nr, REAL yi, REAL* recon, REAL* qtilde);
+       void sscal(INTEGER size, REAL factor, REAL* dest, INTEGER spac);
+
+public:
+       INTEGER Init();BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);INTEGER Reset();
+};
+
+#endif      
diff --git a/src/snark/emap_CEvalMAP.cpp b/src/snark/emap_CEvalMAP.cpp
new file mode 100644 (file)
index 0000000..86efee8
--- /dev/null
@@ -0,0 +1,144 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/emap_CEvalMAP.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+
+ ===========================================================================
+ Evaluation of the MAP algorithms (the results are written to "user1")
+ ===========================================================================
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "uiod.h"
+#include "wray.h"
+#include "blob.h"
+
+#include "emap.h"
+
+void emap_class::EvalMAP(REAL* recon, INTEGER iter)
+{
+       //------ local variables
+       INTEGER i, j, iadr, nb, np, nr, numb, list[4096], usnr;
+       REAL snorm, weight[4096], diff1;
+       double sum1, sum2, y, diffnbs, totalsum, sclf, smx, pictk, ssum1, ssum2;
+
+       //------ evaluation
+
+       //------ log-likelihood
+       sum1 = 0.0;
+       sclf = MAPEM.sclfactor;
+       for (i = 0; i < GeoPar.prjnum; i++)
+       {
+               ssum1 = 0.0;
+               for (j = 0; j < GeoPar.usrays; j++)
+               {
+                       np = i;
+                       usnr = j;
+                       nr = usnr + GeoPar.fusray;
+
+                       y = MAPEM.prj[(np) * GeoPar.usrays + usnr] * sclf;
+
+                       smx = 0.0;
+                       if (Blob.pix_basis)
+                       {
+                               wray(np, nr, list, weight, &numb, &snorm);
+                       }
+                       else
+                       {
+                               Blob.bwray(np, nr, list, weight, &numb, &snorm);
+                       }
+
+                       if (numb != 0)
+                       {
+                               for (nb = 0; nb < numb; nb++)
+                               {
+                                       iadr = list[nb];
+                                       pictk = recon[iadr];
+                                       smx += pictk * weight[nb];
+                               }
+                       }
+                       smx *= sclf;
+
+                       if (smx > 0.0)
+                       {
+                               ssum1 += y * log(smx) - smx;
+                       }
+                       else if (smx < 0.0)
+                       {
+                               fprintf(output, "\n In EvalMAP  smx = %14.7f y = %14.7f", smx,
+                                               y);
+                               fprintf(output, "\n smx must be greater than 0.0");
+                       }
+
+               }
+               sum1 += ssum1;
+       }
+
+       sum2 = 0.0; // moved out of the `if' block for initialization. Lajos, Feb 10, 2005
+       if (Blob.pix_basis)
+       { // when blob, gamma is 0.0, so this step is skept. hstau 6/25/2003
+
+               for (i = GeoPar.nelem; i < GeoPar.area - 2 * GeoPar.nelem + 1; i +=
+                               GeoPar.nelem)
+               {
+                       ssum2 = 0.0;
+                       for (j = i + 1; j < i + GeoPar.nelem - 2; j++)
+                       {
+                               diff1 = recon[j]
+                                               - (REAL) 0.125
+                                                               * (recon[j - 1 - GeoPar.nelem]
+                                                                               + recon[j - GeoPar.nelem]
+                                                                               + recon[j + 1 - GeoPar.nelem]
+                                                                               + recon[j - 1] + recon[j + 1]
+                                                                               + recon[j - 1 + GeoPar.nelem]
+                                                                               + recon[j + GeoPar.nelem]
+                                                                               + recon[j + 1 + GeoPar.nelem]);
+                               diffnbs = diff1 * MAPEM.sclfactor;
+                               ssum2 += diffnbs * diffnbs;
+                       }
+                       sum2 += ssum2;
+               }
+
+               sum2 = -0.5 * MAPEM.gamma1 * sum2;
+       }  // if pixel basis
+
+       totalsum = sum1 + sum2;
+
+       //------ write results
+       if (iter == 1)
+       {
+               if (MAPEM.gamma1 == 0.0)
+               {
+                       fprintf(MAPUser1, "\n    iter     log-likelihood");
+               }
+               else
+               {
+                       ///if(MAPEM.gamma1 != 0.0) {
+                       fprintf(MAPUser1,
+                                       "\n    iter     log-likelihood          log-posterior");
+               }
+       }
+
+       if (MAPEM.gamma1 == 0.0)
+       {
+               fprintf(MAPUser1, "\n %5i  %20.9f", iter, sum1);
+       }
+       else
+       {
+               ///if(MAPEM.gamma1 != 0.0) {
+               fprintf(MAPUser1, "\n %5i  %20.9f  %20.9f", iter, sum1, totalsum);
+       }
+
+       fflush(MAPUser1);
+
+       return;
+}
diff --git a/src/snark/emap_CInitMAP.cpp b/src/snark/emap_CInitMAP.cpp
new file mode 100644 (file)
index 0000000..b3883f5
--- /dev/null
@@ -0,0 +1,215 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/emap_CInitMAP.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ===========================================================================
+ initialize working space for the MAP algorithm
+ ===========================================================================
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "uiod.h"
+#include "anglst.h"
+#include "wray.h"
+#include "blob.h"
+
+#include "emap.h"
+
+REAL getSjj(INTEGER j, INTEGER nelem);
+
+void emap_class::InitMAP(REAL* recon)
+{
+
+       INTEGER testneg;
+       //------ local variables
+       INTEGER i, first, np, nr, idelta, numb, list[4096], usnr;
+       REAL snorm, weight[4096];
+
+       INTEGER area;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       idelta = (INTEGER) (MAPEM.delta);
+
+       //------ set image to average density and initialize the work area for
+       //       the total length of all projections through each pixel
+       //cvd$  nodepchk
+
+       for (i = 0; i < area; i++)
+       {
+               MAPEM.Wjj[i] = 0.0;
+               if (Blob.pix_basis)
+                       MAPEM.Sjjinv[i] = 1 / getSjj(i, GeoPar.nelem); //blob case will not use Sjj Hstau 6/25/2003
+       }
+
+       if (Blob.pix_basis)
+       { //not needed in the blob case Hstau 6/3/2003
+               for (i = 0; i < area; i++)
+               {
+                       MAPEM.Kx[i] = 0.0;
+                       MAPEM.Sx[i] = 0.0;
+               }
+       }
+
+       // compute the total length of all projections through each pixel
+
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+               for (first = 0; first < idelta; first++)
+               {
+                       for (nr = first; nr < GeoPar.nrays; nr += idelta)
+                       {
+                               if (Blob.pix_basis)
+                               {
+                                       wray(np, nr, list, weight, &numb, &snorm);
+                               }
+                               else
+                               {
+                                       Blob.bwray(np, nr, list, weight, &numb, &snorm);
+                               }
+
+                               for (i = 0; i < numb; i++)
+                               {
+
+                                       if (MAPEM.gamma1 > 0.0)
+                                       {  //when blobs, gamma1 = 0.0
+                                               MAPEM.Wjj[list[i]] += weight[i] / MAPEM.gamma1
+                                                               * MAPEM.Sjjinv[list[i]];
+                                       }
+                                       else
+                                       {
+                                               MAPEM.Wjj[list[i]] += weight[i];
+                                       }
+                               }
+                       }
+               }
+       }
+
+       //------ get projection data
+
+       testneg = 0;
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+               for (usnr = 0; usnr < GeoPar.usrays; usnr++)
+               {
+
+                       //nr = usnr + GeoPar.fusray - 1;
+                       nr = usnr + GeoPar.fusray; // mk
+
+                       // T.K. Narayan's modification -  24.Apr.1996
+                       // setting negative projection data to 0.0
+
+                       if (Anglst.prdta(np, nr) >= 0.0)
+                       {
+                               //MAPEM.prj[(np-1)*GeoPar.usrays+usnr] = prdta(np,nr);
+                               MAPEM.prj[(np) * GeoPar.usrays + usnr] = Anglst.prdta(np, nr);
+                       }
+                       else
+                       {
+                               //MAPEM.prj[(np-1)*GeoPar.usrays+usnr] = 0.0;
+                               MAPEM.prj[(np) * GeoPar.usrays + usnr] = 0.0;
+                               testneg++;
+                               if (testneg == 1)
+                               {
+                                       fprintf(output,
+                                                       "\n     *** WARNING - There exist negative values in the projection data ***"); //bug 127, hstau 7/8/2005
+                                       fprintf(output,
+                                                       "\n     *** Negative values set to 0.0 ***");
+                               }
+                       }
+               }
+       }
+
+       return;
+}
+
+REAL getSjj(INTEGER j, INTEGER nelem)
+// integer j, nelem
+{
+       INTEGER jx, jy;
+
+       j++; // MK
+
+       if (nelem == 3)
+       {
+               if (j == 5)
+                       return 1.;
+               else
+                       return 1 / 64.;
+       }                                //add exception when nelem=3,by wei, 1/2005
+
+       jx = j - ((j - 1) / nelem) * nelem;
+       jy = (j - 1) / nelem + 1;
+       if ((jx > 2) && (jx < nelem - 1))
+       {
+               if ((jy > 2) && (jy < nelem - 1))
+               {
+                       return 9 / 8.;
+               }
+               else
+               {
+                       if ((jy == 2) || (jy == nelem - 1))
+                       {
+                               return 69 / 64.;
+                       }
+                       else
+                       {
+                               return 3 / 64.;
+                       }
+               }
+       }
+       else
+       {
+               if ((jx == 2) || (jx == nelem - 1))
+               {
+                       if ((jy > 2) && (jy < nelem - 1))
+                       {
+                               return 69 / 64.;
+                       }
+                       else
+                       {
+                               if ((jy == 2) || (jy == nelem - 1))
+                               {
+                                       return 67 / 64.;
+                               }
+                               else
+                               {
+                                       return 1 / 32.;
+                               }
+                       }
+               }
+               else
+               {
+                       if ((jy > 2) && (jy < nelem - 1))
+                       {
+                               return 3 / 64.;
+                       }
+                       else
+                       {
+                               if ((jy == 2) || (jy == nelem - 1))
+                               {
+                                       return 1 / 32.;
+                               }
+                               else
+                               {
+                                       return 1 / 64.;
+                               }
+                       }
+               }
+       }
+}
diff --git a/src/snark/emap_CMAP.cpp b/src/snark/emap_CMAP.cpp
new file mode 100644 (file)
index 0000000..4d4c282
--- /dev/null
@@ -0,0 +1,304 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/emap_CMAP.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ======================================================================
+ one iteration of the maximum a-posteriori reconstruction algorithm
+ for emission tomography
+ ======================================================================
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "blob.h"
+
+#include "emap.h"
+
+BOOLEAN emap_class::MAP(REAL* recon)
+{
+       //------ local variables
+       INTEGER i, j, first, np, nr, idelta, usnr;
+       REAL p, q;
+       REAL yi;
+       INTEGER area;
+
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+
+       else
+       {
+               area = Blob.area;
+       }
+
+       idelta = (INTEGER) (MAPEM.delta);
+
+       //====== step 1: compute q for iteration k+1:
+       for (j = 0; j < area; j++)
+       {
+               MAPEM.qj[j] = 0.0;
+       }
+
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+               for (first = 0; first < idelta; first++)
+               {
+                       for (usnr = first; usnr < GeoPar.usrays; usnr += idelta)
+                       {
+                               nr = usnr + GeoPar.fusray;
+                               yi = MAPEM.prj[(np) * GeoPar.usrays + usnr];
+                               if (yi != 0.0)
+                               {
+                                       if (findqpart(np, nr, yi, recon, MAPEM.qj))
+                                               return TRUE; //if findqpart return false, EMAP is not applicable, bywei 1/2005
+                               }
+                       }
+               }
+       }
+
+       // MAPEM.idy = MAPEM.idx = 0, see comments in emap.cpp
+
+#ifdef HSTAU
+       fprintf(output,"\n #IDY=%d #IDX=%d\n", MAPEM.idy, MAPEM.idx);fflush(output);
+#endif
+
+       if (Blob.pix_basis)
+       {
+               for (i = MAPEM.idy * GeoPar.nelem;
+                               i < GeoPar.nelem * (GeoPar.nelem - 1) + 1;
+                               i += GeoPar.nelem * MAPEM.idymax)
+               {
+                       for (j = i + MAPEM.idx; j < i + GeoPar.nelem; j += MAPEM.idxmax)
+                       {
+
+                               if (MAPEM.gamma1 > 0.0)
+                               {
+                                       MAPEM.qj[j] *= recon[j] * MAPEM.Sjjinv[j] / MAPEM.gamma1;
+                               }
+                               else
+                               {
+                                       if (MAPEM.Wjj[j] > Consts.zero)
+                                               MAPEM.qj[j] *= recon[j] / MAPEM.Wjj[j];
+                                       else
+                                               MAPEM.qj[j] = recon[j]; //keep recon[j] unchanged when qj[j]is zero, by wei 1/2005
+                               }
+                       }
+               }
+       }
+       else
+       { //blob case
+               for (i = MAPEM.idy * Blob.M; i < Blob.M * (Blob.H - 1) + 1;
+                               i += Blob.M * MAPEM.idymax)
+               {
+                       for (j = i + MAPEM.idx; j < i + Blob.M; j += MAPEM.idxmax)
+                       {
+
+                               if (j % 2 == Blob.pr)
+                               {
+                                       if (MAPEM.Wjj[j] > Consts.zero)
+                                               MAPEM.qj[j] *= recon[j] / MAPEM.Wjj[j];
+                                       else
+                                               MAPEM.qj[j] = recon[j]; //recon[j] keep unchanged when Wjj[j] is zero, by wei 1/2005
+                               }
+                       }
+               }
+       }
+
+       if (MAPEM.gamma1 > 0.0)
+       {  // blob case will not enter here.hstau
+               //====== step 2: compute "smoothing component" from "recon" to "Sx"
+               applyK(recon, MAPEM.Kx, GeoPar.nelem);
+
+//     ---Set edges to 0.0
+               for (i = 0; i < GeoPar.nelem; i++)
+               {
+                       MAPEM.Kx[i] = 0.0;          // first row
+                       //MAPEM.Kx[(i-1)*GeoPar.nelem+1] = 0.0;
+                       MAPEM.Kx[(i + 1) * GeoPar.nelem - 1] = 0.0; // last column
+                       MAPEM.Kx[i * GeoPar.nelem] = 0.0;     // first column
+                       MAPEM.Kx[(GeoPar.nelem - 1) * GeoPar.nelem + i] = 0.0; // last row
+               }
+
+               applyK(MAPEM.Kx, MAPEM.Sx, GeoPar.nelem);
+
+               //====== step 3: compute x for iteration k+1 from "Sx" and "qj"
+               //cvd$     nosync
+               for (i = MAPEM.idy * GeoPar.nelem;
+                               i < GeoPar.nelem * (GeoPar.nelem - 1) + 1;
+                               i += GeoPar.nelem * MAPEM.idymax)
+               {
+                       for (j = i + MAPEM.idx; j < i + GeoPar.nelem; j += MAPEM.idxmax)
+                       {
+                               p = MAPEM.Wjj[j] / (REAL) 9.0 - recon[j]
+                                               + MAPEM.Sx[j] * MAPEM.Sjjinv[j] / (REAL) 9.0;
+                               q = MAPEM.qj[j] / (REAL) 9.0;
+                               if ((p <= 0.0) || (q / (p * p) >= 0.005))
+                               {
+                                       MAPEM.qj[j] = (REAL) 0.5
+                                                       * (-p + (REAL) sqrt(p * p + 4 * q));
+                               }
+                               else
+                               {
+                                       MAPEM.qj[j] = q / p * (1 - (REAL) 0.5 * (q / (p * p)));
+                               }
+                       }
+               }
+       }    // not with the blob case .hstau
+
+       //====== step 4: replace k-th iteration by (k+1)-th iteration in the
+       //       reconstruction
+       if (Blob.pix_basis)
+       {
+               for (i = MAPEM.idy * GeoPar.nelem;
+                               i < GeoPar.nelem * (GeoPar.nelem - 1) + 1;
+                               i += GeoPar.nelem * MAPEM.idymax)
+               {
+                       for (j = i + MAPEM.idx; j < i + GeoPar.nelem; j += MAPEM.idxmax)
+                       {
+                               if (MAPEM.qj[j] < Consts.zero)
+                               {
+                                       recon[j] = Consts.zero;
+                               }
+                               else
+                               {
+                                       recon[j] = MAPEM.qj[j];
+                               }
+                       }
+               }
+       }
+
+       else
+       {  //if blobs
+               for (i = MAPEM.idy * Blob.M; i < Blob.M * (Blob.H - 1) + 1;
+                               i += Blob.M * MAPEM.idymax)
+               {
+                       for (j = i + MAPEM.idx; j < i + Blob.M; j += MAPEM.idxmax)
+                       {
+
+                               if (j % 2 == Blob.pr)
+                               { //only the hex grid points
+                                       if (MAPEM.qj[j] < Consts.zero)
+                                       {
+                                               recon[j] = Consts.zero;
+                                       }
+                                       else
+                                       {
+                                               recon[j] = MAPEM.qj[j];
+                                       }
+                               }
+                       }
+               }
+       }
+
+       return FALSE;
+}
+
+/*      
+ c======================================================================
+ c     source & dest are nelem*nelem arrays.  source contains a picture
+ c     to be convolved with the 3*3 kernel whose central element is 1
+ c     and the rest are -1/8.  The result goes in dest.
+ c======================================================================
+ */
+
+void emap_class::applyK(REAL* source, REAL* dest, INTEGER nelem)
+{
+       INTEGER i, j;
+
+       for (i = 0; i < nelem * nelem; i++)
+       {
+               dest[i] = 0.0;
+       }
+
+       for (i = 0; i < nelem - 1; i++)
+       {
+               for (j = 0; j < nelem; j++)
+               {
+                       dest[i + (j) * nelem] += source[i + (j) * nelem + 1];
+
+               }
+       }
+
+       for (i = 0; i < nelem - 1; i++)
+       {
+               for (j = 0; j < nelem; j++)
+               {
+                       dest[i + (j) * nelem + 1] += source[i + (j) * nelem];
+
+               }
+       }
+
+       for (i = 0; i < nelem; i++)
+       {
+               for (j = 0; j < nelem - 1; j++)
+               {
+                       dest[i + (j) * nelem] += source[i + (j) * nelem + nelem];
+               }
+       }
+
+       for (i = 0; i < nelem; i++)
+       {
+               for (j = 0; j < nelem - 1; j++)
+               {
+
+                       dest[i + (j) * nelem + nelem] += source[i + (j) * nelem];
+
+               }
+       }
+
+       for (i = 0; i < nelem - 1; i++)
+       {
+               for (j = 0; j < nelem - 1; j++)
+               {
+                       dest[i + (j) * nelem] += source[i + (j) * nelem + nelem + 1];
+               }
+       }
+
+       for (i = 0; i < nelem - 1; i++)
+       {
+               for (j = 0; j < nelem - 1; j++)
+               {
+                       dest[i + (j) * nelem + nelem + 1] += source[i + (j) * nelem];
+
+               }
+       }
+
+       for (i = 0; i < nelem - 1; i++)
+       {
+               for (j = 0; j < nelem - 1; j++)
+               {
+                       dest[i + (j) * nelem + nelem] += source[i + (j) * nelem + 1];
+
+               }
+       }
+
+       for (i = 0; i < nelem - 1; i++)
+       {
+               for (j = 0; j < nelem - 1; j++)
+               {
+                       dest[i + (j) * nelem + 1] += source[i + (j) * nelem + nelem];
+
+               }
+       }
+
+       sscal(nelem * nelem, -1 / 8., dest, 1);
+
+       for (i = 0; i < nelem * nelem; i++)
+       {
+               dest[i] += source[i];
+
+       }
+
+       return;
+}
diff --git a/src/snark/emap_CReadInp.cpp b/src/snark/emap_CReadInp.cpp
new file mode 100644 (file)
index 0000000..5421407
--- /dev/null
@@ -0,0 +1,95 @@
+/*   
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/emap_CReadInp.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ===========================================================================
+ Read information of the input file and allocates the work space
+ ===========================================================================
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+#include "infile.h"
+#include "blob.h"
+
+#include "emap.h"   
+
+void emap_class::ReadInp(INTEGER area, INTEGER nelem, INTEGER usrays,
+               INTEGER prjnum, BOOLEAN* flag) // nelem is not used. hstau 6/9/2003, flag added 1/04
+{
+       INTEGER eval;
+       BOOLEAN eol;
+       INTEGER doit = CHAR2INT('e', 'v', 'a', 'l');
+
+       //------ read parameters from input file
+       ///MAPEM.gamma1 = getnum(input, &eol);
+
+       (*flag) = FALSE;
+       MAPEM.gamma1 = InFile.getnum(TRUE, &eol);
+       if (eol)
+       {
+               fprintf(output, "\n          **** error - must specify gamma ***");
+               (*flag) = TRUE;
+               return;
+       }
+       MAPEM.idxmax = 1;
+       MAPEM.idymax = 1;
+       MAPEM.mapevl = FALSE;
+
+       INTEGER exp[1] =
+       { doit };
+       eval = InFile.getwrd(FALSE, &eol, exp, 1);
+
+       if (!eol)
+               MAPEM.mapevl = TRUE;
+
+       if (MAPEM.mapevl)
+       {
+               MAPEM.sclfactor = 1.0;
+       }
+
+       //------ write the parameters into the output file
+       fprintf(output,
+                       "\n\n  -----------------------------------------------------------\n");
+
+       fprintf(output,
+                       "\n   maximum a-posteriori probability expectation maximization");
+
+       fprintf(output, "\n\n            gamma:%8.3f", MAPEM.gamma1);
+
+       if (MAPEM.mapevl)
+       {
+               fprintf(output, "\n            evaluation flag is set ");
+
+       }
+       else
+       {
+               fprintf(output, "\n            evaluation flag is not set");
+       }
+
+       fprintf(output,
+                       "\n\n  -----------------------------------------------------------\n");
+
+       //------ allocate space for the intermediate results
+
+       MAPEM.qj = new REAL[area];
+
+       if (Blob.pix_basis)
+       {       //only when pixel
+               MAPEM.Kx = new REAL[area];
+               MAPEM.Sx = new REAL[area];
+               MAPEM.Sjjinv = new REAL[area];
+       }
+
+       MAPEM.Wjj = new REAL[area];
+       MAPEM.prj = new REAL[prjnum * usrays];
+
+       return;
+}
diff --git a/src/snark/emap_Cwray.cpp b/src/snark/emap_Cwray.cpp
new file mode 100644 (file)
index 0000000..510fd6d
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/emap_Cwray.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "wray.h"
+#include "blob.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "emap.h"
+
+BOOLEAN emap_class::findqpart(INTEGER np, INTEGER nr, REAL yi, REAL* recon,
+               REAL* qtilde)
+{
+       //----- local variables
+       INTEGER t, nt, bigT, n[4096];
+       REAL l[4096], snorm, si;
+
+       //------ Body of outer loop in Algorithm FIND_q~ for the MAP algorithm * /
+
+       if (Blob.pix_basis)
+       {
+               wray(np, nr, n, l, &bigT, &snorm);
+       }
+       else
+       {
+               Blob.bwray(np, nr, n, l, &bigT, &snorm); // l and n must have enough size for blob basis. Why 4096? Hstau 6/25/2003
+       }
+
+       if (bigT != 0)
+       {
+               si = 0.0;
+               for (t = 0; t < bigT; t++)
+               {
+                       si += recon[n[t]] * l[t];
+               }
+
+               if (si < Consts.zero)
+               {
+                       fprintf(output,
+                                       "\n****The pseudo raysum for  np = %d, nr = %d is zero, EMAP is not applicable, EMAP aborted!\n",
+                                       np, nr);
+                       return TRUE;
+               }                                                  //added by wei 1/2005
+
+               //cvd$     nodepchk
+               for (t = 0; t < bigT; t++)
+               {
+                       nt = n[t];
+                       qtilde[nt] += yi / si * l[t];
+               }
+       }
+
+       return FALSE;
+}
diff --git a/src/snark/emap_sscal.cpp b/src/snark/emap_sscal.cpp
new file mode 100644 (file)
index 0000000..fe7caff
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/emap_sscal.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+
+#include "emap.h"
+
+void emap_class::sscal(INTEGER size, REAL factor, REAL* dest, INTEGER spac)
+{
+       INTEGER j;
+
+       for (j = 0; j < size; j += spac)
+       {
+               dest[j] *= factor;
+       }
+       return;
+}
diff --git a/src/snark/err.cpp b/src/snark/err.cpp
new file mode 100644 (file)
index 0000000..ff82d2f
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/err.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "err.h"
+
+err_class Err;
diff --git a/src/snark/err.h b/src/snark/err.h
new file mode 100644 (file)
index 0000000..debbae5
--- /dev/null
@@ -0,0 +1,22 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/err.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ERR_H
+#define ERR_H
+
+#include "blkdta.h"
+
+extern class err_class
+{
+public:
+       INTEGER errtyp;REAL af;REAL bf;REAL mfactr;REAL afactr;REAL minprd;
+} Err;
+
+#endif
diff --git a/src/snark/errfac.cpp b/src/snark/errfac.cpp
new file mode 100644 (file)
index 0000000..31d827e
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/errfac.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS ROUTINE ESTIMATES THE VARIANCE IN THE PROJECTION DATA
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "err.h"
+
+#include "errfac.h"
+
+REAL errfac(REAL prdta, REAL rinc, REAL rinc2)
+{
+       REAL errfac_tmp;
+       REAL temp;
+
+       if (Err.errtyp == 0)
+       {
+               return Err.minprd;
+       }
+
+       switch (Err.errtyp)
+       {
+
+       // ADDITIVE NOISE ONLY
+       case 1:
+               errfac_tmp = Err.afactr;
+               break;
+
+               // MULTIPLICATIVE NOISE ONLY
+       case 2:
+               errfac_tmp = Err.mfactr * prdta * prdta;
+               break;
+
+               // ADDITIVE AND MULTIPLICATIVE NOISE
+       case 3:
+               errfac_tmp = Err.mfactr * prdta * prdta + Err.afactr;
+               break;
+
+               // QUANTUM NOISE (LINE)
+       case 4:
+               errfac_tmp = Err.af + Err.bf * (REAL) exp(prdta);
+               break;
+
+               // QUANTUM (LINE) AND ADDITIVE NOISE
+       case 5:
+               errfac_tmp = Err.af + Err.bf * (REAL) exp(prdta) + Err.afactr;
+               break;
+
+               // QUANTUM (LINE) AND MULTIPLICATIVE NOISE
+       case 6:
+               errfac_tmp = Err.af + Err.bf * (REAL) exp(prdta);
+               errfac_tmp = errfac_tmp + Err.mfactr * prdta * prdta;
+               break;
+
+               // QUANTUM (LINE) MULTIPLICATIVE AND ADDITIVE NOISE
+       case 7:
+               errfac_tmp = Err.af + Err.bf * (REAL) exp(prdta);
+               errfac_tmp = errfac_tmp + Err.mfactr * prdta * prdta + Err.afactr;
+               break;
+
+               // QUANTUM (STRIP) NOISE
+       case 8:
+               prdta = prdta / rinc;
+               errfac_tmp = (Err.af + Err.bf * (REAL) exp(prdta)) * rinc2;
+               break;
+
+               // QUANTUM (STRIP) AND ADDITIVE NOISE
+       case 9:
+               prdta = prdta / rinc;
+               errfac_tmp = (Err.af + Err.bf * (REAL) exp(prdta)) * rinc2 + Err.afactr;
+               break;
+
+               // QUANTUM (STRIP) AND MULTIPLICATIVE NOISE
+       case 10:
+               temp = prdta / rinc;
+               errfac_tmp = (Err.af + Err.bf * (REAL) exp(temp)) * rinc2
+                               + Err.mfactr * prdta * prdta;
+               break;
+
+               // QUANTUM (STRIP) MULTIPLICATIVE AND ADDITIVE NOISE
+       case 11:
+               temp = prdta / rinc;
+               errfac_tmp = (Err.af + Err.bf * (REAL) exp(temp)) * rinc2
+                               + Err.mfactr * prdta * prdta + Err.afactr;
+               break;
+       }
+
+       return MAX0(errfac_tmp, Err.minprd);;
+}
diff --git a/src/snark/errfac.h b/src/snark/errfac.h
new file mode 100644 (file)
index 0000000..72c2e51
--- /dev/null
@@ -0,0 +1,17 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/errfac.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ERRFAC_H
+#define ERRFAC_H
+
+REAL errfac(REAL prdta, REAL rinc, REAL rinc2);
+
+#endif     
+
diff --git a/src/snark/errorc.c b/src/snark/errorc.c
new file mode 100644 (file)
index 0000000..554c3f2
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/errorc.c $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include "stdlib.h"
+#include "string.h"
+#include "experimenter.h"
+#include "errorc.h"
+
+/* ------------------------ error_message.c ------------------------ */
+
+/* function to handle error messages */
+
+void errorc(char* str1, char* str2)
+{
+       char message[MAXLINESIZE];
+
+       strcpy(message, str1);
+       strcat(message, str2);
+       strcat(message, "\n");
+       fprintf(stderr, message);
+       exit(1);
+}
+
+//bug 269 - jklukowska
+//returns true if the line should be skipped (because it is blank
+//or starts with a * - comment line)
+int isSkip(char * line)
+{
+       int i = 0;
+       while (line[i] == ' ' || line[i] == '\t' || line[i] == '\n')
+               i++;
+       //if the next character is null return true
+       if (line[i] == '\0')
+               return 1;
+       //or if the first non white space character is a star
+       else if (line[i] == '*')
+               return 1;
+       else
+               return 0;
+}
+
+int isBlank(char * line)
+{
+       int i = 0;
+       while (line[i] == ' ' || line[i] == '\t' || line[i] == '\n')
+               i++;
+       //if the next character is null return true
+       if (line[i] == '\0')
+               return 1;
+       else
+               return 0;
+}
+
+int isComment(char * line)
+{
+       int i = 0;
+       while (line[i] == ' ' || line[i] == '\t' || line[i] == '\n')
+               i++;
+       //if the first non white space character is a star
+       if (line[i] == '*')
+               return 1;
+       else
+               return 0;
+}
+
+int isValidObject(char * line)
+{
+       if (strncasecmp(line, "elip", 4) == 0 || strncasecmp(line, "rect", 4) == 0
+                       || strncasecmp(line, "tria", 4) == 0
+                       || strncasecmp(line, "segm", 4) == 0
+                       || strncasecmp(line, "sect", 4) == 0)
+               return 1;
+       else
+               return 0;
+}
+
diff --git a/src/snark/errorc.h b/src/snark/errorc.h
new file mode 100644 (file)
index 0000000..df62298
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/errorc.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef ERRORC_H
+#define ERRORC_H
+
+void errorc(char* str1, char* str2);
+
+//bug 269 - jklukowska
+//returns 1 if the line should be skipped (because it is blank
+//or starts with a * - comment line), otherwise returns 0
+int isSkip(char * line);
+//returns 1 if the line should be skipped (because it is blank)
+int isBlank(char * line);
+//returns 1 if the line  is a comment
+int isComment(char * line);
+//returns 1 if the line is a valid line following the dummy structure
+int isValidObject(char * line);
+#endif
diff --git a/src/snark/errpar.cpp b/src/snark/errpar.cpp
new file mode 100644 (file)
index 0000000..1e63694
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/errpar.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS ROUTINE CHECKS AND PREPARES THE CONSTANTS USED BY THE ERROR
+ ROUTINE ERRFAC
+ */
+
+#include <cstdio>
+#include <cmath>
+#include "blkdta.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "noise.h"
+#include "err.h"
+#include "errpar.h"
+
+void errpar(BOOLEAN alg)
+{
+       int i;
+
+       Err.errtyp = 0;
+
+       if (!(NoisePar.quanin == 0))
+       {
+
+               // QUANTUM NOISE
+
+               Err.bf = 0.0;
+               for (i = 0; i < Spctrm.nergy; i++)
+               {
+                       Err.bf += Spctrm.engwt[i] * (REAL) exp(-Spctrm.backgr[i]);
+               }
+
+               Err.bf = (REAL) 1.0 / (Err.bf * NoisePar.quanmn);
+               Err.af = Err.bf * ((REAL) 2.0 / NoisePar.quancm + (REAL) 1.0);
+
+               Err.errtyp = 4;
+               if (GeoPar.strip)
+                       Err.errtyp = 8;
+       }
+       // MULTIPLICATIVE NOISE
+       if (NoisePar.ultnfl)
+       {
+
+               Err.mfactr = (NoisePar.ultnsd / NoisePar.ultnmn)
+                               * (NoisePar.ultnsd / NoisePar.ultnmn);
+
+               Err.errtyp += 2;
+       }
+
+       // ADDITIVE NOISE
+
+       if (NoisePar.addnfl)
+       {
+               Err.afactr = NoisePar.addnsd * NoisePar.addnsd;
+
+               Err.errtyp++;
+       }
+       return;
+}
diff --git a/src/snark/errpar.h b/src/snark/errpar.h
new file mode 100644 (file)
index 0000000..673629c
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/errpar.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+*/
+
+#ifndef ERRPAR_H
+#define ERRPAR_H
+      
+void errpar(BOOLEAN alg);
+
+#endif      
diff --git a/src/snark/eval.cpp b/src/snark/eval.cpp
new file mode 100644 (file)
index 0000000..6b04295
--- /dev/null
@@ -0,0 +1,696 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/eval.cpp $
+ $LastChangedRevision: 179 $
+ $Date: 2015-08-03 20:13:24 -0400 (Mon, 03 Aug 2015) $
+ $Author: zye $
+ ***********************************************************
+
+ EVAL IS THE POST-PROCESSING ROUTINE WHICH DRIVES THE TWO
+ RECONSTRUCTION EVALUATION PROCEDURES, DIST AND POINT.
+ THE PARAMETER "TYPE" DETERMINES WHICH OF THESE ROUTINES TO
+ PERFORM.
+ IF TYPE=1 THEN DO DIST ONLY.
+ IF TYPE=2 THEN DO POINT ONLY.
+ OTHERWISE, DO BOTH DIST AND POINT.
+ MODIFIED TO COMPUTE THE RELATIVE ERROR AS DEFINED BY RAMA+LAK.
+ ALSO, MODIFIED SO THAT THE RELATIVE ERROR AND DISTANCE
+ MEASURES ARE NOT NORMALIZED IF ABSSUM AND TSTD ARE
+ TOO SMALL. ...4/27/76
+
+ Modified 4/1/88 to enable evaluation of subregions, either
+ through boundary selection by geomtric descriptions OR (OR BOTH)
+ pixel selection through density windowing wrt to phantom.
+ Only pixels within the specified regions and density window
+ will be used in computing the metrics.
+ A switch ISW is added to indicate whether the phantom is passed through
+ the first array, a(), or the second array, b(), so that density
+ selection can always be referenced wrt the phantom.
+ */
+
+#include <cstdlib>       
+#include <cstdio>
+#include "blkdta.h"
+#include "consts.h"
+#include "uiod.h"
+#include "bldlst.h"
+#include "int2str.h"
+#include "recfile.h"
+#include "projfile.h"
+#include "infile.h"
+#include "eval.h"   
+#include "blob.h"
+
+Eval_class Eval;
+
+void Eval_class::eval_1()
+{
+       BOOLEAN temp;
+       FILE* eval1;
+
+       CHAR prjnam[81];
+       CHAR phnnam[81];
+       CHAR recnam[81];
+       CHAR evalnam[81];
+
+       int i, j;
+
+       static const CHAR * objname[] = { "wholepic", "rect", "elip" };
+
+       REAL *ave;
+       REAL *dis;
+       REAL *rel;
+       REAL *var;
+       REAL *std;
+       REAL *tstd;
+       REAL *tvar;
+       REAL *abssum;
+       REAL resid;
+       REAL klds;
+       REAL wsqd;
+
+       INTEGER nerr;
+       REAL epsil[16];
+       INTEGER flag[51];
+       CHAR algn[5];
+       unsigned INTEGER count;
+       unsigned INTEGER iter;
+       INTEGER flag0;
+       REAL* Phantom;
+       REAL* Recon;
+       INTEGER* list = NULL;
+       REAL* weight = NULL;
+       INTEGER type;
+       INTEGER word;
+       BOOLEAN eol, linef, linef_set = false;
+       BOOLEAN fresid, fklds, fwsqd, fulimg, flagdw;
+
+       int n;
+
+       static bool called = false;
+
+       static const INTEGER eval_codes[9] =
+       {
+               CHAR2INT('r', 'e', 's', 'o'),
+               CHAR2INT('p', 'o', 'i', 'n'),
+               CHAR2INT('l', 'i', 'n', 'e'),
+               CHAR2INT('s', 't', 'r', 'i'),
+               CHAR2INT('w', 'h', 'o', 'l'),
+               CHAR2INT('s', 'e', 'l', 'e'),
+               CHAR2INT('e', 'l', 'i', 'p'),
+               CHAR2INT('r', 'e', 'c', 't'),
+               CHAR2INT('l', 'a', 's', 't')
+       };
+
+       // Parse input
+       // Read evaluation type specifications
+
+       word = InFile.getwrd(FALSE, &eol, eval_codes, 4);
+       if (eol)
+       {
+               type = 0;
+       }
+       else
+       {
+               if (word == eval_codes[0] || word == eval_codes[1])
+               {
+                       type = (word == eval_codes[0]) ? 1 : 2;
+                       word = InFile.getwrd(FALSE, &eol, &(eval_codes[2]), 2);
+               }
+               else
+               {
+                       type = 0;
+               }
+
+               if (word == eval_codes[2])
+               {
+                       linef = TRUE;
+                       linef_set = true;
+               };
+               if (word == eval_codes[3])
+               {
+                       linef = FALSE;
+                       linef_set = true;
+               };
+       };
+
+       // Read evaluation name
+       InFile.GetComment(evalnam);
+       fprintf(output, "\n         %s", evalnam);
+
+       // Read evaluation region specifications
+       word = InFile.getwrd(TRUE, &eol, &(eval_codes[4]), 2);
+
+       if (eol)
+       {
+               fprintf(output, "\n **** no region (WHOLEPIC or SELECTIVE) specified");
+               fprintf(output, "\n **** evaluation aborted\n");
+               return;
+       };
+
+       if (word == eval_codes[4])
+       {
+               // Whole picture is specified
+               ObjN = 1; // set number of objects to 1
+               Obj = new Object[ObjN];
+               getden(&flagdw, 0); // get densities
+               Obj[0].objcod = 0; // set object type
+               fulimg = TRUE; // set full immage flag
+       }
+       else
+       {
+               //  Selective is specified
+
+               ObjN = 0;
+               fulimg = FALSE;
+
+               eval_Object_Node *f_object, *t_object;
+               f_object = new eval_Object_Node();
+               t_object = f_object;
+
+               while(true)
+               {
+                       word = InFile.getwrd(TRUE, &eol, &(eval_codes[6]), 3);
+
+                       if (eol)
+                       {
+                               fprintf(output, "\n **** missing keyword elip, rect or last");
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(999);
+                       };
+
+                       if (word == eval_codes[8])
+                       {
+                               // keyword last found
+                               if (ObjN > 0) break;
+
+                               fprintf(output, "\n **** no region specified for SELECTIVE");
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(999);
+                       };
+
+                       t_object->data.objcod = (word == eval_codes[7]) ? 1 : 2;
+
+                       // get cx
+                       t_object->data.cx = InFile.getnum(FALSE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output, "\n **** parameter cx of object %s is missing",int2str(word));
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(-1);
+                       };
+
+                       // get cy
+                       t_object->data.cy = InFile.getnum(FALSE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output, "\n **** parameter cy of object %s is missing",int2str(word));
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(-1);
+                       };
+
+                       // get u
+                       t_object->data.u = InFile.getnum(FALSE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output, "\n **** parameter u of object %s is missing",int2str(word));
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(-1);
+                       };
+
+                       // get v
+                       t_object->data.v = InFile.getnum(FALSE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output, "\n **** parameter v of object %s is missing",int2str(word));
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(-1);
+                       };
+
+                       // get ang
+                       t_object->data.ang = InFile.getnum(FALSE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output, "\n **** parameter ang of object %s is missing",int2str(word));
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(-1);
+                       };
+
+                       getdens(&flagdw, t_object);
+
+                       t_object->next = new eval_Object_Node();
+                       t_object = t_object->next;
+
+                       ObjN++;
+               }
+
+               // copy list elements to array Obj
+               if (Obj != NULL)
+               {
+                       delete[] Obj;
+                       delete[] objdon;
+               }
+               Obj = new Object[ObjN];
+               objdon = new BOOLEAN[ObjN];
+
+               t_object = f_object;
+
+               for (i = 0; i < ObjN; i++)
+               {
+                       Obj[i].cx = t_object->data.cx;
+                       Obj[i].cy = t_object->data.cy;
+                       Obj[i].u = t_object->data.u;
+                       Obj[i].v = t_object->data.v;
+                       Obj[i].ang = t_object->data.ang;
+                       Obj[i].objcod = t_object->data.objcod;
+                       Obj[i].t1 = t_object->data.t1;
+                       Obj[i].t2 = t_object->data.t2;
+
+                       t_object = t_object->next;
+                       delete f_object;
+                       f_object = t_object;
+               };
+
+               delete f_object;
+       }
+
+       // create arrays
+       ave = new REAL[ObjN];
+       dis = new REAL[ObjN];
+       rel = new REAL[ObjN];
+       var = new REAL[ObjN];
+       std = new REAL[ObjN];
+       tstd = new REAL[ObjN];
+       tvar = new REAL[ObjN];
+       abssum = new REAL[ObjN];
+
+       //  Echo region specifications
+
+       fprintf(output,"\n Region        cx        cy         u         v        ang      t1        t2\n");
+
+       if (Obj[0].objcod == 0)
+       {
+               fprintf(output,"\n %s                                                     %9.2g %9.2g",objname[0], Obj[0].t1, Obj[0].t2);
+       }
+       else
+       {
+               for (j = 0; j < ObjN; j++)
+               {
+                       fprintf(output,"\n %2i %s  %9.2f %9.2f %9.2f %9.2g %9.2g   %9.2g %9.2g", j,objname[Obj[j].objcod], Obj[j].cx, Obj[j].cy, Obj[j].u,Obj[j].v, Obj[j].ang, Obj[j].t1, Obj[j].t2);
+               }
+       }
+
+       // READ AND ECHO FLAGS
+       InFile.listit(flag);
+       fresid = FALSE;
+       fklds = FALSE;
+       fwsqd = FALSE;
+
+       for(i=1;i<51;i++){
+               if(flag[0]==flag[i]||flag[i]==0);
+               else{
+                        fprintf(output, "\n **** The value of fl[0] is %d, but the value of fl[%d] is %d ",flag[0],i,flag[i]);
+                        fprintf(output, "\n **** program aborted\n");
+                        exit(-1);
+               }
+       }
+       if(flag[0]==2){fresid = TRUE;}
+       if(flag[0]==3){fklds = TRUE; fwsqd = TRUE; fresid = TRUE;}
+
+       /* for (i = 0; i < 51; i++)
+       {
+               if (flag[i] >= 3)
+               {
+                       fresid = TRUE;
+                       fklds = TRUE;
+                       fwsqd = TRUE;
+                       break;
+               }
+               else if (flag[i] >= 2)
+               {
+                       fresid = TRUE;
+                       break;
+               }
+       } */
+
+       // RESIDUAL CANNOT AND WILL NOT BE CALCULATED IF SOME PIXELS
+       // ARE EXCLUDED BY DENSITY WINDOWING OR REGION SELECTION.
+       // RESET RESIDUAL FLAG
+       if (!fulimg)
+       {
+               fresid = FALSE;
+               fklds = FALSE;
+               fwsqd = FALSE;
+       }
+       else if (flagdw)
+       {
+               fresid = FALSE;
+               fklds = FALSE;
+               fwsqd = FALSE;
+       }
+
+       flag0 = (fresid) ? 2 : 1;
+
+       ////////////////////
+       // START evaluate //
+       ////////////////////
+
+       // check if called before
+       if (called == false)
+       {
+               eval1 = fopen("eval", "w"); // open new file
+               called = true;
+       }
+       else
+       {
+               eval1 = fopen("eval", "a+"); // open existing file for appending
+       }
+
+       //  print evaluation name
+       fprintf(eval1, "\n\nevaluation name: %s\n", evalnam);
+
+       // open recfile
+       if (RecFile.Open("recfil") != 0)
+       {
+               fprintf(output, "\n **** unable to open recfil");
+               fprintf(output, "\n **** EVAL execution aborted\n");
+               fclose(eval1);
+               return;
+       }
+
+       // Get projection name
+       if (RecFile.GetProjName(prjnam) != 0)
+       {
+               ;
+       }
+
+       // get picture dimension
+       if (RecFile.GetNelem(&(GeoPar.nelem)) != 0)
+       {
+               ;
+       }
+
+       // get picture dimension
+       if (RecFile.GetPixSize(&(GeoPar.pixsiz)) != 0)
+       {
+               ;
+       }
+
+       // calculate picture area
+       GeoPar.area = GeoPar.nelem * GeoPar.nelem;
+       GeoPar.midpix = (GeoPar.nelem + 1) / 2;
+
+       // allocate phantom and reconstruction arrays
+       Phantom = new REAL[GeoPar.area];
+       Recon = new REAL[GeoPar.area];
+
+       // read phantom
+       if (RecFile.ReadPhan(phnnam, Phantom) != 0)
+       {
+               fprintf(output, "\n **** phantom not present");
+               fprintf(output, "\n **** EVAL execution aborted\n");
+               fclose(eval1);
+               return;
+       }
+
+       if (type != 2)
+       {
+               // calculate resolution
+
+               // open prjfil only if residual is calculated
+               if (fresid)
+               {
+                       if (ProjFile.Open("prjfil") != 0)
+                       {
+                               fprintf(output, "\n **** unable to open prjfil");
+                               fprintf(output, "\n **** EVAL execution aborted\n");
+                               fclose(eval1);
+                               return;
+                       };
+
+                       ProjFile.ReadHeader(prjnam, &NoisePar, &Spctrm, &Anglst);
+
+                       if (!linef_set) linef = GeoPar.line;
+
+                       bldlst(&list, &weight);
+               };
+
+               // COMPUTE AVERAGE, VARIANCE AND STANDARD DEVIATION OF TEST PATTERN
+
+               for (j = 0; j < GeoPar.area; j++)
+                       Recon[j] = 0.0;
+               temp=Blob.pix_basis;
+               Blob.pix_basis = TRUE;
+               dist(1, Recon, Phantom, linef, list, weight, flag0, ave, dis, abssum, tvar, tstd, &resid, fresid, &klds, fklds, &wsqd, fwsqd);
+               Blob.pix_basis=temp;
+
+               fprintf(eval1, "\n  global resolution measures\n");
+
+               fprintf(eval1, "\n    phantom name:    %s", phnnam);
+
+               fprintf(eval1, "\n    projection name: %s", prjnam);
+
+               if (fresid)
+               {
+                       if (linef)
+                       {
+                               fprintf(output,"\n    residual calculation using line integration");
+
+                       }
+                       else
+                       {
+                               fprintf(output,"\n    residual calculation using strip integration");
+                       }
+               }
+
+               fprintf(eval1, "\n\n    metrics for test phantom");
+
+               if (fresid && (fklds || fwsqd))
+               {
+                       fprintf(eval1,"\n    region    area   average  distance   rel err  variance   std dev   residual         klds         wsqd");
+               }
+               else if (fresid)
+               {
+                       fprintf(eval1,"\n    region    area   average  distance   rel err  variance   std dev   residual");
+               }
+               else
+               {
+                       fprintf(eval1,"\n    region    area   average  distance   rel err  variance   std dev");
+               }
+
+               for (j = 0; j < ObjN; j++)
+               {
+                       Obj[j].avep = ave[j];
+
+                       if (fresid && (fklds || fwsqd))
+                       {
+                               fprintf(eval1,"\n    %6d %7d %9.4f                     %9.4f %9.4f %10.4f %12.4f %12.4f",j, Obj[j].npt, Obj[j].avep, tvar[j], tstd[j], resid, klds, wsqd);
+                       }
+                       else if (fresid)
+                       {
+                               fprintf(eval1,"\n    %6d %7d %9.4f                     %9.4f %9.4f %10.4f",j, Obj[j].npt, Obj[j].avep, tvar[j], tstd[j], resid);
+                       }
+                       else
+                       {
+                               fprintf(eval1,"\n    %6d %7d %9.4f                     %9.4f %9.4f",j, Obj[j].npt, Obj[j].avep, tvar[j], tstd[j]);
+                       }
+               }
+
+               while (RecFile.ReadRec(recnam, algn, &count, &iter, Recon) == 0)
+               {
+
+                       // if first iteration of algorithm print header
+                       if (count == 1)
+                       {
+                               fprintf(eval1, "\n\n    execution name: %s", recnam);
+
+                               if (fulimg)
+                               {
+                                       fprintf(eval1, "\n    metrics for algorithm %s", algn);
+
+                                       if (fresid && (fklds || fwsqd))
+                                       {
+                                               fprintf(eval1,"\n    iter    area   average  distance   rel err  variance   std dev   residual         klds         wsqd");
+                                       }
+                                       else if (fresid)
+                                       {
+                                               fprintf(eval1,"\n    iter    area   average  distance   rel err  variance   std dev   residual");
+                                       }
+                                       else
+                                       {
+                                               fprintf(eval1,"\n    iter    area   average  distance   rel err  variance   std dev");
+                                       }
+                               }
+                       }
+
+                       // if iteration not selected continue
+                       if (flag[iter - 1] == 0)
+                       {
+                               continue;
+                       }
+
+                       if (!fulimg)
+                       {
+                               fprintf(eval1, "\n    metrics for algorithm %4s iteration %4d",algn, count);
+
+                               fprintf(eval1, "\n    region    area   average  distance   rel err  variance   std dev");
+                       }
+                       temp = Blob.pix_basis;
+                       Blob.pix_basis = TRUE;
+                       dist(0, Phantom, Recon, linef, list, weight, flag[iter - 1], ave, dis, rel, var, std, &resid, fresid, &klds, fklds, &wsqd, fwsqd);
+                       Blob.pix_basis = temp;
+                       // Loop for each regions
+                       for (j = 0; j < ObjN; j++)
+                       {
+                               if (abssum[j] > Consts.zero)
+                               {
+                                       rel[j] /= abssum[j];
+                               }
+
+                               if (tstd[j] > Consts.zero)
+                               {
+                                       dis[j] /= tstd[j];
+                               }
+
+                               if (((flag[iter - 1] == 1) || (flag[iter - 1] > 1)) && (!fresid))
+                               {
+                                       if (fulimg)
+                                       {
+                                               fprintf(eval1,"\n    %4d %7d %9.4f %9.4f %9.4f %9.4f %10.4f", count, Obj[j].npt, ave[j], dis[j], rel[j], var[j], std[j]);
+                                       }
+                                       else
+                                       {
+                                               fprintf(eval1,"\n    %6d %7d %9.4f %9.4f %9.4f %9.4f %10.4f", j, Obj[j].npt, ave[j], dis[j], rel[j], var[j], std[j]);
+                                       }
+                               }
+
+                               if ((flag[iter - 1] > 1) && fresid && (fklds || fwsqd))
+                               {
+                                       fprintf(eval1,"\n    %4d %7d %9.4f %9.4f %9.4f %9.4f %9.4f %10.4f %12.4f %12.4f", count, Obj[j].npt, ave[j], dis[j], rel[j], var[j], std[j], resid, klds, wsqd);
+                               }
+                               else if ((flag[iter - 1] > 1) && fresid)
+                               {
+                                       fprintf(eval1,"\n    %4d %7d %9.4f %9.4f %9.4f %9.4f %9.4f %10.4f", count, Obj[j].npt, ave[j], dis[j], rel[j], var[j], std[j], resid);
+                               }
+                       }
+
+                       if (ObjN > 1)
+                       {
+                               fprintf(eval1, "\n");
+                       }
+               };
+
+               if (fresid)
+               {
+                       ProjFile.Close();
+               }
+       };
+
+       // calculate point measurements
+       // if type was 1 we are done
+       if (type == 1 || !fulimg || (fulimg && flagdw))
+       {
+
+               if (type != 1)
+               {
+
+                       if (!fulimg)
+                       {
+                               fprintf(output,"\n **** Selective was specified, point measures will not be computed.\n");
+                       }
+                       else
+                       {
+                               fprintf(output,"\n **** Density range was specified, point measures will not be computed.\n");
+                       }
+               }
+       }
+       else
+       { // if type != 1 -> type == 0 (both) or type = 2
+
+               fprintf(eval1, "\n  point by point resolution measures\n");
+
+               fprintf(eval1, "\n    phantom name:    %s", phnnam);
+
+               if (fresid || (type != 2))
+               {
+                       fprintf(eval1, "\n    projection name: %s", prjnam);
+               }
+
+               // select first reconstruction in file
+               RecFile.SelectRec(0);
+
+               // loop though receonstructions
+               while (RecFile.ReadRec(recnam, algn, &count, &iter, Recon) == 0)
+               {
+
+                       BOOLEAN headfl;
+
+                       // if first iteration of algorithm print header
+                       if (count == 1)
+                       {
+                               headfl = true;
+                       }
+
+                       // if iteration not selected continue
+                       if (flag[iter - 1] == 0)
+                       {
+                               continue;
+                       }
+
+                       point(Phantom, Recon, Recon, GeoPar.nelem, &nerr, epsil);
+
+                       if (headfl)
+                       {
+                               fprintf(eval1, "\n\n    execution name:  %s", recnam);
+
+                               fprintf(eval1, "\n    algn    iter"); // only print out 'e(n)' as many times as there
+                               for (n = 0; n < nerr; n++)
+                               { // are values in 'epsil[]' (i.e. 'nerr' times)
+                                       fprintf(eval1, "      e(%d)", n);
+                               }
+
+                               headfl = false;
+                       }
+
+                       fprintf(eval1, "\n    %4s  %6d", algn, count);
+                       for (n = 0; n < nerr; n++)
+                       {
+                               fprintf(eval1, " %9.4f", epsil[n]);
+                       }
+               }
+       }
+
+       delete[] Obj;
+       Obj = NULL;
+       delete[] ave;
+       ave = NULL;
+       delete[] dis;
+       dis = NULL;
+       delete[] rel;
+       rel = NULL;
+       delete[] var;
+       var = NULL;
+       delete[] std;
+       std = NULL;
+       delete[] tstd;
+       tstd = NULL;
+       delete[] tvar;
+       tvar = NULL;
+       delete[] abssum;
+       abssum = NULL;
+
+       fprintf(eval1, "\n ");
+       fclose(eval1);
+
+       RecFile.Close();
+
+       delete[] Phantom;
+       Phantom = NULL;
+       delete[] Recon;
+       Recon = NULL;
+       if (list != NULL) delete[] list;
+       list = NULL;
+       if (weight != NULL) delete[] weight;
+       weight = NULL;
+}
diff --git a/src/snark/eval.h b/src/snark/eval.h
new file mode 100644 (file)
index 0000000..2f97e94
--- /dev/null
@@ -0,0 +1,61 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/eval.h $
+ $LastChangedRevision: 137 $
+ $Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+ $Author: bprommegger $
+ ***********************************************************
+ */
+
+#ifndef EVAL_H
+#define EVAL_H
+
+#define MXNREG 40
+
+class Object
+{
+public:
+       INTEGER objcod;
+       REAL cx;
+       REAL cy;
+       REAL u;
+       REAL v;
+       REAL ang;
+       REAL t1;
+       REAL t2;
+       INTEGER npt;
+       REAL avep;
+};
+
+class eval_Object_Node
+{
+public:
+       Object data;
+       eval_Object_Node *next;
+};
+
+extern class Eval_class
+{
+private:
+       Object *Obj;
+       BOOLEAN *objdon;     // moved from subreg.cpp - bug112 - swr - 6/10/05
+
+       INTEGER ObjN;
+
+       void subreg(INTEGER ObjJ);
+       void dist(INTEGER isw, REAL* a, REAL* b, BOOLEAN linef, INTEGER* list,
+                       REAL* weight, INTEGER flag, REAL* ave, REAL* dis, REAL* rel,
+                       REAL* var, REAL* std, REAL* resid, BOOLEAN fresid, REAL* klds,
+                       BOOLEAN fklds, REAL* wsqd, BOOLEAN fwsqd);
+       void getden(BOOLEAN* flagdw, INTEGER ObjJ);
+       void getdens(BOOLEAN* flagdw, eval_Object_Node *o_node);
+       void point(REAL* a, REAL* b, REAL* c, INTEGER nelem, INTEGER* nerr,
+                       REAL*epsil);
+
+public:
+       void eval_1();
+
+} Eval;
+
+#endif
diff --git a/src/snark/exalg.cpp b/src/snark/exalg.cpp
new file mode 100644 (file)
index 0000000..03ef28b
--- /dev/null
@@ -0,0 +1,768 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/exalg.cpp $
+ $LastChangedRevision: 164 $
+ $Date: 2015-05-14 00:49:54 -0400 (Thu, 14 May 2015) $
+ $Author: zye $
+ ***********************************************************
+
+ EXALG DETERMINES WHICH ALGORITHM IS TO BE EXECUTED, WHICH OF
+ THE STANDARD OPTIONS ARE IN EFFECT AND REPEATEDLY EXECUTES THE
+ ALGORITHM UNTIL THE TERMINATION CRITERION (SET BY STOP COMMAND)
+ IS SATISFIED.
+ */
+
+#include <cstdio>
+#include <cstdlib>
+#include <cmath>
+#include "blkdta.h"
+#include "creacm.h"
+#include "geom.h"
+#include "term.h"
+#include "raysel.h"
+#include "uiod.h"
+#include "int2str.h"
+#include "second.h"
+#include "bldlst.h"
+#include "projfile.h"
+#include "alb1.h"
+#include "alb2.h"
+#include "alb3.h"
+#include "alb4.h"
+#include "alb5.h"
+#include "alp1.h"
+#include "alp2.h"
+#include "alp3.h"
+#include "alp4.h"
+#include "alp5.h"
+#include "emap.h"
+#include "lino.h"
+#include "art.h"
+#include "sart.h"
+#include "conv.h"
+#include "sirt.h"
+#include "dcon.h"
+#include "foru.h"
+#include "rfl.h"
+#include "back.h"
+#include "quad.h"
+#include "mart.h"
+#include "trm1.h"
+#include "trm2.h"
+#include "trm3.h"
+#include "trm4.h"
+#include "trm5.h"
+#include "smooth.h"
+#include "contur.h"
+#include "recfile.h"
+#include "infile.h"
+#include "blob.h"
+#include "uiod.h"
+#include "exalg.h"
+#include "consts.h"
+#include "bdhk.h"
+#include "pseudo.h"
+#include "superior.h"
+
+using namespace std;
+
+// macro to compute the number of elements in an array
+#define length(array) (sizeof(array)/sizeof(array[0]))
+
+static int totalIters = 0;
+
+class NameTable
+{
+public:
+       INTEGER Length;INTEGER* Names;
+
+       INTEGER GetIndex(INTEGER word)
+       {
+               for (int i = 0; i < Length; i++)
+               {
+                       if (word == Names[i])
+                       {
+                               return i;
+                       }
+               }
+               return -1;
+       }
+
+       INTEGER GetName(INTEGER index)
+       {
+               return Names[index];
+       }
+};
+
+// Instantiate Algorithm classes
+alb1_class alb1;
+alb2_class alb2;
+alb3_class alb3;
+alb4_class alb4;
+alb5_class alb5;
+alp1_class alp1;
+alp2_class alp2;
+alp3_class alp3;
+alp4_class alp4;
+alp5_class alp5;
+emap_class emap;
+lino_class lino;
+art_class art;
+sart sart;
+conv_class conv;
+sirt_class sirt;
+dcon_class dcon;
+foru_class foru;
+rfl_class rfl;
+back_class back;
+quad_class quad;
+mart_class mart;
+bdhk_class bdhk;
+
+// Algorithms Classes
+alg_class* AlgClasses[] =
+{
+       &alb1, // (ALB1) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &alb2, // (ALB2) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &alb3, // (ALB3) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &alb4, // (ALB4) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &alb5, // (ALB5) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &alp1, // (ALP1) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &alp2, // (ALP2) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &alp3, // (ALP3) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &alp4, // (ALP4) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &alp5, // (ALP5) DUMMY RECONSTRUCTION ALGORITHM - TO BE REPLACED BY USER
+       &emap, // (EMAP) maximum a-posteriori probability expectation maximization algorithm
+       &lino, // (LINO) LINOGRAM RECONSTRUCTION ALGORITHM
+       &art,  // (ART) ALGEBRAIC RECONSTRUUCTION
+       &sart, // (SART) SIMULTANEOUS ALGEBRAIC RECONSTRUUCTION TECHNIQUE
+       &conv, // (CONV) GENERAL IMPLEMENTATION OF THE THREE BEST KNOWN CONVOLUTION METHODS
+       &sirt, // (SIRT) IMPLEMENTATION OF THE SIRT ALGORITHM
+       &dcon, // (DCON) A CONVOLUTION TYPE RECONSTRUCTION ALGORITHM FOR DIVERGENT
+                  // BEAM PROJECTION DATA
+       &foru, // (FOUR) FOURIER RECONSTRUCTION METHOD
+       &rfl,  // (RFL) RHO-FILTERED LAYERGRAM RECONSTRUCTION METHOD
+       &back, // (BACK) COMBINED BACK-PROJECTION RECONSTRUCTION ALGORITHM
+       &quad, // (QUAD) QUADRATIC ITERATIVE RECONSTRUCTION ALGORITHMS
+       &mart, // (MART) VARIOUS VERSIONS OF MULTIPLICATIVE ART ALGORITHM
+       &bdhk  // (BDHK) ALGORITHM BASED ON BUTNARIU-DAVIDI-HERMAN-KAZANTSEV
+                  // MINIMIZING TOTAL-VARIATION WITH PERTURBATIONS
+};
+
+#define NUMBER_OF_ALGORITHMS length(AlgClasses)
+
+// Algorithms Names
+static const INTEGER algn[NUMBER_OF_ALGORITHMS] =
+{
+       CHAR2INT('a', 'l', 'b', '1'),
+       CHAR2INT('a', 'l', 'b', '2'),
+       CHAR2INT('a', 'l', 'b', '3'),
+       CHAR2INT('a', 'l', 'b', '4'),
+       CHAR2INT('a', 'l', 'b', '5'),
+       CHAR2INT('a', 'l', 'p', '1'),
+       CHAR2INT('a', 'l', 'p', '2'),
+       CHAR2INT('a', 'l', 'p', '3'),
+       CHAR2INT('a', 'l', 'p', '4'),
+       CHAR2INT('a', 'l', 'p', '5'),
+       CHAR2INT('e', 'm', 'a', 'p'),
+       CHAR2INT('l', 'i', 'n', 'o'),
+       CHAR2INT('a', 'r', 't', ' '),
+       CHAR2INT('s', 'a', 'r', 't'),
+       CHAR2INT('c', 'o', 'n', 'v'),
+       CHAR2INT('s', 'i', 'r', 't'),
+       CHAR2INT('d', 'c', 'o', 'n'),
+       CHAR2INT('f', 'o', 'u', 'r'),
+       CHAR2INT('r', 'f', 'l', ' '),
+       CHAR2INT('b', 'a', 'c', 'k'),
+       CHAR2INT('q', 'u', 'a', 'd'),
+       CHAR2INT('m', 'a', 'r', 't'),
+       CHAR2INT('b', 'd', 'h', 'k')
+};
+
+static NameTable Algorithms = { NUMBER_OF_ALGORITHMS, (int*) algn };
+
+// Blob Algorithms Names
+static const INTEGER algn_blob[] =
+{
+       CHAR2INT('a', 'l', 'b', '1'),
+       CHAR2INT('a', 'l', 'b', '2'),
+       CHAR2INT('a', 'l', 'b', '3'),
+       CHAR2INT('a', 'l', 'b', '4'),
+       CHAR2INT('a', 'l', 'b', '5'),
+       CHAR2INT('e', 'm', 'a', 'p'),
+       CHAR2INT('a', 'r', 't', ' '),
+       CHAR2INT('s', 'a', 'r', 't'),
+       CHAR2INT('s', 'i', 'r', 't'),
+       CHAR2INT('q', 'u', 'a', 'd'),
+       CHAR2INT('m', 'a', 'r', 't')
+};
+
+#define NUM_OF_ALG_BLOB length(algn_blob)
+
+static NameTable BlobAlgorithms = { NUM_OF_ALG_BLOB, (int*) algn_blob };
+
+void exalg()
+{
+       static const INTEGER exec_codes[30] =
+       {
+               //do not modify the first 4 entries!
+               CHAR2INT('a', 'v', 'e', 'r'),
+               CHAR2INT('z', 'e', 'r', 'o'),
+               CHAR2INT('c', 'o', 'n', 't'),
+               CHAR2INT('p', 'h', 'a', 'n'),
+               //add any additional options to EXECUTE (first option) here
+
+               CHAR2INT('a', 'l', 'b', '1'),
+               CHAR2INT('a', 'l', 'b', '2'),
+               CHAR2INT('a', 'l', 'b', '3'),
+               CHAR2INT('a', 'l', 'b', '4'),
+               CHAR2INT('a', 'l', 'b', '5'),
+               CHAR2INT('a', 'l', 'p', '1'),
+               CHAR2INT('a', 'l', 'p', '2'),
+               CHAR2INT('a', 'l', 'p', '3'),
+               CHAR2INT('a', 'l', 'p', '4'),
+               CHAR2INT('a', 'l', 'p', '5'),
+               CHAR2INT('e', 'm', 'a', 'p'),
+               CHAR2INT('l', 'i', 'n', 'o'),
+               CHAR2INT('a', 'r', 't', ' '),
+               CHAR2INT('s', 'a', 'r', 't'),
+               CHAR2INT('c', 'o', 'n', 'v'),
+               CHAR2INT('s', 'i', 'r', 't'),
+               CHAR2INT('d', 'c', 'o', 'n'),
+               CHAR2INT('f', 'o', 'u', 'r'),
+               CHAR2INT('r', 'f', 'l', ' '),
+               CHAR2INT('b', 'a', 'c', 'k'),
+               CHAR2INT('q', 'u', 'a', 'd'),
+               CHAR2INT('m', 'a', 'r', 't'),
+               CHAR2INT('b', 'd', 'h', 'k'),
+               //add any additional reconstruction algorithms here
+
+               CHAR2INT('s', 'm', 'o', 'o'),
+               CHAR2INT('c', 'o', 'n', 't') };
+
+       //these are variables indicating indexes into the exec_codes array above
+       //the name ending in "St" indicates a starting index
+       //the name ending in "Cnt" indicates number of entries in given category
+       // !!! if you keep these indexes up to date after making changes to the
+       // !!! array above, there is not need for changing indexes in the rest of
+       // !!! the code below
+       //there are four EXECUTE options starting at index 0 (these are the
+       //first options - i.e. before the name of algorithm)
+       INTEGER executeOp1St = 0;
+       INTEGER executeOp1Cnt = 4;
+       //there are 24 algorithm names starting at index 4
+       INTEGER algSt = 4;
+       INTEGER algCnt = 22;
+       //there are 2 EXECUTE options starting at index 28 (these are the
+       //second options - i.e. after the name of algorithm)
+       INTEGER executeOp2St = 27;
+       INTEGER executeOp2Cnt = 2;
+
+       INTEGER word;
+       BOOLEAN eol;
+       BOOLEAN flagphan = FALSE;
+       CHAR head[81];
+       INTEGER count;
+
+       INTEGER optsw;
+       INTEGER optflg[51];
+
+       INTEGER AlgIndex;
+
+       BOOLEAN contin;
+
+       INTEGER i;
+       REAL val;
+       INTEGER AlgName;
+       REAL thresh;
+       REAL w1;
+       REAL w2;
+       REAL w3;
+       INTEGER iter;
+       REAL begin, start;
+       REAL end, end_alg;
+       REAL time;
+
+       BOOLEAN tflag;
+       static BOOLEAN pix_old_flag = FALSE; // basis of the previous run
+       static REAL delta_old; // delta of the previous blob run
+       static REAL support_old; // support of the previous blob run
+       static REAL shape_old; // shape of the previous blob run
+
+       static BOOLEAN called = FALSE;
+       static INTEGER* list;
+       static REAL* weight;
+
+       REAL* recon;
+       REAL* recon_copy;
+       INTEGER area; //size of picture
+       INTEGER wx; //size of picture in x direct
+       INTEGER wy; //size of picture in y direct
+
+       if (ProjFile.Open("prjfil") != 0)
+       {
+               fprintf(output, "\n **** unable to open prjfil");
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1);
+       };
+
+       ProjFile.ReadHeader(head, &NoisePar, &Spctrm, &Anglst);
+
+       // PERFORM INITIALIZATION ONLY ON THE FIRST CALL
+       if (!called)
+       {
+
+               Creacm.recon = new REAL[GeoPar.area];
+
+               if (!Blob.pix_basis)
+                       Blob.recon = new REAL[Blob.area];
+
+       };
+       recon_copy = new REAL[GeoPar.area];
+
+       RaySel.effcnt = 0;
+
+       if (!RaySel.useray)
+       {
+               RaySel.numray = GeoPar.snrays;
+       }
+       else
+       {
+               RaySel.numray = GeoPar.usrays;
+       }
+
+       if (!RaySel.useray)
+       {
+               RaySel.initnr = GeoPar.fsnray;
+               RaySel.endray = GeoPar.lsnray;
+       }
+       else
+       {
+               RaySel.initnr = GeoPar.fusray;
+               RaySel.endray = GeoPar.lusray;
+       }
+
+       RaySel.begray = RaySel.initnr;
+       RaySel.curnr = RaySel.initnr;
+
+       if (RaySel.stype == 0)
+       {
+               RaySel.curnr = RaySel.initnr - RaySel.rayinc;
+       }
+
+       RaySel.initnp = 0;
+       RaySel.curnp = RaySel.initnp;
+
+       if (RaySel.stype == 1)
+       {
+               RaySel.curnp = RaySel.initnp - RaySel.prjinc;
+       }
+
+       RaySel.rcnt1 = 0;
+       RaySel.rcnt2 = 0;
+
+       // INITIALIZE OPTION FLAGS
+       optsw = 0;
+       for (i = 0; i < 50; i++)
+       {
+               optflg[i] = 0;
+       }
+
+       tflag = FALSE;
+
+       word = InFile.getwrd(FALSE, &eol, exec_codes, executeOp1Cnt + algCnt);
+       contin = FALSE;
+
+       val = 0.0;
+
+       if (word == exec_codes[0])
+       {
+               val = GeoPar.aveden;
+               word = InFile.getwrd(FALSE, &eol, &(exec_codes[algSt]), algCnt);
+       }
+       else if (word == exec_codes[1])
+       {
+               word = InFile.getwrd(FALSE, &eol, &(exec_codes[algSt]), algCnt);
+       }
+       else if (word == exec_codes[2])
+       {
+               contin = TRUE;
+               word = InFile.getwrd(FALSE, &eol, &(exec_codes[algSt]), algCnt);
+       }
+       else if (word == exec_codes[3])
+       {
+               flagphan = TRUE;
+               if (Creacm.test == NULL)
+               {
+                       fprintf(output, "\n **** error: in conjuction with the option phantom, picture command's option must be test");
+                       fprintf(output, "\n **** algorithm execution aborted");
+                       return;
+               }
+               word = InFile.getwrd(FALSE, &eol, &(exec_codes[algSt]), algCnt);
+       }
+
+       // LOOK UP ROUTINE NAME
+       // check algorithm name
+       if ((AlgIndex = Algorithms.GetIndex(word)) < 0)
+       {
+               fprintf(output, "\n **** unknown algorithm %s", int2str(word));
+               fprintf(output, "\n **** algorithm execution aborted");
+               ProjFile.Close();
+               return;
+       }
+
+       AlgName = word;
+
+       BOOLEAN pix_basis = Blob.pix_basis;
+
+       //check for algorithm that goes with blobs
+       if (!Blob.pix_basis)
+       {
+               // check if selected algorithm is iterative
+               if (BlobAlgorithms.GetIndex(AlgName) < 0)
+               {
+                       fprintf(output, "\n **** blob basis is not appropriate for algorithm %s, the algorithm is being executed using pixel basis instead.", int2str(AlgName));
+
+                       pix_basis = true;
+                       Blob.pix_basis = true;
+               }
+       }
+
+       // ACCEPT AND DISPLAY COMMENT CARD
+       InFile.GetComment(head);
+
+       fprintf(output, "\n         %s", head);
+
+       word = InFile.getwrd(FALSE, &eol, &(exec_codes[executeOp2St]),
+                       executeOp2Cnt);
+
+       // CHECK TO SEE IF OPTION HAS BEEN SPECIFIED
+       if (!eol)
+       {
+               if (word == exec_codes[executeOp2St])
+               {
+                       //smooth
+                       optsw = 1;
+               }
+
+               if (word == exec_codes[executeOp2St + 1])
+               {
+                       //contour
+                       optsw = 2;
+               }
+
+               thresh = InFile.getnum(TRUE, &eol);
+               w1 = InFile.getnum(FALSE, &eol);
+               w2 = InFile.getnum(FALSE, &eol);
+               w3 = InFile.getnum(FALSE, &eol);
+
+               // ECHO OPTION SELECTED
+               if (optsw == 1)
+               {
+                       fprintf(output, "\n         reconstruction is smoothed after");
+               }
+
+               if (optsw == 2)
+               {
+                       fprintf(output, "\n         reconstruction is contoured after");
+               }
+
+               InFile.listit(optflg);
+
+               if (optsw == 1)
+               {
+                       if (pix_basis)
+                       {
+                               fprintf(output, "\n         threshold = %9.5f      w1 = %9.5f      w2 = %9.5f      w3 = %9.5f", thresh, w1, w2, w3);
+                       }
+                       else
+                       {
+                               fprintf(output, "\n         threshold = %9.5f      w1 = %9.5f      w2 = %9.5f      w3 = %9.5f", thresh, w1, w2, w3);
+
+                       }
+               }
+
+               if (optsw == 2)
+               {
+                       fprintf(output, "\n         threshold = %9.5f      w1 = %9.5f      w2 = %9.5f      w3 = %9.5f", thresh, w1, w2, w3);
+               }
+       }
+
+       if (contin)
+       {
+               if (!pix_old_flag && !pix_basis)
+               { // previously blob, now blob
+                       if (fabs(support_old - Blob.support) > Consts.zero || fabs(shape_old - Blob.shape) > Consts.zero || fabs(delta_old - Blob.delta) > Consts.zero)
+                       {
+                               fprintf(output, "\n **** error: current blob parameters must match those of the previous blob basis execution");
+                               fprintf(output, "\n **** algorithm execution aborted");
+                               ProjFile.Close();
+                               return;
+                       }
+               }
+
+               if (!pix_old_flag && pix_basis)
+               { // previously blob, now pixel
+                       Blob.blob2pix(Blob.recon, Creacm.recon);
+                       delete[] Blob.recon;
+               }
+
+               if (pix_old_flag && !pix_basis)
+               { // previously pixel, now blob
+                       Blob.recon = new REAL[Blob.area];
+                       Blob.pix2blob(Creacm.recon, Blob.recon);
+               }
+       }
+       else
+       {
+               if (!pix_basis)
+                       Blob.recon = new REAL[Blob.area];
+
+               // initiate recon with val or phantom image
+               if (flagphan == TRUE)
+               {
+                       for (i = 0; i < GeoPar.area; i++)
+                       {
+                               Creacm.recon[i] = Creacm.test[i];
+                       }
+                       if (!pix_basis)
+                       {
+                               Blob.pix2blob(Creacm.recon, Blob.recon);
+                       }
+               }
+               else
+               {
+                       if (pix_basis)
+                       {
+                               for (i = 0; i < GeoPar.area; i++)
+                               {
+                                       Creacm.recon[i] = val;
+                               }
+                       }
+                       else
+                       {
+                               for (i = 0; i < Blob.area; i++)
+                               {
+                                       Blob.recon[i] = val;
+                               }
+                       }
+               }
+       }
+
+       if (pix_basis)
+       {
+               bldlst(&list, &weight);
+               recon = Creacm.recon;
+               wx = GeoPar.nelem;
+               wy = GeoPar.nelem;
+               area = GeoPar.area;
+       }
+       else
+       {
+               Blob.bbldlst(&list, &weight);
+               recon = Blob.recon;
+               wx = Blob.M;
+               wy = Blob.H;
+               area = Blob.area;
+       }
+
+       called = TRUE;
+
+       second(&begin);
+       start = begin;
+
+       // initialize selected algorithm
+       if (AlgClasses[AlgIndex]->Init() != 0)
+       {
+               fprintf(output, "\n **** algorithm %s failed to initialize", int2str(algn[AlgIndex]));
+               fprintf(output, "\n **** algorithm execution aborted");
+               ProjFile.Close();
+               return;
+       }
+
+       count = 0;
+
+       // run until the termination criterion is met or an error occurs
+       while (TRUE)
+       {
+               count++;
+               totalIters++;
+               iter = ((count - 1) % 50) + 1;
+
+               // execute single iteration of the selected algorithm
+               if (SuperSet.superiorizationEnabled)
+               {
+                       tflag = executeSuperiorization(recon, list, weight, count, AlgClasses[AlgIndex]);
+               }
+               else
+               {
+                       tflag = AlgClasses[AlgIndex]->Run(recon, list, weight, count);
+               }
+
+               second(&end_alg);
+               fprintf(output, "\n         algorithm executed in iteration %4i", count);
+               time = end_alg - begin;
+               fprintf(output, "\n         %10.3f seconds for the execution of the algorithm", time);
+
+               // if error
+               if (tflag)
+               {
+                       fprintf(output, "\n **** algorithm indicated failure to continue");
+
+                       // reset algorithm after failure
+                       if (AlgClasses[AlgIndex]->Reset() != 0)
+                       {
+                               fprintf(output, "\n **** algorithm %s failed to reset", int2str(algn[AlgIndex]));
+                       }
+
+                       fprintf(output, "\n **** algorithm execution aborted");
+                       break;
+               }
+
+               if (Term.termInstance == NULL)
+               {
+                       tflag = ((count - Term.iterations) >= 0);
+               }
+               else
+               {
+                       tflag = Term.termInstance->Run(recon, list, weight, count);
+               }
+
+               if (tflag)
+               {
+                       // END THE ROUTINE IF THE TEST WAS SATISFIED
+                       // CHECK IF OPTION SPECIFIED FOR LAST ITERATION
+
+                       iter = 0;
+
+                       if (!pix_basis)
+                       { // if currently blob, pixelize it
+
+                               Blob.recon = recon;
+                               Blob.blob2pix(Blob.recon, Creacm.recon);
+                       };
+
+                       if ((optsw == 1) && (optflg[iter] != 0))
+                       {
+                               smooth(Creacm.recon, GeoPar.nelem, GeoPar.nelem, thresh, w1, w2, w3);
+
+#ifdef FFCOMPARE
+                               ////////// dump recon ////////////
+                               fprintf(output, "\nexalg: algorithm %s result of iteration %i after smooth", int2str(algn[AlgIndex]), count);
+                               for (i = 0; i < area; i++)
+                               {
+                                       if ((i % 3) == 0) fprintf(output, "\n");
+                                       fprintf(output, " %36.30f", (double) recon[i]);
+                               }
+                               //////////////////////////////////
+#endif
+                       };
+
+                       if ((optsw == 2) && (optflg[iter] != 0))
+                       {
+                               contur(Creacm.recon, GeoPar.nelem, GeoPar.nelem, thresh, w1, w2, w3);
+
+#ifdef FFCOMPARE
+                               ////////// dump recon ////////////
+                               fprintf(output, "\nexalg: algorithm %s result of iteration %i after contur", int2str(algn[AlgIndex]), count);
+                               for (i = 0; i < area; i++)
+                               {
+                                       if ((i % 3) == 0) fprintf(output, "\n");
+                                       fprintf(output, " %36.30f", (double) recon[i]);
+                               }
+                               //////////////////////////////////
+#endif
+                       };
+
+                       RecFile.WriteRec(head, int2str(AlgName), count, iter, Creacm.recon);
+
+                       fprintf(output, "\n         reconstruction completed after iteration %4i", count);
+
+                       // set value for the "previous basis" in the next execution : TRUE if pixel
+                       pix_old_flag = pix_basis;
+                       // if current execution is blob basis, record the values of the blob parameters,
+                       // so that IF the next iteration is also blob basis, they parameters should not be changed.
+                       if (!pix_basis)
+                       {
+                               support_old = Blob.support;
+                               shape_old = Blob.shape;
+                               delta_old = Blob.delta;
+                       }
+                       // reset algorithm after termination
+                       if (AlgClasses[AlgIndex]->Reset() != 0)
+                       {
+                               fprintf(output, "\n **** algorithm %s failed to reset", int2str(algn[AlgIndex]));
+                       }
+
+                       break;
+               }
+
+               if (!pix_basis)
+               { // if currently blob, pixelize it
+                       Blob.recon = recon;
+                       Blob.blob2pix(Blob.recon, Creacm.recon);
+               };
+
+               for (i = 0; i < GeoPar.area; i++) recon_copy[i] = Creacm.recon[i];
+
+               // EXECUTE SMOOTHING OR CONTOURING AS APPROPRIATE
+               if ((optsw == 1) && (optflg[iter] != 0))
+               {
+                       smooth(recon_copy, GeoPar.nelem, GeoPar.nelem, thresh, w1, w2, w3);
+
+#ifdef FFCOMPARE
+                       ////////// dump recon ////////////
+                       fprintf(output, "\nexalg: algorithm %s result of iteration %i after smooth", int2str(algn[AlgIndex]), count);
+                       for (i = 0; i < area; i++)
+                       {
+                               if ((i % 3) == 0) fprintf(output, "\n"); fprintf(output, " %36.30f", (double) recon[i]);
+                       }
+                       //////////////////////////////////
+#endif
+               };
+
+               if ((optsw == 2) && (optflg[iter] != 0))
+               {
+                       contur(recon_copy, GeoPar.nelem, GeoPar.nelem, thresh, w1, w2, w3);
+
+                       ////////// dump recon ////////////
+#ifdef FFCOMPARE
+                       fprintf(output, "\nexalg: algorithm %s result of iteration %i after contur", int2str(algn[AlgIndex]), count);
+                       for (i = 0; i < area; i++)
+                       {
+                               if ((i % 3) == 0) fprintf(output, "\n");
+                               fprintf(output, " %36.30f", (double) recon[i]);
+                       }
+#endif
+                       //////////////////////////////////
+               }
+
+               RecFile.WriteRec(head, int2str(AlgName), count, iter, recon_copy);
+
+               second(&end);
+               fprintf(output, "\n         iteration %4i completed", count);
+               time = end - begin;
+               fprintf(output, "\n         %10.3f seconds for this iteration", time);
+               begin = end;
+
+       }
+
+       second(&end);
+       time = end - begin;
+       fprintf(output, "\n         %10.3f seconds for this iteration", time);
+
+       if (count > 1)
+       {
+               time = end - start;
+               fprintf(output, "\n         %10.3f seconds for all iterations", time);
+       };
+
+       ProjFile.Close();
+
+       if (list != NULL) delete[] list;
+       if (weight != NULL)     delete[] weight;
+       if (recon_copy != NULL) delete[] recon_copy;
+
+       return;
+}
diff --git a/src/snark/exalg.h b/src/snark/exalg.h
new file mode 100644 (file)
index 0000000..d8f5bea
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/exalg.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef EXALG_H
+#define EXALG_H
+
+void exalg();
+
+#endif
diff --git a/src/snark/experimenter.c b/src/snark/experimenter.c
new file mode 100644 (file)
index 0000000..e8c2030
--- /dev/null
@@ -0,0 +1,271 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/experimenter.c $
+ $LastChangedRevision: 177 $
+ $Date: 2015-08-03 16:44:07 -0400 (Mon, 03 Aug 2015) $
+ $Author: zye $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+/* --------------------------- experimenter.c -----------------------------
+
+ This is the main program. It reads input directly from the keyboard
+ or from a redirected file.
+
+ --------------------------------------------------------------------------- */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#include <strings.h>
+#include <stdlib.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "supersnk.h"
+
+#ifdef WIN32
+
+#include <string.h>
+
+int strncasecmp(char* str1, char* str2, int len)
+{
+       return strncmp(_strupr(str1), _strupr(str2), len);
+}
+
+#endif
+
+void errorchk1(int nexp, int expflg, int nphan1, int nrun1);
+
+int experimenter(int argc, char* argv[])
+{
+       char string[MAXLINESIZE], ensflname[MAXLINESIZE], projflname[MAXLINESIZE],
+                       recflname[MAXLINESIZE], anaflname[MAXLINESIZE], tmp[MAXLINESIZE];
+       int nexp, expflg, nelem, navel, nphan[MAXEXP], nrun[MAXEXP];
+       float pixsz;
+       long seed;
+
+       char progName[256];
+       strcpy(progName, argv[0]);
+
+       fprintf(stdout, "snark14Experimenter.s170426\n");
+
+       if (argc > 1)
+       {
+               close(fileno(stdin));
+               if (open(argv[2], O_RDONLY) < 0)
+               {
+                       perror(argv[2]);
+                       exit(1);
+               }
+       }
+
+       while (1)
+       {
+               // optional SEED line  and  ENSEMBLE line
+               if (fgets(string, sizeof(string), stdin) == NULL)
+               {
+                       fprintf(stdout, "input error: end of file reached\n");
+                       break;
+               }
+               while (isSkip(string))     // skip comment lines and blank lines
+               {
+                       if (fgets(string, sizeof(string), stdin) == NULL)
+                       {
+                               fprintf(stdout, "input error: end of file reached\n");
+                               break;
+                       }
+               }
+               if (strncasecmp(string, "see", 3) == 0)
+               {
+                       if (1 == sscanf(string, "%*s%ld", &seed))
+                       {
+                               if (seed < 0)
+                                       time(&seed);
+                               srand48(seed);
+                       }
+                       else
+                       {
+                               errorc("Error reading supersnark input file at ", string);
+                       }
+                       // now read the ens line
+                       if (fgets(string, sizeof(string), stdin) == NULL)
+                       {
+                               fprintf(stdout, "input error: end of file reached\n");
+                               break;
+                       }
+                       while (isSkip(string))     // skip comment lines and blank lines
+                       {
+                               if (fgets(string, sizeof(string), stdin) == NULL)
+                               {
+                                       fprintf(stdout, "input error: end of file reached\n");
+                                       break;
+                               }
+                       }
+                       if (strncasecmp(string, "ens", 3) == 0)
+                       {
+                               sscanf(string, "%*s%s", ensflname);
+                       }
+                       else if (strncasecmp(string, "end", 3) == 0)
+                       {
+                               break;
+                       }
+                       else
+                       {
+                               errorc("Error reading supersnark input file at ", string);
+                               break;
+                       }
+
+               }
+               else if (strncasecmp(string, "ens", 3) == 0)
+               {
+                       sscanf(string, "%*s%s", ensflname);
+                       // there is not seed line, so set seed to current time
+                       time(&seed);
+                       srand48(seed);
+               }
+               else if (strncasecmp(string, "end", 3) == 0)
+               {
+                       break;
+               }
+               else
+               {
+                       errorc("Error reading supersnark input file at ", string);
+                       break;
+               }
+
+               if (fgets(string, sizeof(string), stdin) == NULL)
+               {
+                       fprintf(stdout, "input error: end of file reached\n");
+                       break;
+               }
+               while (isSkip(string))     // skip comment lines and blank lines
+               {
+                       if (fgets(string, sizeof(string), stdin) == NULL)
+                       {
+                               fprintf(stdout, "input error: end of file reached\n");
+                               break;
+                       }
+               }
+               if (strncasecmp(string, "exp", 3) == 0)
+               {
+
+                       sscanf(string, "%*s %d %d %d %f %d %d %d", &nexp, &expflg, &nelem,
+                                       &pixsz, &navel, &nphan[0], &nrun[0]);
+                       errorchk1(nexp, expflg, nphan[0], nrun[0]);
+
+                       if (nexp > 1)
+                       {
+                               sscanf(string, "%*s%*d%*d%*d%*f%*d%*d%*d%d%d", &nphan[1],
+                                               &nrun[1]);
+                               if (nphan[1] <= 0 || nrun[1] <= 0)
+                               {
+                                       errorc("Invalid number of phantoms and/or runs ",
+                                                       "for experiment 2");
+                               }
+                       }
+               }
+               else
+               {
+                       errorc("Error reading supersnark input file at ", string);
+                       break;
+               }
+
+               if (fgets(string, sizeof(string), stdin) == NULL)
+               {
+                       fprintf(stdout, "input error: end of file reached\n");
+                       break;
+               }
+               while (isSkip(string))     // skip comment lines and blank lines
+               {
+                       if (fgets(string, sizeof(string), stdin) == NULL)
+                       {
+                               fprintf(stdout, "input error: end of file reached\n");
+                               break;
+                       }
+               }
+               if (strncasecmp(string, "dat", 3) == 0)
+               {
+                       sscanf(string, "%*s %s", projflname);
+               }
+               else
+               {
+                       errorc("Error reading supersnark input file at ", string);
+                       break;
+               }
+
+               if (fgets(string, sizeof(string), stdin) == NULL)
+               {
+                       fprintf(stdout, "input error: end of file reached\n");
+                       break;
+               }
+               while (isSkip(string))     // skip comment lines and blank lines
+               {
+                       if (fgets(string, sizeof(string), stdin) == NULL)
+                       {
+                               fprintf(stdout, "input error: end of file reached\n");
+                               break;
+                       }
+               }
+               if (strncasecmp(string, "rec", 3) == 0)
+               {
+                       sscanf(string, "%*s %s", recflname);
+               }
+               else
+               {
+                       errorc("Error reading supersnark input file at ", string);
+                       break;
+               }
+
+               if (fgets(string, sizeof(string), stdin) == NULL)
+               {
+                       fprintf(stdout, "input error: end of file reached\n");
+                       break;
+               }
+               while (isSkip(string))     // skip comment lines and blank lines
+               {
+                       if (fgets(string, sizeof(string), stdin) == NULL)
+                       {
+                               fprintf(stdout, "input error: end of file reached\n");
+                               break;
+                       }
+               }
+               if (strncasecmp(string, "ana", 3) == 0)
+               {
+                       sscanf(string, "%*s %s", anaflname);
+               }
+               else
+               {
+                       errorc("Error reading supersnark input file at ", string);
+                       break;
+               }
+
+               supersnk(nexp, expflg, nelem, pixsz, navel, nphan, nrun, ensflname,
+                               projflname, recflname, anaflname, progName, seed);
+       }
+       return 0;
+}
+
+// this function checks for invalid inputs
+void errorchk1(int nexp, int expflg, int nphan1, int nrun1)
+{
+       if (nexp != 1 && nexp != 2)
+       {
+               errorc("Invalid number of experiments. ", "See EXPERIMENT command");
+       }
+
+       if (expflg != 0 && expflg != 1)
+       {
+               errorc("Invalid entry for exp-flg. ", "See EXPERIMENT command");
+       }
+
+       if (nphan1 <= 0 || nrun1 <= 0)
+       {
+               errorc("Invalid number of phantoms and/or runs ", "for experiment 1");
+       }
+}
diff --git a/src/snark/experimenter.h b/src/snark/experimenter.h
new file mode 100644 (file)
index 0000000..1ccfb3f
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/experimenter.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <math.h>
+
+#define MAXENSEMSIZE   100
+#define MAXLINESIZE     160
+#define MAXEXP               2
+
+int experimenter(int argc, char* argv[]);
+
+FILE *pstream;
+
+#ifdef WIN32
+
+int strncasecmp(char* str1, char* str2, int len);
+
+#define srand48(A)  (srand(A))
+#define drand48()   ((double)(rand()) / (RAND_MAX+1))
+
+#define pclose(A)   (_pclose((A)))
+#define popen(A,B)  (_popen((A),(B)))
+
+#endif
diff --git a/src/snark/fft2p.cpp b/src/snark/fft2p.cpp
new file mode 100644 (file)
index 0000000..01863e4
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/fft2p.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ fft2p.cpp,v 1.2 2008/08/25 16:11:08 jklukowska Exp
+
+ THE SUBROUTINES FFT2P , FTODD , UNKPS ARE FAST FOUTIER ROUTINES.
+ THE SUBROUTINE SNFFT ,DESCRIBED IN THE SNARK05 MANUAL , MAKES
+ USE OF THESE SUBROUTINES.
+ THE SUBROUTINES HAVE BEEN TAKEN FROM
+ POLGE,R.J., AND BHAGAVAN,B.K., EFFICIENT FAST FOURIER TRANSFORM
+ PROGRAMS FOR ARBITRARY FACTORS WITH ONE STEP LOOP UNSCRAMBLING,
+ IEEE TRANSACTIONS ON COMPUTERS, MAY 1976.
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "ftodd.h"
+#include "unkps.h"
+#include "consts.h"
+#include "fft2p.h"
+
+void fft2p(
+INTEGER imax,
+INTEGER istep,
+REAL* xs,
+REAL* x,
+INTEGER m,
+INTEGER invdir,
+INTEGER* ix,
+INTEGER nipf,
+INTEGER* ipf,
+INTEGER* ipu,
+REAL* vspt,
+REAL* t,
+BOOLEAN virt)
+{
+
+       REAL v[2], vg[2];
+
+       //BOOLEAN dovirt;
+       INTEGER sk, ipfx[8];
+
+       REAL tpis;
+       INTEGER m2;
+       INTEGER mc;
+       INTEGER irp;
+       INTEGER k;
+       INTEGER nfixp;
+       INTEGER nipfx;
+       INTEGER ir;
+       INTEGER n;
+       INTEGER k4m4;
+       INTEGER m1;
+       INTEGER mx;
+       REAL fi;
+       INTEGER nk;
+       INTEGER j;
+       INTEGER kp;
+       INTEGER ia;
+       INTEGER ib;
+       INTEGER l;
+       INTEGER index1;
+       INTEGER index2;
+       REAL temp;
+
+       //dovirt = virt && (istep > 1);
+
+       tpis = ((REAL) 2.0) * Consts.pi / ((REAL) invdir);
+       m2 = m / 2;
+       mc = m - 2 * m2;
+       irp = 1;
+
+       if (nipf != 0)
+       {
+               for (k = 0; k < nipf; k++)
+               {
+                       irp *= ipf[k];
+               }
+               nfixp = 0;
+       }
+
+       nipfx = nipf + mc;
+       ir = irp * (1 << mc);
+       n = (1 << (m - mc)) * ir;
+
+       k4m4 = 1 << m2;
+
+       m1 = m2 + mc;
+       mx = m;
+       fi = tpis / n;
+
+       v[0] = (REAL) cos(fi);
+       v[1] = (REAL) sin(fi);
+
+       nk = n;
+       if (mx != 0)
+       {
+
+               L1: sk = nk / 2;
+               vg[0] = 1.0;
+               vg[1] = 0.0;
+               for (j = 0; j < sk; j++)
+               {
+                       for (k = j; k < n; k += nk)
+                       {
+                               kp = k + sk;
+                               ia = k * istep;
+
+                               ib = kp * istep;
+
+                               for (l = 0; l < imax; l++)
+                               {
+
+                                       index1 = l + ia;
+                                       index2 = l + ib;
+
+                                       CA(xs, 0, 0)= CA(x, 0, index1);
+                                       CA(xs, 1, 0)= CA(x, 1, index1);
+
+                                       CA(x, 0, index1)+= CA(x, 0, index2);
+                                       CA(x, 1, index1)+= CA(x, 1, index2);
+
+                                       CA(xs, 0, 0)-= CA(x, 0, index2);
+                                       CA(xs, 1, 0)-= CA(x, 1, index2);
+
+                                       CA(x, 0, index2)= vg[0] * CA(xs, 0, 0) - vg[1] * CA(xs, 1, 0);
+                                       CA(x, 1, index2)= vg[0] * CA(xs, 1, 0) + vg[1] * CA(xs, 0, 0);
+                               }
+                       }
+                       temp = vg[0] * v[0] - vg[1] * v[1];
+                       vg[1] = vg[0] * v[1] + vg[1] * v[0];
+                       vg[0] = temp;
+               }
+               nk = sk;
+               temp = (v[0] - v[1]) * (v[0] + v[1]);
+               v[1] = ((REAL) 2.0) * v[0] * v[1];
+               v[0] = temp;
+               m1--;
+               mx--;
+               if (m1 > 0)
+                       goto L1
+                       ;
+               if (mx != 0)
+               {
+                       m1 = m2;
+               }
+       }
+
+       if (irp != 1)
+       {
+
+               ftodd(imax, istep, xs, x, n, &nk, v, tpis, nipf, ipf, mc, k4m4, nipfx, ipfx, ipu, ix, &nfixp, vspt, t, virt);
+
+               irp = 1;
+       }
+
+       if (m1 != 0)
+               goto L1;
+
+       unkps(imax, istep, xs, x, m, nipfx, 2, mc, ir, n, ix, ipu, nfixp, k4m4, virt);
+       return;
+}
diff --git a/src/snark/fft2p.h b/src/snark/fft2p.h
new file mode 100644 (file)
index 0000000..97264fb
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/fft2p.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef FFT2P_H
+#define FFT2P_H
+
+void fft2p(INTEGER imax, INTEGER istep, REAL* xs, REAL* x, INTEGER m, INTEGER invdir, INTEGER* ix, INTEGER nipf, INTEGER* ipf, INTEGER* ipu, REAL* vspt, REAL* t, BOOLEAN virt);
+
+#endif
diff --git a/src/snark/file11.cpp b/src/snark/file11.cpp
new file mode 100644 (file)
index 0000000..5140f3a
--- /dev/null
@@ -0,0 +1,515 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/file11.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#define _LARGEFILE_SOURCE
+#define _FILE_OFFSET_BITS 64
+
+#include <cstdlib>
+#include <cstdio>
+#include <cstring>
+
+#include "blkdta.h"
+#include "creacm.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "noise.h"
+#include "objects.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "int2str.h"
+
+#include "file11.h"
+
+File11_class File11;
+
+void File11_class::CreaInPicture()
+{
+
+       static const INTEGER pict = CHAR2INT('p', 'i', 'c', 't');
+
+       GetName();
+
+       // READ ENERGY SPECTRAL DISTRIBUTION
+       ReadEnergySpectralDistribution();
+
+       // READ OBJECTS MAKING UP THE PHANTOM
+       ReadObjects(pict);
+
+       // GET INFORMATION ABOUT CREATION OF PHANTOM
+       GetInformationABoutCreationOfPhantom(pict);
+
+       return;
+}
+
+void File11_class::CreaInProj()
+{
+
+       static const INTEGER proj = CHAR2INT('p', 'r', 'o', 'j');
+
+       GetName();
+
+       // READ ENERGY SPECTRAL DISTRIBUTION
+       ReadEnergySpectralDistribution();
+
+       // READ OBJECTS MAKING UP THE PHANTOM
+       ReadObjects(proj);
+
+       // READ RAYSUM INFORMATION
+       ReadRaysumInformation();
+
+       if (!Creacm.prjflg)
+       {
+               return;
+       }
+
+       // READ IN AVERAGING INFORMATION FOR COMPUTING RAYSUMS
+       ReadIfoForComputionRaysums();
+
+       // INPUT ENTIRE GEOMETRY DATA
+       ReadGeometryData(proj);
+
+       // READ NUMBER OF RAYS AND RAY SPACING
+       ReadNumberOfRaysAndRaySpacing(proj);
+
+       // READ NUMBER OF PROJECTIONS
+       // READ LIST OF PROJECTION ANGLES INTO WORK AREA
+       ReadProjectionAngles(TRUE);
+
+       // MEASUREMENT STATISTICS  --  NOISE AND SCATTER
+       GetMesurementStatistics();
+
+       // READ BACKGROUND ABSORPTION
+       ReadBackgroundAbsorption();
+}
+
+
+bool File11_class::ReadProjection(REAL* beta, REAL* ibase, INTEGER usrays)
+{
+ REAL val;
+
+ if(fscanf(infile, "%lf", &val) != 1)
+    return FALSE;
+
+ *beta = val;
+
+ // skip angle in degrees
+ if(fscanf(infile, "%lf", &val) != 1)
+    return FALSE;
+
+ for(int j = 0; j < usrays; j++){
+     if(fscanf(infile, "%lf", &val) != 1){
+        return FALSE;
+       }
+     *(ibase + j) = val;
+    }
+
+ return TRUE;
+}
+
+INTEGER File11_class::Open(BOOLEAN wr)
+{
+       if (wr)
+       {
+               infile = fopen("file11", "wb");
+       }
+       else
+       {
+               infile = fopen("file11", "rb");
+       }
+
+       if (infile == NULL)
+       {
+               return -1; // error opening file
+       }
+       return 0;
+}
+
+void File11_class::Close()
+{
+       fclose(infile); // !!! core dump under cygwin
+}
+
+void File11_class::Flush()
+{
+       fflush(infile);
+}
+
+void File11_class::Rewind()
+{
+       fseek(infile, 0, SEEK_SET);
+}
+
+void File11_class::WriteRowOfPhanPixels(REAL* test_aray, INTEGER nelem)
+{
+
+       for (int k = 0; k < nelem; k++)
+       {
+               if ((k) % 7 == 0)
+               {
+                       fprintf(infile, "\n");
+               }
+
+               fprintf(infile, " %25.20f", test_aray[k]);
+
+               if (test_aray[k] != 0)
+               {
+                       fflush(infile);
+               }
+       }
+}
+
+void File11_class::WriteEndOfPhan()
+{
+       fprintf(infile, "\n");
+}
+
+void File11_class::WriteProj(REAL theta, REAL* nlo, INTEGER usrays)
+{
+       REAL thedeg = theta * 180 / Consts.pi;
+
+
+       fprintf(infile, "\n %25.20f %25.20f", theta, thedeg);
+
+       for (int nr = 0; nr < usrays; nr++)
+       {
+               if ((nr) % 3 == 0)
+               {
+                       fprintf(infile, "\n");
+               }
+               fprintf(infile, " %25.20f", nlo[nr]);
+       }
+}
+
+void File11_class::WriteEndOfProj()
+{
+       fprintf(infile, "\n");
+}
+
+void File11_class::ReadPicture(REAL* Pict, INTEGER nelem)
+{
+       REAL* jlo = Pict;
+       signed CHAR ch;  // added by Lajos, Nov 18, 2004
+
+//#pragma message( "to fix!" )
+
+       for(int i = 0; i < nelem; i++){
+            REAL val;
+             
+            for(int j = 0; j < nelem; j++){
+                if(fscanf(infile, "%lf", &val) != 1){
+                   fprintf(output,"\n **** end of file encountered on file file11");
+                   fprintf(output, "\n **** program aborted\n");
+                   exit(444);
+                  }
+                *jlo++ = val;
+               }
+           }
+
+       while (((ch = fgetc(infile)) != '\n') && (ch != EOF))
+       {  // added check for EOF. Lajos, Nov 18, 2004
+               ;
+       }
+
+}
+
+void File11_class::wrhdr(INTEGER word)
+{
+
+       static const INTEGER keywd[40] =
+       {
+                       CHAR2INT('l', 'a', 's', 't'),
+                       CHAR2INT('s', 'p', 'e', 'c'), CHAR2INT('m', 'o', 'n', 'o'),
+                       CHAR2INT('p', 'o', 'l', 'y'), CHAR2INT('o', 'b', 'j', 'e'),
+                       CHAR2INT('p', 'h', 'a', 'n'), CHAR2INT('a', 'v', 'e', 'r'),
+                       CHAR2INT('r', 'a', 'y', 's'), CHAR2INT('g', 'e', 'o', 'm'),
+                       CHAR2INT('p', 'a', 'r', 'a'), CHAR2INT('d', 'i', 'v', 'e'),
+                       CHAR2INT('s', 't', 'r', 'i'), CHAR2INT('l', 'i', 'n', 'e'),
+                       CHAR2INT('t', 'a', 'n', 'g'), CHAR2INT('a', 'r', 'c', ' '),
+                       CHAR2INT('u', 'n', 'i', 'f'), CHAR2INT('v', 'a', 'r', 'i'),
+                       CHAR2INT('a', 'n', 'g', 'l'), CHAR2INT('m', 'e', 'a', 's'),
+                       CHAR2INT('p', 'e', 'r', 'f'), CHAR2INT('n', 'o', 'i', 's'),
+                       CHAR2INT('q', 'u', 'a', 'n'), CHAR2INT('s', 'c', 'a', 't'),
+                       CHAR2INT('m', 'u', 'l', 't'), CHAR2INT('a', 'd', 'd', 'i'),
+                       CHAR2INT('s', 'e', 'e', 'd'), CHAR2INT('b', 'a', 'c', 'k'),
+                       CHAR2INT('r', 'u', 'n', ' '), CHAR2INT('m', 'o', 'd', 'i'),
+                       CHAR2INT('s', 'a', 'v', 'e'), CHAR2INT('p', 'i', 'x', 'e'),
+                       CHAR2INT('e', 'q', 'u', 'a'), CHAR2INT('u', 's', 'e', 'r'),
+                       CHAR2INT('a', 'n', 'd', ' '), CHAR2INT('a', 'f', 't', 'e'),
+                       CHAR2INT('s', 't', 'e', 'p'), CHAR2INT('s', 'p', 'a', 'c'),
+                       CHAR2INT('p', 'n', 'c', 'h'), CHAR2INT('l', 'i', 'n', 'o'), /// bug #135. Lajos, 08/02/2005
+                       CHAR2INT(' ', ' ', ' ', ' ')
+       };
+
+       static const CHAR keywdStr[40][5] =
+       { "last", "spec", "mono", "poly", "obje", "phan", "aver", "rays", "geom",
+                       "para", "dive", "stri", "line", "tang", "arc ", "unif", "vari",
+                       "angl", "meas", "perf", "nois", "quan", "scat", "mult", "addi",
+                       "seed", "back", "run ", "modi", "save", "pixe", "equa", "user",
+                       "and ", "afte", "step", "spac", "pnch", "lino", /// bug #135. Lajos, 08/02/2005
+                       "    " };
+
+       static const CHAR kindStr[5][5] =
+       { "elip", "rect", "tria", "segm", "sect" };
+
+       static const INTEGER KWI_last = 0;
+       static const INTEGER KWI_spec = 1;
+       static const INTEGER KWI_mono = 2;
+       static const INTEGER KWI_poly = 3;
+       static const INTEGER KWI_obj = 4;
+       static const INTEGER KWI_phan = 5;
+       static const INTEGER KWI_aver = 6;
+       static const INTEGER KWI_ray = 7;
+       static const INTEGER KWI_geom = 8;
+       static const INTEGER KWI_angl = 17;
+       static const INTEGER KWI_meas = 18;
+       static const INTEGER KWI_perf = 19;
+       static const INTEGER KWI_nois = 20;
+       static const INTEGER KWI_quan = 21;
+       static const INTEGER KWI_scat = 22;
+       static const INTEGER KWI_mult = 23;
+       static const INTEGER KWI_add = 24;
+       static const INTEGER KWI_seed = 25;
+       static const INTEGER KWI_back = 26;
+       static const INTEGER KWI_pixel = 30;
+       static const INTEGER KWI_lino = 38;  /// bug #135. Lajos, 08/02/2005
+
+       // DATA SPACE FOR OBJECTS IN PHANTOM AT TOP OF BLANK COMMON
+
+       /*
+        real object(17,1)
+        equivalence (object, work(2) )
+        */
+
+       BOOLEAN perfct;
+       BOOLEAN noisfl;
+       BOOLEAN quanfl;
+       ///FILE* file;
+
+// VARIABLES INDEXING THE KEYWORDS IN THE ARRAY KEYWD
+
+       /*
+        integer  last, spec, mono, poly, obj, phan, aver, ray, geom, parl,
+        1   divr, stri, lin, itang, iarc, unif, vari, angl, meas, perf,
+        2   nois, quan, scat, mult, add, seed, back, run, modi, save,
+        3   pixel, equ, pnch
+
+        data     last, spec, mono, poly, obj, phan, aver, ray, geom, parl/
+        1         1   , 2   , 3   , 4   , 5  , 6   , 7   , 8  , 9   , 10  /
+        data divr, stri, lin, itang, iarc, unif, vari, angl, meas, perf/
+        1     11  , 12  , 13 , 14   , 15  , 16  , 17  , 18  , 19  , 20  /
+        data nois, quan, scat, mult, add, seed, back, run, modi, save /
+        1     21  , 22  , 23  , 24  , 25 , 26  , 27  , 28 , 29  , 30   /
+        data pixel, equ, pnch / 31, 32, 38/
+        */
+
+       /*
+        integer den1, denav, type, cx, cy, u, v, ang, sinang, cosang, rayl
+        data den1,denav,type,cx,cy, u, v,ang,sinang,cosang,rayl
+        +    / 1,   8,    9,  10,11,12,13,14,   15,    16,   17/
+        */
+
+       //static const REAL one = 1.0;
+       int i, j;
+
+       INTEGER itype;
+
+       quanfl = NoisePar.quanin > 0;
+       noisfl = quanfl || NoisePar.ultnfl || NoisePar.addnfl;
+       perfct = !(NoisePar.sctnfl || noisfl);
+
+       // SET THE OUTPUT FILE TO FILE11 OR PUNCH
+       /*
+        file = file11;
+
+        if(word == keywd[KWI_pnch]) {
+        // ALSO SET VALUES PROPERLY FOR UNAVAILABLE QUANTITIES
+        ///    file = punch;
+        Creacm.nobj = 0;
+        Spctrm.nergy = 1;
+        Spctrm.energy[0] = -1;
+        }
+        */
+
+       // WRITE HEADER INFORMATION ON FILE11 FOR PHANTOM & RAYSUMS
+       // PUNCH OUT THE HEADER INFORMATION FOR THE PHANTOM AND PICTURES
+
+       fprintf(infile, "%s", Creacm.name);
+
+       // SPECTRUM
+       if (Spctrm.nergy == 1)
+       {
+               fprintf(infile, "\n%s    %s %4i", keywdStr[KWI_spec],
+                               keywdStr[KWI_mono], Spctrm.energy[0]);
+       }
+
+       if (Spctrm.nergy > 1)
+       {
+
+               fprintf(infile, "\n%s    %4s %4i", keywdStr[KWI_spec],
+                               keywdStr[KWI_poly], Spctrm.nergy);
+               fprintf(infile, "\n");
+
+               for (i = 0; i < Spctrm.nergy; i++)
+               {
+                       fprintf(infile, "%5i %5i ", Spctrm.energy[i], Creacm.percnt[i]);
+               }
+       }
+
+       // OBJECTS
+
+       fprintf(infile, "\n%s", keywdStr[KWI_obj]);
+
+       if (Creacm.nobj != 0)
+       {
+
+               for (i = 0; i < Creacm.nobj; i++)
+               {
+                       itype = (int) objects[i].type;
+
+                       fprintf(infile, "\n%4s  %9.4f %9.4f %9.4f %9.4f %9.4f %25.18f",
+                                       kindStr[itype], objects[i].cx, objects[i].cy, objects[i].u,
+                                       objects[i].v, objects[i].ang, objects[i].den1[0]);
+
+                       if (Spctrm.nergy > 1)
+                       {
+
+                               fprintf(infile, "\ndens ");
+                               for (j = 1; j < Spctrm.nergy; j++)
+                               {
+                                       fprintf(infile, " %15.10f", objects[i].den1[j]);
+                               }
+                       }
+               }
+       }
+
+       //jk 11/18/2007  introducing variability
+       //the additional values from LAST card have to be printed in file11
+       fprintf(infile, "\n%s %10.4f %ld %10.4f", keywdStr[KWI_last], mean,
+                       Creacm.varseed, variability);
+
+       // SKIP PHANTOM AVERAGING AND OTHER INFO SUCH AS NELEM FOR RDPROJ
+
+       if (word != keywd[KWI_ray])
+       {
+               if (word == keywd[KWI_phan])
+               {
+
+                       fprintf(infile, "\n%4s    %4s %4i", keywdStr[KWI_phan],
+                                       keywdStr[KWI_aver], Creacm.nave1);
+                       fprintf(infile, "\n%4s    %5i    size    %10.4f",
+                                       keywdStr[KWI_pixel], GeoPar.nelem, GeoPar.pixsiz);
+               }
+
+               return;
+       }
+
+       // HEADER INFO FOR RAYSUMS
+       // GEOMETRY
+
+       fprintf(infile, "\n%4s    %4s %4i\n", keywdStr[KWI_ray], keywdStr[KWI_aver],
+                       GeoPar.nave2);
+       for (i = 0; i < GeoPar.nave2; i++)
+       {
+               fprintf(infile, " %4i", GeoPar.naper[i]);
+       }
+
+       fprintf(infile, "\n%4s", keywdStr[KWI_geom]);
+
+       if (GeoPar.lino)  /// bug #135. Lajos, 08/02/2005
+       {
+               fprintf(infile, "\n%s", keywdStr[KWI_lino]);
+       }
+       else
+       {
+               if (GeoPar.par)
+               {
+                       fprintf(infile, "\n%4s", int2str(Creacm.word1));
+                       fprintf(infile, " %4s", int2str(Creacm.word2));
+                       fprintf(infile, " %4s", int2str(Creacm.word3));
+               }
+
+               if (GeoPar.div)
+               {
+                       CHAR wrd2[5];
+
+                       strcpy(wrd2, int2str(Creacm.word2));
+                       fprintf(infile,
+                                       "\n%4s    %4s    source at%10.4f     det dist%10.4f",
+                                       int2str(Creacm.word1), wrd2, GeoPar.radius, GeoPar.stod);
+               }
+
+               fprintf(infile, "\n%s    user    %5i    spacing    %10.4f",
+                               keywdStr[KWI_ray], GeoPar.usrays, GeoPar.pinc);
+
+
+               fprintf(infile, "\n%s    %5i\n", keywdStr[KWI_angl], GeoPar.prjnum);
+               for (i = 0; i < GeoPar.prjnum; i++)
+               {
+                       if (((i % 7) == 0) && (i != 0))
+                       {
+                               fprintf(infile, "\n");
+                       }
+                       fprintf(infile, " %9.4f", Creacm.pang[i]);
+               }
+
+       }
+
+       // MEASUREMENT STATISTICS
+
+       if (perfct)
+       {
+               fprintf(infile, "\n%s    %s", keywdStr[KWI_meas], keywdStr[KWI_perf]);
+       }
+
+
+       else
+       {
+               fprintf(infile, "\n%s    %s", keywdStr[KWI_meas], keywdStr[KWI_nois]);
+       }
+
+       if (quanfl)
+       {
+               fprintf(infile, "\n%s    %14.4f    %14.4f    cali %2i",
+                               keywdStr[KWI_quan], NoisePar.quanmn, NoisePar.quancm,
+                               NoisePar.quanin);
+       }
+
+       if (NoisePar.sctnfl)
+       {
+               fprintf(infile, "\n%s    noise peak %20.10f    width %20.10f",
+                               keywdStr[KWI_scat], NoisePar.sctnpk, NoisePar.sctnwd);
+       }
+
+       if (NoisePar.ultnfl)
+       {
+               fprintf(infile, "\n%s    noise mean %20.10f    std dev %20.10f",
+                               keywdStr[KWI_mult], NoisePar.ultnmn, NoisePar.ultnsd);
+       }
+
+       if (NoisePar.addnfl)
+       {
+               fprintf(infile, "\n%s    noise mean %20.10f    std dev %20.10f",
+                               keywdStr[KWI_add], NoisePar.addnmn, NoisePar.addnsd);
+       }
+
+       if (!perfct && noisfl)
+       {
+               fprintf(infile, "\n%s    %4i", keywdStr[KWI_seed], Creacm.iseed);
+       }
+
+       fprintf(infile, "\n%4s    ", keywdStr[KWI_back]);
+       for (i = 0; i < Spctrm.nergy; i++)
+       {
+               fprintf(infile, " %7.4f", Spctrm.backgr[i]);
+       }
+
+}
+
diff --git a/src/snark/file11.h b/src/snark/file11.h
new file mode 100644 (file)
index 0000000..ef46df3
--- /dev/null
@@ -0,0 +1,40 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/file11.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef FILE11_H
+#define FILE11_H
+
+#include "inputfile.h"
+
+extern class File11_class: public InputFile_class
+{
+private:
+
+public:
+       BOOLEAN isOpen;
+
+       INTEGER Open(BOOLEAN wr);
+       void CreaInPicture();
+       void CreaInProj();
+
+       bool ReadProjection(REAL* beta, REAL* ibase, INTEGER usrays);
+
+       void Close();
+       void wrhdr(INTEGER word);
+       void Flush();
+       void Rewind();
+       void WriteRowOfPhanPixels(REAL* test_aray, INTEGER nelem);
+       void WriteEndOfPhan();
+       void WriteProj(REAL theta, REAL* nlo, INTEGER usrays);
+       void WriteEndOfProj();
+       void ReadPicture(REAL* Pict, INTEGER nelem);
+} File11;
+
+#endif
diff --git a/src/snark/fom_klds.c b/src/snark/fom_klds.c
new file mode 100644 (file)
index 0000000..78fd51b
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/fom_klds.c $
+ $LastChangedRevision: 137 $
+ $Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+ $Author: bprommegger $
+ ***********************************************************
+ */
+
+// Extracts the Kullback-Leibler distance as a fom
+#include <assert.h>
+#include "malloc.h"
+#include "experimenter.h"
+#include "read_eval_recon4.h"
+
+/*
+ This function reads the kullback-leibler distance.
+
+ INPUTS:
+ itr1 - array of length niters containing the iteration numbers for the first algorithm
+ itr2 - array of length niters containing the iteration numbers for the second algorithm
+ niters - number of iterations to be read
+ keywrd1 - string containing the keyword which defines the first algorithm
+ keywrd2 - string containing the keyword which defines the second algorithm
+
+ OUTPUTS:
+ klds1 - array of length niters containing the kullback-leibler distances for the first algorithm
+ klds2 - array of length niters containing the kullback-leibler distances for the second algorithm
+ */
+void fom_klds(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* klds1, double* klds2)
+{
+       int i = 0;
+       double dummy_wsqd = 0.0;
+       for (i = 0; i < niters; i++)
+       {
+               read_eval_recon4(itr1[i], keywrd1, &klds1[i], &dummy_wsqd);
+               read_eval_recon4(itr2[i], keywrd2, &klds2[i], &dummy_wsqd);
+       }
+}
diff --git a/src/snark/fom_klds.h b/src/snark/fom_klds.h
new file mode 100644 (file)
index 0000000..bb64482
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/fom_klds.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef FOM_KLDS_H_
+#define FOM_KLDS_H_
+
+void fom_klds(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2,
+               double* klds1, double* klds2);
+
+#endif
diff --git a/src/snark/fom_weighted_squared_distance.c b/src/snark/fom_weighted_squared_distance.c
new file mode 100644 (file)
index 0000000..41577aa
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/fom_klds.c $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+// Extracts the weighted squared distance as a fom
+#include <assert.h>
+#include "malloc.h"
+#include "experimenter.h"
+#include "read_eval_recon4.h"
+
+/*
+ This function reads the weighted squared distance.
+
+ INPUTS:
+ itr1 - array of length niters containing the iteration numbers for the first algorithm
+ itr2 - array of length niters containing the iteration numbers for the second algorithm
+ niters - number of iterations to be read
+ keywrd1 - string containing the keyword which defines the first algorithm
+ keywrd2 - string containing the keyword which defines the second algorithm
+
+ OUTPUTS:
+ wsqd1 - array of length niters containing the weighted squared distance for the first algorithm
+ wsqd2 - array of length niters containing the weighted squared distance for the second algorithm
+ */
+void fom_weighted_squared_distance(int* itr1, int* itr2, int niters,
+               char* keywrd1, char* keywrd2, double* wsqd1, double* wsqd2) {
+       int i = 0;
+       double dummy_for_klds;
+       for (i = 0; i < niters; i++) {
+               read_eval_recon4(itr1[i], keywrd1, &dummy_for_klds, &wsqd1[i]);
+               read_eval_recon4(itr2[i], keywrd2, &dummy_for_klds, &wsqd2[i]);
+       }
+}
diff --git a/src/snark/fom_weighted_squared_distance.h b/src/snark/fom_weighted_squared_distance.h
new file mode 100644 (file)
index 0000000..799c956
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/fom_klds.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef FOM_WEIGHTED_SQUARED_DISTANCE_H_
+#define FOM_WEIGHTED_SQUARED_DISTANCE_H_
+
+void fom_weighted_squared_distance(int* itr1, int* itr2, int niters,
+               char* keywrd1, char* keywrd2, double* wsqd1, double* wsqd2);
+
+#endif
diff --git a/src/snark/foru.cpp b/src/snark/foru.cpp
new file mode 100644 (file)
index 0000000..fb1065d
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+
+ IMPLEMENTATION OF FOURIER RECONSTRUCTION METHOD
+ SEE, E.G., GORDON AND HERMAN, 1974, LUTZ, 1975 AND MERSEREAU,
+ 1976)
+ THE METHOD HAS FOUR STAGES:
+ (1) FOURIER TRANSFORMING THE DATA
+ (2) FILTERING THE FOURIER TRANSFORM
+ (3) INTERPOLATING THE FOURIER TRANSFORM TO A SQUARE GRID
+ (4) TAKING THE INVERSE FOURIER TRANSFORM
+
+ TO EXECUTE THE ROUTINE SPECIFY EXEC FOURIER AND CHOOSE PARAMETERS
+ AS EXPLAINED BELOW:
+ FILTER : BAND  BANDLIMITING FILTER
+ SINC  SINC FILTER
+ COSI  COSINE FILTER
+ HAMM  HAMMING FILTER
+ CUTOFF : REAL MODIFIER
+ THIS SPECIFIES THE CUTOFF RADIUS AS CUTOFF/(2.0*RINC)
+ WHERE RINC IS THE MODIFIED PINC (SEE FRINIT)
+ CUTOFF IS SUPPOSED TO BE A NUMBER BETWEEN 0 AND 1
+ IF CUTOFF EQ 0  IT IS REASSIGED TO 1.0
+ IF CUTOFF LT 0  IT IS REASSIGNED TO 2.0*PRJNUM/(PI*NELEM
+ *PIXSIZ)
+ IF CUTOFF GT 1 IT IS REASSIGNED TO 1.0
+ INTERP : INTEGER MODIFIER
+ =1  NEAREST NEIGHBOR IN CARTESIAN SENSE
+ =2  NEAREST NEIGHBOR IN RADIAL SENSE
+ =3  LINEAR INTERPOLATION
+ =4  HARMONIC INTERPOLATION
+ SIZE1 : INTEGER MODIFIER
+ THE SIZE OF THE ARRAY TO BE USED FOR FOURIER TRANSFORM
+ IF OMITTED, IT WILL BE ASSIGNED NRAYS+1
+ IF LESS THEN USRAYS+1 IT WILL BE REASSIGNED USRAYS+1
+ SIZE2 : INTEGER MODIFIER
+ SIZE2*SIZE2 WILL BE THE SIZE OF THE ARRAY TO BE
+ BACKTRANSFORMED
+ IF OMITTED OR LESS THAN NELEM+1 IT WILL BE REASSIGNED
+ NELEM+1
+
+ MORE DETAILED PROCEDURE :
+ STEP1 READ 1ST PROJECTION INTO COMMON BLOCK STARTING AT NTEMP+1
+ STEP2 REARRANGE THE PROJECTION DATA SO THAT THE ORIGIN IS THE
+ FIRST ELEMENT IN THE ARRAY
+ PUT INTO COMMON BLOCK STARTING AT NPROJ1+1
+ PERFORM FILTERING & FOURIER TRANSFORM, THE TRANSFORM REPLACES THE
+ ORIGINAL DATA
+ STEP3 REPEAT UNTIL ALL PROJECTIONS ARE USED:
+ READ NEXT PROJECTION INTO NTEMP+1
+ REARRANGE THE DATA, PUT INTO COMMON BLOCK STARTING AT NPROJ2+1
+ OR NPROJ1+1 (LEAST RECENTLY USED)
+ PERFORM FILTERING & FOURIER TRANSFORM
+ PERFORM INTERPOLATION USING THE DATA IN NPROJ1 AND NPROJ2
+ STEP4 READ 1ST PROJECTION, REARRANGE, TRANSFORM, INTERPOLATE BRTWEEN
+ 1ST & LAST PROJECTIONS
+ STEP5 INVERSE TRANSFORM THE INTERPOLATED VALUES
+ STEP6 REARRANGE THE INVERSE TRANSFORM AND PUT INTO RECON
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "fourie.h"
+
+#include "foru.h"
+
+BOOLEAN foru_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       if (iter > 1)
+               return FALSE;
+
+       frinit();
+       if (Fourie.iflg == 1)
+               return TRUE;
+
+       // Steps 1 - 4
+       forwrd();
+       if (Fourie.iflg == 1)
+               return TRUE;
+
+       // Steps 5, 6
+       bckwrd(recon);
+
+       return FALSE;
+}
+
diff --git a/src/snark/foru.h b/src/snark/foru.h
new file mode 100644 (file)
index 0000000..4c2c672
--- /dev/null
@@ -0,0 +1,61 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef FORU_H
+#define FORU_H
+
+#include "alg.h"
+
+class foru_class: public alg_class
+{
+private:
+       void frinit();
+       void forwrd();
+       void bckwrd(REAL* recon);
+       void prjtrn(INTEGER np, REAL* vector, REAL* phi, REAL* dphi);
+       void intrpl(REAL ang1, REAL ang2, REAL dang1, REAL dang2, REAL* nold,
+                       REAL* new1);
+       void frfilt(REAL* vector, INTEGER size1, INTEGER nfiltr, REAL cutoff,
+                       REAL phi);
+       void error(INTEGER ktype);
+       void ftmap(REAL* vfrom, REAL* vto, BOOLEAN revers);
+       void fft(REAL* x, INTEGER* n, INTEGER invdir, REAL fact);
+       void ftfill(REAL* recon, REAL* g, INTEGER maxg1);
+       void unif(INTEGER icase, REAL ang1, REAL ang2, REAL* nold, REAL* new1);
+       void uint1(INTEGER icase, INTEGER ix, INTEGER iy, REAL ang1, REAL ang2,
+                       REAL* pj1, REAL* pj2);
+
+       void vcase1(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
+       void vcase2(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
+       void vcase3(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
+       void vcase4(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
+       void vc56(INTEGER icase, REAL ang1, REAL ang2, REAL* pj1, REAL* pj2);
+
+       void vint14(
+       REAL* xx,
+       REAL* yy,
+       REAL xg,
+       REAL yg,
+       REAL* pj1,
+       REAL* pj2,
+       INTEGER indmin,
+       INTEGER indmax,
+       REAL* gr, // changed to pass address. Lajos, Feb 10, 2005
+                       REAL* gi // changed to pass address. Lajos, Feb 10, 2005
+                       );
+
+       void store(INTEGER ix, INTEGER iy, REAL gr, REAL gi);
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif // FORU   
diff --git a/src/snark/foru_bckwrd.cpp b/src/snark/foru_bckwrd.cpp
new file mode 100644 (file)
index 0000000..e255e3b
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_bckwrd.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ PURPOSE: PERFORM BACKTRANSFORM THEN CALL SUBROUTINE FTFILL TO
+ STORE THE VALUES IN THE ARRAY RECON
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "fourie.h"
+#include "uiod.h"
+#include "second.h"
+
+#include "foru.h"
+
+void foru_class::bckwrd(REAL* recon)
+{
+       REAL tback;
+       INTEGER n1;
+       INTEGER n3;
+       REAL* nr;
+       REAL t1;
+       REAL fact;
+       INTEGER invdir;
+       REAL t2;
+       REAL sum;
+       INTEGER k;
+       REAL ave;
+       REAL adj;
+
+       tback = 0.0;
+       n1 = Fourie.nsize2;
+       n3 = Fourie.nsize2 + 2;
+       nr = Fourie.nfrpln;
+
+       // PERFORM BACKTRANSFORM
+       second(&t1);
+       fact = (REAL) 1.0 / (GeoPar.pixsiz * GeoPar.pixsiz);
+       invdir = -1;
+       fft(Fourie.nfrpln, Fourie.nback, invdir, fact);
+       second(&t2);
+       tback = t2 - t1;
+       fprintf(output, "\ntime for backtransform :           %10.3f  seconds   ", tback); // changed precision to three digits - swr 1/21/06
+       nr = Fourie.nfrpln;
+
+
+       // CALL FTFILL TO PUT THE NUMBERS IN RECON
+       ftfill(recon, Fourie.nfrpln, Fourie.nsize2);
+
+
+       // ADJUST THE NUMBERS IN RECON SO THAT THE AVERAGE DENSITY IS AVEDEN
+       sum = 0.0;
+       for (k = 0; k < GeoPar.area; k++)
+       {
+               sum += recon[k];
+       }
+
+       ave = sum / GeoPar.area;
+       adj = GeoPar.aveden - ave;
+       for (k = 0; k < GeoPar.area; k++)
+       {
+               recon[k] += adj;
+       }
+
+       return;
+}
diff --git a/src/snark/foru_error.cpp b/src/snark/foru_error.cpp
new file mode 100644 (file)
index 0000000..069aa5d
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_error.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ------------------------------------------------------------------
+
+ PURPOSE: PRINT ERROR MESSAGES
+
+ ------------------------------------------------------------------
+*/
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "uiod.h"
+#include "foru.h"
+
+void foru_class::error(INTEGER ktype)
+{      
+  Fourie.iflg = 1;
+  fprintf(output, "\n*****error*****error*****");
+
+  switch(ktype) {
+  case 1:
+    fprintf(output, "\nfor parallel geometry, total span should be less than pi and ge pi/2 for uniform proj and ge 3/4pi for variable proj");
+    break;
+
+  case 2:
+    fprintf(output, "\nfor divergent geometry, total span should be greater than 3/2pi and less than two pi");
+    break;
+
+  case 3:
+    fprintf(output, "\nangles must be in increasing order");
+    break;
+
+  case 4:
+    fprintf(output, "\nangles must not be separated by more than pi/2 for uniform proj and pi/4 for variable proj");
+    break;
+
+  case 5:
+    fprintf(output, "\ninsufficient parameters");
+    break;
+
+  case 6:
+    fprintf(output, "\nillegal input data");
+    break;
+
+  case 8:
+    fprintf(output, "\ninterp should be ge 1 and le 4");
+    break;
+  }
+
+  fprintf(output, "\n*****error*****error*****");
+
+  return;
+}
+
diff --git a/src/snark/foru_fft.cpp b/src/snark/foru_fft.cpp
new file mode 100644 (file)
index 0000000..f109c71
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_fft.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ FFT: FAST FOURIER TRANSFORM
+ PURPOSE: PERFORM FOURIER TRANSFORM ON ARRAY X DIMENSIONED BY N
+ INVDIR = 1 : FORWARD TRANSFORM
+ -1: BACKTRANSFORM
+ */
+
+#include <cstdio>
+#include <cmath>
+#include "blkdta.h"
+#include "rtfort.h"
+#include "fourie.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "foru.h"
+
+void foru_class::fft(REAL* x, INTEGER* n, INTEGER invdir, REAL fact)
+{
+       INTEGER n2;
+       INTEGER kh;
+       INTEGER k;
+
+       if (invdir != -1)
+       {
+
+               n2 = Fourie.nsize1 + 2;
+
+               rtfort(x, n, invdir);
+
+               kh = Fourie.nsize1 + 2;
+               for (k = 0; k < kh; k++)
+               {
+                       x[k] *= fact;
+                       if (fabs(x[k]) <= Consts.zero)
+                               x[k] = 0.0;
+               }
+               return;
+       }
+
+       rtfort(x, n, invdir);
+
+       kh = Fourie.nsize2 * (Fourie.nsize2 + 2);
+
+       for (k = 0; k < kh; k++)
+       {
+               x[k] *= fact;
+       }
+       return;
+}
diff --git a/src/snark/foru_forwrd.cpp b/src/snark/foru_forwrd.cpp
new file mode 100644 (file)
index 0000000..ecb4b5b
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_forwrd.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ FORWRD: FORWARD
+ PURPOSE: READ IN PROJECTIONS , TRANSFORM THEN INTERPOLATE
+ */
+
+#include <cstdio>
+#include "blkdta.h"
+#include "geom.h"
+#include "fourie.h"
+#include "uiod.h"
+#include "second.h"
+
+#include "foru.h"
+
+void foru_class::forwrd()
+{
+       REAL tforw;
+       REAL tintr;
+       REAL* nold;
+       REAL* new1;
+       REAL t1;
+       REAL phi1;
+       REAL dphi1;
+       REAL t2;
+       INTEGER np;
+       REAL phi2;
+       REAL dphi2;
+       REAL t3;
+       REAL* kdum;
+       INTEGER kh;
+       INTEGER k;
+
+       tforw = 0.0;
+       tintr = 0.0;
+
+       // READ IN 1ST PROJECTION AND TRANSFORM
+       nold = Fourie.nproj1;
+       new1 = Fourie.nproj2;
+       second(&t1);
+       prjtrn(0, nold, &phi1, &dphi1);
+       second(&t2);
+       tforw += t2 - t1;
+
+       for (np = 1; np < GeoPar.prjnum; np++)
+       {
+
+               // READ IN NEXT PROJECTION , TRANSFORM THEN INTERPOLATE
+
+               second(&t1);
+               prjtrn(np, new1, &phi2, &dphi2);
+               if (Fourie.iflg == 1)
+                       return;
+               second(&t2);
+               tforw += t2 - t1;
+               intrpl(phi1, phi2, dphi1, dphi2, nold, new1);
+               second(&t3);
+               tintr += t3 - t2;
+
+               kdum = new1;
+               new1 = nold;
+               nold = kdum;
+               phi1 = phi2;
+               dphi1 = dphi2;
+
+       }
+
+       // READ IN 1ST PROJECTION AGAIN, INTERPOLATE USING LAST AND 1ST PROJS
+
+       second(&t1);
+       prjtrn(0, new1, &phi2, &dphi2);
+       if (Fourie.iflg == 1)
+               return;
+       second(&t2);
+       tforw += t2 - t1;
+       intrpl(phi1, phi2, dphi1, dphi2, nold, new1);
+       second(&t3);
+       tintr += t3 - t2;
+
+       if (!GeoPar.par)
+       {
+               kh = Fourie.nsize2 * (Fourie.nsize2 + 2);
+
+               for (k = 2; k < kh; k++)
+               {
+                       Fourie.nfrpln[k] /= 2.0;
+               }
+       }
+
+       fprintf(output, "\ntime for projection transforms :   %10.3f  seconds    ", tforw); // changed precision to three digits - swr 1/21/06
+       fprintf(output, "\ntime for interpolations :          %10.3f  seconds    ", tintr); //ditto
+       return;
+}
diff --git a/src/snark/foru_frfilt.cpp b/src/snark/foru_frfilt.cpp
new file mode 100644 (file)
index 0000000..fff6a76
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_frfilt.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "sinc.h"
+
+#include "foru.h"
+
+void foru_class::frfilt(REAL* vector, INTEGER size1, INTEGER nfiltr, REAL cutoff, REAL phi)
+{
+       REAL wvqntm;
+       REAL wvnum;
+       INTEGER k;
+       REAL fact;
+
+       wvqntm = (REAL) 1.0 / ((REAL) (size1 / 2));
+       if (GeoPar.vri)
+               wvqntm /= MAX0((REAL) fabs(cos(phi)), (REAL) fabs(sin(phi)));
+       wvnum = 0.;
+       switch (nfiltr)
+       {
+       case 0:
+               for (k = 0; k <= size1 - 2; k += 2)
+               {  // changed "<" to "<=" to match Fortran code. Lajos, Jan 13, 2005
+                       if (wvnum > cutoff)
+                       {
+                               vector[k] = 0.;
+                               vector[k + 1] = 0.;
+                       }
+                       wvnum += wvqntm;
+               }
+               return;
+
+       case 1:
+               for (k = 0; k <= size1 - 2; k += 2)
+               {  // changed "<" to "<=" to match Fortran code. Lajos, Jan 13, 2005
+                       if (wvnum > cutoff)
+                       {
+                               vector[k] = 0.;
+                               vector[k + 1] = 0.;
+                       }
+                       else
+                       {
+                               fact = sinc(wvnum / cutoff);
+                               vector[k] *= fact;
+                               vector[k + 1] *= fact;
+                       }
+                       wvnum += wvqntm;
+               }
+               return;
+
+       case 2:
+               for (k = 0; k <= size1 - 2; k += 2)
+               {  // changed "<" to "<=" to match Fortran code. Lajos, Jan 13, 2005
+                       if (wvnum > cutoff)
+                       {
+                               vector[k] = 0.;
+                               vector[k + 1] = 0.;
+                       }
+                       else
+                       {
+                               fact = (REAL) cos(Consts.pid2 * wvnum / cutoff);
+                               vector[k] *= fact;
+                               vector[k + 1] *= fact;
+                       }
+                       wvnum += wvqntm;
+               }
+               return;
+
+       case 3:
+               for (k = 0; k <= size1 - 2; k += 2)
+               {  // changed "<" to "<=" to match Fortran code. Lajos, Jan 13, 2005
+                       if (wvnum > 1.)
+                       {
+                               vector[k] = 0.;
+                               vector[k + 1] = 0.;
+                       }
+                       else
+                       {
+                               fact = cutoff
+                                               + ((REAL) 1.0 - cutoff) * (REAL) cos(Consts.pi * wvnum);
+                               vector[k] *= fact;
+                               vector[k + 1] *= fact;
+                       }
+                       wvnum += wvqntm;
+               }
+               return;
+       }
+}
diff --git a/src/snark/foru_frinit.cpp b/src/snark/foru_frinit.cpp
new file mode 100644 (file)
index 0000000..1986a3c
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_frinit.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ PURPOSE: INITIALIZE ALL GLOBAL VARIABLES AND ALLOCATE SPACE
+ IMPORTANT VARIABLES:
+ RINC  MODIFIED PINC,FOR UNI RINC=PINC
+ FOR VRI RINC=PINC*RADIUS/STOD
+ DELD  SAMPLE SPACING ON TRANSFORMED PROJECTIONS
+ DELP  SAMPLE SPACING ON FOURIER PLAN
+ RADMAX  CUTOFF RADIUS
+ MIDR  NSIZE1/2
+ MIDP  NSIZE2/2
+ EPSLN  A SMALL NUMBER TO HANDLE ROUNDING ERROR
+ NFORW(3)  3 ELEMENTS ARRAY TO INDICATE THE DIMENSION
+ OF THE ARRAY TO BE FORWARD TRANSFORMED
+ NBACK(3)  3 ELEMENTS ARRAY TO INDICATE THE DIMENSION
+ OF THE ARRAY TO BE BACKTRANSFORMED
+ NPROJ1,NPROJ2  STARTING ADDRESSES OF ARRAYS TO HOLD
+ TRANSFORMED PROJECTIONS
+ NFRPLN  STARTING ADDRESS OF THE ARRAY TO REPRESENT
+ FOURIER PLANE
+ IFLG  INITIALLY 0, AND SET TO 1 IF ERROR OCCURS
+ RESERV  RESERVE FOR FUTURE USE
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "fourie.h"
+#include "consts.h"
+#include "uiod.h"
+#include "anglst.h"
+#include "infile.h"
+
+#include "foru.h"
+
+void foru_class::frinit()
+{
+       INTEGER filter;
+       BOOLEAN eol;
+       INTEGER size1;
+       INTEGER size2;
+       INTEGER word;
+       INTEGER k3;
+       INTEGER k4;
+       INTEGER k;
+       INTEGER kh;
+       REAL angfst;
+       REAL sinth;
+       REAL costh;
+       REAL anglst;
+       REAL angspn;
+
+
+       //data fname/4hband,4hsinc,4hcosi,4hhamm/
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+       static const INTEGER fname[4] =
+       {
+                       CHAR2INT('b', 'a', 'n', 'd'), CHAR2INT('s', 'i', 'n', 'c'),
+                       CHAR2INT('c', 'o', 's', 'i'), CHAR2INT('h', 'a', 'm', 'm')
+       };
+
+       //data samp/4hsamp/,pict/4hpict/
+       static const INTEGER samp = CHAR2INT('s', 'a', 'm', 'p');
+       static const INTEGER pict = CHAR2INT('p', 'i', 'c', 't');
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+       static const INTEGER foru_codes[2] =
+       {
+       CHAR2INT('s', 'a', 'm', 'p'), CHAR2INT('p', 'i', 'c', 't') };
+
+       Fourie.iflg = 0;
+
+       fprintf(output, "\nf o u r i e r  r e c o n s t r u c t i o n      \n");
+
+       if (GeoPar.par)
+               Fourie.rinc = GeoPar.pinc;
+       if (GeoPar.div)
+               Fourie.rinc = GeoPar.pinc * GeoPar.radius / GeoPar.stod;
+       if (GeoPar.strip)
+       {
+               fprintf(output, "\nstrip projections");
+
+       }
+       if (GeoPar.div)
+       {
+               fprintf(output, "\ndivergent rays, will be treated as parallel");
+       }
+       filter = InFile.getwrd(TRUE, &eol, fname, 4);
+       if (eol)
+               error(5);
+
+       for (Fourie.nfiltr = 0; Fourie.nfiltr < 4; Fourie.nfiltr++)
+       {
+               if (filter == fname[Fourie.nfiltr])
+                       goto L25;
+       }
+       error(6);
+
+       L25: Fourie.cutoff = InFile.getnum(FALSE, &eol);
+       if (eol)
+               error(5);
+       // bug 151 - swr - 9/24/05
+       if (Fourie.cutoff < 0.0)
+               Fourie.cutoff = (REAL) 2.0 * GeoPar.prjnum * Fourie.rinc
+                               / ((REAL) Consts.pi * GeoPar.nelem * GeoPar.pixsiz);
+       if (Fourie.cutoff <= Consts.zero)
+               Fourie.cutoff = 1.0;
+       if (Fourie.cutoff > 1.0)
+               Fourie.cutoff = 1.0;
+       Fourie.interp = InFile.getint(FALSE, &eol);
+       if (eol)
+               error(5);
+       if ((Fourie.interp > 4) || (Fourie.interp < 1))
+               error(8);
+       size1 = GeoPar.nrays + 1;
+       size2 = GeoPar.nelem + 1;
+       word = InFile.getwrd(FALSE, &eol, foru_codes, 2);
+       if (!eol)
+       {
+
+               if (word == pict)
+                       goto L4;
+               if (word != samp)
+                       error(6);
+               size1 = InFile.getint(FALSE, &eol);
+               if (eol)
+                       error(5);
+               if (eol)
+                       return;
+               word = InFile.getwrd(FALSE, &eol, &(foru_codes[1]), 1);
+
+               if (!eol)
+               {
+                       if (word == pict)
+                               goto L4;
+                       error(6);
+                       return;
+
+                       L4: size2 = InFile.getint(FALSE, &eol);
+                       if (eol)
+                               error(5);
+                       if (eol)
+                               return;
+               }
+       }
+
+       if (size1 <= GeoPar.usrays)
+               size1 = GeoPar.usrays + 1;
+       if (size1 != (size1 / 2 * 2))
+               size1++;
+       Fourie.nsize1 = size1;
+       if (size2 <= GeoPar.nelem)
+               size2 = GeoPar.nelem + 1;
+       if (size2 != (size2 / 2 * 2))
+               size2++;
+       Fourie.nsize2 = size2;
+       if (Fourie.iflg == 1)
+               return;
+
+       fprintf(output, "\nfilter=   %2i", Fourie.nfiltr);
+       fprintf(output, "\ncutoff=    %5.2f", Fourie.cutoff);
+       fprintf(output, "\ninterp=     %2i", Fourie.interp);
+       fprintf(output, "\nnsize1=    %4i", Fourie.nsize1);
+       fprintf(output, "\nnsize2=   %4i", Fourie.nsize2);
+
+       Fourie.radmax = (Fourie.nsize1 / 2) * Fourie.cutoff;
+       if (Fourie.nfiltr == 4)
+               Fourie.radmax = (REAL) Fourie.nsize1 / 2;
+       Fourie.midr = Fourie.nsize1 / 2;
+       Fourie.midp = Fourie.nsize2 / 2;
+       Fourie.nforw[0] = 1;
+       Fourie.nforw[1] = Fourie.nsize1 / 2;
+       Fourie.nforw[2] = 1;
+       Fourie.nback[0] = Fourie.nsize2;
+       Fourie.nback[1] = Fourie.nsize2 / 2;
+       Fourie.nback[2] = 1;
+
+       if (Fourie.ntemp != NULL)
+               delete[] Fourie.ntemp;
+       if (Fourie.nproj1 != NULL)
+               delete[] Fourie.nproj1;
+       if (Fourie.nproj2 != NULL)
+               delete[] Fourie.nproj2;
+       Fourie.ntemp = new REAL[Fourie.nsize1];
+       Fourie.nproj1 = new REAL[Fourie.nsize1 + 4];
+       Fourie.nproj2 = new REAL[Fourie.nsize1 + 4];
+
+       k3 = Fourie.nsize1 + 2;
+       k4 = Fourie.nsize1 + 4;
+
+       for (k = k3; k < k4; k++)
+       {
+               Fourie.nproj1[k] = 0.0;
+               Fourie.nproj2[k] = 0.0;
+       }
+       if (Fourie.nfrpln != NULL)
+               delete[] Fourie.nfrpln;
+       Fourie.nfrpln = new REAL[Fourie.nsize2 * (Fourie.nsize2 + 2)];
+       kh = Fourie.nsize2 * (Fourie.nsize2 + 2);
+       for (k = 0; k < kh; k++)
+       {
+               Fourie.nfrpln[k] = 0.0;
+       }
+
+       Fourie.deld = (REAL) 1.0 / (Fourie.nsize1 * Fourie.rinc);
+       Fourie.delp = (REAL) 1.0 / (Fourie.nsize2 * GeoPar.pixsiz);
+       Anglst.getang(0, &angfst, &sinth, &costh);
+       Anglst.getang(GeoPar.prjnum - 1, &anglst, &sinth, &costh);
+       angspn = anglst - angfst;
+       Fourie.epsln = (REAL) 1.0e-3;
+       if (GeoPar.par && GeoPar.uni
+                       && ((angspn < Consts.pid2) || (angspn >= Consts.pi)))
+               error(1);
+       if (GeoPar.par && GeoPar.vri
+                       && ((angspn < (0.75 * Consts.pi)) || (angspn >= Consts.pi)))
+               error(1);
+       if (GeoPar.div
+                       && ((angspn < (1.5 * Consts.pi)) || (angspn >= Consts.twopi)))
+               error(2);
+
+       return;
+}
diff --git a/src/snark/foru_ftfill.cpp b/src/snark/foru_ftfill.cpp
new file mode 100644 (file)
index 0000000..21f6e7c
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_ftfill.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ PURPOSE: REARRANGE THE NUMBERS IN ARRAY G (OF SIZE MAXG1*MAXG1)
+ AND PUT INTO THE ARRAY RECON
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+
+#include "foru.h"
+
+void foru_class::ftfill(REAL* recon, REAL* g, INTEGER maxg1)
+{
+       INTEGER no2;
+       INTEGER l1;
+       INTEGER l2;
+       INTEGER len;
+       INTEGER ibaser;
+       INTEGER kk;
+       INTEGER iy;
+       INTEGER indr;
+       INTEGER itmp;
+       INTEGER ibaseg;
+       INTEGER ll;
+       INTEGER ix;
+       INTEGER indg;
+
+       no2 = GeoPar.nelem / 2;
+       l1 = -no2;
+       l2 = no2;
+       len = l2 - l1 + 1;
+       ibaser = GeoPar.area - GeoPar.nelem;
+       for (kk = 0; kk < len; kk++)
+       {
+               iy = l1 + kk;
+               indr = ibaser;
+               itmp = iy;
+               if (iy < 0)
+                       itmp = maxg1 + iy;
+               ibaseg = itmp * maxg1;
+
+               for (ll = 0; ll < len; ll++)
+               {
+                       ix = l1 + ll;
+                       itmp = ix;
+                       if (ix < 0)
+                               itmp = maxg1 + ix;
+                       indg = ibaseg + itmp;
+                       recon[indr] = g[indg];
+                       indr++;
+               }
+               ibaser -= GeoPar.nelem;
+       }
+       return;
+}
diff --git a/src/snark/foru_ftmap.cpp b/src/snark/foru_ftmap.cpp
new file mode 100644 (file)
index 0000000..7d2dd10
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_ftmap.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ PURPOSE: REARRANGE THE PROJECTION DATA (IN VFROM) IN A FORM
+ SUITABLE FOR FAST FOURIER ROUTINES (I.E. CHANGE THE
+ PHASE SO THAT THE ORIGIN IS THE 1ST ELEMENT IN ARRAY )
+ AND PUT INTO THE ARRAY VTO
+ */
+// bug79 - problem with fourier algorithm
+#include <cstdio>
+
+#include "blkdta.h"
+#include "fourie.h"
+
+#include "foru.h"
+
+void foru_class::ftmap(REAL* vfrom, REAL* vto, BOOLEAN revers)
+{
+       int i;
+       INTEGER kh;
+       INTEGER kl;
+
+       Fourie.midr = Fourie.nsize1 / 2 - 1;
+
+       // IF REVERS IS TRUE ,REVERSE THE  PROJECTION DATA (SEE ALSO PRJTRN)
+
+       if (revers)
+       {
+
+               kh = Fourie.midr + 1;
+
+               for (i = 0; i <= kh; i++)
+               {     // bug79 - swr 2/11/05
+                       vto[i] = vfrom[Fourie.midr + i];
+               }
+
+               kl = Fourie.midr + 2;
+
+               for (i = kl; i < Fourie.nsize1; i++)
+               {
+                       vto[i] = vfrom[i - Fourie.midr - 2];     // bug79 - swr 2/11/05
+               }
+       }
+       else
+       {
+               for (i = 0; i <= Fourie.midr; i++)
+               {
+                       vto[i] = vfrom[Fourie.midr - i];
+               }
+
+               kl = Fourie.midr + 1;
+
+               for (i = kl; i < Fourie.nsize1; i++)
+               {
+                       vto[i] = vfrom[Fourie.nsize1 + Fourie.midr - i];
+               }
+       }
+}
diff --git a/src/snark/foru_intrpl.cpp b/src/snark/foru_intrpl.cpp
new file mode 100644 (file)
index 0000000..06d918a
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_intrpl.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+
+ INTRPL: INTERPOLATION
+ PURPOSE: GIVEN TWO TRANSFORMED PROJECTIONS IN ARRAY STARTING AT
+ NOLD AND NEW WITH ANGLES ANG1 AND ANG2(DANG1 AND DANG2
+ ARE ANGLES IN DEGREE ) FIND ALL POINTS THAT LIE BETWEEN
+ THE TWO RAYS AND PERFORM INTERPOLATIONS
+ */
+
+/*      
+ DETERMINE THE CASE:
+ ICASE = 1 IF THE TWO ANGLES LIE BETWEEN -90 AND -45
+ 2 IF THE TWO ANGLES STRADDLE THE -45 DEGREE LINE
+ 3 IF THE TWO ANLES LIE BETWEEN -45 AND 45 LINES
+ 4 IF THE TWO ANGLES STRADDLE THE 45 DEGREE LINE
+ 5 IF THE TWO ANGLES LIE BETWEEN THE 45 AND 90 LINES
+ 6 IF ANG1 IS IN 1ST QUADRANT AND ANG2 IN 4TH QUADRANT
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "uiod.h"
+
+#include "foru.h"
+
+void foru_class::intrpl(REAL ang1, REAL ang2, REAL dang1, REAL dang2, REAL* nold, REAL* new1)
+{
+       INTEGER icase;
+
+       if (dang2 <= -45.)
+               icase = 1;
+       if ((dang1 < -45.) && (dang2 > -45.))
+               icase = 2;
+       if ((dang1 >= -45.) && (dang2 <= 45.))
+               icase = 3;
+       if ((dang1 < 45.) && (dang2 > 45.))
+               icase = 4;
+       if (dang1 >= 45.)
+               icase = 5;
+       if (dang1 > dang2)
+               icase = 6;
+
+       // IF UNI THEN CALL THE INTERPOLATION ROUTINE UNIF
+       // IF VRI THEN CALL THE ROUTINE VCASE1,...,OR VC56 DEPENDING ON ICASE
+       if (!GeoPar.vri)
+       {
+               unif(icase, ang1, ang2, nold, new1);
+
+               return;
+       }
+       else
+       {
+               switch (icase)
+               {
+
+               case 1:
+                       vcase1(ang1, ang2, nold, new1);
+                       return;
+
+               case 2:
+                       vcase2(ang1, ang2, nold, new1);
+                       return;
+
+               case 3:
+                       vcase3(ang1, ang2, nold, new1);
+                       return;
+
+               case 4:
+                       vcase4(ang1, ang2, nold, new1);
+                       return;
+
+               case 5:
+               case 6:
+                       vc56(icase, ang1, ang2, nold, new1);
+                       return;
+               }
+       }
+}
diff --git a/src/snark/foru_prjtrn.cpp b/src/snark/foru_prjtrn.cpp
new file mode 100644 (file)
index 0000000..641893c
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_prjtrn.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ PRJTRN: PROJECTION TRANSFORM
+ PURPOSE: READ NP'TH PROJECTION INTO VECTOR, PUT THE ANGLE IN
+ PHI (IN RADIAN ) AND DPHI ( IN DEGREE )  WHERE THE ANGLE
+ IS ALWAYS BETWEEN -90 AND 90
+ IF THE ANGLE IS NOT IN THAT RANGE ADD N*PI OR SUBSTRACT
+ N*PI TO MAKE IT IN THE RANGE AND REVERSE THE PROJECTION
+ DATA IF NECESSARY
+ THEN TRANSFORM & FILTER THE DATA
+ ***NOTE THE UNCONVENTIONAL DEFINITION OF ANGLE AND ORDER OF PROJ
+ ***DATA IN SNARK
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "fourie.h"
+#include "consts.h"
+#include "uiod.h"
+#include "anglst.h"
+#include "projfile.h"
+
+#include "foru.h"
+
+void foru_class::prjtrn(INTEGER np, REAL* vector, REAL* phi, REAL* dphi)
+{
+       REAL theta;
+       REAL sinth;
+       REAL costh;
+       static REAL oldth;
+
+       REAL fact;
+       INTEGER k;
+       INTEGER invdir;
+
+       BOOLEAN revers;
+
+       Anglst.getang(np, &theta, &sinth, &costh);
+       if (np != 0)
+       {
+               if (oldth > theta)
+                       error(3);
+               if (GeoPar.uni && ((theta - oldth) > Consts.pid2))
+                       error(4);
+               if (GeoPar.vri && ((theta - oldth) > (Consts.pi / 4.0)))
+                       error(4);
+               if (Fourie.iflg == 1)
+                       return;
+       }
+       oldth = theta;
+       *phi = theta - Consts.pid2;
+
+       while (*phi < -Consts.pid2)
+       {
+               *phi += Consts.twopi;
+       }
+
+       while (*phi > (Consts.pi + Consts.pid2))
+       {
+               *phi -= Consts.twopi;
+       }
+
+       revers = (*phi > Consts.pid2);
+       if (revers)
+               *phi -= Consts.pi;
+       *dphi = *phi * (REAL) 180.0 / Consts.pi;
+
+       ProjFile.ReadProj(np, Fourie.ntemp, Fourie.nsize1);
+
+       fact = Fourie.rinc;
+       if (GeoPar.vri)
+               fact = Fourie.rinc * (REAL) MAX0(fabs(cos(*phi)), fabs(sin(*phi)));
+       if (GeoPar.strip)
+       {
+               for (k = 0; k < Fourie.nsize1; k++)
+               {
+                       Fourie.ntemp[k] /= fact;
+               }
+       }
+
+       ftmap(Fourie.ntemp, vector, revers);
+
+
+       invdir = 1;
+       fft(vector, Fourie.nforw, invdir, fact);
+
+// Filtering
+       frfilt(vector, Fourie.nsize1, Fourie.nfiltr, Fourie.cutoff, *phi);
+       return;
+}
diff --git a/src/snark/foru_store.cpp b/src/snark/foru_store.cpp
new file mode 100644 (file)
index 0000000..e88a498
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_store.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+
+ PURPOSE: GIVEN THE COORDINATES OF A POINT (IX,IY) AND THE VALUE
+ AT THE POINT (GR,GI) ,WHERE GR IS THE REAL PART AND
+ GI IS THE IMAGINARY PART, STORE THE VALUE IN THE
+ APPROPRIATE PLACE IN THE COMMON BLOCK STARTING AT
+ NFRPLN+1
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "foru.h"
+
+void foru_class::store(INTEGER ix, INTEGER iy, REAL gr, REAL gi)
+{
+
+       REAL y;
+       REAL x;
+       INTEGER i;
+       INTEGER j;
+       INTEGER npos;
+
+       y = (REAL) iy;
+       x = (REAL) ix;
+
+// FILTERING
+
+       if (ix < 0)
+       {
+
+               // IX LT 0  THE POINT IS ON THE LEFT HALF PLANE, FIND THE POINT
+               // WHICH IS CONGRUENT TO IT W.R.T. ORIGIN. THE VALUE AT THAT POINT
+               // IS (GR,-GI)
+
+               i = -ix;
+               j = -iy;
+               if (j < 0)
+                       j += Fourie.nsize2;
+               npos = j * (Fourie.nsize2 + 2) + 2 * i;
+               Fourie.nfrpln[npos] = gr;
+               Fourie.nfrpln[npos + 1] = -gi;
+               return;
+       }
+
+       // IX EQ 0  THE POINT IS ON THE Y AXIS, WE NEED POINTS ON BOTH SIDES
+       // OF ORIGIN
+
+       else if (ix == 0)
+       {
+               i = 0;
+               j = iy;
+               if (j < 0)
+                       j += Fourie.nsize2;
+               npos = j * (Fourie.nsize2 + 2) + 2 * i;
+               Fourie.nfrpln[npos] = gr;
+               Fourie.nfrpln[npos + 1] = gi;
+               i = 0;
+               j = -iy;
+               if (j < 0)
+                       j += Fourie.nsize2;
+               npos = j * (Fourie.nsize2 + 2) + 2 * i;
+               Fourie.nfrpln[npos] = gr;
+               Fourie.nfrpln[npos + 1] = -gi;
+               return;
+       }
+       else
+       {
+               // IX GT 0  THE POINT IS ON THE RIGHT HALF PLANE
+
+               i = ix;
+               j = iy;
+               if (j < 0)
+                       j += Fourie.nsize2;
+               npos = j * (Fourie.nsize2 + 2) + 2 * i;
+               Fourie.nfrpln[npos] = gr;
+               Fourie.nfrpln[npos + 1] = gi;
+               return;
+       }
+}
diff --git a/src/snark/foru_uint.cpp b/src/snark/foru_uint.cpp
new file mode 100644 (file)
index 0000000..b368c24
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_uint.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+
+ PURPOSE: GIVEN THE COORDINATES OF THE DESIRED POINT  (IX,IY)
+ AND THE TWO TRANSFORMED PROJECTIONS  PJ1 AND PJ2 FIND THE
+ INTERPOLATED VALUE (GR,GI) THEN CALL THE SUBROUTINE STORE
+ TO STORE THE VALUE IN APPROPRIATE PLACE IN THE ARRAY
+ STARTING AT NFRPLN+1
+ THE INTERPOLATION SCHEME TO BE USED IS DETERMINED BY
+ INTERP (SEE ALSO COMMENTS IN THE MAIN PROGRAM )
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "foru.h"
+
+#define disn(b,c,the)  ((REAL) sqrt((b)*(b)+(c)*(c)-2.*(b)*(c) * (REAL) cos(the)))
+
+void foru_class::uint1(INTEGER icase, INTEGER ix, INTEGER iy, REAL ang1, REAL ang2, REAL* pj1, REAL* pj2)
+{
+
+       INTEGER x;
+       INTEGER y;
+       REAL r;
+       REAL ang;
+       REAL a;
+       INTEGER low;
+       INTEGER indmin;
+       INTEGER indmax;
+       REAL s;
+       REAL t;
+       INTEGER ind;
+       REAL gr;
+       REAL gi;
+       REAL pr;
+       REAL qr;
+       REAL px;
+       REAL qi;
+       REAL ak;
+       REAL d1;
+       REAL d2;
+       REAL d3;
+       REAL d4;
+       REAL e1;
+       REAL e2;
+       REAL e3;
+       REAL e4;
+       REAL den;
+
+       x = ix;
+       y = iy;
+       r = (REAL) sqrt((REAL) x * x + y * y) * Fourie.delp;
+       ang = (REAL) atan2((REAL) y, (REAL) x);
+       a = r / Fourie.deld;
+       if (a >= Fourie.radmax)
+               return;
+       low = (INTEGER) a;
+       indmin = 2 * low;
+       indmax = indmin + 2;
+       s = (REAL) fabs((ang - ang1) / (ang2 - ang1));
+       t = a - low;
+
+       switch (Fourie.interp)
+       {
+
+       // INTERP = 1 NEAREST NEIGHBOR IN CARTESIAN SENSE
+       case 1:
+               if (s <= 0.5)
+               {
+                       ind = indmax;
+                       if ((a * cos(ang - ang1) - low) <= 0.5)
+                               ind = indmin;
+                       gr = pj1[ind];
+                       gi = pj1[ind + 1];
+               }
+               else
+               {
+                       ind = indmax;
+                       if ((a * cos(ang2 - ang) - low) <= 0.5)
+                               ind = indmin;
+                       gr = pj2[ind];
+                       gi = pj2[ind + 1];
+               }
+               break;
+
+               // INTERP = 2 NEAREST NEIGHBOR IN RADIAL SENSE
+       case 2:
+               if (t <= 0.5)
+                       ind = indmin;
+               if (t > 0.5)
+                       ind = indmax;
+               if (s <= 0.5)
+               {
+                       gr = pj1[ind];
+                       gi = pj1[ind + 1];
+               }
+               else
+               {
+                       gr = pj2[ind];
+                       gi = pj2[ind + 1];
+               }
+               break;
+
+               // INTERP = 3 LINEAR INTERPOLATION
+       case 3:
+               if (t <= Consts.zero)
+                       t = 0.0;
+               if ((1.0 - t) <= Consts.zero)
+                       t = 1.0;
+               if (s <= Consts.zero)
+                       s = 0.0;
+               if ((1.0 - s) <= Consts.zero)
+                       s = (REAL) 1.0;
+               pr = t * pj1[indmax] + ((REAL) 1.0 - t) * pj1[indmin];
+               qr = t * pj2[indmax] + ((REAL) 1.0 - t) * pj2[indmin];
+               gr = pr * ((REAL) 1.0 - s) + qr * s;
+               px = t * pj1[indmax + 1] + ((REAL) 1.0 - t) * pj1[indmin + 1];
+               qi = t * pj2[indmax + 1] + ((REAL) 1.0 - t) * pj2[indmin + 1];
+               gi = px * ((REAL) 1.0 - s) + qi * s;
+               break;
+
+               // INTERP = 4 F=(F1/D1+F2/D2+F3/D3+F4/D4)/(1/D1+1/D2+1/D3+1/D4)
+       case 4:
+               ak = low;
+               d1 = disn(a, ak, ang - ang1);
+               d2 = disn(a, ak + 1, ang - ang1);
+               d3 = disn(a, ak, ang2 - ang);
+               d4 = disn(a, ak + 1, ang2 - ang);
+               e1 = d2 * d3 * d4;
+               e2 = d1 * d3 * d4;
+               e3 = d1 * d2 * d4;
+               e4 = d1 * d2 * d3;
+
+
+               if (e1 <= Consts.zero)
+                       e1 = 0;
+               if (e2 <= Consts.zero)
+                       e2 = 0;
+               if (e3 <= Consts.zero)
+                       e3 = 0;
+               if (e4 <= Consts.zero)
+                       e4 = 0;
+
+               den = e1 + e2 + e3 + e4;
+
+
+               gr = (pj1[indmin] * e1 + pj1[indmax] * e2 + pj2[indmin] * e3
+                               + pj2[indmax] * e4) / den;
+
+               gi = (pj1[indmin + 1] * e1 + pj1[indmax + 1] * e2 + pj2[indmin + 1] * e3
+                               + pj2[indmax + 1] * e4) / den;
+       }
+
+       // CALL THE SUBROUTINE STORE TO STORE THE VALUE (GR,GI) AT POINT
+       // (IX,IY) IN APPROPRIATE PLACE IN THE ARRAY STARTING AT NFRPLN+1
+
+       store(ix, iy, gr, gi);
+       return;
+}
diff --git a/src/snark/foru_unif.cpp b/src/snark/foru_unif.cpp
new file mode 100644 (file)
index 0000000..79eba48
--- /dev/null
@@ -0,0 +1,208 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_unif.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ PURPOSE: FOR EACH CASE (ICASE=1,...,6) FIND ALL POINTS LIE BETWEEN
+ THE TWO RAYS AND CALL UINT TO CALAULATE INTERPOLATED
+ VALUE
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "consts.h"
+
+#include "foru.h"
+
+#define  cot(z)  (cos(z)/sin(z));
+
+void foru_class::unif(INTEGER icase, REAL ang1, REAL ang2, REAL* nold, REAL* new1)
+{
+       INTEGER kh, ix, iy, j, khd, kk;
+       REAL uleft, uright, uhigh, ulow, xhigh, xlow, yhigh, ylow;
+
+       kh = Fourie.nsize2 / 2 - 1;
+
+       switch (icase)
+       {
+
+//.... CASE 1
+       case 1:
+               uleft = (REAL) cot(ang1)
+               ;
+               uright = (REAL) cot(ang2)
+               ;
+               for (j = 1; j <= kh; j++)
+               {
+                       iy = -j;
+                       xlow = uleft * iy - Fourie.epsln;
+                       xhigh = uright * iy + Fourie.epsln;
+                       ix = lround(xlow); // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+                       while (ix <= xhigh)
+                       {
+                               if (ix >= xlow)
+                               {
+                                       uint1(icase, ix, iy, ang1, ang2, nold, new1);
+                               }
+                               ix++;
+                       }
+               }
+               break;
+
+//.... CASE 2
+       case 2:
+               uleft = (REAL) cot(ang1)
+               ;
+               for (j = 1; j <= kh; j++)
+               {
+                       iy = -j;
+                       xlow = uleft * iy - Fourie.epsln;
+                       ix = lround(xlow); // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+                       while (ix <= j)
+                       {
+                               if (ix >= xlow)
+                               {
+                                       uint1(icase, ix, iy, ang1, ang2, nold, new1);
+                               }
+                               ix++;
+                       }
+               }
+
+               uhigh = (REAL) tan(ang2);
+               for (ix = 1; ix <= kh; ix++)
+               {
+                       yhigh = ix * uhigh + Fourie.epsln;
+                       iy = -ix + 1;
+                       while (iy <= yhigh)
+                       {
+                               uint1(icase, ix, iy, ang1, ang2, nold, new1);
+                               iy++;
+                       }
+               }
+               break;
+
+               // CASE 3
+       case 3:
+               ulow = (REAL) tan(ang1);
+               uhigh = (REAL) tan(ang2);
+               for (ix = 1; ix <= kh; ix++)
+               {
+                       ylow = ulow * ix - Fourie.epsln;
+                       yhigh = uhigh * ix + Fourie.epsln;
+                       iy = lround(ylow); // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+                       while (iy <= yhigh)
+                       {
+                               if (iy >= ylow)
+                               {
+                                       uint1(icase, ix, iy, ang1, ang2, nold, new1);
+                               }
+                               iy++;
+                       }
+               }
+               break;
+
+               // CASE 4
+
+       case 4:
+               ulow = (REAL) tan(ang1);
+               for (ix = 1; ix <= kh; ix++)
+               {  // !!! ix = 0 does not work mk
+                       ylow = ulow * ix - Fourie.epsln;
+                       iy = lround(ylow); // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+                       while (iy <= ix)
+                       { // changed ">=" to "<=" to match Fortran code. Lajos, Jan 13, 2005
+                               if (iy >= ylow)
+                               {
+                                       uint1(icase, ix, iy, ang1, ang2, nold, new1);
+                               }
+                               iy++;
+                       }
+               }
+
+               uleft = (REAL) cot(ang2)
+               ;
+
+               for (iy = 1; iy <= kh; iy++)
+               {
+                       xlow = uleft * iy - Fourie.epsln;
+                       ix = iy - 1;
+                       while (ix >= xlow)
+                       {
+                               uint1(icase, ix, iy, ang1, ang2, nold, new1);
+                               ix--;
+                       }
+               }
+
+               break;
+
+               // CASE 5
+
+       case 5:
+               uleft = (REAL) cot(ang2)
+               ;
+               uright = (REAL) cot(ang1)
+               ;
+               for (iy = 1; iy <= kh; iy++)
+               {
+                       xlow = uleft * iy - Fourie.epsln;
+                       xhigh = uright * iy + Fourie.epsln;
+                       ix = lround(xlow); // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+                       while (ix <= xhigh)
+                       {
+                               if (ix >= xlow)
+                               {
+                                       uint1(icase, ix, iy, ang1, ang2, nold, new1);
+                               }
+                               ix++;
+                       }
+               }
+               break;
+
+               // CASE 6
+
+               // CONJUGATE THE SECOND PROJECTION
+       case 6:
+               khd = Fourie.nsize1 + 2;
+               for (kk = 1; kk < khd; kk += 2)
+               {
+                       new1[kk] = -new1[kk];
+               }
+
+               uleft = (REAL) cot(ang2)
+               ;
+               uright = (REAL) cot(ang1)
+               ;
+               for (iy = 1; iy <= kh; iy++)
+               {
+                       xlow = uleft * iy - Fourie.epsln;
+                       xhigh = uright * iy + Fourie.epsln;
+                       ix = lround(xlow); // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+                       while (ix <= xhigh)
+                       {
+                               if (ix >= xlow)
+                               {
+                                       uint1(icase, ix, iy, ang1, ang2 + Consts.pi, nold, new1);
+                               }
+                               ix++;
+                       }
+               }
+
+               // CHANGE BACK
+
+               khd = Fourie.nsize1 + 2;
+               for (kk = 1; kk < khd; kk += 2)
+               {
+                       new1[kk] = -new1[kk];
+               }
+               break;
+       }
+
+       return;
+}
diff --git a/src/snark/foru_vc56.cpp b/src/snark/foru_vc56.cpp
new file mode 100644 (file)
index 0000000..09de4ca
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_vc56.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ VC56: VARIABLE SPACING CASE 5 AND 6
+ PURPOSE: FOR VARIABLE SPACING, ICASE=5 OR 6 (THE TWO LINES LIE
+ BETWEEN 45 AND 90 DEGREE LINES OR ANG1 IS IN 1ST QUADRANT
+ AND ANG2 IS IN 4TH QUADRANT) FIND ALL POINTS THAT LIE
+ BETWEEN THE TWO LINES AND INTERPOLATE
+ PJ1 AND PJ2 ARE THE ARRAYS  HOLDING THE TRANSFORMED PROJS
+ ANG1 AND ANG2 ARE THE CORRESPONDING ANGLES
+ FOR CASE 6 THE SECOND ANGLE, ANG2, WILL BE ADDED PI TO
+ BECOME AN ANGLE IN SECOND QUADRANT TO PERFORM
+ INTERPOLATION
+ */
+
+// bug79 - problem with fourier algorithm
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "consts.h"
+
+#include "foru.h"
+
+#define  cot(z)  (cos(z)/sin(z));
+
+void foru_class::vc56(INTEGER icase, REAL ang1, REAL ang2, REAL* pj1, REAL* pj2)
+{
+       REAL xx[4];
+       REAL yy[4];
+
+       INTEGER khd;
+       INTEGER kk;
+       REAL uleft;
+       REAL uright;
+       INTEGER kh;
+       INTEGER j;
+       INTEGER iy;
+       REAL aleft;
+       REAL aright;
+       INTEGER indl;
+       INTEGER indh;
+       REAL a;
+       INTEGER low;
+       INTEGER indmin;
+       INTEGER indmax;
+       REAL distan;
+       REAL yg;
+       INTEGER ix;
+       REAL xg;
+       REAL gr;
+       REAL gi;
+       REAL amid;
+       INTEGER ind;
+       INTEGER x;
+       REAL t;
+       REAL pr;
+       REAL qr;
+       REAL px;
+       REAL qi;
+       REAL s;
+
+       ///cot(z)=cos(z)/sin(z)
+
+       if (icase != 5)
+       {
+
+               khd = Fourie.nsize1 + 2;
+
+               for (kk = 1; kk < khd; kk += 2)
+               {     // bug79 - swr 2/11/05
+                       pj2[kk] = -pj2[kk];
+               }
+
+               ang2 += Consts.pi;
+       }
+
+       uleft = (REAL) cot(ang2)
+       ;
+       uright = (REAL) cot(ang1)
+       ;
+       kh = Fourie.nsize2 / 2 - 1;
+
+       for (j = 1; j <= kh; j++)
+       {     // bug79 - swr 2/11/05
+
+               iy = j;
+               aleft = uleft * iy;
+               aright = uright * iy;
+               indl = (INTEGER) ceil(aleft - Fourie.epsln); // bug82 - changed to ceil - swr - 2/20/05
+               indh = (INTEGER) floor(aright + Fourie.epsln); // bug82 - changed to floor - swr - 2/20/05
+
+               if (indl <= indh)
+               {
+                       a = j * Fourie.delp / Fourie.deld;
+                       low = (INTEGER) a;
+                       indmin = 2 * low;     // bug79 - swr 2/11/05
+                       indmax = indmin + 2;
+                       distan = aright - aleft;
+
+                       switch (Fourie.interp)
+                       {
+                       // INTERP = 1 NEAREST NEIGHBOR IN CARTESIAN SENSE
+                       // INTERP = 4 F=(F1/D1+F2/D2+F3/D3+F4/D4)/(1/D1+1/D2+1/D3+1/D4)
+                       case 1:
+                       case 4:
+                               yy[1] = (REAL) low;
+                               yy[3] = (REAL) low;
+                               yy[2] = (REAL) low + 1;
+                               yy[4] = (REAL) low + 1;
+                               xx[1] = yy[1] * uright;
+                               xx[2] = yy[2] * uright;
+                               xx[3] = yy[3] * uleft;
+                               xx[4] = yy[4] * uleft;
+                               yg = a;
+
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       xg = ix * Fourie.delp / Fourie.deld;
+                                       vint14(xx, yy, xg, yg, pj1, pj2, indmin, indmax, &gr, &gi); // changed to pass address of "gr" and "gi". Lajos, Feb 10, 2005
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+
+                               // INTERP = 2 NEAREST NEIGHBOR IN RADIAL SENSE
+                       case 2:
+                               amid = (aleft + aright) / (REAL) 2.0;
+                               ind = 2 * (lround(a)) + 1; // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       x = ix;
+                                       if (x <= amid)
+                                       {     // bug79 - swr 2/15/05
+                                               gr = pj2[ind - 1];
+                                               gi = pj2[ind];
+                                       }
+                                       else
+                                       {
+                                               gr = pj1[ind - 1];
+                                               gi = pj1[ind];
+                                       }
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+
+                               // INTERP = 3 LINEAR INTERPOLATION
+                       case 3:
+                               t = a - low;
+                               if (t <= Consts.zero)
+                                       t = 0.0;
+                               if ((1. - t) <= Consts.zero)
+                                       t = (REAL) 1.0;
+                               pr = pj1[indmin] * ((REAL) 1.0 - t) + pj1[indmax] * t;
+                               qr = pj2[indmin] * ((REAL) 1.0 - t) + pj2[indmax] * t;
+                               px = pj1[indmin + 1] * ((REAL) 1.0 - t) + pj1[indmax + 1] * t;
+                               qi = pj2[indmin + 1] * ((REAL) 1.0 - t) + pj2[indmax + 1] * t;
+
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       s = (aright - ix) / distan;
+                                       if (s <= Consts.zero)
+                                               s = 0.0;
+                                       if ((1. - s) <= Consts.zero)
+                                               s = 1.0;
+                                       gr = pr * ((REAL) 1.0 - s) + qr * s;
+                                       gi = px * ((REAL) 1.0 - s) + qi * s;
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+                       }
+               }
+       }
+
+       if (icase == 5)
+               return;
+
+       khd = Fourie.nsize1 + 2;
+       for (kk = 1; kk < khd; kk += 2)
+       {     // bug79 - swr 2/11/05
+               pj2[kk] = -pj2[kk];
+       }
+       ang2 -= Consts.pi;
+       return;
+}
diff --git a/src/snark/foru_vcase1.cpp b/src/snark/foru_vcase1.cpp
new file mode 100644 (file)
index 0000000..cb9d0a6
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_vcase1.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ------------------------------------------------------------------
+
+ VCASE1: VARIABLE SPACING CASE 1
+ PURPOSE: FOR VARIABLE SPACING, ICASE=1 (THE TWO LINES LIE BETWEEN
+ -90 AND -45 DEGREE LINES) FIND ALL POINTS THAT LIE
+ BETWEEN THE TWO LINES AND INTERPOLATE
+
+ ------------------------------------------------------------------
+ */
+// bug79 - problem with fourier algorithm
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "consts.h"
+
+#include "foru.h"
+
+#define  cot(z)  (cos(z)/sin(z));
+
+void foru_class::vcase1(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2)
+{
+       int j;
+
+       INTEGER iy;
+       INTEGER indl;
+       INTEGER indh;
+       REAL a;
+       INTEGER low;
+       INTEGER indmin;
+       INTEGER indmax;
+       REAL distan;
+       REAL yg;
+       INTEGER ix;
+       REAL xg;
+       REAL gr;
+       REAL gi;
+       REAL amid;
+       INTEGER ind;
+       INTEGER x;
+       REAL t;
+       REAL pr;
+       REAL px;
+       REAL qr;
+       REAL qi;
+       REAL s;
+
+       REAL xx[4];
+       REAL yy[4];
+
+       REAL uleft;
+       REAL uright;
+       INTEGER kh;
+
+       REAL aleft;
+       REAL aright;
+
+       uleft = (REAL) cot(ang1);
+       uright = (REAL) cot(ang2);
+       kh = Fourie.nsize2 / 2 - 1;
+
+       for (j = 1; j <= kh; j++)
+       {
+               // bug79 - swr 2/11/05
+
+               iy = -j;
+               aleft = uleft * iy;
+               aright = uright * iy;
+               indl = (INTEGER) ceil(aleft - Fourie.epsln); // bug82 - changed to ceil - swr - 2/20/05
+               indh = (INTEGER) floor(aright + Fourie.epsln); // bug82 - changed to floor - swr - 2/20/05
+               if (indl <= indh)
+               {
+                       a = j * Fourie.delp / Fourie.deld;
+                       low = (INTEGER) a;
+                       indmin = 2 * low;     // bug79 - swr 2/11/05
+                       indmax = indmin + 2;
+                       distan = aright - aleft;
+
+                       switch (Fourie.interp)
+                       {
+
+                       // INTERP = 1 NEAREST NEIGHBOR IN CARTESIAN SENSE
+                       // INTERP = 4 F=(F1/D1+F2/D2+F3/D3+F4/D4)/(1/D1+1/D2+1/D3+1/D4)
+
+                       case 1:
+                       case 4:
+                               yy[1] = (REAL) -low;
+                               yy[3] = (REAL) -low;
+                               yy[2] = (REAL) -low - 1;
+                               yy[4] = (REAL) -low - 1;
+                               xx[1] = yy[1] * uleft;
+                               xx[2] = yy[2] * uleft;
+                               xx[3] = yy[3] * uright;
+                               xx[4] = yy[4] * uright;
+                               yg = -a;
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       xg = ix * Fourie.delp / Fourie.deld;
+                                       vint14(xx, yy, xg, yg, pj1, pj2, indmin, indmax, &gr, &gi); // changed to pass address of "gr" and "gi". Lajos, Feb 10, 2005
+                                       store(ix, iy, gr, gi);
+                               }
+
+                               break;      // bug79 - swr 2/15/05
+
+                               // INTERP = 2 NEAREST NEIGHBOR IN RADIAL SENSE
+
+                       case 2:
+                               amid = (aleft + aright) / (REAL) 2.0;
+                               ind = 2 * (lround(a)) + 1; // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       x = ix;
+                                       if (x <= amid)
+                                       {      // bug79 - swr 2/15/05
+                                               gr = pj1[ind - 1];
+                                               gi = pj1[ind];
+                                       }
+                                       else
+                                       {
+                                               gr = pj2[ind - 1];
+                                               gi = pj2[ind];
+                                       }
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+
+                               // INTERP = 3 LINEAR INTERPOLATION
+                       case 3:
+                               t = a - low;
+                               if (t <= Consts.zero)
+                                       t = 0.0;
+                               if ((1. - t) <= Consts.zero)
+                                       t = 1.0;
+                               pr = pj1[indmin] * ((REAL) 1.0 - t) + pj1[indmax] * t;
+                               px = pj1[indmin + 1] * ((REAL) 1.0 - t) + pj1[indmax + 1] * t;
+                               qr = pj2[indmin] * ((REAL) 1.0 - t) + pj2[indmax] * t;
+                               qi = pj2[indmin + 1] * ((REAL) 1.0 - t) + pj2[indmax + 1] * t;
+
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       s = (ix - aleft) / distan;
+                                       if (s <= Consts.zero)
+                                               s = 0.0;
+                                       if ((1.0 - s) <= Consts.zero)
+                                               s = 1.0;
+                                       gr = pr * ((REAL) 1.0 - s) + qr * s;
+                                       gi = px * ((REAL) 1.0 - s) + qi * s;
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+                       }
+               }
+       }
+}
diff --git a/src/snark/foru_vcase2.cpp b/src/snark/foru_vcase2.cpp
new file mode 100644 (file)
index 0000000..9c4bfae
--- /dev/null
@@ -0,0 +1,235 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_vcase2.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ------------------------------------------------------------------
+
+ VCASE2: VARIABLE SPACING CASE 2
+ PURPOSE: FOR VARIABLE SPACING, ICASE=2 (THE TWO LINES STADLE
+ THE -45 DEGREE LINE) FIND ALL POINTS THAT LIE
+ BETWEEN THE TWO LINES AND INTERPOLATE
+ PJ1 AND PJ2 ARE THE ARRAYS  HOLDING THE TRANSFORMED PROJS
+ ANG1 AND ANG2 ARE THE CORRESPONDING ANGLES
+
+ ------------------------------------------------------------------
+ */
+// bug79 - problem with fourier algorithm
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "consts.h"
+
+#include "foru.h"
+
+#define  cot(z)  (cos(z)/sin(z));
+
+void foru_class::vcase2(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2)
+{
+       REAL xx[4];
+       REAL yy[4];
+
+       REAL uleft;
+       REAL uhigh;
+       INTEGER kh;
+       INTEGER j;
+       INTEGER iy;
+       REAL aleft;
+       REAL ahigh;
+       INTEGER indl;
+       INTEGER indh;
+       REAL a;
+       INTEGER low;
+       INTEGER indmin;
+       INTEGER indmax;
+       REAL hdis;
+       REAL vdis;
+       REAL distan;
+       REAL yg;
+       INTEGER ix;
+       REAL xg;
+       REAL gr;
+       REAL gi;
+       REAL amid;
+       INTEGER ind;
+       INTEGER x;
+       REAL t;
+       REAL pr;
+       REAL qr;
+       REAL px;
+       REAL qi;
+       REAL s;
+       INTEGER y;
+
+       //tan(z)=sin(z)/cos(z)
+       ///cot(z)=cos(z)/sin(z)
+
+       uleft = (REAL) cot(ang1)
+       ;
+       uhigh = (REAL) tan(ang2);
+       kh = Fourie.nsize2 / 2 - 1;
+
+       for (j = 1; j <= kh; j++)
+       {     // bug79 - swr 2/11/05
+
+               iy = -j;
+               aleft = uleft * iy;
+               ahigh = uhigh * j;
+               indl = (INTEGER) ceil(aleft - Fourie.epsln); // bug82 - changed to ceil - swr - 2/20/05
+               indh = j - 1;
+               a = j * Fourie.delp / Fourie.deld;
+               low = (INTEGER) a;
+               indmin = 2 * low;     // bug79 - swr 2/11/05
+               indmax = indmin + 2;
+               hdis = j - aleft;
+               vdis = ahigh - (-j);
+               distan = hdis + vdis;
+
+               switch (Fourie.interp)
+               {
+
+               // INTERP = 1 NEAREST NEIGHBOR IN CARTESIAN SENSE
+               // INTERP = 4 F=(F1/D1+F2/D2+F3/D3+F4/D4)/(1/D1+1/D2+1/D3+1/D4)
+               case 1:
+               case 4:
+                       yy[1] = (REAL) -low;
+                       yy[2] = (REAL) -low - 1;
+                       xx[1] = yy[1] * uleft;
+                       xx[2] = yy[2] * uleft;
+                       xx[3] = (REAL) low;
+                       xx[4] = (REAL) low + 1;
+                       yy[3] = xx[3] * uhigh;
+                       yy[4] = xx[4] * uhigh;
+                       yg = -a;
+                       if (indl <= indh)
+                       {
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       xg = ix * Fourie.delp / Fourie.deld;
+                                       vint14(xx, yy, xg, yg, pj1, pj2, indmin, indmax, &gr, &gi); // changed to pass address of "gr" and "gi". Lajos, Feb 10, 2005
+                                       store(ix, iy, gr, gi);
+                               }
+                       }
+                       break;
+
+                       // INTERP = 2 NEAREST NEIGHBOR IN RADIAL SENSE
+               case 2:
+
+                       amid = aleft + distan / (REAL) 2.0;
+                       ind = 2 * (lround(a)) + 1; // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+                       if (indl <= indh)
+                       {
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       x = ix;
+                                       if (x <= amid)
+                                       {     // bug79 - swr 2/15/05
+                                               gr = pj1[ind - 1];
+                                               gi = pj1[ind];
+                                       }
+                                       else
+                                       {
+                                               gr = pj2[ind - 1];
+                                               gi = pj2[ind];
+                                       }
+                                       store(ix, iy, gr, gi);
+                               }
+                       }
+                       break;
+
+                       // INTERP = 3 LINEAR INTERPOLATION
+               case 3:
+                       t = a - low;
+                       if (t <= Consts.zero)
+                               t = 0.0;
+                       if ((1. - t) <= Consts.zero)
+                               t = 1.0;
+                       pr = pj1[indmin] * ((REAL) 1.0 - t) + pj1[indmax] * t;
+                       qr = pj2[indmin] * ((REAL) 1.0 - t) + pj2[indmax] * t;
+                       px = pj1[indmin + 1] * ((REAL) 1.0 - t) + pj1[indmax + 1] * t;
+                       qi = pj2[indmin + 1] * ((REAL) 1.0 - t) + pj2[indmax + 1] * t;
+                       if (indl <= indh)
+                       {
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       s = (ix - aleft) / distan;
+                                       if (s <= Consts.zero)
+                                               s = 0.0;
+                                       if ((1. - s) <= Consts.zero)
+                                               s = 1.0;
+                                       gr = pr * ((REAL) 1.0 - s) + qr * s;
+                                       gi = px * ((REAL) 1.0 - s) + qi * s;
+                                       store(ix, iy, gr, gi);
+                               }
+                       }
+                       break;
+
+               }
+
+               ix = j;
+               indl = -j;
+               indh = (INTEGER) floor(ahigh + Fourie.epsln); // bug82 - changed to floor - swr - 2/20/05
+
+               if (indl <= indh)
+               {
+
+                       switch (Fourie.interp)
+                       {
+
+                       // INTERP = 1 NEAREST NEIGHBOR IN CARTESIAN SENSE
+                       // INTERP = 4 F=(F1/D1+F2/D2+F3/D3+F4/D4)/(1/D1+1/D2+1/D3+1/D4)
+                       case 1:
+                       case 4:
+                               xg = a;
+                               for (iy = indl; iy <= indh; iy++)
+                               {     // bug79 - swr 2/11/05
+                                       yg = iy * Fourie.delp / Fourie.deld;
+                                       vint14(xx, yy, xg, yg, pj1, pj2, indmin, indmax, &gr, &gi); // changed to pass address of "gr" and "gi". Lajos, Feb 10, 2005
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+
+                               // INTERP = 2 NEAREST NEIGHBOR IN RADIAL SENSE
+                       case 2:
+                               amid = ahigh - distan / (REAL) 2.0;
+                               for (iy = indl; iy <= indh; iy++)
+                               {     // bug79 - swr 2/11/05
+                                       y = iy;
+                                       if (y <= amid)
+                                       {     // bug79 - swr 2/15/05
+                                               gr = pj1[ind - 1];
+                                               gi = pj1[ind];
+                                       }
+                                       else
+                                       {
+                                               gr = pj2[ind - 1];
+                                               gi = pj2[ind];
+                                       }
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+
+                               // INTERP = 3 LINEAR INTERPOLATION
+                       case 3:
+                               for (iy = indl; iy <= indh; iy++)
+                               {     // bug79 - swr 2/11/05
+                                       s = (hdis + iy - (-j)) / distan;
+                                       if (s <= Consts.zero)
+                                               s = 0.0;
+                                       if ((1. - s) <= Consts.zero)
+                                               s = 1.0;
+                                       gr = pr * ((REAL) 1.0 - s) + qr * s;
+                                       gi = px * ((REAL) 1.0 - s) + qi * s;
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+                       }
+               }
+       }
+}
diff --git a/src/snark/foru_vcase3.cpp b/src/snark/foru_vcase3.cpp
new file mode 100644 (file)
index 0000000..eb23f1b
--- /dev/null
@@ -0,0 +1,168 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_vcase3.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ------------------------------------------------------------------
+
+ VCASE3: VARIABLE SPACING CASE 3
+ PURPOSE: FOR VARIABLE SPACING, ICASE=3 (THE TWO LINES LIE BETWEEN
+ -45 AND 45 DEGREE LINES) FIND ALL POINTS THAT LIE
+ BETWEEN THE TWO LINES AND INTERPOLATE
+ PJ1 AND PJ2 ARE THE ARRAYS  HOLDING THE TRANSFORMED PROJS
+ ANG1 AND ANG2 ARE THE CORRESPONDING ANGLES
+
+ ------------------------------------------------------------------
+ */
+// bug79 - problem with fourier algorithm
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "consts.h"
+
+#include "foru.h"
+
+void foru_class::vcase3(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2)
+{
+       REAL xx[4];
+       REAL yy[4];
+
+       REAL ulow;
+       REAL uhigh;
+       INTEGER kh;
+       INTEGER j;
+       INTEGER ix;
+       REAL alow;
+       REAL ahigh;
+       INTEGER indl;
+       INTEGER indh;
+       REAL a;
+       INTEGER low;
+       INTEGER indmin;
+       INTEGER indmax;
+       REAL distan;
+       REAL xg;
+       INTEGER iy;
+       REAL yg;
+       REAL gr;
+       REAL gi;
+       REAL amid;
+       INTEGER y;
+       INTEGER ind;
+
+       REAL t;
+       REAL pr;
+       REAL qr;
+       REAL px;
+       REAL qi;
+       REAL s;
+
+       //tan(z)=sin(z)/cos(z)
+
+       ulow = (REAL) tan(ang1);
+       uhigh = (REAL) tan(ang2);
+       kh = Fourie.nsize2 / 2 - 1;
+
+       for (j = 1; j <= kh; j++)
+       {     // bug79 - swr 2/11/05
+
+               ix = j;
+               alow = ulow * ix;
+               ahigh = uhigh * ix;
+               indl = (INTEGER) ceil(alow - Fourie.epsln); // bug82 - changed to ceil - swr - 2/20/05
+               indh = (INTEGER) floor(ahigh + Fourie.epsln); // bug82 - changed to floor - swr - 2/20/05
+               if (indl <= indh)
+               {
+                       a = j * Fourie.delp / Fourie.deld;
+                       low = (INTEGER) a;
+                       indmin = 2 * low;     // bug79 - swr 2/11/05
+                       indmax = indmin + 2;
+                       distan = ahigh - alow;
+
+                       switch (Fourie.interp)
+                       {
+
+                       // INTERP = 1 NEAREST NEIGHBOR IN CARTESIAN SENSE
+                       // INTERP = 4 F=(F1/D1+F2/D2+F3/D3+F4/D4)/(1/D1+1/D2+1/D3+1/D4)
+
+                       case 1:
+                       case 4:
+                               xx[1] = (REAL) low;
+                               xx[2] = (REAL) low + 1;
+                               xx[3] = (REAL) low;
+                               xx[4] = (REAL) low + 1;
+                               yy[1] = xx[1] * ulow;
+                               yy[2] = xx[2] * ulow;
+                               yy[3] = xx[3] * uhigh;
+                               yy[4] = xx[4] * uhigh;
+                               xg = a;
+                               for (iy = indl; iy <= indh; iy++)
+                               {     // bug79 - swr 2/11/05
+                                       yg = iy * Fourie.delp / Fourie.deld;
+                                       vint14(xx, yy, xg, yg, pj1, pj2, indmin, indmax, &gr, &gi); // changed to pass address of "gr" and "gi". Lajos, Feb 10, 2005
+                                       store(ix, iy, gr, gi);
+                               }
+
+                               break;
+
+                               // INTERP = 2 NEAREST NEIGHBOR IN RADIAL SENSE
+
+                       case 2:
+                               amid = (alow + ahigh) / (REAL) 2.0;
+                               for (iy = indl; iy <= indh; iy++)
+                               {     // bug79 - swr 2/11/05
+                                       y = iy;
+                                       ind = 2 * (lround(a)) + 1; // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+
+                                       if (y <= amid)
+                                       {     // bug79 - swr 2/15/05
+                                               gr = pj1[ind - 1];
+                                               gi = pj1[ind];
+                                       }
+                                       else
+                                       {
+                                               gr = pj2[ind - 1];
+                                               gi = pj2[ind];
+                                       }
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+
+                               // INTERP = 3 LINEAR INTERPOLATION
+
+                       case 3:
+                               t = a - low;
+                               if (t <= Consts.zero)
+                                       t = 0.0;
+                               if (((REAL) 1.0 - t) <= Consts.zero)
+                                       t = (REAL) 1.0;
+                               pr = pj1[indmin] * ((REAL) 1.0 - t) + pj1[indmax] * t;
+                               qr = pj2[indmin] * ((REAL) 1.0 - t) + pj2[indmax] * t;
+                               px = pj1[indmin + 1] * ((REAL) 1.0 - t) + pj1[indmax + 1] * t;
+                               qi = pj2[indmin + 1] * ((REAL) 1.0 - t) + pj2[indmax + 1] * t;
+
+                               for (iy = indl; iy <= indh; iy++)
+                               {     // bug79 - swr 2/11/05
+                                       s = (iy - alow) / distan;
+                                       if (s <= Consts.zero)
+                                               s = 0.0;
+                                       if (((REAL) 1.0 - s) <= Consts.zero)
+                                               s = (REAL) 1.0;
+                                       gr = pr * ((REAL) 1.0 - s) + qr * s;
+                                       gi = px * ((REAL) 1.0 - s) + qi * s;
+                                       store(ix, iy, gr, gi);
+
+                               }
+                               break;
+
+                       }
+               }
+       }
+       return;
+}
diff --git a/src/snark/foru_vcase4.cpp b/src/snark/foru_vcase4.cpp
new file mode 100644 (file)
index 0000000..545b190
--- /dev/null
@@ -0,0 +1,239 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_vcase4.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ------------------------------------------------------------------
+
+ VCASE4: VARIABLE SPACING CASE 4
+ PURPOSE: FOR VARIABLE SPACING, ICASE=4 ( THE TWO LINES STRADLE
+ THE 45 DEGREE LINE) FIND ALL POINTS THAT LIE
+ BETWEEN THE TWO LINES AND INTERPOLATE
+ PJ1 AND PJ2 ARE THE ARRAYS  HOLDING THE TRANSFORMED PROJS
+ ANG1 AND ANG2 ARE THE CORRESPONDING ANGLES
+
+ ------------------------------------------------------------------
+ */
+// bug79 - problem with fourier algorithm
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "consts.h"
+
+#include "foru.h"
+
+#define  cot(z)  (cos(z)/sin(z));
+
+void foru_class::vcase4(REAL ang1, REAL ang2, REAL* pj1, REAL* pj2)
+{
+       REAL xx[4];
+       REAL yy[4];
+
+       REAL ulow;
+       REAL uleft;
+       INTEGER kh;
+       INTEGER j;
+       INTEGER ix;
+       REAL a;
+       INTEGER low;
+       INTEGER indmin;
+       INTEGER indmax;
+       REAL alow;
+       REAL aleft;
+       REAL vdis;
+       REAL hdis;
+       REAL distan;
+       INTEGER indl;
+       INTEGER indh;
+       REAL xg;
+       INTEGER iy;
+       REAL yg;
+       REAL gr;
+       REAL gi;
+       REAL amid;
+       INTEGER ind;
+       INTEGER y;
+       REAL t;
+       REAL pr;
+       REAL qr;
+       REAL px;
+       REAL qi;
+       REAL s;
+       INTEGER x;
+
+       ///tan(z)=sin(z)/cos(z)
+       ///cot(z)=cos(z)/sin(z)
+
+       ulow = (REAL) tan(ang1);
+       uleft = (REAL) cot(ang2)
+       ;
+       kh = Fourie.nsize2 / 2 - 1;
+
+       for (j = 1; j <= kh; j++)
+       {      // bug79 - swr 2/11/05
+
+               ix = j;
+               a = j * Fourie.delp / Fourie.deld;
+               low = (INTEGER) a;
+               indmin = 2 * low;     // bug79 - swr 2/11/05
+               indmax = indmin + 2;
+               alow = ulow * ix;
+               aleft = uleft * j;
+               vdis = j - alow;
+               hdis = j - aleft;
+               distan = hdis + vdis;
+               indl = (INTEGER) ceil(alow - Fourie.epsln); // bug82 - changed to ceil - swr - 2/20/05
+               indh = j - 1;
+
+               switch (Fourie.interp)
+               {
+
+               // INTERP = 1 NEAREST NEIGHBOR IN CARTESIAN SENSE
+               // INTERP = 4 F=(F1/D1+F2/D2+F3/D3+F4/D4)/(1/D1+1/D2+1/D3+1/D4)
+               case 1:
+               case 4:
+                       xx[1] = (REAL) low;
+                       xx[2] = (REAL) low + 1;
+                       yy[1] = xx[1] * ulow;
+                       yy[2] = xx[2] * ulow;
+                       yy[3] = (REAL) low;
+                       yy[4] = (REAL) low + 1;
+                       xx[3] = yy[3] * uleft;
+                       xx[4] = yy[4] * uleft;
+                       xg = a;
+
+                       if (indl <= indh)
+                       {
+                               for (iy = indl; iy <= indh; iy++)
+                               {     // bug79 - swr 2/11/05
+                                       yg = iy * Fourie.delp / Fourie.deld;
+                                       vint14(xx, yy, xg, yg, pj1, pj2, indmin, indmax, &gr, &gi); // changed to pass address of "gr" and "gi". Lajos, Feb 10, 2005
+                                       store(ix, iy, gr, gi);
+                               }
+                       }
+                       break;
+
+                       // INTERP = 2 NEAREST NEIGHBOR IN RADIAL SENSE
+               case 2:
+
+                       amid = alow + distan / (REAL) 2.0;
+                       ind = 2 * (lround(a)) + 1; // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+
+                       if (indl <= indh)
+                       {
+                               for (iy = indl; iy <= indh; iy++)
+                               {     // bug79 - swr 2/11/05
+                                       y = iy;
+                                       if (y <= amid)
+                                       {     // bug79 - swr 2/15/05
+                                               gr = pj1[ind - 1];
+                                               gi = pj1[ind];
+                                       }
+                                       else
+                                       {
+                                               gr = pj2[ind - 1];
+                                               gi = pj2[ind];
+                                       }
+                                       store(ix, iy, gr, gi);
+                               }
+                       }
+                       break;
+
+                       // INTERP = 3 LINEAR INTERPOLATION
+               case 3:
+                       t = a - low;
+                       if (t <= Consts.zero)
+                               t = 0.0;
+                       if ((1. - t) <= Consts.zero)
+                               t = 1.0;
+                       pr = pj1[indmin] * ((REAL) 1.0 - t) + pj1[indmax] * t;
+                       qr = pj2[indmin] * ((REAL) 1.0 - t) + pj2[indmax] * t;
+                       px = pj1[indmin + 1] * ((REAL) 1.0 - t) + pj1[indmax + 1] * t;
+                       qi = pj2[indmin + 1] * ((REAL) 1.0 - t) + pj2[indmax + 1] * t;
+
+                       if (indl <= indh)
+                       {
+
+                               for (iy = indl; iy <= indh; iy++)
+                               {     // bug79 - swr 2/11/05
+                                       s = (iy - alow) / distan;
+                                       if (s <= Consts.zero)
+                                               s = 0.0;
+                                       if (((REAL) 1.0 - s) <= Consts.zero)
+                                               s = (REAL) 1.0;
+                                       gr = pr * ((REAL) 1.0 - s) + qr * s;
+                                       gi = px * ((REAL) 1.0 - s) + qi * s;
+                                       store(ix, iy, gr, gi);
+                               }
+                       }
+                       break;
+               }
+
+               iy = j;
+               indl = (INTEGER) ceil(aleft - Fourie.epsln); // bug82 - changed to ceil - swr - 2/20/05
+               indh = j;
+
+               if (indl <= indh)
+               {
+
+                       switch (Fourie.interp)
+                       {
+
+                       // INTERP = 1 NEAREST NEIGHBOR IN CARTESIAN SENSE
+                       // INTERP = 4 F=(F1/D1+F2/D2+F3/D3+F4/D4)/(1/D1+1/D2+1/D3+1/D4)
+                       case 1:
+                       case 4:
+                               yg = a;
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       xg = ix * Fourie.delp / Fourie.deld;
+                                       vint14(xx, yy, xg, yg, pj1, pj2, indmin, indmax, &gr, &gi); // changed to pass address of "gr" and "gi". Lajos, Feb 10, 2005
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+
+                               // INTERP = 2 NEAREST NEIGHBOR IN RADIAL SENSE
+                       case 2:
+                               amid = aleft + distan / (REAL) 2.0;
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       x = ix;
+                                       if (x <= amid)
+                                       {     // bug79 - swr 2/15/05
+                                               gr = pj2[ind - 1];
+                                               gi = pj2[ind];
+                                       }
+                                       else
+                                       {
+                                               gr = pj1[ind - 1];
+                                               gi = pj1[ind];
+                                       }
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+
+                               // INTERP = 3 LINEAR INTERPOLATION
+                       case 3:
+                               for (ix = indl; ix <= indh; ix++)
+                               {     // bug79 - swr 2/11/05
+                                       s = (vdis + j - ix) / distan;
+                                       if (s <= Consts.zero)
+                                               s = 0.0;
+                                       if ((1. - s) <= Consts.zero)
+                                               s = 1.0;
+                                       gr = pr * ((REAL) 1.0 - s) + qr * s;
+                                       gi = px * ((REAL) 1.0 - s) + qi * s;
+                                       store(ix, iy, gr, gi);
+                               }
+                               break;
+                       }
+               }
+       }
+       return;
+}
diff --git a/src/snark/foru_vint14.cpp b/src/snark/foru_vint14.cpp
new file mode 100644 (file)
index 0000000..4ebbf89
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/foru_vint14.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ------------------------------------------------------------------
+
+ PURPOSE: GIVEN THE COORDINATES OF A POINT (XG,YG) AND ITS FOUR
+ NEIGHBORS (XX(I),YY(I)) CALCULATE THE INTERPOLATED VALUE
+ FOR INTERP=1 AND 4
+
+ ------------------------------------------------------------------
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "fourie.h"
+#include "consts.h"
+
+#include "foru.h"
+
+#define dis(xa,ya,xb,yb) ((REAL) sqrt(((xa)-(xb))*((xa)-(xb))+((ya)-(yb))*((ya)-(yb))))
+
+void foru_class::vint14(
+REAL* xx,
+REAL* yy,
+REAL xg,
+REAL yg,
+REAL* pj1,
+REAL* pj2,
+INTEGER indmin,
+INTEGER indmax,
+REAL* gr, // changed to pass address. Lajos, Feb 10, 2005
+               REAL* gi // changed to pass address. Lajos, Feb 10, 2005
+               )
+{
+       REAL d1 = dis(xx[1], yy[1], xg, yg);
+       REAL d2 = dis(xx[2], yy[2], xg, yg);
+       REAL d3 = dis(xx[3], yy[3], xg, yg);
+       REAL d4 = dis(xx[4], yy[4], xg, yg);
+
+       // changed to dereference "gr" and "gi" in order to return computed values. Lajos, Feb 10, 2005
+       if (Fourie.interp != 4)
+       {
+
+               // INTERP=1
+
+               //REAL d = amin1(d1,d2,d3,d4);
+               REAL d = MIN0(MIN0(d1, d2), MIN0(d3, d4));
+
+               if (d == d4)
+                       *gr = pj2[indmax];
+               if (d == d4)
+                       *gi = pj2[indmax + 1];
+
+               if (d == d3)
+                       *gr = pj2[indmin];
+               if (d == d3)
+                       *gi = pj2[indmin + 1];
+
+               if (d == d2)
+                       *gr = pj1[indmax];
+               if (d == d2)
+                       *gi = pj1[indmax + 1];
+
+               if (d == d1)
+                       *gr = pj1[indmin];
+               if (d == d1)
+                       *gi = pj1[indmin + 1];
+               return;
+       }
+       else
+       {
+               // INTERP=4
+
+               REAL e1 = d2 * d3 * d4;
+               REAL e2 = d1 * d3 * d4;
+               REAL e3 = d1 * d2 * d4;
+               REAL e4 = d1 * d2 * d3;
+
+               if (e1 <= Consts.zero)
+                       e1 = 0.0;
+               if (e2 <= Consts.zero)
+                       e2 = 0.0;
+               if (e3 <= Consts.zero)
+                       e3 = 0.0;
+               if (e4 <= Consts.zero)
+                       e4 = 0.0;
+
+               REAL e = e1 + e2 + e3 + e4;
+
+               *gr = (pj1[indmin] * e1 + pj1[indmax] * e2 + pj2[indmin] * e3
+                               + pj2[indmax] * e4) / e;
+
+               *gi = (pj1[indmin + 1] * e1 + pj1[indmax + 1] * e2
+                               + pj2[indmin + 1] * e3 + pj2[indmax + 1] * e4) / e;
+
+               return;
+       }
+}
diff --git a/src/snark/fourie.cpp b/src/snark/fourie.cpp
new file mode 100644 (file)
index 0000000..449636a
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/fourie.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ */
+
+#include "fourie.h"
+
+fourie_class Fourie;
+
diff --git a/src/snark/fourie.h b/src/snark/fourie.h
new file mode 100644 (file)
index 0000000..ecea25a
--- /dev/null
@@ -0,0 +1,22 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/fourie.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef FOURIE_H
+#define FOURIE_H
+
+#include "blkdta.h"
+
+extern class fourie_class
+{
+public:
+       REAL rinc;REAL deld;REAL delp;REAL radmax;INTEGER midr;INTEGER midp;REAL epsln;INTEGER iflg;INTEGER reserv;INTEGER nforw[3];INTEGER nback[3];REAL* nproj1;REAL* nproj2;REAL* nfrpln;REAL* ntemp;INTEGER nfiltr;REAL cutoff;INTEGER interp;INTEGER nsize1;INTEGER nsize2;
+} Fourie;
+
+#endif
diff --git a/src/snark/ftodd.cpp b/src/snark/ftodd.cpp
new file mode 100644 (file)
index 0000000..3b37a75
--- /dev/null
@@ -0,0 +1,296 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/ftodd.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THE SUBROUTINES FFT2P , FTODD , UNKPS ARE FAST FOUTIER ROUTINES.
+ THE SUBROUTINE SNFFT ,DESCRIBED IN THE SNARK05 MANUAL , MAKES
+ USE OF THESE SUBROUTINES.
+ THE SUBROUTINES HAVE BEEN TAKEN FROM
+ POLGE,R.J., AND BHAGAVAN,B.K., EFFICIENT FAST FOURIER TRANSFORM
+ PROGRAMS FOR ARBITRARY FACTORS WITH ONE STEP LOOP UNSCRAMBLING,
+ IEEE TRANSACTIONS ON COMPUTERS, MAY 1976.
+ */
+
+#include <cstdio>
+#include <cmath>    
+
+#include "blkdta.h"
+
+#include "ftodd.h"
+
+void ftodd(
+INTEGER imax,
+INTEGER istep,
+REAL* xs,
+REAL* x,
+INTEGER n,
+INTEGER* nk,
+REAL* v,
+REAL tpis,
+INTEGER nipf,
+INTEGER* ipf,
+INTEGER mc,
+INTEGER k4m4,
+INTEGER nipfx,
+INTEGER* ipfx,
+INTEGER* ipu,
+INTEGER* ix,
+INTEGER* nfixp,
+REAL* vspt,
+REAL* t,
+BOOLEAN virt)
+{
+       REAL vs[2];
+
+       INTEGER i;
+       INTEGER ip;
+       INTEGER sk;
+       REAL fix;
+       INTEGER kt;
+       REAL temp;
+       INTEGER kss;
+       INTEGER ks;
+       INTEGER kp;
+       INTEGER kgp;
+       INTEGER ktas;
+       INTEGER kta;
+       INTEGER ia;
+       INTEGER l;
+       INTEGER ind2;
+       INTEGER ind;
+       INTEGER indx;
+       INTEGER kpm1;
+       INTEGER jt;
+       INTEGER ktip;
+       INTEGER k;
+       INTEGER jlim;
+       INTEGER kradx;
+       INTEGER kradxm;
+       INTEGER j;
+       INTEGER ir;
+       INTEGER inc;
+       INTEGER jl;
+       INTEGER irm1;
+       INTEGER kiu;
+       INTEGER kix;
+       INTEGER inp;
+       INTEGER in;
+
+       for (i = 0; i < nipf; i++)
+       {
+               ip = ipf[i];
+               sk = *nk / ip;
+               CA(t, 0, 0)= 1.0;
+               CA(t, 1, 0)= 0.0;
+
+               fix = tpis / ip;
+
+               vs[0] = (REAL) cos(fix);
+               vs[1] = (REAL) sin(fix);
+
+               CA(vspt, 0, 0)= 1.0;
+               CA(vspt, 1, 0)= 0.;
+
+               for (kt = 1; kt < ip; kt++)
+               {
+                       temp = CA(vspt, 0, kt-1)* vs[0] - CA(vspt, 1, kt-1) * vs[1];
+                       CA(vspt, 1, kt) = CA(vspt, 0, kt-1) * vs[1] + CA(vspt, 1, kt-1) * vs[0];
+                       CA(vspt, 0, kt) = temp;
+               }
+
+               vs[0] = 1.;
+               vs[1] = 0.;
+
+               for (kss = 0; kss < sk; kss++)
+               {
+
+                       ks = kss;
+
+                       for (kp = 1; kp < ip; kp++)
+                       {
+                               temp = CA(t, 0, kp-1)* vs[0] - CA(t, 1, kp-1) * vs[1];
+                               CA(t, 1, kp) = CA(t, 0, kp-1) * vs[1] + CA(t, 1, kp-1) * vs[0];
+                               CA(t, 0, kp) = temp;
+                       }
+
+                       for (kgp = 0; kgp < n; kgp += *nk)
+                       {
+                               ktas = ks + kgp;
+                               kta = ktas;
+
+                               for (kt = 0; kt < ip; kt++)
+                               {
+                                       ia = kta * istep;
+
+                                       for (l = 0; l < imax; l++)
+                                       {
+                                               ind2 = l + ia;
+                                               ind = l + kt * istep;
+                                               CA(xs, 0, ind)= CA(x, 0, ind2);
+                                               CA(xs, 1, ind)= CA(x, 1, ind2);
+                                       }
+                                       kta += sk;
+                               }
+
+                               ia = ktas * istep;
+
+                               for (l = 0; l < imax; l++)
+                               {
+                                       ind = l + ia;
+                                       CA(x, 0, ind)= CA(xs, 0, l);
+                                       CA(x, 1, ind)= CA(xs, 1, l);
+                               }
+
+                               for (kp = 1; kp < ip; kp++)
+                               {
+                                       for (l = 0; l < imax; l++)
+                                       {
+                                               ind = l + kp * istep;
+                                               indx = l + ia;
+                                               CA(x, 0, indx)+= CA(xs, 0, ind);
+                                               CA(x, 1, indx)+= CA(xs, 1, ind);
+                                       }
+                               }
+
+                               kta = ktas;
+                               for (kp = 1; kp < ip; kp++)
+                               {
+                                       kta += sk;
+                                       ia = kta * istep;
+
+                                       for (l = 0; l < imax; l++)
+                                       {
+                                               ind = l + ia;
+                                               CA(x, 0, ind)= CA(xs, 0, l);
+                                               CA(x, 1, ind)= CA(xs, 1, l);
+                                       }
+
+                                       kpm1 = kp;
+                                       jt = kpm1;
+
+                                       for (kt = 1; kt < ip; kt++)
+                                       {
+                                               jt = jt - ip * (jt / ip); // jt %= ip // ??? mk
+                                               for (l = 0; l < imax; l++)
+                                               {
+                                                       ind = l + kt * istep;
+                                                       indx = l + ia;
+                                                       CA(x, 0, indx)+= CA(vspt, 0, jt) * CA(xs, 0, ind) - CA(vspt, 1, jt) * CA(xs, 1, ind);
+                                                       CA(x, 1, indx)+= CA(vspt, 0, jt) * CA(xs, 1, ind) + CA(vspt, 1, jt) * CA(xs, 0, ind);
+                                               }
+                                               jt += kpm1;
+                                       }
+
+                                       for (l = 0; l < imax; l++)
+                                       {
+                                               indx = l + ia;
+                                               temp = CA(x, 0, indx)* CA(t, 0, kp) - CA(x, 1, indx) * CA(t, 1, kp);
+                                               CA(x, 1, indx)= CA(x, 0, indx) * CA(t, 1, kp) + CA(x, 1, indx) * CA(t, 0, kp);
+                                               CA(x, 0, indx)= temp;
+                                       }
+                               }
+                       }
+                       temp = v[0] * vs[0] - v[1] * vs[1];
+                       vs[1] = v[0] * vs[1] + v[1] * vs[0];
+                       vs[0] = temp;
+               }
+               *nk = sk;
+
+               CA(xs, 0, 0)= v[0];
+               CA(xs, 1, 0)= v[1];
+
+               for (l = 1; l < ip; l++)
+               {
+                       temp = CA(xs, 0, 0)* v[0] - CA(xs, 1, 0) * v[1];
+                       CA(xs, 1, 0) = CA(xs, 0, 0) * v[1] + CA(xs, 1, 0) * v[0];
+                       CA(xs, 0, 0) = temp;
+               }
+
+               v[0] = CA(xs, 0, 0);
+               v[1] = CA(xs, 1, 0);
+       }
+
+       if (nipfx < 2)
+               return;
+
+       ktip = mc - mc / 2;
+
+       ipfx[0] = 4;
+       if (mc == 1)
+               ipfx[0] = 2;
+       if (ktip == 2)
+               ipfx[1] = 2;
+
+       for (k = 0; k < nipf; k++)
+       {
+               ind = k + ktip;
+               ipfx[ind] = ipf[k];
+       }
+
+       ix[0] = 0;
+       jlim = 1;
+
+       for (i = 0; i < nipfx; i++)
+       {
+               kradx = ipfx[i];
+               kradxm = kradx - 1;
+
+               for (j = 0; j < jlim; j++)
+               {
+                       ir = j;
+                       inc = 0;
+                       ix[j] *= kradx;
+
+                       for (jl = 0; jl < kradxm; jl++)
+                       {
+                               ir += jlim;
+                               inc++;
+                               ix[ir] = ix[j] + inc;
+                       }
+               }
+               jlim *= kradx;
+       }
+
+       irm1 = ir;
+       kiu = 0;
+
+       for (kix = 1; kix < irm1; kix++)
+       {
+               if (!(ix[kix] != kix))
+               {
+                       (*nfixp)++;
+                       ipu[kiu] = ix[kix] * k4m4;
+                       ix[kix] = -ix[kix];
+                       kiu++;
+               }
+       }
+
+       for (kix = 1; kix < irm1; kix++)
+       {
+               if (!(ix[kix] < 0))
+               {
+                       inp = kix;
+                       do
+                       {
+                               in = ix[inp];
+                               ix[inp] = -ix[inp];
+                               inp = in;
+                               ipu[kiu] = in * k4m4;
+
+                               kiu++;
+
+                       } while (inp != kix);
+
+                       ipu[kiu] = 0;
+                       kiu++;
+               }
+       }
+
+       ipu[kiu] = n;
+       return;
+}
diff --git a/src/snark/ftodd.h b/src/snark/ftodd.h
new file mode 100644 (file)
index 0000000..89c13aa
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/ftodd.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef FTODD_H
+#define FTODD_H
+
+void ftodd(INTEGER imax, INTEGER istep, REAL* xs, REAL* x, INTEGER n, INTEGER* nk, REAL* v, REAL tpis, INTEGER nipf, INTEGER* ipf, INTEGER mc, INTEGER k4m4, INTEGER nipfx, INTEGER* ipfx, INTEGER* ipu, INTEGER* ix, INTEGER* nfixp, REAL* vspt, REAL* t, BOOLEAN virt);
+
+#endif
diff --git a/src/snark/geom.cpp b/src/snark/geom.cpp
new file mode 100644 (file)
index 0000000..f428fcf
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/geom.cpp $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+
+Geometry_class GeoPar;
+
+Geometry_class::Geometry_class()
+{
+       nelem = 0;
+       prjnum = 0;
+       nave2 = 0;
+       div = FALSE;
+       tang = FALSE;
+       arc = FALSE;
+       par = FALSE;
+       uni = FALSE;
+       vri = FALSE;
+       strip = FALSE;
+       line = FALSE;
+       //  rebinf = FALSE;    // bug 151 - swr - 08/07/2005
+       lino = FALSE;  /// bug #135. Lajos, 08/01/2005
+       radius = 0.0;
+       stod = 0.0;
+       aveden = 0.0;
+
+       naper[0] = 1;
+       for (int i = 1; i < 13; i++)
+       {
+               naper[i] = 0;
+       }
+}
+
+/*
+ COMPUTE THE NUMBER OF RAYS NECESSARY TO SPAN AN SQUARE OBJECT
+ MELEN*ZISXIP UNITS ON A SIDE
+ */
+
+INTEGER Geometry_class::numray(INTEGER melen, REAL zisxip)
+{
+       REAL diag;
+       REAL pmin;
+       INTEGER numb;
+       REAL xleg;
+
+       diag = (REAL) (melen * zisxip / 1.414);
+
+       pmin = diag / pinc;
+
+       if (!div)
+       {
+
+               if (uni)
+                       numb = (INTEGER) (2.0 * pmin);
+               if (vri)
+                       numb = (INTEGER) (2.0 * 1.414 * pmin);
+       }
+       else
+       {
+               xleg = (radius / pinc) * (radius / pinc) - pmin * pmin;
+               if (xleg <= Consts.zero)
+               {
+
+                       fprintf(output,
+                                       "\n **** source to origin distance is %10.4f it must be at least %10.4f",
+                                       radius, diag);
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(700);
+               }
+
+               xleg = (REAL) sqrt(xleg);
+               if (tang)
+                       numb = (INTEGER) (2.0 * stod * pmin / (xleg * pinc));
+               if (arc)
+                       numb = (INTEGER) (2.0 * stod * atan2(pmin, xleg) / pinc);
+       }
+
+       return numb + (numb + 1) % 2 + 2;
+}
+
+void Geometry_class::print(char *comment)
+{
+       fprintf(output, "\n%s\n", comment);
+       fprintf(output, "prjnum=%d, pinc=%f, nrays=%d, midray=%d, snrays=%d ", prjnum, pinc, nrays, midray, snrays);
+       fprintf(output, "usrays=%d, fsnray=%d, lsnray=%d, fusray=%d, lusray=%d\n", usrays, fsnray, lsnray, fusray, lusray);
+       fprintf(output, "div=%d, tang=%d, arc=%d, radius=%f, stod=%f ", div, tang, arc, radius, stod);
+       fprintf(output, "par=%d, uni=%d, vri=%d, strip=%d, line=%d, lino=%d\n", par, uni, vri, strip, line, lino);  // bug 151 - swr - 08/07/2005
+       fprintf(output, "aveden=%f nave2=%d naper=[%d", aveden, nave2, naper[0]);
+       for (int i = 1; i < 13; i++)
+       fprintf(output, ",%d", naper[i]);
+       fprintf(output, "]\n");
+};
diff --git a/src/snark/geom.h b/src/snark/geom.h
new file mode 100644 (file)
index 0000000..b7b1b43
--- /dev/null
@@ -0,0 +1,32 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/geom.h $
+ $LastChangedRevision: 85 $
+ $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef GEOM_H
+#define GEOM_H
+
+#include "blkdta.h"
+
+extern class Geometry_class
+{
+public:
+       BOOLEAN div;BOOLEAN tang;BOOLEAN arc;BOOLEAN par;BOOLEAN uni;BOOLEAN vri;BOOLEAN strip;BOOLEAN line;
+       //  BOOLEAN rebinf;    // bug 151 - swr - 08/07/2005
+       BOOLEAN lino;  /// bug #135. Lajos, 08/01/2005
+       INTEGER nelem;INTEGER area;INTEGER midpix;INTEGER prjnum;INTEGER nrays;INTEGER midray;INTEGER snrays;INTEGER usrays;INTEGER fsnray;INTEGER lsnray;INTEGER fusray;INTEGER lusray;INTEGER nave2;INTEGER naper[13];
+       //  INTEGER adven;    // bug 151 - swr - 08/07/2005
+       //  INTEGER spleft;   // bug 151 - swr - 08/07/2005
+       REAL pixsiz;REAL pinc;REAL radius;REAL stod;REAL aveden;
+
+       Geometry_class();INTEGER numray(INTEGER melen, REAL zisxip);
+       void print(char *comment);
+} GeoPar;
+
+#endif
+
diff --git a/src/snark/get_iter_flag.c b/src/snark/get_iter_flag.c
new file mode 100644 (file)
index 0000000..8df8114
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/get_iter_flag.c $
+ $LastChangedRevision: 137 $
+ $Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+ $Author: bprommegger $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <string.h>
+#include "experimenter.h"
+#include "errorc.h"
+#include "get_iter_flag.h"
+
+/* --------------------------- get_iter_flag.c ---------------------------
+
+ This function reads the list of iteration numbers stored in the
+ file containing the comparisons to be made and generates an iteration_flag_line
+ which is needed for the EVALUATE command.
+
+ INPUTS:
+ anaflname - name of file containing comparisons to be made.
+ iter_flag - string containing a 1 followed by 50 0's.
+
+ OUTPUTS:
+ iter_flag - iteration_flag_line needed for the EVALUATE command
+ ------------------------------------------------------------------     */
+
+void getiterflag(char* anaflname, char* iter_flag)
+{
+       int iter1, iter2, bit1, bit2, i;
+       char string[MAXLINESIZE];
+       char flag = '1';
+
+       FILE *anafl;
+
+       if ((anafl = fopen(anaflname, "r")) == NULL)
+       {
+               errorc("in get_iter_flag.c: error in opening file", anaflname);
+       }
+
+       /* the iter_flag is the union of all the iteration numbers */
+
+       while (fgets(string, sizeof(string), anafl) != NULL)
+       {
+               // upgrade flag to 3 if klds is specified
+               if (!isSkip(string))
+               {
+                       if (strcasestr(string, "klds")) flag='3';
+                       if (strcasestr(string, "wsqd")) flag='3';
+               }
+
+               if (sscanf(string, "%d %d", &iter1, &iter2) == 2)
+               {
+                       /* if an iteration number is a multiple of 50
+                        set bit 50 */
+                       bit1 = iter1 % 50;
+                       bit2 = iter2 % 50;
+                       if (bit1 == 0 && iter1 != 0)
+                       {
+                               iter_flag[50] = flag;
+                       }
+                       else
+                       {
+                               iter_flag[bit1] = flag;
+                       }
+
+                       if (bit2 == 0 && iter2 != 0)
+                       {
+                               iter_flag[50] = flag;
+                       }
+                       else
+                       {
+                               iter_flag[bit2] = flag;
+                       }
+               }
+       }
+
+       iter_flag[51] = '\0';
+       fclose(anafl);
+}
diff --git a/src/snark/get_iter_flag.h b/src/snark/get_iter_flag.h
new file mode 100644 (file)
index 0000000..4189b0c
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/get_iter_flag.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef GET_ITER_FLAG_H
+#define GET_ITER_FLAG_H
+
+void getiterflag(char* anaflname, char* iter_flag);
+
+#endif
diff --git a/src/snark/get_phantom.c b/src/snark/get_phantom.c
new file mode 100644 (file)
index 0000000..155c2d7
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/get_phantom.c $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of:
+
+ /*--------------------------------------------------------------------------
+ Super Snark V 1.0
+ Written by Jingsheng Zheng... November 1992
+ Modified by Jolyon Browne... June 1993
+ ----------------------------------------------------------------------------*/
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "get_phantom.h"
+
+/*--------------------------------------------------------------------------
+ This function reads the ensemble data file and returns a list of
+ the phantom filenames.
+
+ INPUTS:
+ ensflname - name of ensemble data file.
+
+ OUTPUTS:
+ name - string array of length szens containing the list of phantom filenames.
+ szens - number of phantom filenames in the ensemble data file.
+ ----------------------------------------------------------------------------*/
+
+void read_ensemble(char* ensflname, char name[][MAXLINESIZE], int* szens)
+{
+       int i = 0;
+       char data[MAXLINESIZE];
+       FILE *ensfl;
+
+       if ((ensfl = fopen(ensflname, "r")) == NULL)
+       {
+               errorc("error in opening file", ensflname);
+       }
+
+       while (fgets(data, sizeof(data), ensfl) != NULL)
+       {
+               /* make sure 'i' is not over ensemble size limit */
+               if (i >= MAXENSEMSIZE)
+               {
+                       char limitmsg[25];
+                       sprintf(limitmsg, "(MAXENSEMSIZE = %d)", MAXENSEMSIZE);
+                       errorc("Exceeded maximum number of basic phantoms. ", limitmsg);
+               }
+               if (!isSkip(data))  //ignore comment lines and blank lines
+                       strcpy(name[i++], data);
+       }
+
+       *szens = i;
+       fclose(ensfl);
+}
+
+/* -----------------------------------------------------------------
+
+ INPUTS:
+ iexp - experiment number.
+ irun - run number.
+ expflg - controls the phantom-file set used in each experiment as
+ follows: if expflg=0 the same set of phantom files is available
+ for use in both experiments. If expflg=1 the phantom files used
+ in the first experiment are excluded in the second experiment.
+ nphan - two-element array: nphan[i-1]= number of phantom files used for
+ experiment i (i=1,2).
+ size_ens - number of phantom filenames in name_lst.
+ name_lst - string array of length szens_ens containing the list of phantom
+ filenames.
+ current_lst - string array of length phan[0] containing the list of
+ phantom filenames to be used for experiment 1.
+
+ OUTPUTS:
+ size_ens - number of phantom filenames in name_lst.
+ name_lst - string array of length szens_ens containing the list of phantom
+ filenames.
+ current_lst - string array of length phan[0] containing the list of
+ phantom filenames to be used for experiment 1.
+ phan_flname - the phantom filename randomly chosen.
+ --------------------------------------------------------------------- */
+
+void get_phantom(int iexp, int irun, int expflg, int* nphan, int* size_ens, char name_lst[][MAXLINESIZE], char current_lst[][MAXLINESIZE], char* phan_flname)
+{
+       int i, j, szens = *size_ens;
+
+       if (expflg == 1 && iexp == 0 && irun == 0)
+       {
+               for (j = 0; j < nphan[iexp]; j++)
+               {
+
+                       i = (int) (szens * drand48()); /* (a) */
+                       strcpy(current_lst[j], name_lst[i]); /* (b) */
+                       strcpy(name_lst[i], name_lst[szens - 1]); /* (c) */
+                       szens--; /* (d) */
+               }
+
+               i = (int) (nphan[iexp] * drand48()); /* randomly select a phantom */
+               strcpy(phan_flname, current_lst[i]); /* filename from current_lst */
+               phan_flname[strlen(phan_flname) - 1] = '\0';
+       }
+       else if (expflg == 1 && iexp == 0 && irun > 0)
+       {
+
+               i = (int) (nphan[iexp] * drand48());
+               strcpy(phan_flname, current_lst[i]);
+               phan_flname[strlen(phan_flname) - 1] = '\0';
+       }
+       else
+       {
+
+               i = (int) (szens * drand48());
+               strcpy(phan_flname, name_lst[i]);
+               phan_flname[strlen(phan_flname) - 1] = '\0';
+       }
+       *size_ens = szens; /* number of phantom filenames in name_lst */
+}
diff --git a/src/snark/get_phantom.h b/src/snark/get_phantom.h
new file mode 100644 (file)
index 0000000..2468632
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/get_phantom.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef GET_PHANTOM_H
+#define GET_PHANTOM_H
+
+void read_ensemble(char* ensflname, char name[][MAXLINESIZE], int* szens);
+
+void get_phantom(int iexp, int irun, int expflg, int* nphan, int* size_ens,
+               char name_lst[][MAXLINESIZE], char current_lst[][MAXLINESIZE],
+               char* phan_flname);
+#endif
diff --git a/src/snark/get_seed.c b/src/snark/get_seed.c
new file mode 100644 (file)
index 0000000..c8a33a8
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/get_seed.c $
+ $LastChangedRevision: 118 $
+ $Date: 2014-07-09 14:22:29 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ *
+ * Feb 13, 2011 Joanna Klukowska
+ *     This file is no longer user. A single seed for snark14 experimenter run
+ *     is provided in the input file, or based on time (if the input file does not
+ *     contain it.
+ *
+ */
+
+#include <strings.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "get_seed.h"
+
+/*---------------------------- get_seed.c ---------------------------------
+ This function checks the file specified on line 3 of the
+ SuperSNARK input sequence and obtaines the seed value (if it is
+ present).
+
+ INPUTS:
+ proj_flname - name of file containing information about generation of the
+ projection data. This is the file specified on line 3 of the
+ SuperSNARK input sequence.
+ seed - seed generated by current time.
+
+ OUTPUTS:
+ seed - seed to be used in random number generator.
+ ----------------------------------------------------------------------------*/
+
+void get_seed(char* proj_flname, long* seed)
+{
+       char string[MAXLINESIZE], line[MAXLINESIZE];
+       FILE *projfl;
+       long inseed;
+
+       if ((projfl = fopen(proj_flname, "r")) == NULL)
+       {
+               errorc("error in opening file", proj_flname);
+       }
+
+       while ((fgets(string, sizeof(string), projfl)) != NULL)
+       {
+               if (strncasecmp(string, "seed", 4) == 0)
+               {
+                       /* if string has 'seed' then ... */
+                       if (sscanf(string, "%s %ld", line, &inseed) == 2)
+                       {
+                               if (inseed >= 0)
+                                       *seed = inseed;
+                               //else if inseed < 0  use the current time as seed
+                       }
+                       else
+                       {
+                               //if number not specified, the default = 0
+                               *seed = 0;
+                       }
+               }
+               else
+               {
+                       ;
+               }
+       }
+
+       fclose(projfl);
+}
diff --git a/src/snark/get_seed.h b/src/snark/get_seed.h
new file mode 100644 (file)
index 0000000..78ffa4d
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/get_seed.h $
+ $LastChangedRevision: 118 $
+ $Date: 2014-07-09 14:22:29 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef GET_SEED_H
+#define GET_SEED_H
+/* Feb 13, 2011 Joanna Klukowska
+ *     This file is no longer user. A single seed for snark14 experimenter run
+ *     is provided in the input file, or based on time (if the input file does not
+ *     contain it.
+ */
+void get_seed(char* proj_flname, long* seed);
+
+#endif
diff --git a/src/snark/getang.cpp b/src/snark/getang.cpp
new file mode 100644 (file)
index 0000000..21df1db
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getang.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ RETURN VALUES OF THETA, SINTH AND COSTH FOR PROJECTION NP.
+ */
+
+#include <cstdio>
+#include <cstdlib>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "uiod.h"
+
+#include "anglst.h"
+
+void anglst_class::getang(INTEGER np, REAL* theta, REAL* sinth, REAL* costh)
+{
+       if ((np >= 0) && (np < GeoPar.prjnum))
+       {
+               *theta = bth[np];
+               *sinth = bsin[np];
+               *costh = bcos[np];
+               return;
+       }
+       // NP IS OUT OF RANGE
+       fprintf(output,
+                       "\n **** getang called with invalid projection number: np = %5i",
+                       np);
+       fprintf(output, "\n **** program aborted\n");
+       exit(-1);
+}
diff --git a/src/snark/getden.cpp b/src/snark/getden.cpp
new file mode 100644 (file)
index 0000000..1a8a98f
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getden.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ---  getden.f
+
+ ---  Subroutine to get thresholding density values t1 (lower limit) and t2
+ (upper limit) if valid density selection is specified in input,
+ otherwise set t1 = minus infinit    ; t2 = plus infinity
+ */
+
+//      parameter (MXNREG = 40)
+
+#include <cstdio>
+#include <cstdlib>
+
+#include "blkdta.h"
+#include "consts.h"
+#include "uiod.h"
+#include "infile.h"
+
+#include "eval.h"
+
+void Eval_class::getden(BOOLEAN* flagdw, INTEGER ObjJ)
+{
+       BOOLEAN eol;
+
+       REAL v1 = InFile.getnum(FALSE, &eol);
+       REAL v2 = InFile.getnum(FALSE, &eol);
+
+       // Set density range ifspecification is valid, otherwise set default
+       // density range from minus infinity to plus infinity
+
+       if (eol || (v1 > v2))
+       {
+
+               Obj[ObjJ].t1 = -Consts.infin;
+               Obj[ObjJ].t2 = Consts.infin;
+               *flagdw = FALSE;
+
+               if (v1 > v2)
+               {
+                       // ERROR - lower threshold is greater than upper threshold
+                       fprintf(output,
+                                       "\n **** lower density value is greater than the higher");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               }
+       }
+       else
+       {
+               Obj[ObjJ].t1 = v1;
+               Obj[ObjJ].t2 = v2;
+               *flagdw = TRUE;
+       }
+}
+
+void Eval_class::getdens(BOOLEAN* flagdw, eval_Object_Node *o_node)
+{
+       BOOLEAN eol;
+
+       // Set density range ifspecification is valid, otherwise set default
+       // density range from minus infinity to plus infinity
+
+       REAL v1 = InFile.getnum(FALSE, &eol);
+       if (eol)
+       {
+               o_node->data.t1 = -Consts.infin;
+               o_node->data.t2 = Consts.infin;
+               *flagdw = FALSE;
+               return;
+       };
+
+       REAL v2 = InFile.getnum(FALSE, &eol);
+       if (eol)
+       {
+               o_node->data.t1 = -Consts.infin;
+               o_node->data.t2 = Consts.infin;
+               *flagdw = FALSE;
+               return;
+       };
+
+       if (v1 > v2)
+       {
+               // ERROR - lower threshold is greater than upper threshold
+               fprintf(output,
+                               "\n **** lower density value is greater than the higher");
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1);
+       }
+       else
+       {
+               o_node->data.t1 = v1;
+               o_node->data.t2 = v2;
+               *flagdw = TRUE;
+       }
+}
diff --git a/src/snark/getfom.c b/src/snark/getfom.c
new file mode 100644 (file)
index 0000000..79de311
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getfom.c $
+ $LastChangedRevision: 137 $
+ $Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+ $Author: bprommegger $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <string.h>
+#include "experimenter.h"
+#include "getfom.h"
+
+/* ----------------------- getfom.c -----------------------------------
+ This function examines the input string and returns several flags
+ whose values depend on the figures of merit present in the string
+
+ INPUTS:
+ string - input string.
+
+ OUTPUTS:
+ stru - equals 1 if STRU is present, else equals 0
+ poin - equals 1 if POIN is present, else equals 0
+ hitr - equals 1 if HITR is present, else equals 0
+ usr1 _ equals 1 if USR1 is present, else equals 0
+ usr... _ equals 1 if USR... is present, else equals 0
+ iroi _ equals 1 if IROI is present, else equals 0
+ klds _ equals 1 if KLDS is present, else equals 0
+ wsqd _ equals 1 if WSQD is present, else equals 0
+ */
+
+void getfom(char* string, int* stru, int* poin, int* hitr, int* usr1, int* usr2, int* usr3, int* usr4, int* usr5, int* iroi, int* klds, int* wsqd)
+{
+       *stru = 0;
+       *poin = 0;
+       *hitr = 0;
+       *usr1 = 0;
+       *usr2 = 0;
+       *usr3 = 0;
+       *usr4 = 0;
+       *usr5 = 0;
+       *iroi = 0;
+       *klds = 0;
+       *wsqd = 0;
+
+       if (strcasestr(string, "STRU") != NULL)
+       {
+               *stru = 1;
+       }
+
+       if ((strcasestr(string, "POIN") != NULL))
+       {
+               *poin = 1;
+       }
+
+       if ((strcasestr(string, "HITR") != NULL))
+       {
+               *hitr = 1;
+       }
+
+       if ((strcasestr(string, "USR1") != NULL))
+       {
+               *usr1 = 1;
+       }
+
+       if ((strcasestr(string, "USR2") != NULL))
+       {
+               *usr2 = 1;
+       }
+
+       if ((strcasestr(string, "USR3") != NULL))
+       {
+               *usr3 = 1;
+       }
+
+       if ((strcasestr(string, "USR4") != NULL))
+       {
+               *usr4 = 1;
+       }
+
+       if ((strcasestr(string, "USR5") != NULL))
+       {
+               *usr5 = 1;
+       }
+       if ((strcasestr(string, "IROI") != NULL))
+       {
+               *iroi = 1;
+       }
+       if ((strcasestr(string, "KLDS") != NULL))
+       {
+               *klds = 1;
+       }
+       if ((strcasestr(string, "WSQD") != NULL))
+       {
+               *wsqd = 1;
+       }
+}
diff --git a/src/snark/getfom.h b/src/snark/getfom.h
new file mode 100644 (file)
index 0000000..d587036
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getfom.h $
+ $LastChangedRevision: 137 $
+ $Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+ $Author: bprommegger $
+ ***********************************************************
+ */
+
+#ifndef ANALYSIS_H
+#define ANALYSIS_H
+
+void getfom(char* string, int* stru, int* poin, int* hitr, int* usr1, int* usr2, int* usr3, int* usr4, int* usr5, int* iroi, int* klds, int* wsqd);
+
+#endif
diff --git a/src/snark/getint.cpp b/src/snark/getint.cpp
new file mode 100644 (file)
index 0000000..6ba658f
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getint.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ GETINT SCANS THE INPUT AREA FOR THE NEXT NUMBER AND RETURNS
+ THE INTERNAL INTEGER REPRESENTATION OF THE NUMBER.
+ IF THE INPUT AREA DOES NOT CONTAIN A NUMBER, ZERO IS
+ RETURNED AND EOL IS SET TO .TRUE.
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cctype>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "chtoin.h"
+
+#include "inputfile.h" 
+
+INTEGER InputFile_class::getint(BOOLEAN NewLine, BOOLEAN* eol)
+{
+
+       INTEGER sign;
+       CHAR nextch;
+       INTEGER intvalue;
+       //BOOLEAN flag;
+       //bug 274 (there is no check for number of digits in the number,
+       //this should be <=9, fixed by Joanna Klukowska
+       INTEGER numOfDigits = 1; //bug 274, RD
+
+       int i;
+
+       *eol = FALSE;
+       if (NewLine)
+       {
+               getnxt(FALSE);
+       }
+
+       intvalue = 0;
+
+       // FIND START OF NUMBER (FIRST DIGIT) AND SIGN
+
+       sign = 1;
+
+       for (;;)
+       {
+               ptr++;
+               if (ptr > DATASIZ)
+               { // NO NUMBER FOUND  // bug 190 - swr - 12/09/05
+                       *eol = TRUE;
+                       return 0;
+               }
+               nextch = data[ptr];
+               if (isdigit(nextch))
+                       break;
+               if (nextch == '-')
+               {
+                       sign = -1;
+               }
+               else
+               {
+                       sign = 1;
+               }
+       }
+
+       // PROCESS INTEGER PART
+
+       do
+       {
+               intvalue = 10 * intvalue + (chtoin(nextch));
+               ptr++;
+               nextch = data[ptr];
+               numOfDigits++;   //bug 274, jklukowska
+       } while (isdigit(nextch) && numOfDigits <= 9);  //bug 274, jklukowska
+
+       if (nextch != ' ')
+       {
+               // ERROR - ILLEGAL REPRESENTATION OF NUMBER
+
+               for (i = 0; i < DATASIZ; i++)
+               {     // bug 190 - swr - 12/09/05
+                       data[i] = ' ';
+               }
+
+               data[ptr] = '*';
+               fprintf(output,
+                               "\n **** illegal integer modifier encountered\n **** program aborted\n");
+               exit(-1);
+       }
+       return sign * intvalue;
+}
diff --git a/src/snark/getiters.c b/src/snark/getiters.c
new file mode 100644 (file)
index 0000000..f3cfd08
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getiters.c $
+ $LastChangedRevision: 86 $
+ $Date: 2014-07-02 16:45:09 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <string.h>
+#include <strings.h>
+#include <malloc.h>
+#include <stdio.h>
+#include "experimenter.h"
+#include "errorc.h"
+#include "getiters.h"
+
+/* ------------------------- getiters.c -------------------------------
+
+ This function reads the iteration numbers from the file containing the comparisons to be made.
+
+ INPUTS:
+ anafl - file pointer to the file containing the comparisons to be made
+
+ OUTPUTS:
+ itr1 - array of length numiters containing the iteration numbers for the first algorithm.
+ itr2 - array of length numiters containing the iteration numbers for the first algorithm.
+ numiters - number of iterations to be compared.
+ string - line of text after the set of iteration numbers just read; this line will be COMPARE, MODE, or END commands.
+ */
+
+void getiters(FILE* anafl, int** itr1, int** itr2, int* numiters, char* string)
+{
+       int count = 0, iter1, iter2;
+       char line[MAXLINESIZE];
+
+       /* allocate memory for first set of iteration numbers */
+
+       *itr1 = (int *) malloc(sizeof(int));
+       *itr2 = (int *) malloc(sizeof(int));
+       if ((*itr1 == NULL) || (*itr2 == NULL))
+       {
+               errorc("in analyze.c: memory allocation failed in ", "getiters");
+       }
+
+       /* at this point the file pointer anafl is at the first set of iteration
+        numbers since the previous line read in by the calling program was a COMPARE
+        line */
+
+       while (1)
+       {
+               fgets(line, sizeof(line), anafl);
+               while (isSkip(line))     //jump over comment lines and blank lines
+               {
+                       fgets(line, sizeof(line), anafl);
+               }
+               if (sscanf(line, "%d %d", &iter1, &iter2) == 2)
+               {
+                       if (iter1 == 0) (*itr1)[count] = 0; //??? whatever the last iteration is;
+                       if (iter2 == 0) (*itr2)[count] = 0; //??? whatever the last iteration is;
+
+                       (*itr1)[count] = iter1; /* store iteration numbers */
+                       (*itr2)[count] = iter2;
+                       count++; /* number of iteration lines read in */
+                       *itr1 = (int *) realloc(*itr1, (count + 1) * sizeof(int));
+                       *itr2 = (int *) realloc(*itr2, (count + 1) * sizeof(int));
+                       if ((*itr1 == NULL) || (*itr2 == NULL))
+                       {
+                               errorc("in analyze.c: memory reallocation failed in ","getiters");
+                       }
+               }
+               else
+               {
+                       break; /* break out of loop when iteration numbers done */
+               }
+       }
+       *numiters = count;
+       // skip FLAG line
+       if (strncasecmp(line, "flag", 4) == 0)
+       {
+               fgets(line, sizeof(line), anafl);
+       }
+       strcpy(string, line);
+       /* line and string now contain the string of text after
+        the set of iteration numbers and the FLAG command just read in.
+        This string will be COMPARE, MODE or END.
+        If not then terminate program */
+       if ((strncasecmp(string, "mode", 4) != 0) && (strncasecmp(string, "comp", 4) != 0) && (strncasecmp(string, "end", 3) != 0))
+       {
+               errorc("In getiters: error in comparison file at line ", string);
+       }
+}
diff --git a/src/snark/getiters.h b/src/snark/getiters.h
new file mode 100644 (file)
index 0000000..354926c
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getiters.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef GETITERS_H
+#define GETITERS_H
+
+void getiters(FILE* anafl, int** itr1, int** itr2, int* numiters, char* string);
+
+#endif
diff --git a/src/snark/getnum.cpp b/src/snark/getnum.cpp
new file mode 100644 (file)
index 0000000..4bb49c4
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getnum.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ GETNUM SCANS THE INPUT AREA FOR THE NEXT NUMBER AND RETURNS
+ THE INTERNAL FLOATING POINT REPRESENTATION OF THE NUMBER.
+ IF THE INPUT AREA DOES NOT CONTAIN A NUMBER, ZERO IS
+ RETURNED AND EOL IS SET TO .TRUE.
+ */
+
+#include <cstdlib>    
+#include <cstdio>
+#include <cmath>
+#include <cctype>
+
+#include "blkdta.h"
+#include "uiod.h"
+#include "chtoin.h"
+
+#include "inputfile.h"
+
+REAL InputFile_class::getnum(BOOLEAN NewLine, BOOLEAN* eol)
+{
+       CHAR nextch;
+       REAL mainval = 0, mainsign = 1;
+       REAL expval = 0, expsign = 1;
+       REAL numdigitsafterdot = 0;
+
+       *eol = FALSE;
+       if (NewLine)
+               getnxt(FALSE);
+
+       // FIND START OF NUMBER (FIRST DIGIT OR DECIMAL POINT) AND SIGN
+
+       while (true)
+       {
+               ptr++;
+               nextch = data[ptr];
+               if (ptr > DATASIZ)     // bug 190 - swr - 12/09/05
+               {
+                       *eol = TRUE;
+                       return 0.0;
+               }
+               if (isdigit(nextch))
+                       break;
+               if (nextch == '.')
+                       break;
+               if (nextch == '-')
+                       mainsign = -1;
+               else
+                       mainsign = 1;
+       }
+
+       if (isdigit(nextch))
+       {
+               while (isdigit(nextch))
+               {
+                       mainval = mainval * 10.0 + chtoin(nextch);
+                       ptr++;
+                       nextch = data[ptr];
+               }
+               if (nextch == '.')
+               {
+                       ptr++;
+                       nextch = data[ptr];
+                       while (isdigit(nextch))
+                       {
+                               // try to parse (digit*)
+                               mainval = mainval * 10 + chtoin(nextch);
+                               numdigitsafterdot += 1;  // number of digits after '.'
+                               ptr++;
+                               nextch = data[ptr];
+                       }
+               } // --period read after digit
+       } // --digit read before (if at all) period
+       else
+       {
+               if (nextch == '.')
+               {
+                       // parse (.digit+)
+                       ptr++;
+                       nextch = data[ptr];
+                       if (!isdigit(nextch))
+                       {
+                               // need a digit there
+                               fprintf(output,
+                                               "\n **** illegal floating point modifier encountered\n **** program aborted\n");
+                               exit(-1);
+                       }
+                       while (isdigit(nextch))
+                       {
+                               mainval = mainval * 10 + chtoin(nextch);
+                               numdigitsafterdot += 1;  // number of digits after '.'
+                               ptr++;
+                               nextch = data[ptr];
+                       }
+               } // --period read before any digit
+               else
+               {
+                       // {digit+[.digit*],.digit+} not found
+                       fprintf(output,
+                                       "\n **** illegal floating point modifier encountered\n **** program aborted\n");
+                       exit(-1);
+               }
+       }
+
+       if ((nextch == 'e') || (nextch == 'E'))
+       {
+               // try to parse ([+,-]digit[digit])
+               ptr++;
+               nextch = data[ptr];
+               if (nextch == '-')
+               {
+                       expsign = -1;
+                       ptr++;
+                       nextch = data[ptr];
+               }
+               else
+               {
+                       if (nextch == '+')
+                       {
+                               ptr++;
+                               nextch = data[ptr];
+                       }
+               }
+               if (!isdigit(nextch))
+               {
+                       fprintf(output,
+                                       "\n **** illegal floating point modifier encountered\n **** program aborted\n");
+                       exit(-1);
+               }
+               else
+               {
+                       expval = chtoin(nextch);
+                       ptr++;
+                       nextch = data[ptr];
+               }
+               if (isdigit(nextch))
+               {
+                       // second possible digit
+                       expval = expval * 10 + chtoin(nextch);
+                       ptr++;
+                       nextch = data[ptr];
+               }
+       }
+
+       if (!isspace(nextch))
+       {
+               // there is junk at the end
+               fprintf(output,
+                               "\n **** illegal floating point modifier encountered\n **** program aborted\n");
+               exit(-1);
+       }
+
+       return mainsign * mainval * pow(10, (expsign * expval - numdigitsafterdot));
+}
diff --git a/src/snark/getnxt.cpp b/src/snark/getnxt.cpp
new file mode 100644 (file)
index 0000000..80de900
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getnxt.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ GETNXT READS THE NEXT CARD FROM 'FILE' INTO THE ARRAY 'DATA'
+ AND INITIALIZES 'PTR'. SET flag = .true.  IF AN ECHO OF INPUT
+ IS NOT NEEDED
+
+ */
+
+#include <cstdlib>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "inputfile.h"
+
+void InputFile_class::getnxt(BOOLEAN flag, BOOLEAN newline)
+{
+
+       int i;
+       signed char ch;  // changed "char" to "signed char". lajos, Nov 18, 2004
+
+       while (true)
+       {
+               // default value of parameter newline is TRUE
+               if (newline)
+                       fprintf(output, "\n");
+
+               // get line of characrers
+               for (i = 0; i < DATASIZ; i++)     // bug 190 - swr - 12/09/05
+               {
+                       if (((ch = fgetc(infile)) == '\n') || (ch == EOF))
+                               break;
+                       data[i] = ch < ' ' ? ' ' : ch; // bug 197 - replace control characters with a space - swr - 1/17/06
+               };
+
+               if (ch == EOF)
+               {
+                       // END OF FILE CONDITION
+                       fprintf(output,
+                                       "\n **** unexpected end of inputfile\n **** program aborted\n");
+                       exit(-1);
+               }
+               else
+               {
+                       // read the rest of the line if more than DATASIZ characters
+                       while ((ch != '\n') && (ch != EOF))
+                               ch = fgetc(infile);  // added check for EOF. lajos, Nov 18, 2004
+
+                       data[i] = 0;     // bug 190 - swr - 12/21/05
+                       if (data[0] == '*')
+                               fprintf(output, "\n     <*> %s", &(data[1]));
+                       else
+                       {
+                               if (!(flag))
+                                       fprintf(output, "\n     <#> %s", data);
+                       };
+                       // fil up the rest of the buffer with spaces
+                       for (; i < DATASIZ + 1; i++)
+                               data[i] = ' ';  // bug 190 - swr - 12/09/05
+
+                       ptr = -1;
+                       data[DATASIZ + 1] = 0; // terminate string - bug 190 - swr - 12/09/05
+
+               }
+
+               if (data[0] != '*')
+                       break;
+       }
+}
diff --git a/src/snark/getwrd.cpp b/src/snark/getwrd.cpp
new file mode 100644 (file)
index 0000000..bb59c9f
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/getwrd.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ GETWRD RETURNS AS ITS VALUE THE FIRST FOUR LETTERS  OF THE NEXT
+ STRING OF ALPHA CHARACTERS IN THE INPUT RECORD
+ CALLS FUNCTION 'GETNXT'.  RETURNS EOL = .TRUE. WHEN END OF LINE
+ IS REACHED.
+ REVISED BY G. FRIEDER AND M. MCKAY, JULY 1981
+ */
+
+#include <cstdio>
+#include <cctype>
+
+#include "blkdta.h"
+//#include "alphab.h"
+
+#include "wrdpack.h"
+
+#include "inputfile.h"
+
+//BOOLEAN isalph(CHAR letter);   
+
+// removed old (2-parameter) version of getwrd. Lajos, Dec 16, 2004
+INTEGER InputFile_class::getwrd(BOOLEAN NewLine, BOOLEAN* eol, const INTEGER *expect, int nexpect)
+{
+       BOOLEAN ew;
+
+       INTEGER word, i;
+       CHAR nxtchr;
+
+       word = CHAR2INT(' ', ' ', ' ', ' ');
+       *eol = FALSE;
+
+       if (NewLine)
+               getnxt(FALSE);
+
+       while (true)
+       {
+               // SCAN TILL THE FIRST ALPHA CHARACTER IS HIT
+               do
+               {
+                       if (++ptr > DATASIZ)     // bug 190 - swr - 12/09/05
+                       { // ALPHA CHARACTER NOT FOUND
+                               *eol = TRUE;
+                               return CHAR2INT(' ', ' ', ' ', ' ');
+                       }
+                       nxtchr = data[ptr];
+               } while (!(isalpha(nxtchr)));
+
+               // THE FIRST ALPHA HAS BEEN FOUND,  STRING THE FIRST FOUR LETTERS
+               ptr++;
+               ptr--;
+
+               ew = wrdpack(data, &ptr, &word);
+
+               // SKIP ANY CHARACTER AFTER THE FIRST FOUR TILL A BLANK IS HIT
+
+               if (!ew)
+               {
+                       do
+                               ptr++;
+                       while (data[ptr] != ' ');
+               };
+
+               // RETURN IF EXPECTED WORD HAS BEEN FOUND
+               for (i = 0; i < nexpect; i++)
+               {
+                       if (word == expect[i])
+                               return word;
+               }
+       }
+}
+
diff --git a/src/snark/halft.cpp b/src/snark/halft.cpp
new file mode 100644 (file)
index 0000000..4e19083
--- /dev/null
@@ -0,0 +1,453 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/halft.cpp $
+ $LastChangedRevision: 118 $
+ $Date: 2014-07-09 14:22:29 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ POST-PROCESSING ROUTINE TO GENERATE PSEUDO-HALF-TONE DISPLAYS OF
+ RECONSTRUCTIONS ON THE LINE PRINTER.
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cstring>
+#include <cmath>
+
+#include "blkdta.h"
+
+#include "uiod.h"
+#include "int2str.h"
+
+#include "recfile.h"
+#include "infile.h"
+
+#include "modefl.h"
+#include "halft.h"
+
+void strtrim(char* out, const char* in)
+{
+       unsigned int first = 0;
+       //find first non white from the left
+       while ((in[first] == ' ') || (in[first] == '\t'))
+       {  // removed third term of the condition. lajos, Nov 18, 2004
+               first++;
+       }
+
+       unsigned int last = strlen(in) - 1;
+       //find first non white from the right
+       while (last > first)
+       {
+               if ((in[last] != ' ') && (in[last] != '\t'))
+               {
+                       break;
+               }
+               last--;
+       }
+
+       unsigned int i;
+
+       for (i = 0; i < last - first + 1; i++)
+       {
+               out[i] = in[first + i];
+       }
+
+       out[i] = 0;
+}
+
+int SavePGM(char* filename, unsigned char* array, int xdim, int ydim,
+               char* coment)
+{
+       FILE* fpout;
+
+       if ((fpout = fopen(filename, "w")) == NULL)
+       {
+               return -1;
+       }
+
+
+       fprintf(fpout, "P5\n");
+       fprintf(fpout, "#%s\n", coment);
+       fprintf(fpout, "%d %d\n", xdim, ydim);
+       fprintf(fpout, "255\n");
+       fwrite(array, xdim * ydim, sizeof(unsigned char), fpout);
+
+       fclose(fpout);
+
+       return 0;
+}
+
+void SaveImage(
+REAL* x,
+REAL amax,
+REAL amin,
+INTEGER nrow,
+INTEGER mcol,
+INTEGER nran,
+INTEGER mp,
+CHAR* filename,
+CHAR* coment)
+{
+       int i;
+
+       INTEGER np;
+       REAL range;
+       REAL ot;
+
+       // allocate space for image buffer
+       unsigned char* array = new unsigned char[nrow * mcol];
+       // changed "CHAR" to "char". lajos Nov 17, 2004
+
+       if (array == NULL)
+       {
+               fprintf(output, "\n **** memory allocation error");
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1); // Error
+       }
+
+       // FORM INTENSITY VALUES MEAN AND DIFFERENCE ARRAYS
+
+       np = mp;
+
+       range = amax - amin;
+
+       if (np == 2)
+       {
+               fprintf(output, "\n          intensity levels printed\n");
+       }
+       else
+       {
+               np = 1;
+               fprintf(output, "\n          amplitude levels printed\n");
+       }
+
+       range = (REAL) 1.0 / range;
+
+       fprintf(output, "\n          columns %5i to %5i being printed\n", 1, mcol);
+
+       for (i = 0; i < nrow * mcol; i++)
+       {
+
+               // AMPLITUDE OR INTENSITY
+
+               ot = MAX0((REAL) 0.0, MIN0((REAL) 1.0, ((x[i] - amin) * range)));
+
+               if (np == 2)
+                       ot = (REAL) sqrt(ot);
+
+               array[i] = (unsigned char) (255 * ot);
+               // changed "(CHAR)" to "(unsigned char)". lajos Nov 18, 2004
+
+       }
+
+       SavePGM(filename, array, mcol, nrow, coment);
+
+       delete[] array;  // bug 92 - Lajos - 03/02/2005
+
+       return;
+}
+
+void halft()
+{
+       // was in post but it is realy local
+       CHAR prjnam[81];
+       CHAR phnnam[81];
+       CHAR recnam[81];
+
+       // was in geo but it is realy local
+       INTEGER nelem;
+       INTEGER area;
+       //REAL    pixsiz;
+
+       // bug 124 - added minimum and maximum - swr - 7/6/05
+       static const INTEGER half_codes[] =
+       {
+                       CHAR2INT('p', 'h', 'a', 'n'), CHAR2INT('d', 'i', 'f', 'f'),
+                       CHAR2INT('m', 'i', 'n', 'i'), CHAR2INT('m', 'a', 'x', 'i'),
+                       CHAR2INT('a', 'm', 'p', 'l'), CHAR2INT('i', 'n', 't', 'e') };
+
+       int i;
+
+       INTEGER mp;
+       INTEGER nran;
+       REAL amin;
+       REAL amax;
+
+       INTEGER word;
+       INTEGER type;
+       REAL* Phantom;
+       REAL* Recon;
+       INTEGER flag[51];
+       CHAR algn[5];
+       unsigned INTEGER count;
+       unsigned INTEGER iter;
+       BOOLEAN eol;
+       BOOLEAN phan;
+       BOOLEAN minfl;
+       BOOLEAN maxfl;
+
+       CHAR coment[200];
+       CHAR FileName[100];
+
+       type = 0;
+       phan = FALSE;
+       minfl = FALSE;
+       maxfl = FALSE;
+       mp = 1;
+       nran = -1;
+
+       // read input line
+       // bug 124 - rewrote input line processing - swr - 7/6/05
+       int pos = 0;
+       int length = sizeof(half_codes) / sizeof(half_codes[0]);
+       word = InFile.getwrd(FALSE, &eol, &half_codes[pos], length - pos);
+       while (!eol)
+       {
+               switch (word)
+               {
+               case CHAR2INT('p', 'h', 'a', 'n'):
+                       phan = TRUE;
+                       pos = 2;
+                       break;
+               case CHAR2INT('d', 'i', 'f', 'f'):
+                       type = 1;
+                       pos = 2;
+                       break;
+               case CHAR2INT('m', 'i', 'n', 'i'):
+                       minfl = TRUE;
+                       amin = InFile.getnum(FALSE, &eol);
+                       pos = 3;
+                       break;
+               case CHAR2INT('m', 'a', 'x', 'i'):
+                       maxfl = TRUE;
+                       amax = InFile.getnum(FALSE, &eol);
+                       pos = 4;
+                       break;
+               case CHAR2INT('a', 'm', 'p', 'l'):
+                       eol = TRUE;
+                       break;
+               case CHAR2INT('i', 'n', 't', 'e'):
+                       mp = 2;
+                       eol = TRUE;
+                       break;
+               }
+               if (!eol)
+                       word = InFile.getwrd(FALSE, &eol, &half_codes[pos], length - pos);
+       };
+
+       if (RecFile.Open("recfil") != 0)
+       {
+               fprintf(output, "\n **** unable to open recfil");
+               fprintf(output, "\n **** SKUNK execution aborted\n");
+               return;
+       }
+
+       if (RecFile.GetNelem(&nelem) != 0)
+       {
+               ;
+       }
+
+       if (RecFile.GetProjName(prjnam) != 0)
+       {
+               ;
+       }
+
+       area = nelem * nelem;
+
+       InFile.listit(flag);
+
+       // if phantom or differential read phantom
+       if (phan || (type != 0))
+       {
+
+               Phantom = new REAL[area];
+
+               if (RecFile.ReadPhan(phnnam, Phantom) != 0)
+               {
+                       fprintf(output, "\n **** phantom not present");
+                       fprintf(output, "\n **** SKUNK execution aborted\n");
+                       delete[] Phantom;  // bug 92 - Lajos - 03/02/2005
+                       return;
+               }
+       }
+
+       if (phan)
+       {
+               fprintf(output, "\n          skunk display of phantom\n");
+
+               fprintf(output, "\n          phantom name:    %s", phnnam);
+
+               // bug 124 - restored flag checks - swr - 7/5/05
+               if (!minfl)
+               {
+                       minfl = TRUE;
+                       amin = Phantom[0];
+                       for (i = 1; i < area; i++)
+                       {
+                               if (Phantom[i] < amin)
+                                       amin = Phantom[i];
+                       }
+               }
+
+               if (!maxfl)
+               {
+                       maxfl = TRUE;
+                       amax = Phantom[0];
+                       for (i = 1; i < area; i++)
+                       {
+                               if (Phantom[i] > amax)
+                                       amax = Phantom[i];
+                       }
+               }
+
+               if (amax <= amin)
+               {
+                       fprintf(output,
+                                       "\n **** maximal density is less or equal to minimal density");
+                       fprintf(output, "\n **** SKUNK execution aborted\n");
+                       delete[] Phantom;  // bug 92 - Lajos - 03/02/2005
+                       return;
+               }
+
+               sprintf(coment,
+                               "This is phantom was created by snark14: Phantom Name %s",
+                               phnnam);
+
+               char PhantomName[41];
+
+               strncpy(PhantomName, phnnam, 40);
+               PhantomName[40] = 0; // terminate string
+
+               char PhantomName2[41];
+
+               // trim whitespaces
+               strtrim(PhantomName2, PhantomName);
+
+               sprintf(FileName, "%s.pgm", PhantomName2);
+
+               // bug 169 - swr - 9/25/05
+               for (i = 0; i < 100; ++i)
+               {
+                       if (FileName[i] == ' ')
+                               FileName[i] = '_';
+               }
+
+               SaveImage(Phantom, amax, amin, nelem, nelem, nran, mp, FileName,
+                               coment);
+       }
+
+       Recon = new REAL[area];
+
+       while (RecFile.ReadRec(recnam, algn, &count, &iter, Recon) == 0)
+       {
+
+               // continue if reconstruction not selected
+               if (flag[iter - 1] == 0)
+               {
+                       continue;
+               }
+
+               if (type == 0)
+               {
+                       fprintf(output,
+                                       "\n          skunk display of reconstruction using %s at iter %4i\n",
+                                       algn, count);
+               }
+               else
+               {
+                       fprintf(output,
+                                       "\n          skunk difference picture using %s at iter %4i\n",
+                                       algn, count);
+
+                       for (i = 0; i < area; i++)
+                       {
+                               Recon[i] = (REAL) fabs(Phantom[i] - Recon[i]);
+                       }
+               }
+
+               fprintf(output, "\n          projection data: %s", prjnam);
+
+               fprintf(output, "\n          execution name:  %s", recnam);
+
+               // bug 124 - restored flag checks - swr - 7/5/05
+               if (!minfl)
+               {
+                       minfl = TRUE;
+                       amin = Recon[0];
+                       for (i = 1; i < area; i++)
+                       {
+                               if (Recon[i] < amin)
+                                       amin = Recon[i];
+                       }
+               }
+
+               if (!maxfl)
+               {
+                       maxfl = TRUE;
+                       amax = Recon[0];
+                       for (i = 1; i < area; i++)
+                       {
+                               if (Recon[i] > amax)
+                                       amax = Recon[i];
+                       }
+               }
+
+               if (amax <= amin)
+               {
+                       fprintf(output,
+                                       "\n **** maximal density is less or equal to minimal density");
+                       fprintf(output, "\n **** SKUNK execution aborted\n");
+                       break;
+               }
+
+               char ProjectionName[13];
+
+               strncpy(ProjectionName, prjnam, 12);
+               ProjectionName[12] = 0; // terminate string
+
+               char ProjectionName2[13];
+
+               // trim whitespaces
+               strtrim(ProjectionName2, ProjectionName);
+
+               char ReconstructionName[13];
+
+               strncpy(ReconstructionName, recnam, 12);
+               ReconstructionName[12] = 0; // terminate string
+
+               char ReconstructionName2[13];
+
+               // trim whitespaces
+               strtrim(ReconstructionName2, ReconstructionName);
+
+               sprintf(FileName, "%s_%s_%4s_%04u_%c_%c.pgm", ProjectionName2,
+                               ReconstructionName2, algn, count, (type != 0) ? 'd' : 'r',
+                               (mp == 2) ? 'i' : 'a');
+               sprintf(coment,
+                               "This is reconstruction was created by snark14: Algorithm Name %4s Iteration %d",
+                               algn, count);
+
+               // bug 169 - swr - 9/25/05
+               for (i = 0; i < 100; ++i)
+               {
+                       if (FileName[i] == ' ')
+                               FileName[i] = '_';
+               }
+
+               SaveImage(Recon, amax, amin, nelem, nelem, nran, mp, FileName, coment);
+       }
+
+       delete[] Recon;  // bug 92 - Lajos - 03/02/2005
+
+       if (phan || (type != 0))
+       {
+               delete[] Phantom;  // bug 92 - Lajos - 03/02/2005
+       }
+
+       RecFile.Close();
+
+       fprintf(output, "\n");
+       return;
+}
diff --git a/src/snark/halft.h b/src/snark/halft.h
new file mode 100644 (file)
index 0000000..adffccd
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/halft.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef HALFT_H
+#define HALFT_H
+
+void halft();
+
+#endif
diff --git a/src/snark/hit_ratio.c b/src/snark/hit_ratio.c
new file mode 100644 (file)
index 0000000..4525a2b
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/hit_ratio.c $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include "malloc.h"
+#include "experimenter.h"
+#include "read_eval_phantom1.h"
+#include "read_eval_recon1.h"
+#include "hit_ratio.h"
+
+/* ----------------------------- hit_ratio.c -------------------------------
+
+ This function computes the hit-ratio.
+
+ INPUTS:
+ itr1 - array of length niters containing the iteration numbers for the
+ first algorithm.
+ itr2 - array of length niters containing the iteration numbers for the
+ second algorithm.
+ niters - number of iterations to be compared.
+ pairs - array of length numpairs containing the indices of the structures
+ which are paired.
+ numpairs - number of pairs of structures.
+ keywrd1 - string containing the keyword which defines the first algorithm.
+ keywrd2 - string containing the keyword which defines the second algorithm.
+
+ OUTPUTS:
+ hit_ratio1 - array of length niters containing the hit ratio for
+ the first algorithm.
+ hit_ratio2 - array of length niters containing the hit ratio for
+ the second algorithm.
+
+ */
+
+void hit_ratio(int* itr1, int* itr2, int niters, int* pairs, int numpairs,
+               char* keywrd1, char* keywrd2, double* hit_ratio1, double* hit_ratio2)
+{
+       double *phantom, *recon1, *recon2;
+       int *regions, numstr, i, j, hit1, hit2, *strarea;
+
+       /* read in abnormality index for phantom structures */
+
+       read_eval_phantom1(&regions, &numstr, &phantom, &strarea);
+
+       /* allocate memory to store abnormality indexes for
+        structures in the reconstructions*/
+
+       recon1 = (double *) malloc(numstr * sizeof(double));
+       recon2 = (double *) malloc(numstr * sizeof(double));
+
+       for (i = 0; i < niters; i++)
+       { /* read in abnormality indexes for structures in
+        the reconstructions. Initialize the arrays
+        which will store the structural accuracy */
+
+               read_eval_recon1(&itr1[i], keywrd1, numstr, recon1);
+               read_eval_recon1(&itr2[i], keywrd2, numstr, recon2);
+               hit_ratio1[i] = 0.0;
+               hit_ratio2[i] = 0.0;
+
+               for (j = 0; j < numpairs * 2; j += 2)
+               { /* compute hit-ratio for both algorithms */
+
+                       hit1 = (phantom[pairs[j] - 1] > phantom[pairs[j + 1] - 1])
+                                       == (recon1[pairs[j] - 1] > recon1[pairs[j + 1] - 1]);
+                       hit2 = (phantom[pairs[j] - 1] > phantom[pairs[j + 1] - 1])
+                                       == (recon2[pairs[j] - 1] > recon2[pairs[j + 1] - 1]);
+
+                       hit_ratio1[i] = hit_ratio1[i] + hit1;
+                       hit_ratio2[i] = hit_ratio2[i] + hit2;
+               }
+               hit_ratio1[i] = hit_ratio1[i] / numpairs; /* hit */
+               hit_ratio2[i] = hit_ratio2[i] / numpairs; /* ratio */
+       }
+
+       free(phantom); /* free memory for next function call */
+       free(recon1);
+       free(recon2);
+       free(strarea);
+}
diff --git a/src/snark/hit_ratio.h b/src/snark/hit_ratio.h
new file mode 100644 (file)
index 0000000..b18cf51
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/hit_ratio.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef CREATE_PHANTOM_H
+#define CREATE_PHANTOM_H
+
+void hit_ratio(int* itr1, int* itr2, int niters, int* pairs, int numpairs, char* keywrd1, char* keywrd2, double* hit_ratio1, double* hit_ratio2);
+
+#endif
diff --git a/src/snark/imagewise_roi.c b/src/snark/imagewise_roi.c
new file mode 100644 (file)
index 0000000..2ae3faf
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/imagewise_roi.c $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <assert.h>
+
+#include "malloc.h"
+#include "experimenter.h"
+#include "read_eval_phantom1.h"
+#include "read_eval_recon1.h"
+#include "hit_ratio.h"
+
+/* -----------------------------imagewise_roi.c -------------------------------
+ //jk 01/11/2008     new fom introduced based on Narayan & Herman paper
+ This function computes theimagewise-roi.
+
+ INPUTS:
+ itr1 - array of length niters containing the iteration numbers for the
+ first algorithm.
+ itr2 - array of length niters containing the iteration numbers for the
+ second algorithm.
+ niters - number of iterations to be compared.
+ pairs - array of length numpairs containing the indices of the structures
+ which are paired.
+ numpairs - number of pairs of structures.
+ keywrd1 - string containing the keyword which defines the first algorithm.
+ keywrd2 - string containing the keyword which defines the second algorithm.
+
+ OUTPUTS:
+ imagewise_roi1 - array of length niters containing the hit ratio for
+ the first algorithm.
+ imagewise_roi2 - array of length niters containing the hit ratio for
+ the second algorithm.
+
+ */
+
+void imagewise_roi(int* itr1, int* itr2, int niters, int* pairs, int numpairs, char* keywrd1, char* keywrd2, double* imagewise_roi1, double* imagewise_roi2)
+{
+       double *phantom, *recon1, *recon2;
+       int *regions, numstr, i, j, *strarea, *signal, *nonsignal;
+       double sumnsph = 0, sumnsrecon1 = 0, sumnsrecon2 = 0, sumsph = 0,
+                       sumsrecon1 = 0, sumsrecon2 = 0, avnsph = 0, avnsrecon1 = 0,
+                       avnsrecon2 = 0, sdnsph = 0, sdnsrecon1 = 0, sdnsrecon2 = 0,
+                       goodness_ph = 0, goodness_recon1 = 0, goodness_recon2 = 0;
+
+       /*********** compute goodness of the phantom ****************************************/
+
+       //read in abnormality index for phantom structures
+       read_eval_phantom1(&regions, &numstr, &phantom, &strarea); //regions is not used anywhere later on
+
+       //allocate memmory to store indecis of structures that contain signal and
+       //the ones that do not contain signal
+       signal = (int*) malloc(numpairs * sizeof(int));
+       nonsignal = (int*) malloc(numpairs * sizeof(int));
+
+       //scan the phantom array to identify the structures that contain signal
+       //ASSUMPTION: the higher density is associated with the signal.
+       //the lower with non-signal structure
+       //compute sumnsph and sumsph
+       for (i = 0; i < numpairs * 2; i += 2)
+       {
+               if (phantom[pairs[i] - 1] > phantom[pairs[i + 1] - 1])
+               {
+                       signal[i / 2] = pairs[i] - 1;
+                       nonsignal[i / 2] = pairs[i + 1] - 1;
+                       //assert(phantom[signal[i/2]] > phantom[nonsignal[i/2]]);
+               }
+               else
+               {
+                       signal[i / 2] = pairs[i + 1] - 1;
+                       nonsignal[i / 2] = pairs[i] - 1;
+                       //assert(phantom[signal[i/2]] > phantom[nonsignal[i/2]]);
+               }
+
+               sumnsph += phantom[nonsignal[i / 2]];
+               sumsph += phantom[signal[i / 2]];
+
+       }
+
+       //compute the average density of non-signal containing objects
+       avnsph = sumnsph / numpairs;
+
+       //compute standard deviation of density of non-signal containing objects
+       for (i = 0; i < numpairs; i++)
+       {
+               sdnsph += (phantom[nonsignal[i]] - avnsph)
+                               * (phantom[nonsignal[i]] - avnsph);
+       }
+
+       sdnsph = sqrt(sdnsph);
+       goodness_ph = (sumsph - sumnsph) / sdnsph;
+
+       /*********** compute goodness of the reconstructions ********************************/
+
+       //allocate memory to store abnormality indexes for
+       //structures in the reconstructions
+       recon1 = (double *) malloc(numstr * sizeof(double));
+       recon2 = (double *) malloc(numstr * sizeof(double));
+
+       for (i = 0; i < niters; i++)
+       {
+               /* read in abnormality indexes for structures in
+                the reconstructions. Initialize the arrays
+                which will store the structural accuracy */
+
+               sumnsrecon1 = 0;
+               sumnsrecon2 = 0;
+               sumsrecon1 = 0;
+               sumsrecon2 = 0;
+               avnsrecon1 = 0;
+               avnsrecon2 = 0;
+               sdnsrecon1 = 0;
+               sdnsrecon2 = 0;
+               goodness_recon1 = 0;
+               goodness_recon2 = 0;
+
+               read_eval_recon1(&itr1[i], keywrd1, numstr, recon1);
+               read_eval_recon1(&itr2[i], keywrd2, numstr, recon2);
+               imagewise_roi1[i] = 0.0;
+               imagewise_roi2[i] = 0.0;
+
+               //compute sumnsrecon1 and sumsrecon1
+               //and  sumnsrecon2 and sumsrecon2
+               for (j = 0; j < numpairs; j++)
+               {
+                       sumnsrecon1 += recon1[nonsignal[j]];
+                       sumsrecon1 += recon1[signal[j]];
+
+                       sumnsrecon2 += recon2[nonsignal[j]];
+                       sumsrecon2 += recon2[signal[j]];
+
+               }
+
+               //compute the average density of non-signal containing objects
+               avnsrecon1 = sumnsrecon1 / numpairs;
+               avnsrecon2 = sumnsrecon2 / numpairs;
+
+               //compute standard deviation of density of non-signal containing objects
+               for (j = 0; j < numpairs; j++)
+               {
+                       sdnsrecon1 += (recon1[nonsignal[j]] - avnsrecon1)
+                                       * (recon1[nonsignal[j]] - avnsrecon1);
+                       sdnsrecon2 += (recon2[nonsignal[j]] - avnsrecon2)
+                                       * (recon2[nonsignal[j]] - avnsrecon2);
+               }
+
+               sdnsrecon1 = sqrt(sdnsrecon1);
+               sdnsrecon2 = sqrt(sdnsrecon2);
+               goodness_recon1 = ((sumsrecon1 - sumnsrecon1) / sdnsrecon1);
+               goodness_recon2 = ((sumsrecon2 - sumnsrecon2) / sdnsrecon2);
+               //output the value of the normalized FOM
+               imagewise_roi1[i] = goodness_recon1 / goodness_ph;
+               imagewise_roi2[i] = goodness_recon2 / goodness_ph;
+       }
+
+       free(phantom); /* free memory for next function call */
+       free(signal);
+       free(nonsignal);
+       free(recon1);
+       free(recon2);
+       free(strarea);
+
+}
diff --git a/src/snark/imagewise_roi.h b/src/snark/imagewise_roi.h
new file mode 100644 (file)
index 0000000..1b04846
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/imagewise_roi.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef IMAGEWISE_ROI_H_
+#define IMAGEWISE_ROI_H_
+
+void imagewise_roi(int* itr1, int* itr2, int niters, int* pairs, int numpairs, char* keywrd1, char* keywrd2, double* imagewise_roi1, double* imagewise_roi2);
+
+#endif /*IMAGEWISE_ROI_H_*/
diff --git a/src/snark/infile.cpp b/src/snark/infile.cpp
new file mode 100644 (file)
index 0000000..0ff98d0
--- /dev/null
@@ -0,0 +1,239 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/infile.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdlib>       
+#include <cstdio>
+#include <cctype>
+
+#include "blkdta.h"
+#include "uiod.h"
+#include "creacm.h"
+#include "geom.h"
+
+#include "anglst.h"
+#include "creaer.h"
+#include <cmath> // to go
+#include "consts.h" // to go
+
+#include "infile.h"
+#include "int2str.h"
+
+InFile_class InFile;
+
+BOOLEAN InFile_class::GetFormat(BOOLEAN NewLine, CHAR* pictf)
+{
+       if (fscanf(infile, "%s", pictf) != 1)
+       {
+               return FALSE;
+       }
+
+       int c;
+
+       while (((c = fgetc(infile)) != '\n') && (c != EOF))
+       { // added check for EOF. Lajos, Nov 18, 2004
+       }
+
+       return TRUE;
+}
+
+void InFile_class::GetComment(CHAR* head)
+{
+       signed CHAR ch; // changed "CHAR" to "signed CHAR". Lajos, Nov 18, 2004
+       int i;
+
+       fprintf(output, "\n");
+
+       for (i = 0; i < 80; i++)
+       {
+               if (((ch = fgetc(infile)) == '\n') || (ch == EOF))
+               {
+                       break;
+               }
+               head[i] = (CHAR) ch;
+       }
+
+       // read the rest of the line if more than 80 characters
+       while ((ch != '\n') && (ch != EOF))
+       { // added check for EOF. Lajos, Nov 18, 2004
+               ch = fgetc(infile);
+       }
+
+       head[i] = 0;
+}
+
+// READ THE ITERATION FLAG CARD AND ECHO A DECODED VERSION OF IT.
+
+void InFile_class::listit(INTEGER* iter)
+{
+       int n, i;
+       INTEGER list[50];
+       CHAR nextch;
+
+
+       // get next line
+       getnxt(TRUE);
+
+       ptr++;
+
+       for (i = 0; i < 51; i++)
+       {
+               nextch = data[ptr++];
+               if (nextch == 0)
+               { // if end of line encountered
+                       break;
+               }
+               if (!isdigit(nextch))
+               { // if not digit
+                       iter[i] = 0; // set to zero
+               }
+               else
+               {
+                       iter[i] = nextch - '0'; // convert to digit
+               }
+       }
+
+       for (; i < 51; i++)
+       {
+               iter[i] = 0;
+       }
+
+       n = 0;
+       for (i = 1; i < 51; i++)
+       {
+
+               if (iter[i] == 0)
+                       continue;
+               list[n++] = i - 1;
+       }
+
+       if (n != 0)
+       {
+               fprintf(output, "\n         iterations ");
+
+               for (int i = 0; i < n; i++)
+               {
+                       if ((i != 0) && (i % 10 == 0))
+                       {
+                               fprintf(output, "\n                    ");
+                       }
+                       fprintf(output, " %3i", list[i] + 1);
+               }
+       }
+
+       if (iter[0] != 0)
+       {
+               fprintf(output, "\n         last iteration\n");
+
+       }
+       return;
+
+}
+
+void InFile_class::GetRunOptions()
+{
+       BOOLEAN eol;
+       INTEGER tword;
+
+       static const INTEGER run_codes[3] =
+       { CHAR2INT('r', 'u', 'n', ' '), CHAR2INT('m', 'o', 'd', 'i'), CHAR2INT('s',
+                       'a', 'v', 'e') };
+
+       tword = getwrd(TRUE, &eol, run_codes, 1);
+
+       if (tword != run_codes[0])
+               creaer(run_codes[0]);
+
+       tword = getwrd(FALSE, &eol, &(run_codes[1]), 2);
+       Creacm.modif = (tword == run_codes[1]);
+       Creacm.crt12 = (tword == run_codes[2]);
+
+}
+
+void InFile_class::CreaInCrea()
+{
+
+       static const INTEGER crea = CHAR2INT('c', 'r', 'e', 'a');
+
+       GetName();
+
+       // READ ENERGY SPECTRAL DISTRIBUTION
+       ReadEnergySpectralDistribution();
+
+       // READ OBJECTS MAKING UP THE PHANTOM
+       ReadObjects(crea);
+
+       // GET INFORMATION ABOUT CREATION OF PHANTOM
+       // THIS IS NOT RELEVANT FOR RDPROJ.  SO SKIP IN THE CASE OF RDPROJ
+       GetInformationABoutCreationOfPhantom(crea);
+
+       // READ RAYSUM INFORMATION
+       ReadRaysumInformation();
+
+       if (!Creacm.prjflg)
+       {
+
+               /// original snark does not allow combinig pseudo with RUN options
+#ifdef SEMINAR_RUN_OPTIONS
+               GetRunOptions(); // !!!! for seminar
+#endif
+               return;
+       }
+
+       // READ IN AVERAGING INFORMATION FOR COMPUTING RAYSUMS
+
+       fprintf(output, "\n         this run will generate projection data");
+
+       ReadIfoForComputionRaysums();
+
+       // INPUT ENTIRE GEOMETRY DATA
+       ReadGeometryData(crea);
+
+       // READ NUMBER OF RAYS AND RAY SPACING
+       ReadNumberOfRaysAndRaySpacing(crea);
+
+       // READ NUMBER OF PROJECTIONS
+       // READ LIST OF PROJECTION ANGLES INTO WORK AREA
+       ReadProjectionAngles(FALSE);
+
+       // MEASUREMENT STATISTICS  --  NOISE AND SCATTER
+       GetMesurementStatistics();
+
+       // READ BACKGROUND ABSORPTION
+       ReadBackgroundAbsorption();
+
+       // IS THIS A MODIFY RUN OR DOES IT CREATE A FILE TAPE12 FOR FUTURE
+       fprintf(output, "\n ");
+       GetRunOptions();
+}
+
+void InFile_class::CreaInProj()
+{
+
+       static const INTEGER proj = CHAR2INT('p', 'r', 'o', 'j');
+
+       GetName();
+
+       // INPUT ENTIRE GEOMETRY DATA
+       ReadGeometryData(proj);
+
+       // READ NUMBER OF RAYS AND RAY SPACING
+       ReadNumberOfRaysAndRaySpacing(proj);
+
+       // READ NUMBER OF PROJECTIONS
+       // READ LIST OF PROJECTION ANGLES INTO WORK AREA
+       ReadProjectionAngles(FALSE);
+
+       // MEASUREMENT STATISTICS  --  NOISE AND SCATTER
+       GetMesurementStatistics();
+
+       // READ BACKGROUND ABSORPTION
+       ReadBackgroundAbsorption();
+}
+
diff --git a/src/snark/infile.h b/src/snark/infile.h
new file mode 100644 (file)
index 0000000..cbc7469
--- /dev/null
@@ -0,0 +1,29 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/infile.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef INFILE_H
+#define INFILE_H
+
+#include "inputfile.h"
+
+extern class InFile_class: public InputFile_class
+{
+private:
+
+public:
+       BOOLEAN GetFormat(BOOLEAN NewLine, CHAR* pictf);
+       void GetComment(CHAR* head);
+       void listit(INTEGER* iter);
+       void GetRunOptions();
+       void CreaInCrea();
+       void CreaInProj();
+} InFile;
+
+#endif
diff --git a/src/snark/inputfile.cpp b/src/snark/inputfile.cpp
new file mode 100644 (file)
index 0000000..73b0785
--- /dev/null
@@ -0,0 +1,1316 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/inputfile.cpp $
+ $LastChangedRevision: 86 $
+ $Date: 2014-07-02 16:45:09 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+
+ THE FIRST 7 ROWS OF 'OBJECT' STORE THE DENSITY FOR THE 7 ENERGY
+ LEVELS, 8TH  STORES THE AVERAGE DENSITY;
+ 9TH ROW SPECIFIES TYPE OF OBJECT, 1 FOR ELLIPSE/CIRCLE
+ 2 FOR RECTANGLE/SQUARE
+ 3 FOR TRIANGLE
+ 4 FOR SEGMENT OF CIRCLE
+ 5 FOR SECTOR OF CIRCLE
+ 10TH ROW  CX  X-COORDINATE OF CENTER
+ 11TH ROW  CY  Y-COORDINATE OF CENTER
+ 12TH ROW  U  SEMI X-AXIS LENGTH
+ 13TH ROW  V  SEMI Y-AXIS LENGTH
+ 14TH ROW  ANG  ANGLE OF ROTATION FROM X-AXIS
+ 15TH ROW  SINANG  SIN OF ANGLE OF ROTATION
+ 16TH ROW  COSANG  COSINE OF ANGLE OF ROTATION
+ 17TH ROW RAYL   LENGTH OF RAY INTERSECTED BY OBJECT
+ THIS VALUE OF SUBSCRIPT REFERRED TO IN CREAPR ONLY
+ */
+
+#include <cstdlib>       
+#include <cstdio>
+#include <cmath>
+#include <time.h>
+
+#include "blkdta.h"
+#include "creacm.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "noise.h"
+#include "objects.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "int2str.h"
+#include "anglst.h"
+#include "creaer.h"
+#include "DIGRand.h"
+
+#include "inputfile.h"
+
+//jk 11/18/2007 introducing variability
+REAL variability;
+//jk 02/06/09 bug 251
+//long newseed;    //the variable Creacm.varseed is used instead
+//the array stores values of variability added to each pixel of the phantom
+//for each energy level
+REAL * variab_array[7];
+//the flag is set if the value of variability in the input file is other than zero
+BOOLEAN variab_set;
+//saves the value of the origical scale which is the mean value for variability calculations
+REAL mean;
+
+REAL * phantom_poly_array[7];
+
+void InputFile_class::Open()  //open input file (stdin) and 
+{
+       infile = stdin;
+       if (infile == NULL)
+       {
+               fprintf(output, "\n **** unable to open input file");
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1);
+       }
+}
+
+void InputFile_class::GetName()        // get name
+{
+       int i;
+       signed CHAR ch;  // changed "CHAR" to "signed CHAR". lajos, Nov 18, 2004
+
+       fprintf(output, "\n");
+
+       //assign the name of reconstruction to the 'name' member of 
+       //Creacm (defined in global scope in creacm.cpp 
+       for (i = 0; i < 80; i++)
+       {  // changed "i < 81" to "i < 80". Lajos, Nov 18, 2004
+               //if there are fewer than 80 characters, stop earlier
+               if (((ch = fgetc(infile)) == '\n') || (ch == EOF))
+               {
+                       break;
+               }
+               Creacm.name[i] = ch;
+       }
+       //skip over remaining characters on the line (only first 80 characters
+       //are used for the name)
+       while (ch != '\n' && ch != EOF)
+               ch = fgetc(infile);  // bug117 - swr - 6/29/05
+       // insufficient records in input; EOF encountered
+       if (ch == EOF)
+       {
+               creaer(25);     //generate an error 
+               return;         //and quit
+       }
+
+       Creacm.name[i] = 0;     //set the last character to null (it is 
+                                               //a null terminated string)
+
+       fprintf(output, "\n         %s\n", Creacm.name);
+}
+
+void InputFile_class::ReadEnergySpectralDistribution() //READ ENERGY 
+//SPECTRAL DISTRIBUTION
+
+{
+       BOOLEAN eol;
+       INTEGER ndred, tword;
+       int i;
+
+       static const INTEGER spect_codes[3] =
+       { CHAR2INT('s', 'p', 'e', 'c'), CHAR2INT('m', 'o', 'n', 'o'), CHAR2INT('p',
+                       'o', 'l', 'y') };
+
+       tword = getwrd(TRUE, &eol, spect_codes, 1); /*getwrd returns as its value 
+        the first four letters  of the next string of alpha characters
+        in the input record  calls function 'getnxt'.
+        returns eol = TRUE when end of line is reached.*/
+
+       if (eol)
+               creaer(spect_codes[0]); //generate error if there are
+       //fewer than 4 characters on the line
+
+       Creacm.word2 = getwrd(FALSE, &eol, &(spect_codes[1]), 2); //gets the code
+       //for either 'mono' or 'poly' from the input file
+
+       if (Creacm.word2 == spect_codes[2]) //if 'poly'
+       {
+               // PROCESS POLYCHROMATIC DATA HERE; FOR MONOCHROMATIC GO ELESEWHERE
+
+               Spctrm.nergy = getint(FALSE, &eol);
+               if ((Spctrm.nergy <= 0) || (Spctrm.nergy > 7))
+                       creaer(3);
+
+               getnxt(TRUE);
+
+               for (i = 0; i < Spctrm.nergy; i++)
+               {
+                       Spctrm.energy[i] = getint(FALSE, &eol);
+                       if (eol)
+                       {
+                               // INSUFFICIENT RECORDS IN INPUT; EOF ENCOUNTERED
+                               creaer(25);
+                               return;
+                       };
+
+                       Creacm.percnt[i] = getint(FALSE, &eol);
+                       if (eol)
+                       {
+                               // INSUFFICIENT RECORDS IN INPUT; EOF ENCOUNTERED
+                               creaer(25);
+                               return;
+                       }
+               };
+
+               fprintf(output,
+                               "\n         energy spectrum is polychromatic with %3i     energy levels",
+                               Spctrm.nergy);
+               fprintf(output, "\n         with the following photon distribution");
+               fprintf(output, "\n         energy level   percent");
+               for (i = 0; i < Spctrm.nergy; i++)
+               {
+                       fprintf(output, "\n%17i %11i", Spctrm.energy[i], Creacm.percnt[i]);
+               }
+
+               // COMPUTE THE WEIGHTS FOR EACH ENERGY LEVEL FOR AVERAGING THE
+               // ABSORPTION OVER THE ENERGY LEVELS
+               ndred = 0;
+
+               for (i = 0; i < Spctrm.nergy; i++)
+               {
+                       Spctrm.engwt[i] = Creacm.percnt[i] * (REAL) 0.01;
+                       ndred += Creacm.percnt[i];
+                       if (Creacm.percnt[i] < 0)
+                               ndred = -100000;
+               }
+
+               if (ndred != 100)
+                       creaer(4);
+       }
+       else    //if 'mono'
+       {
+               if (Creacm.word2 == spect_codes[1])
+               {
+                       // MONOCHROMATIC DATA
+
+                       Spctrm.nergy = 1;
+                       Creacm.percnt[0] = 100;
+                       Spctrm.engwt[0] = 1.0;
+                       Spctrm.energy[0] = getint(FALSE, &eol);
+                       ;
+                       fprintf(output,
+                                       "\n         energy spectrum is monochromatic at energy level %5i\n",
+                                       Spctrm.energy[0]);
+               }
+               else
+                       creaer(21);
+       }
+}
+
+void InputFile_class::GetInformationABoutCreationOfPhantom(INTEGER invoke)
+// GET INFORMATION ABOUT CREATION OF PHANTOM
+{
+       BOOLEAN eol;
+       static const INTEGER crea = CHAR2INT('c', 'r', 'e', 'a');
+
+       INTEGER tword;
+       static const INTEGER phan_codes[2] =
+       { CHAR2INT('p', 'h', 'a', 'n'), CHAR2INT('a', 'v', 'e', 'r') };
+
+       tword = getwrd(TRUE, &eol, phan_codes, 1);
+       if (eol)
+               creaer(phan_codes[0]);
+
+       fprintf(output, "\n");
+
+       Creacm.word2 = getwrd(FALSE, &eol, &(phan_codes[1]), 1);
+       Creacm.picflg = (Creacm.word2 == phan_codes[1]);
+
+       // IF PHANTOM NOT CREATED DONT READ NAVE1
+
+       if (Creacm.picflg)
+       {
+               if (invoke == crea)
+               {
+                       fprintf(output, "\n         this run will generate a phantom");
+               }
+               Creacm.nave1 = getint(FALSE, &eol);
+               fprintf(output,
+                               "\n         density in each pixel is obtained as the average of %i x %i points\n",
+                               Creacm.nave1, Creacm.nave1);
+
+               if ((Creacm.nave1 <= 0) || (Creacm.nave1 == Creacm.nave1 / 2 * 2))
+                       creaer(8);
+
+               // READ IN GRID SIZE AND PIXEL SIZE .
+
+               GeoPar.nelem = getint(TRUE, &eol);
+               GeoPar.pixsiz = getnum(FALSE, &eol);
+               fprintf(output, "\n         picture size %i x %i,  pixel size %10.4f\n",
+                               GeoPar.nelem, GeoPar.nelem, GeoPar.pixsiz);
+
+               if ((GeoPar.nelem <= 0) || (GeoPar.nelem == GeoPar.nelem / 2 * 2))
+                       creaer(9);
+               if (GeoPar.pixsiz < Consts.zero)
+                       creaer(10);
+               GeoPar.midpix = (GeoPar.nelem + 1) / 2;
+               GeoPar.area = GeoPar.nelem * GeoPar.nelem;
+       }
+
+}
+
+// READ BACKGROUND ABSORPTION
+void InputFile_class::ReadBackgroundAbsorption()
+{
+       BOOLEAN eol;
+       int i;
+       static const INTEGER hback = CHAR2INT('b', 'a', 'c', 'k');
+
+       if (word != hback)
+               creaer(hback);
+       for (i = 0; i < Spctrm.nergy; i++)
+       {
+               Spctrm.backgr[i] = getnum(FALSE, &eol);
+       }
+
+       fprintf(output, "\n                               at levels");
+       fprintf(output, "\n                               ");
+       for (i = 0; i < Spctrm.nergy; i++)
+       {
+               fprintf(output, "%9i ", Spctrm.energy[i]);
+       }
+
+       fprintf(output, "\n          background absorption");
+       for (i = 0; i < Spctrm.nergy; i++)
+       {
+               fprintf(output, "%9.4f ", Spctrm.backgr[i]);
+       }
+}
+
+// READ RAYSUM INFORMATION
+void InputFile_class::ReadRaysumInformation()
+{
+       BOOLEAN eol;
+       //  static const INTEGER haver = CHAR2INT('a','v','e','r');  // commented out since it is unused. Lajos, Jan 13, 2005
+
+       INTEGER tword;
+       static const INTEGER rays_codes[2] =
+       { CHAR2INT('r', 'a', 'y', 's'), CHAR2INT('a', 'v', 'e', 'r') };
+
+       tword = getwrd(TRUE, &eol, rays_codes, 1);
+       if (eol)
+               creaer(rays_codes[0]);
+
+       fprintf(output, "\n");
+
+       Creacm.word2 = getwrd(FALSE, &eol, &(rays_codes[1]), 1);
+       Creacm.prjflg = (Creacm.word2 == rays_codes[1]);
+}
+
+// INPUT ENTIRE GEOMETRY DATA
+void InputFile_class::ReadGeometryData(INTEGER invoke)
+{
+       BOOLEAN eol;
+       INTEGER tword;
+
+       static const INTEGER crea = CHAR2INT('c', 'r', 'e', 'a');
+
+       static const INTEGER geom_codes[10] =  /// bug #135. Lajos, 08/01/2005
+                       {
+                                       CHAR2INT('g', 'e', 'o', 'm'), CHAR2INT('p', 'a', 'r', 'a'),
+                                       CHAR2INT('d', 'i', 'v', 'e'), CHAR2INT('l', 'i', 'n', 'o'), /// bug #135. Lajos, 08/01/2005
+                                       CHAR2INT('u', 'n', 'i', 'f'), CHAR2INT('v', 'a', 'r', 'i'),
+                                       CHAR2INT('l', 'i', 'n', 'e'), CHAR2INT('s', 't', 'r', 'i'),
+                                       CHAR2INT('a', 'r', 'c', ' '), CHAR2INT('t', 'a', 'n', 'g') };
+
+       fprintf(output, "\n");
+
+       tword = getwrd(TRUE, &eol, geom_codes, 1);
+       if (eol)
+               creaer(geom_codes[0]);
+
+       fprintf(output, "\n");
+
+       // GET RAY TYPE, PARALLEL, DIVERGENT, OR LINOGRAM, UNIF, VARI, TANG OR ARC  /// bug #135. Lajos, 08/01/2005
+       tword = getwrd(TRUE, &eol, &(geom_codes[1]), 3); /// bug #135. Lajos, 08/01/2005
+       if (eol)
+       {
+               fprintf(output,
+                               "\n **** keyword parallel, divergent, or linogram is missing"); /// bug #135. Lajos, 08/01/2005
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1);
+       };
+       Creacm.word1 = tword;
+
+       GeoPar.lino = FALSE;  /// bug #135. Lajos, 08/02/2005
+
+       if (tword == geom_codes[1])
+       {
+               tword = getwrd(FALSE, &eol, &(geom_codes[4]), 2); /// bug #135. Lajos, 08/01/2005
+               if (eol)
+               {
+                       fprintf(output, "\n **** keyword uniform or variable is missing");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               }
+       }
+       else if (tword == geom_codes[2])  /// bug #135. Lajos, 08/01/2005
+       {
+               tword = getwrd(FALSE, &eol, &(geom_codes[8]), 2); /// bug #135. Lajos, 08/01/2005
+               if (eol)
+               {
+                       fprintf(output, "\n **** keyword arc or tangent is missing");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               }
+       }
+       else  /// bug #135. Lajos, 08/01/2005
+       {
+               // assuming PARALLEL VARIABLE LINE when LINOGRAM has been specified
+               GeoPar.lino = TRUE;
+               Creacm.word1 = geom_codes[1];
+               tword = geom_codes[5];
+       }
+
+       Creacm.word2 = tword;
+
+       GeoPar.par = (Creacm.word1 == geom_codes[1]);
+       GeoPar.div = (Creacm.word1 == geom_codes[2]); // moved out of the "if(!GeoPar.par) {...}" block. Lajos, 08/02/2005
+
+       if (!GeoPar.par)
+       {
+
+               // DIVERGENT GEOMETRY READ SPECS
+
+               GeoPar.line = TRUE;
+               GeoPar.arc = (Creacm.word2 == geom_codes[8]); /// bug #135. Lajos, 08/01/2005
+               GeoPar.tang = (Creacm.word2 == geom_codes[9]); /// bug #135. Lajos, 08/01/2005
+               if (!(GeoPar.div && (GeoPar.arc || GeoPar.tang)))
+                       creaer(11);
+
+               fprintf(output, "\n         rays are divergent from point sources");
+
+               GeoPar.radius = getnum(FALSE, &eol);
+               GeoPar.stod = getnum(FALSE, &eol);
+               fprintf(output, "\n         source to origin distance  %10.4f",
+                               GeoPar.radius);
+
+               if (GeoPar.arc)
+               {
+                       fprintf(output,
+                                       "\n         the detectors lie on an arc with source to detector distance = %10.4f",
+                                       GeoPar.stod);
+               }
+
+               if (GeoPar.tang)
+               {
+                       fprintf(output,
+                                       "\n         the detectors lie on a st. line with source to middle detector distance = %10.4f",
+                                       GeoPar.stod);
+               }
+
+               if (invoke != crea)
+               {
+                       if (GeoPar.radius <= GeoPar.nelem * GeoPar.pixsiz / 1.414)
+                               creaer(11);
+               }
+       }
+       else
+       {
+               // PARALLEL GEOMETRY  READ SPECS; IS SPACING UNIFORM OR VARIABLE
+
+               GeoPar.uni = (Creacm.word2 == geom_codes[4]); /// bug #135. Lajos, 08/01/2005
+               GeoPar.vri = (Creacm.word2 == geom_codes[5]); /// bug #135. Lajos, 08/01/2005
+
+               if (GeoPar.lino)
+                       tword = geom_codes[6];  /// bug #135. Lajos, 08/01/2005
+               else
+               {
+                       tword = getwrd(FALSE, &eol, &(geom_codes[6]), 2); /// bug #135. Lajos, 08/01/2005
+                       if (eol)
+                       {
+                               fprintf(output, "\n **** keyword line or strip is missing");
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(-1);
+                       }
+               }
+               Creacm.word3 = tword;
+
+               GeoPar.line = (Creacm.word3 == geom_codes[6]); /// bug #135. Lajos, 08/01/2005
+               GeoPar.strip = (Creacm.word3 == geom_codes[7]); /// bug #135. Lajos, 08/01/2005
+
+               if (!(GeoPar.par && (GeoPar.strip || GeoPar.line)))
+                       creaer(11);
+               if (!(GeoPar.uni || GeoPar.vri))
+                       creaer(12);
+
+               fprintf(output, "\n         rays are parallel with");
+               if (GeoPar.uni)
+               {
+                       fprintf(output, " uniform spacing between rays");
+               }
+               if (GeoPar.vri)
+               {
+                       fprintf(output, " variable spacing between rays");
+               }
+               if (GeoPar.strip)
+               {
+                       fprintf(output, "\n         data collected along strips\n");
+               }
+               if (GeoPar.line)
+               {
+                       fprintf(output, "\n         data collected along lines\n");
+               }
+       }
+       fprintf(output, "\n");
+}
+
+void InputFile_class::ReadNumberOfRaysAndRaySpacing(INTEGER invoke)
+{
+       BOOLEAN eol;
+       INTEGER melen, tword;
+       REAL zisxip;
+
+       static const INTEGER proj = CHAR2INT('p', 'r', 'o', 'j');
+       static const INTEGER crea = CHAR2INT('c', 'r', 'e', 'a');
+
+       static const INTEGER rays_codes[3] =
+       { CHAR2INT('r', 'a', 'y', 's'), CHAR2INT('u', 's', 'e', 'r'), CHAR2INT('p',
+                       'r', 'o', 'g') };
+
+       if (GeoPar.lino)  /// bug #135. Lajos, 08/01/2005
+       {
+               // assuming RAYS USER if LINOGRAM has been specified
+               if (GeoPar.nelem == 0)
+               {
+                       fprintf(output,
+                                       "\n **** nelem must be specified using phantom average if linogram geometry has been chosen");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               }
+               tword = rays_codes[1];
+               GeoPar.usrays = 2 * GeoPar.nelem + 1;
+               GeoPar.pinc = GeoPar.pixsiz;
+       }
+       else
+       {
+               tword = getwrd(TRUE, &eol, rays_codes, 1);
+               if (eol)
+                       creaer(rays_codes[0]);
+
+               GeoPar.usrays = 0;
+
+               tword = getwrd(FALSE, &eol, &(rays_codes[1]), 2);
+               if (eol)
+                       creaer(15);
+
+               if (tword == rays_codes[1])
+               {
+
+                       GeoPar.usrays = getint(FALSE, &eol);
+
+                       if (!((GeoPar.usrays == 0) && (invoke == crea)))
+                       {
+                               if ((GeoPar.usrays % 2) <= 0)
+                                       creaer(13);
+                       }
+               }
+               else
+               {
+                       melen = getint(FALSE, &eol);
+                       zisxip = getnum(FALSE, &eol);
+               }
+
+               GeoPar.pinc = getnum(FALSE, &eol);
+               if (GeoPar.pinc < Consts.zero)
+                       creaer(10);
+       }
+
+       if ((invoke == proj) && (GeoPar.nelem == 0))
+               creaer(23);
+       if (GeoPar.arc)
+       {
+               if ((GeoPar.pinc * GeoPar.usrays - 1.0) / GeoPar.stod > Consts.pi)
+                       creaer(11);
+       }
+
+       if (tword == rays_codes[2])
+               GeoPar.usrays = GeoPar.numray(melen, zisxip);
+
+       if (GeoPar.nelem > 0)
+               GeoPar.snrays = GeoPar.numray(GeoPar.nelem, GeoPar.pixsiz);
+       if (GeoPar.nelem == 0)
+               GeoPar.snrays = GeoPar.usrays;
+       if (GeoPar.usrays == 0)
+               GeoPar.usrays = GeoPar.snrays;
+
+       fprintf(output, "\n         number of rays per projection %5i",
+                       GeoPar.usrays);
+
+       if (invoke == proj)
+       {
+               fprintf(output, "\n         snark computed number of rays %5i",
+                               GeoPar.snrays);
+       }
+       fprintf(output, "\n         at detector spacing %10.4f", GeoPar.pinc);
+
+       // SET THE APPROPRIATE VALUES FOR THE FIRST AND LAST RAY NUMBERS
+       // FOR THE USER RAY SET AND THE SNARK RAY SET
+       // THE VALUE OF NRAYS IN /USER/ COMMON NOW IS NO OF USER SPECIFIED
+       // RAYS IF GIVEN  OR  SNRAYS COMPUTED BY SNARK IF DEFAULT
+
+       GeoPar.nrays = MAX0(GeoPar.snrays, GeoPar.usrays);
+       GeoPar.midray = GeoPar.nrays / 2;
+
+       GeoPar.fsnray = (GeoPar.nrays - GeoPar.snrays) / 2;
+       GeoPar.lsnray = GeoPar.fsnray + GeoPar.snrays - 1;
+
+       GeoPar.fusray = (GeoPar.nrays - GeoPar.usrays) / 2;
+       GeoPar.lusray = GeoPar.fusray + GeoPar.usrays - 1;
+}
+
+// MEASUREMENT STATISTICS  --  NOISE AND SCATTER
+
+void InputFile_class::GetMesurementStatistics()
+{
+       BOOLEAN eol;
+       BOOLEAN perfct, noisfl;
+
+       int n;
+
+       static const INTEGER hquan = CHAR2INT('q', 'u', 'a', 'n');
+       static const INTEGER hscat = CHAR2INT('s', 'c', 'a', 't');
+       static const INTEGER hmult = CHAR2INT('m', 'u', 'l', 't');
+       static const INTEGER haddi = CHAR2INT('a', 'd', 'd', 'i');
+
+       static const INTEGER meas_codes[10] =
+       {
+                       CHAR2INT('m', 'e', 'a', 's'), CHAR2INT('p', 'e', 'r', 'f'),
+                       CHAR2INT('n', 'o', 'i', 's'), CHAR2INT('s', 'e', 'e', 'd'),
+                       CHAR2INT('b', 'a', 'c', 'k'), CHAR2INT('q', 'u', 'a', 'n'),
+                       CHAR2INT('s', 'c', 'a', 't'), CHAR2INT('m', 'u', 'l', 't'),
+                       CHAR2INT('a', 'd', 'd', 'i'), CHAR2INT('c', 'a', 'l', 'i')
+       };
+
+       NoisePar.setQuantumNoise(0, 1.0, 1.0);  //bug221 - swr - 03/03/07
+
+       word = getwrd(TRUE, &eol, meas_codes, 1);
+       if (eol)
+               creaer(meas_codes[0]);
+
+       word = getwrd(FALSE, &eol, &(meas_codes[1]), 2);
+       if (eol)
+       {
+               fprintf(output, "\n **** keyword perfect or noisy is missing");
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1);
+       };
+
+       perfct = (word == meas_codes[1]);
+       noisfl = (word == meas_codes[2]);
+       if (!noisfl)
+       {
+
+               // IF PERFECT MEASUREMENTS THEN SKIP NOISE INFORMATION
+               if (!perfct)
+                       creaer(meas_codes[1]);
+
+               fprintf(output, "\n         projection data are noiseless\n");
+
+               word = getwrd(TRUE, &eol, &(meas_codes[4]), 1);
+       }
+       else
+       {
+               // NOISE INFORMATION
+
+               fprintf(output,
+                               "\n         noise characteristics of projection data follow");
+               fprintf(output, "\n               nature          characteristics");
+
+               for (;;)
+               {
+                       // CHECK TYPE OF NOISE AND READ RELEVANT DATA
+                       word = getwrd(TRUE, &eol, &(meas_codes[3]), 6);
+
+                       if ((word == meas_codes[3]) || (word == meas_codes[4]))
+                               break;
+
+                       switch (word)
+                       {
+
+                       case hquan:
+                               // QUANTUM NOISE
+                               NoisePar.quanmn = getnum(FALSE, &eol);
+                               NoisePar.quancm = getnum(FALSE, &eol);
+
+                               // GET CALIBRATION TYPE AND ECHO ON OUTPUT
+                               NoisePar.quanin = 1;
+                               if (getwrd(FALSE, &eol, &(meas_codes[9]), 1) == meas_codes[9])
+                                       NoisePar.quanin = getint(FALSE, &eol);
+                               if (NoisePar.quanin == 4)
+                               {
+                                       fprintf(output, "\n              Emission tomography");
+                               }
+                               else
+                               {
+
+                                       if ((NoisePar.quanin < 1) || (NoisePar.quanin > 4))
+                                               creaer(16);
+                                       fprintf(output,
+                                                       "\n               quantum        mean number of photons in actual measurement %12.4e",
+                                                       NoisePar.quanmn);
+                                       fprintf(output,
+                                                       "\n                              mean number of photons in calibration measurement is %10.4f    times above",
+                                                       NoisePar.quancm);
+
+                                       if (NoisePar.quanin == 1)
+                                       {
+                                               fprintf(output,
+                                                               "\n                              calibration is constant for all rays in any single projection");
+                                       }
+
+                                       if (NoisePar.quanin == 2)
+                                       {
+                                               fprintf(output,
+                                                               "\n                              calibration is constant over all projections for any single ray");
+                                       }
+
+                                       if (NoisePar.quanin == 3)
+                                       {
+                                               fprintf(output,
+                                                               "\n                              calibration is variable for every ray in every projection");
+                                       }
+
+                                       if ((NoisePar.quanmn < Consts.zero)
+                                                       || (NoisePar.quancm < Consts.zero))
+                                               creaer(26);
+
+                                       // DISTRIBUTE PHOTONS ACCORDING TO APERTURE WEIGHTS COMPUTED EARLIER
+
+                                       for (n = 0; n < GeoPar.nave2; n++)
+                                       {
+                                               Creacm.aperwt[n] *= NoisePar.quanmn;
+                                       }
+
+                                       fprintf(output,
+                                                       "\n                              mean numbers of photons entering each substrip are");
+                                       fprintf(output, "\n                              ");
+                                       for (n = 0; n < GeoPar.nave2; n++)
+                                       {
+                                               fprintf(output, "%12.4e ", Creacm.aperwt[n]);
+                                       }
+                               }
+                               NoisePar.setQuantumNoise();  //bug221 - swr - 03/03/07
+                               //}
+                               break;
+
+                       case hscat:
+                               ///if(word == hscat) {
+                               // SCATTER NOISE
+                               //bug221 - swr - 03/03/07
+                       {
+                               REAL peak = getnum(FALSE, &eol);
+                               REAL width = getnum(FALSE, &eol);
+                               NoisePar.setScatter(peak, width);
+                               fprintf(output,
+                                               "\n               scatter        the fraction scattered in line is %10.4f",
+                                               peak);
+                               fprintf(output,
+                                               "\n                              scatter extends to a distance of %10.4f",
+                                               width);
+                               fprintf(output,
+                                               "\n                              dying linearly from the middle");
+
+                               if ((peak < Consts.zero) || (width < Consts.zero))
+                                       creaer(17);
+                               break;
+                       }
+                               ///}
+
+                       case hmult:
+                               // MULTIPLICATIVE NOISE
+                               //bug221 - swr - 03/03/07
+                       {
+                               REAL mean = getnum(FALSE, &eol);
+                               REAL std = getnum(FALSE, &eol);
+                               NoisePar.setMultiplicativeNoise(mean, std);
+                               fprintf(output,
+                                               "\n               multiplicative mean %10.4f     std. dev. %10.4f",
+                                               mean, std);
+                               if (fabs(NoisePar.ultnmn) < Consts.zero)
+                                       creaer(27);
+                               break;
+                       }
+
+                       case haddi:
+                               // ADDITIVE NOISE
+                               //bug221 - swr - 03/03/07
+                       {
+                               REAL mean = getnum(FALSE, &eol);
+                               REAL std = getnum(FALSE, &eol);
+                               NoisePar.setAdditiveNoise(mean, std);
+                               fprintf(output,
+                                               "               additive       %10.4f     std. dev. %10.4f",
+                                               mean, std);
+                               break;
+                       }
+
+                       default:
+                               creaer(18);
+                       }
+               }
+               noisfl = ((NoisePar.quanin > 0) || NoisePar.ultnfl || NoisePar.addnfl);
+
+               if (noisfl)
+               {
+                       if (word != meas_codes[3])
+                               creaer(meas_codes[3]);
+
+                       // INPUT SEED FOR RANDOM NUMBER GENERATOR
+
+                       Creacm.iseed = getint(FALSE, &eol);
+                       fprintf(output,
+                                       "\n          seed for random number generator is     %10i\n",
+                                       Creacm.iseed);
+
+                       word = getwrd(TRUE, &eol, &(meas_codes[4]), 1);
+               }
+       }
+}
+
+// READ NUMBER OF PROJECTIONS
+// READ LIST OF PROJECTION ANGLES INTO WORK AREA
+
+void InputFile_class::ReadProjectionAngles(BOOLEAN f11)
+{
+       BOOLEAN eol;
+       INTEGER JJ, IANG, NUMRAYS, II, LIMIT, NN;
+       REAL RAD_DEG;
+       int i, j, np;
+       REAL delta;
+       INTEGER tword;
+
+       BOOLEAN equisp;
+       BOOLEAN uequisp;
+       BOOLEAN linosp;
+
+       static const INTEGER angl_codes[2] =  /// bug #135. Lajos, 08/01/2005
+                       { CHAR2INT('a', 'n', 'g', 'l'), CHAR2INT('e', 'q', 'u', 'a') /// bug #135. Lajos, 08/01/2005
+                       //    CHAR2INT('l','i','n','o')  /// bug #135. Lajos, 08/01/2005
+                       };
+
+       fprintf(output, "\n");
+
+       if (GeoPar.lino)  /// bug #135. Lajos, 08/01/2005
+       {
+               GeoPar.prjnum = 2 * (2 * GeoPar.nelem + 1);
+       }
+       else
+       {
+               tword = getwrd(TRUE, &eol, angl_codes, 1);
+               if (eol)
+                       creaer(angl_codes[0]);
+
+               GeoPar.prjnum = getint(FALSE, &eol);
+       }
+       fprintf(output, "\n         total number of projections %5i",
+                       GeoPar.prjnum);
+
+       if (GeoPar.prjnum <= 0)
+               creaer(14);
+
+       // FIRST ALLOCATE STORAGE AREA
+       if (Creacm.pang != NULL)
+               delete[] Creacm.pang;
+       Creacm.pang = new REAL[GeoPar.prjnum];
+       Anglst.Init(GeoPar.prjnum);
+
+       // WANT TO GENERATE EQUALLY-SPACED ANGLES ONLY IF SPECIFIED
+
+       equisp = FALSE;
+       linosp = FALSE;
+       uequisp = FALSE;
+
+       if (GeoPar.lino)
+               linosp = TRUE;  /// bug #135. Lajos, 08/01/2005
+       else
+       {
+               tword = getwrd(FALSE, &eol, &(angl_codes[1]), 1); /// bug #135. Lajos, 08/01/2005
+               if (tword == angl_codes[1])
+               {
+                       equisp = TRUE;
+               }
+               else
+               {
+                       uequisp = TRUE;
+               }
+       }
+
+       if (equisp)
+       {
+               getnxt(TRUE);
+
+               *Creacm.pang = getnum(FALSE, &eol);
+               if (eol)
+                       creaer(25);  // added error checking. Lajos, 03/29/2005
+               *(Creacm.pang + 1) = getnum(FALSE, &eol);
+               if (eol)
+                       creaer(25);  // added error checking. Lajos, 03/29/2005
+               //C     intang = intang + 1
+
+               // CHANGED CODE FOR READING EQUALLY SPACED ANGLES TO MAKE USERS
+               // LIFE BIT MORE COMFORTABLE FOR VERSION 1.02 SNARK87 10th AUG 
+               // FOR flag DESCRIPTION SEE CODE AT LABEL 40 
+               // -----S.SADANANDA AUG 10 1987 
+
+               if (GeoPar.prjnum <= 1)
+                       creaer(20);
+
+               delta = (Creacm.pang[1] - Creacm.pang[0]) / (GeoPar.prjnum - 1);
+#ifdef FFCOMPARE
+               fprintf(output,"\n %36.30f", (double) delta);
+#endif
+               for (np = 1; np < GeoPar.prjnum; np++)
+               {
+                       Creacm.pang[np] = np * delta + Creacm.pang[0];
+#ifdef FFCOMPARE
+                       fprintf(output,"\n %5i %36.30f", np+1, Creacm.pang[np]);
+#endif
+               }
+       }
+
+       // Modified code to enable generation of angles for linogram 
+       // reconstruction
+       // ----- J. Browne, May 1993
+
+       else if (linosp)
+       {
+               if (!(GeoPar.par && GeoPar.vri))
+               {
+                       fprintf(output,
+                                       "\n **** for linogram reconstruction use PARALLEL geometry with VARIABLE detector spacing");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               }
+               NN = (GeoPar.prjnum / 2 - 3) / 4;
+               LIMIT = 2 * NN + 1;
+               NUMRAYS = 4 * NN + 3;
+               RAD_DEG = (REAL) 180.0 / Consts.pi;
+               JJ = 0;
+               for (II = 1; II <= 2; II++)
+               {
+                       for (IANG = -LIMIT; IANG <= LIMIT; IANG++)
+                       {
+
+                               if (II == 1)
+                               {
+                                       Creacm.pang[JJ] = RAD_DEG
+                                                       * (REAL) atan((REAL) 2.0 * IANG / NUMRAYS) + 90;
+                               }
+
+                               if (II == 2)
+                               {
+                                       Creacm.pang[JJ] = RAD_DEG
+                                                       * (REAL) atan((REAL) 2.0 * IANG / NUMRAYS) + 180;
+                               }
+                               JJ++;
+
+                       }
+               }
+       }
+       else if (uequisp)
+       {
+               if (f11)
+               { // from file11
+
+                       eol = FALSE;
+                       getnxt(TRUE);
+                       fprintf(output, "\n");
+                       //bug 276, jklukowska, allow free format in file11
+                       for (i = 0; i < GeoPar.prjnum; i++)
+                       {
+                               Creacm.pang[i] = getnum(FALSE, &eol);    // try to get number
+                               while (eol)
+                               {                    // if end of line
+                                       getnxt(TRUE, FALSE);         // get another line
+                                       Creacm.pang[i] = getnum(FALSE, &eol);  // try again
+                               }
+                       }
+
+               }
+               else
+               {  // from input file
+                       eol = FALSE;
+                       getnxt(TRUE);
+
+                       for (i = 0; i < GeoPar.prjnum; i++)
+                       {
+                               Creacm.pang[i] = getnum(FALSE, &eol);    // try to get number
+                               while (eol)
+                               {                    // if end of line
+                                       getnxt(TRUE);         // get another line
+                                       Creacm.pang[i] = getnum(FALSE, &eol);  // try again
+                               }
+                       }
+               }
+       }
+
+       fprintf(output, "\n         projection angles");
+
+       for (j = 0; j < GeoPar.prjnum; j++)
+       {
+               if (((j % 10) == 0) && (j > 0))
+                       fprintf(output, "\n                          ");
+               fprintf(output, " %9.4f", Creacm.pang[j]);
+       }
+
+       // CONVERT TO RADIANS AND COMPUTE SIN AND COS TABLES
+
+       Anglst.InitDiv(Creacm.pang, GeoPar.prjnum);
+
+       fprintf(output, "\n");
+}
+
+void InputFile_class::ReadIfoForComputionRaysums()
+{
+       BOOLEAN eol;
+       int i, n, ns;
+
+       GeoPar.nave2 = getint(FALSE, &eol);
+       fprintf(output,
+                       "\n         projection data are calculated by dividing each ray interval into %i substrips",
+                       GeoPar.nave2);
+
+       if ((GeoPar.nave2 <= 0) || (GeoPar.nave2 > 13)
+                       || (GeoPar.nave2 == GeoPar.nave2 / 2 * 2))
+               creaer(8);
+       getnxt(TRUE);
+
+       /////////////////////////////////////////////////////////////
+       for (i = 0; i < GeoPar.nave2; i++)
+       { /// Is this what is needed MK ???
+               GeoPar.naper[i] = getint(FALSE, &eol);
+               if (eol == TRUE)
+               {
+                       // INSUFFICIENT RECORDS IN INPUT; EOF ENCOUNTERED
+                       creaer(25);
+               }
+       }
+
+       fprintf(output, "\n         with aperture (substrip) weights");
+       for (n = 0; n < GeoPar.nave2; n++)
+       {
+               fprintf(output, " %5i", GeoPar.naper[n]);
+       }
+
+       // GET SUM OF THE APERTURE WEIGHTS FOR LATER USE
+       ns = 0;
+       for (n = 0; n < GeoPar.nave2; n++)
+       {
+               if (GeoPar.naper[n] < 0)
+                       creaer(19);
+               ns += GeoPar.naper[n];
+       }
+       if (ns <= 0)
+               creaer(19);
+
+       // COMPUTE NORMALIZED APERTURE WEIGHTS FOR USE IN CREATING
+       // PROJECTION DATA
+       for (n = 0; n < GeoPar.nave2; n++)
+       {
+               Creacm.aperwt[n] = ((REAL) GeoPar.naper[n]) / ((REAL) (ns));
+       }
+}
+
+// READ OBJECTS MAKING UP THE PHANTOM
+
+void InputFile_class::ReadObjects(INTEGER invoke)
+{
+       int otype;
+       int i, j, n;
+
+       REAL densit;
+
+       INTEGER itype, tword;
+       REAL cxt;
+       REAL cyt;
+       REAL ut;
+       REAL vt;
+       REAL angt;
+
+       REAL scale;
+       REAL phi;
+       BOOLEAN eol;
+       REAL dent[7];
+
+       SNARK_Object_Node *f_object, *t_object;
+
+       static const INTEGER crea = CHAR2INT('c', 'r', 'e', 'a');
+
+       static const INTEGER object_codes[8] =
+       {
+                       CHAR2INT('o', 'b', 'j', 'e'), CHAR2INT('e', 'l', 'i', 'p'),
+                       CHAR2INT('r', 'e', 'c', 't'), CHAR2INT('t', 'r', 'i', 'a'),
+                       CHAR2INT('s', 'e', 'g', 'm'), CHAR2INT('s', 'e', 'c', 't'),
+                       CHAR2INT('l', 'a', 's', 't'), CHAR2INT('d', 'e', 'n', 's') };
+
+       tword = getwrd(TRUE, &eol, object_codes, 1);
+       if (tword != object_codes[0])
+               creaer(object_codes[0]);
+
+       fprintf(output, "\n         description of objects");
+       fprintf(output, "\n                                                                density at levels");
+       fprintf(output, "\n numb type  x-coord  y-coord x-length y-length    angle  av dens");
+       for (i = 0; i < Spctrm.nergy; i++)
+               fprintf(output, " %9i", Spctrm.energy[i]);
+
+       // READ IN OBJECT PARAMETERS IN TEMPORARY LOCATIONS SO AS NOT TO
+       // CLOBBER WORK AREA WHILE DOING INPUT FOR RDPICT AND RDPROJ
+
+       if (invoke == crea)
+       {
+               f_object = new SNARK_Object_Node;
+               t_object = f_object;
+       };
+
+       for (i = 0;; i++)
+       {
+               getnxt(TRUE);           // read line of input
+               itype = getwrd(FALSE, &eol, &(object_codes[1]), 6);
+
+               if (eol)
+               {
+                       fprintf(output, "\n **** keyword elip, rect, tria, segm, sect or last is missing");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               // CHECK TO SEE IF  LAST  OBJECT HAS BEEN READ
+
+               if (itype == object_codes[6])
+                       break;
+
+               cxt = getnum(FALSE, &eol);
+               if (eol)
+               {
+                       fprintf(output, "\n **** parameter cx of object %s is missing", int2str(itype));
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               cyt = getnum(FALSE, &eol);
+               if (eol)
+               {
+                       fprintf(output, "\n **** parameter cy of object %s is missing", int2str(itype));
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               ut = getnum(FALSE, &eol);
+               if (eol)
+               {
+                       fprintf(output, "\n **** parameter u of object %s is missing", int2str(itype));
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               vt = getnum(FALSE, &eol);
+               if (eol)
+               {
+                       fprintf(output, "\n **** parameter v of object %s is missing", int2str(itype));
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               angt = getnum(FALSE, &eol);
+               if (eol)
+               {
+                       fprintf(output, "\n **** parameter ang of object %s is missing", int2str(itype));
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               dent[0] = getnum(FALSE, &eol);
+               if (eol)
+               {
+                       fprintf(output, "\n **** parameter den(0) of object %s is missing", int2str(itype));
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               // IF POLYCHROMATIC READ IN ABSORPTION FOR OTHER LEVELS
+
+               if (Spctrm.nergy > 1)
+               {
+                       getnxt(TRUE);           // read line of input
+                       getwrd(FALSE, &eol, &(object_codes[7]), 1);
+
+                       if (eol)
+                       {
+                               fprintf(output, "\n **** keyword dens is missing");
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(-1);
+                       };
+
+                       for (j = 1; j < Spctrm.nergy; j++)
+                       {
+                               dent[j] = getnum(FALSE, &eol);
+                               if (eol)
+                               {
+                                       fprintf(output, "\n **** parameter den(%d) of object %s is missing", j, int2str(itype));
+                                       fprintf(output, "\n **** program aborted\n");
+                                       exit(-1);
+                               }
+                       }
+               }
+
+               // ALSO COMPUTE THE WEIGHTED AVERAGE ABSORPTION
+
+               densit = 0.0;
+               for (j = 0; j < Spctrm.nergy; j++)
+                       densit += Spctrm.engwt[j] * dent[j];
+
+               fprintf(output, "\n %4i %s %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f", i + 1, int2str(itype), cxt, cyt, ut, vt, angt, densit);
+               for (j = 0; j < Spctrm.nergy; j++)
+                       fprintf(output, " %9.4f", dent[j]);
+
+               // IDENTIFY OBJECT TYPE
+
+               for (otype = SOT_elip; otype <= SOT_sect; otype++)
+               {
+                       if (itype == object_codes[otype + 1])
+                               break;
+               }
+
+               // IF INVOKED BY RDPICT OR RDPROJ NO NEED TO REMEMBER THE ABOVE VALUE
+               if (invoke == crea)
+               {
+                       if ((ut < Consts.zero) || (vt < Consts.zero))
+                               creaer(6);
+
+                       // TRANSFER VALUES TO A TEMPORARY LIST
+
+                       t_object->data.type = (SNARK_Object_type) otype;
+                       for (j = 0; j < Spctrm.nergy; j++)
+                               t_object->data.den1[j] = dent[j];
+                       t_object->data.denav = densit;
+                       t_object->data.cx = cxt;
+                       t_object->data.cy = cyt;
+                       t_object->data.u = ut;
+                       t_object->data.v = vt;
+                       t_object->data.ang = angt;
+                       phi = (REAL) (angt * Consts.pi / 180.0);
+                       t_object->data.sinang = (REAL) sin(phi);
+                       t_object->data.cosang = (REAL) cos(phi);
+
+                       t_object->next = new SNARK_Object_Node;
+                       t_object = t_object->next;
+               }
+       };
+
+       if (invoke == crea)
+       {
+               MAX_NUMBER_OF_OBJECTS = i;
+               objects = new SNARK_Object[MAX_NUMBER_OF_OBJECTS];
+
+               t_object = f_object;
+               for (i = 0; i < MAX_NUMBER_OF_OBJECTS; i++)
+               {
+                       objects[i].type = t_object->data.type;
+                       for (j = 0; j < Spctrm.nergy; j++)
+                               objects[i].den1[j] = t_object->data.den1[j];
+                       objects[i].denav = t_object->data.denav;
+                       objects[i].cx = t_object->data.cx;
+                       objects[i].cy = t_object->data.cy;
+                       objects[i].u = t_object->data.u;
+                       objects[i].v = t_object->data.v;
+                       objects[i].ang = t_object->data.ang;
+                       objects[i].sinang = t_object->data.sinang;
+                       objects[i].cosang = t_object->data.cosang;
+
+                       t_object = t_object->next;
+                       delete f_object;
+                       f_object = t_object;
+               };
+       };
+
+       // GRAB THE SCALE FACTOR FROM THE LAST CARD
+
+       scale = getnum(FALSE, &eol);
+       if (eol)
+       {
+               fprintf(output, "\n **** scale factor is missing");
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1);
+       };
+
+       fprintf(output,
+                       "\n         scale factor multiplying object densities %10.4f",
+                       scale);
+       mean = scale;
+
+       if (fabs(scale) < Consts.zero)
+               creaer(7);
+
+       // IF   PICT   OR   PROJ   NO NEED TO SCALE
+
+       if (invoke == crea)
+       {
+               // GET THE NUMBER OF OBJECTS READ IN
+
+               Creacm.nobj = i;
+               if (Creacm.nobj != 0)
+               {
+                       // SCALE DENSITIES FIRST
+                       for (n = 0; n < Creacm.nobj; n++)
+                       {
+                               objects[n].denav *= scale;
+                               for (j = 0; j < Spctrm.nergy; j++)
+                                       objects[n].den1[j] *= scale;
+                       }
+               }
+       }
+       fprintf(output, "\n");
+
+       //jk 11/18/2007 introducing variability
+       //GRAB THE VARIABILITY VALUE FROM THE LAST CARD
+       //jklukowska 12/9/8, bug 274, varseed should be read as an integer, not real number
+       Creacm.varseed = getint(FALSE, &eol);
+       if (eol)
+       {
+               Creacm.varseed = 0;
+       }
+
+       fprintf(output, "\n         seed set to %d", Creacm.varseed);
+
+
+       variability = getnum(FALSE, &eol);
+       if (eol)
+       {
+               variability = 0;
+       }
+       else if (variability < 0)
+       {
+               fprintf(output, "\n **** inhomogeneity should be >= 0");
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1);
+       }
+
+       if (variability != 0)
+               variab_set = TRUE;
+       else if (variability == 0)
+               variab_set = FALSE;
+
+       fprintf(output, "\n         inhomogeneity set to %10.4f", variability);
+
+}
+
+// added by Lajos, Jan 25, 2005
+/*
+ ECHOLINE PRINTS THE CONTENTS OF THE CURRENT INPUT LINE (I.E. THE ARRAY 'DATA') TO THE OUTPUT.
+ IF flag == true, THE OUTPUT WILL START WITH '<*>'. OTHERWISE, '<#>' WILL BE USED.
+ */
+void InputFile_class::echoline(BOOLEAN flag)
+{
+       if (flag)
+               fprintf(output, "\n     <*> %s", data);
+       else
+               fprintf(output, "\n     <#> %s", data);
+}
diff --git a/src/snark/inputfile.h b/src/snark/inputfile.h
new file mode 100644 (file)
index 0000000..9774230
--- /dev/null
@@ -0,0 +1,64 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/inputfile.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef INPUTFILE_H
+#define INPUTFILE_H
+
+#define DATASIZ 256
+
+//jk 11/18/2007 introducing variability
+extern REAL variability;
+//jk 02/06/09 bug 251
+//extern long newseed;  //the variable Creacm.varseed is used instead
+//the array stores values of variability added to each pixel of the phantom
+extern REAL * variab_array[7];
+//the flag is set if the value of variability in the input file is other than zero
+extern BOOLEAN variab_set;
+//saves the value of the origical scale which is the mean value for variability calculations
+extern REAL mean;
+
+extern REAL * phantom_poly_array[7];
+
+class InputFile_class
+{
+protected:
+
+       FILE* infile;
+       INTEGER word;
+
+       INTEGER ptr;
+       CHAR data[DATASIZ + 2];     // bug 190 - swr - 12/09/05
+
+public:
+       void Open();
+       void GetName();
+       void ReadEnergySpectralDistribution();
+       void GetInformationABoutCreationOfPhantom(INTEGER invoke);
+       void ReadBackgroundAbsorption();
+       void ReadRaysumInformation();
+       void ReadGeometryData(INTEGER invoke);
+       void ReadNumberOfRaysAndRaySpacing(INTEGER invoke);
+
+       void ReadProjectionAngles(BOOLEAN f11);
+       void GetMesurementStatistics();
+       void ReadIfoForComputionRaysums();
+       void ReadObjects(INTEGER invoke);
+
+       REAL getnum(BOOLEAN NewLine, BOOLEAN* eol);
+       // removed old (2-parameter) version of getwrd. Lajos, Dec 16, 2004
+       INTEGER getwrd(BOOLEAN NewLine, BOOLEAN* eol, const INTEGER *expect,
+                       int nexpect);
+       INTEGER getint(BOOLEAN NewLine, BOOLEAN* eol);
+       void getnxt(BOOLEAN flag, BOOLEAN newline = TRUE);
+
+       void echoline(BOOLEAN flag);  // added by Lajos, Jan 25, 2005
+};
+
+#endif
diff --git a/src/snark/int2str.cpp b/src/snark/int2str.cpp
new file mode 100644 (file)
index 0000000..0ce310f
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/int2str.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "int2str.h"
+
+////////////////////////////////////////////////
+//
+// functions
+//
+////////////////////////////////////////////////
+
+CHAR StrBuffer[5];
+
+CHAR* int2str(INTEGER Code)
+{
+       StrBuffer[0] = (CHAR) ((Code & 0xff000000) >> 24);
+       StrBuffer[1] = (CHAR) ((Code & 0x00ff0000) >> 16);
+       StrBuffer[2] = (CHAR) ((Code & 0x0000ff00) >> 8);
+       StrBuffer[3] = (CHAR) (Code & 0x000000ff);
+       StrBuffer[4] = 0;
+       return StrBuffer;
+}
diff --git a/src/snark/int2str.h b/src/snark/int2str.h
new file mode 100644 (file)
index 0000000..f680cd5
--- /dev/null
@@ -0,0 +1,19 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/int2str.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef INT2STR_H
+#define INT2STR_H
+
+#include "blkdta.h"
+
+CHAR* int2str(INTEGER Code);
+
+#endif
+
diff --git a/src/snark/lines.cpp b/src/snark/lines.cpp
new file mode 100644 (file)
index 0000000..0275781
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/lines.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+
+#include "lines.h"
+
+void lines(REAL* a, REAL* b, INTEGER nrow, INTEGER mcol, REAL scale, INTEGER lineno, INTEGER* linumb, FILE* file)
+{
+       int i;
+       INTEGER one;
+
+       REAL linout[12];
+
+       INTEGER linno3;
+       INTEGER irow;
+       INTEGER jcolum;
+       INTEGER index;
+
+       fprintf(file, "\n     scaling factor = %10.5f\n", scale);
+       fprintf(file, "\n column =            %4i", linumb[0]);
+       for (i = 1; i < lineno; i++)
+       {
+               fprintf(file, "                             %4i", linumb[i]);
+       }
+
+       fprintf(file, "\n row  ");
+       for (i = 0; i < lineno; i++)
+       {
+               fprintf(file, "  original   estimate difference ");
+       }
+
+       linno3 = 3 * lineno;
+       for (irow = 0; irow < nrow; irow++)
+       {
+               one = 0;
+               for (jcolum = 0; jcolum < lineno; jcolum++)
+               {
+                       index = (irow) * mcol + linumb[jcolum];
+
+
+                       linout[one] = scale * a[index];
+                       linout[one + 1] = scale * b[index];
+                       linout[one + 2] = linout[one + 1] - linout[one];
+
+                       one += 3;
+               }
+               fprintf(file, "\n%4i ", irow);
+               for (i = 0; i < linno3; i++)
+               {
+                       fprintf(file, "  %9.5f", linout[i]);
+               }
+       }
+       fprintf(file, "\n\n");
+
+       return;
+}
diff --git a/src/snark/lines.h b/src/snark/lines.h
new file mode 100644 (file)
index 0000000..057cf9c
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/lines.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef LINES_H
+#define LINES_H
+      
+void lines(REAL* a, REAL* b, INTEGER nrow, INTEGER mcol, REAL scale, INTEGER lineno, INTEGER* linumb, FILE* file);
+      
+#endif
diff --git a/src/snark/lino.cpp b/src/snark/lino.cpp
new file mode 100644 (file)
index 0000000..25d0021
--- /dev/null
@@ -0,0 +1,437 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/lino.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ******************************************************************
+
+ - LINOGRAM RECONSTRUCTION ALGORITHM -
+
+ THIS PROGRAM IMPLEMENTS AN IMAGE RECONSTRUCTION TECHNIQUE
+ DERIVED BY PAUL EDHOLM AND GABOR T. HERMAN.  DATA IS COLLECTED
+ IN A SPECIAL GEOMETRY,AND THE IMAGE IS THEN RECONSTRUCTED
+ (ESSENTIALLY) BY USING 3 ONE-DIMENSIONAL FOURIER TRANSFORMS.
+ VERSION 1.0 :     LYLE BERKOWITZ  AUGUST, 1986
+ 1.1 :     DAVID A. ROBERTS   MAY, 1987
+ :     RESTRUCTURED PROGRAM
+ ADDED GRIDDING ALGORITHM
+ 1.2 :     DAVID A. ROBERTS  JUNE, 1987
+ :     USE OF RTFORT TO IMPROVE SPEED
+ 1.3 :     DAVID A. ROBERTS  JULY, 1987
+ :     USE OF CHIRP-Z ALGORITHM
+ TO COMPUTE SECOND DFT
+ 1.4 :     D. ODHNER  JAN, 1989
+ ******************************************************************
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+#include "int2str.h"
+#include "anglst.h"
+#include "rtfort.h"
+#include "projfile.h"
+#include "infile.h"
+#include "qfilt.h"
+
+#include "lino.h"
+
+BOOLEAN lino_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+
+       static const REAL padwgt = 3.0;
+
+       //     NEW VARIABLES
+
+       INTEGER i, j, k, r1, ii, iii, iflag, i3, kk;
+       INTEGER b, word, filter, n3[3], np, np1, np2;
+       INTEGER nnew;
+       REAL* img;
+       INTEGER glnum, gl1num, imgnum;
+       REAL w, r, theta, sinth, costh, dold, dnew, dist, rinc;
+       REAL sum, diff, c, cutoff, factr1, factr2, factr3;
+       BOOLEAN eol;
+
+       REAL* g;
+       REAL* gl;
+       REAL *gl1;
+       REAL* otemp;
+       REAL* temp;
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+       static const INTEGER fname[3] =
+       { CHAR2INT('b', 'a', 'n', 'd'), CHAR2INT('s', 'i', 'n', 'c'), CHAR2INT('c',
+                       'o', 's', 'i') };
+
+       INTEGER intflag = 2;
+
+       //commented out since it is never used. Lajos, Dec 16, 2004
+       //static const INTEGER pad = CHAR2INT('p','a','d',' ');
+
+       int n;
+
+//-------------------------------------------------------------------
+//...              START MAIN PROGRAM
+//------------------------------------------------------------------
+
+       // INITIALIZATION
+
+       factr2 = 1.0;
+
+       // READ IN FILTER NAME FROM USER INPUT FILE
+
+       word = InFile.getwrd(TRUE, &eol, fname, 3);
+       for (filter = 0; filter < 3; filter++)
+       {
+               if (word == fname[filter])
+                       goto L0003;
+       }
+
+       fprintf(output, "\n **** %4s is not a valid filter name", int2str(word));
+       fprintf(output, "\n **** LINOGRAM execution aborted\n");
+       return TRUE;
+
+       L0003: cutoff = InFile.getnum(FALSE, &eol);
+
+       if (eol)
+       {
+               fprintf(output, "\n **** not enough parameters");
+               fprintf(output, "\n **** LINOGRAM execution aborted\n");
+               return TRUE;
+       }
+
+       if (cutoff <= 0)
+               cutoff = (REAL) 0.0001;
+
+       fprintf(output, "\n         linogram reconstruction algorithm");
+       fprintf(output, "\n          using filter %4s", int2str(word));
+       fprintf(output, "\n          cutoff = %9.4f", cutoff);
+
+       // INITIALIZE LOOP INVARIANTS
+
+       nnew = (GeoPar.nelem - 1) / 2;
+       n3[0] = 1;
+       n3[2] = 1;
+
+       // Decide whether to pad
+       k = 0;
+
+       while ((1 << k) < (GeoPar.nelem + 1))
+       {
+               k++;
+       }
+
+       if (((1 << k) + padwgt * 2 * k)
+                       <= (GeoPar.nelem + 1 + padwgt * sumfac(GeoPar.nelem + 1)))
+       {
+               n3[1] = 2;
+
+               while (n3[1] < (GeoPar.nelem + 1))
+               {
+                       n3[1] *= 2;
+               }
+
+       }
+       else
+       {
+               n3[1] = GeoPar.nelem + 1;
+       }
+
+       dold = (REAL) 2.0 / ((REAL) (GeoPar.usrays));
+       dist = 1 / (2 * n3[1] * GeoPar.pixsiz);
+       gl1num = 2 * n3[1] + 2;
+       glnum = gl1num * GeoPar.usrays;
+       imgnum = GeoPar.nelem * gl1num;
+
+       // G IS THE BASE OF PROJECTION DATA
+
+       g = new REAL[GeoPar.usrays + 2];
+
+       //******************************************************C
+       //...  BEGIN THE RECONSTRUCTION
+       //******************************************************C
+
+       // FIRST LOOP ON SETS OF PROJECTION ANGLES
+       //   IFLAG = 0 FOR THE  FIRST SET OF ANGLES (T)
+       //   IFLAG = 1 FOR THE SECOND SET OF ANGLES (C)
+
+       for (iflag = 0; iflag <= 1; iflag++)
+       {
+               // GET THE FIRST AND LAST PROJECTION NUMBERS
+
+               if (iflag == 0)
+               {
+                       np1 = 0;
+                       np2 = GeoPar.usrays;
+               }
+               else
+               {
+                       np1 = GeoPar.usrays;
+                       np2 = 2 * GeoPar.usrays;
+               }
+
+               img = new REAL[imgnum];
+               for (ii = 0; ii < imgnum; ii++)
+               {
+                       img[ii] = 0.0;
+               }
+
+               gl = new REAL[glnum];
+               for (ii = 0; ii < glnum; ii++)
+               {
+                       gl[ii] = 0.0;
+               }
+
+               gl1 = new REAL[gl1num];
+               for (ii = 0; ii < gl1num; ii++)
+               {
+                       gl1[ii] = 0.0;
+               }
+
+               b = 2;
+               for (np = np1; np < np2; np++)
+               {
+                       for (ii = 0; ii < GeoPar.usrays + 2; ii++)
+                       {
+                               g[ii] = 0.0;
+                       }
+
+                       ProjFile.ReadProj(np, g, GeoPar.usrays);
+
+                       Anglst.getang(np, &theta, &sinth, &costh);
+
+                       //-------------------------------------------------------------------C
+                       //...  1) READ IN THE PROJECTION DATA BACKWARDS
+                       //...  2) MAKE SURE GL1 ARRAY IS IN PROPER FORMAT BEFORE FFT
+                       //...     (I.E. WITH THE ZERO VALUE AT THE BEGINNING)
+                       //-------------------------------------------------------------------C
+
+                       i3 = 0;
+                       for (i = GeoPar.nelem; i >= 0; i--)
+                       {
+                               gl1[i3] = g[i];
+                               i3++;
+                       }
+
+                       for (i = GeoPar.usrays + 1; i <= 2 * n3[1]; i++)
+                       {
+                               gl1[i3] = 0.0;
+                               i3++;
+                       }
+
+                       for (i = GeoPar.usrays; i >= GeoPar.nelem + 2; i--)
+                       {
+                               gl1[i3] = g[i - 1];
+                               i3++;
+                       };
+
+                       //------------------------------------------------------------C
+                       //...  TAKE FIRST 1-D FOURIER TRANSFORM; USRAY-DIRECTION
+                       //...  ** N3(2) IS ASSIGNED HALF THE NUMBER OF ELEMENTS **
+                       //------------------------------------------------------------C
+
+                       rtfort(gl1, n3, 1);
+
+                       //------------------------------------------------------------C
+                       //...  MULTIPLY BY FILTER AND WEIGHT (AND SAMPLE SPACING)
+                       //------------------------------------------------------------C
+
+                       w = (REAL) fabs(sinth);
+                       if (iflag == 1)
+                               w = (REAL) fabs(costh);
+                       c = cutoff / (2 * GeoPar.pinc * w);
+                       j = 0;
+                       rinc = dist / w;
+                       r = 0.0;
+                       for (r1 = 0; r1 <= n3[1]; r1++)
+                       {
+                               if (r <= Consts.zero)
+                               {
+                                       gl1[j] = 0.0;
+                                       gl1[j + 1] = 0.0;
+                               }
+                               else
+                               {
+                                       factr1 = GeoPar.pinc * w * w;
+                                       if (intflag == 1)
+                                               factr2 = qfilt(r, c, 1) / r;
+                                       if (intflag == 2)
+                                       {
+                                               factr2 = qfilt(r, c, 1) / r;
+                                               factr2 = factr2 * factr2;
+                                       }
+                                       factr3 = qfilt(r, c, filter);
+                                       gl1[j] = factr1 * factr2 * factr3 * gl1[j];
+                                       gl1[j + 1] = factr1 * factr2 * factr3 * gl1[j + 1];
+                               }
+
+                               //-------------------------------------------------------------------C
+                               //...  STORE DATA IN NEW ARRAY (2-DIMENSIONAL): [NELEM+2,4NELEM+2]
+                               //-------------------------------------------------------------------C
+
+                               gl[(r1 + 1) * 2 * GeoPar.usrays - b] = gl1[j];
+                               gl[(r1 + 1) * 2 * GeoPar.usrays - b + 1] = gl1[j + 1];
+                               j += 2;
+                               r += rinc;
+                       }
+                       b += 2;
+               }
+
+               //************************************C
+               //  END OF LOOP ON PROJECTIONS
+               //************************************C
+
+               //------------------------------------------------------------------
+               //...  PERFORM GRIDDING (INCORPORATES A 1-D FFT IN ANGULAR VARIABLE)
+               //...  STORE OUTPUT OF GRIDDING IN TWO DIMENSIONAL ARRAY:
+               //...  [NELEM+1,2*NELEM]
+               //-------------------------------------------------------------------
+
+               otemp = new REAL[2 * GeoPar.nelem];
+
+               iii = 0;
+               for (n = 0; n < n3[1] + 1; n++)
+               {
+                       if (n == 0)
+                       {
+
+                               // SPECIAL CASE WHEN n = 1
+                               // DUE TO NATURE OF FILTERING, DC VALUE WILL ALWAYS BE ZERO.
+
+                               for (kk = 0; kk < 2 * GeoPar.nelem; kk++)
+                               {
+                                       otemp[kk] = 0.0;
+                               }
+                       }
+                       else
+                       {
+
+                               // ****  CHANGED DNEW FOR RTFORT!     ****
+                               //   (DUE TO PADDING WITH AN EXTRA ZERO)
+
+                               dnew = ((REAL) (n)) / (2 * n3[1]);
+
+                               // ****  USE CHIRP-Z ****
+
+                               temp = &(gl[(n) * 2 * GeoPar.usrays]);
+                               czt(temp, otemp, dold, dnew, GeoPar.nelem, nnew);
+                       }
+
+                       //-------------------------------------------------------------------
+                       //...  WRITE 'OTEMP' INTO THE 2D ARRAY 'IMG' ON A COLUMN-BY-COLUMN BASIS
+                       //-------------------------------------------------------------------
+
+                       ii = 0;
+                       for (k = 0; k < GeoPar.nelem; k++)
+                       {
+                               img[k * gl1num + iii] = otemp[ii];
+                               img[k * gl1num + iii + 1] = otemp[ii + 1];
+                               ii += 2;
+                       }
+                       iii += 2;
+               }
+               //-----------------------------------------------------------------*
+               //...  PERFORM AN INVERSE FFT ALONG ROWS IN THE ARRAY 'IMG'.
+               //...  THE FOURIER SAMPLES ARE ARRANGED IN EACH ROW STARTING FROM
+               //...  0 (DC).
+               //-----------------------------------------------------------------*
+
+               // LOOP ON ROWS OF 'IMG' (SHOULD BE 'NELEM' ROWS)
+
+               for (n = 0; n < GeoPar.nelem; n++)
+               {
+                       rtfort(&(img[n * gl1num]), n3, -1);
+
+                       //----------------------------------------------C
+                       //     MULTIPLY BY SAMPLE SPACING AFTER FFT:
+                       //----------------------------------------------C
+
+                       for (k = 0; k < 2 * n3[1]; k++)
+                       {
+                               img[(n) * gl1num + k] /= (GeoPar.pixsiz);
+                       }
+               }
+
+               //-----------------------------------------------------------------*
+               //...  WE NOW HAVE THE VALUES ALONG ROWS/COLUMNS IN THE IMAGE
+               //...  IN THE ROWS OF 'IMG'.  ALL WE HAVE TO DO NOW IS OUTPUT
+               //...  THESE VALUES IN THE PROPER ORDER INTO THE ARRAY 'RECON'.
+               //-----------------------------------------------------------------*
+
+               // LOOP ON ROWS OF 'IMG' (SHOULD BE 'NELEM' ROWS)
+
+               iii = 0;
+               for (n = GeoPar.nelem - 1; n >= 0; n--)
+               {
+
+                       // LOOP ON LAST 'N' COLUMNS IN EACH ROW [N = (NELEM-1)/2]
+
+                       ii = 0;
+                       for (k = 2 * n3[1] - nnew; k < 2 * n3[1]; k++)
+                       {
+                               if (iflag == 0)
+                               {
+                                       recon[(n) * GeoPar.nelem + ii] += img[(iii) * gl1num + k];
+                               }
+                               else
+                               {
+                                       recon[(GeoPar.nelem - ii - 1) * GeoPar.nelem + n] +=
+                                                       img[(iii) * gl1num + k];
+                               }
+                               ii++;
+                       }
+
+                       // LOOP ON FIRST 'N+1' COLUMNS IN EACH ROW
+                       // (USING THE SAME INDEX, 'ii', TO INDEX RECON ARRAY)
+
+                       for (k = 0; k < nnew + 1; k++)
+                       {
+                               if (iflag == 0)
+                               {
+                                       recon[(n) * GeoPar.nelem + ii] += img[(iii) * gl1num + k];
+                               }
+                               else
+                               {
+                                       recon[(GeoPar.nelem - ii - 1) * GeoPar.nelem + n] +=
+                                                       img[(iii) * gl1num + k];
+                               }
+                               ii++;
+                       }
+                       iii++;
+               }
+               delete[] otemp;
+               delete[] img;
+               delete[] gl;
+               delete[] gl1;
+       }
+       delete[] g;
+
+       //*************************************************C
+       //  END OF LOOP ON SETS OF PROJECTION ANGLES
+       //*************************************************C
+
+       sum = 0.0;
+
+
+       for (n = 0; n < GeoPar.area; n++)
+       {
+               sum += recon[n];
+       }
+       sum /= (REAL) (GeoPar.nelem * GeoPar.nelem);
+
+       diff = (REAL) fabs(GeoPar.aveden - sum);
+       for (n = 0; n < GeoPar.area; n++)
+       {
+               recon[n] += diff;
+       }
+       return FALSE;
+}
diff --git a/src/snark/lino.h b/src/snark/lino.h
new file mode 100644 (file)
index 0000000..960c111
--- /dev/null
@@ -0,0 +1,28 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/lino.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef LINO_H
+#define LINO_H
+
+#include "alg.h"
+
+class lino_class: public alg_class
+{
+private:
+       INTEGER sumfac(INTEGER num);
+       void czt(REAL* x, REAL* odata, REAL dold, REAL dnew, INTEGER nold,
+                       INTEGER nnew);
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif
diff --git a/src/snark/lino_czt.cpp b/src/snark/lino_czt.cpp
new file mode 100644 (file)
index 0000000..fea6c2b
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/lino_czt.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ *********************************************************
+ *                                                       *
+ *           CHIRP-Z TRANSFORM ALGORITHM                 *
+ *                                                       *
+ *     THIS ROUTINE IMPLEMENTS THE CHIRP-Z TRANSFORM     *
+ *     ALGORITHM.  USE OF THIS ALGORITHM PERMITS         *
+ *     COMPUTATION OF THE DFT OF A GIVEN                 *
+ *     INPUT SEQUENCE ALONG A MORE GENERAL CONTOUR IN    *
+ *     THE Z-PLANE.                                      *
+ *                                                       *
+ *     REFERENCE:   RABINER, SCHAFER, AND RADER,         *
+ *                IEEE TRANSACTIONS ON                   *
+ *                AUDIO AND ELECTROACOUSTICS, VOL.       *
+ *                AU-17, NO.2                            *
+ *                                                       *
+ *     VERSION 0.0 : DAVID A. ROBERTS, 7/87              *
+ *                                                       *
+ *********************************************************
+
+ INPUT -     X: ARRAY CONTAINING (COMPLEX) SAMPLES
+ DOLD: REAL SAMPLE-SPACING
+ DNEW: DESIRED FOURIER SPACING
+ 2*NOLD+1: NUMBER OF INPUT SAMPLES
+ 2*NNEW+1: NUMBER OF FOURIER SAMPLES
+
+ OUTPUT - ODATA: ARRAY CONTAINING FOURIER SAMPLES
+
+ NOTE: ALL COMPLEX QUANTITIES ARE STORED IN (real,imag) FORM.
+ */
+
+//      parameter (pi = 3.141592654)
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "snfft.h"
+#include "consts.h"
+
+#include "lino.h"
+
+void lino_class::czt(REAL* x, REAL* odata, REAL dold, REAL dnew, INTEGER nold, INTEGER nnew)
+{
+       // bug 195 - correct array sizes - swr - 1/17/06
+       REAL rl1, im1;
+       REAL pdd;
+
+       REAL phase;
+
+       INTEGER n3[3];
+       INTEGER L;
+       INTEGER offset;
+
+       INTEGER i;
+       INTEGER ii;
+       INTEGER k;
+
+       offset = 2 * nold;
+       pdd = Consts.pi * dold * dnew;
+       L = 4;
+
+       while (!(L >= (3 * nold + 1)))
+       {
+               L = L * 2;
+       }
+
+       n3[0] = L;
+       n3[1] = 1;
+       n3[2] = 1;
+
+       // FORM Y(N) SEQUENCE - L VALUES
+
+       i = 0;
+       ii = offset;
+
+       // bug 195 - correct array sizes - swr - 1/17/06
+       REAL rl[nold + 2];
+       REAL im[nold + 2];
+       REAL y[2 * L];
+
+       for (k = 0; k <= nold; k++)
+       {
+               phase = -pdd * k * k;
+               rl[k] = (REAL) cos(phase);
+               im[k] = (REAL) sin(phase);
+               y[i] = rl[k] * x[ii] - im[k] * x[ii + 1];
+               y[i + 1] = im[k] * x[ii] + rl[k] * x[ii + 1];
+               i += 2;
+               ii += 2;
+       }
+
+       for (k = 1; k <= 2 * (L - 2 * nold - 1); k++)
+       {
+               y[i] = 0.0;
+               i++;
+       }
+
+       ii = 0;
+       for (k = -nold; k <= -1; k++)
+       {
+               rl1 = rl[-k];
+               im1 = im[-k];
+               y[i] = rl1 * x[ii] - im1 * x[ii + 1];
+               y[i + 1] = im1 * x[ii] + rl1 * x[ii + 1];
+               i += 2;
+               ii += 2;
+       }
+
+       // COMPUTE L-POINT FFT OF Y(N)
+
+       snfft(y, n3, 1);
+
+       // FORM V(N) SEQUENCE - L VALUES
+
+       REAL v[2 * L];   // bug 195 - correct array sizes - swr - 1/17/06
+
+       i = 0;
+       for (k = 0; k <= L / 2; k++)
+       {
+               phase = pdd * k * k;
+               v[i] = (REAL) cos(phase);
+               v[i + 1] = (REAL) sin(phase);
+               i += 2;
+       }
+
+       ii = i - 4;
+       for (k = -(L / 2) + 1; k <= -1; k++)
+       {
+               v[i] = v[ii];
+               v[i + 1] = v[ii + 1];
+               ii -= 2;
+               i += 2;
+       }
+
+       // COMPUTE L-POINT FFT OF V(N)
+
+       snfft(v, n3, 1);
+
+       // MULTIPLY THE ARRAYS Y AND V, POINT-BY-POINT; CALL THE RESULT G(N)
+
+       REAL g[2 * L];   // bug 195 - correct array sizes - swr - 1/17/06
+       i = 0;
+       for (k = 0; k < L; k++)
+       {
+               g[i] = v[i] * y[i] - v[i + 1] * y[i + 1];
+               g[i + 1] = v[i + 1] * y[i] + v[i] * y[i + 1];
+               i += 2;
+       }
+
+       // COMPUTE L-POINT INVERSE FFT OF G(N)
+
+       snfft(g, n3, -1);
+
+       // MULTIPLY G(N) BY (dold)*exp(-i*pi*dold*dnew*k*k)
+       // MAKE SURE THAT ODATA IS IN PROPER FORMAT (DC-VALUE IN MIDDLE)
+
+       i = 2 * nnew;
+       ii = 0;
+       for (k = 0; k <= nnew; k++)
+       {
+               rl1 = dold * rl[k];
+               im1 = dold * im[k];
+               odata[i] = g[ii] * rl1 - g[ii + 1] * im1;
+               odata[i + 1] = g[ii + 1] * rl1 + g[ii] * im1;
+               i += 2;
+               ii += 2;
+       }
+
+       i = 0;
+       ii = 2 * L - 2 * nnew;
+       for (k = -nnew; k <= -1; k++)
+       {
+               rl1 = dold * rl[-k];
+               im1 = dold * im[-k];
+               odata[i] = g[ii] * rl1 - g[ii + 1] * im1;
+               odata[i + 1] = g[ii + 1] * rl1 + g[ii] * im1;
+               i += 2;
+               ii += 2;
+       }
+
+       return;
+}
diff --git a/src/snark/lino_sumfac.cpp b/src/snark/lino_sumfac.cpp
new file mode 100644 (file)
index 0000000..8b94670
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/lino_sumfac.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Sum of the prime factors of num
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "primfc.h"
+
+#include "lino.h"
+
+INTEGER lino_class::sumfac(INTEGER num)
+{
+       INTEGER sum, m2s, nipf, mnipf, k;
+
+       INTEGER* ipf;
+
+       mnipf = 2;
+
+       while ((1 << mnipf) < num)
+       {
+               mnipf++;
+       }
+
+       ipf = new INTEGER[mnipf];
+       primfc(num, &m2s, &nipf, ipf, mnipf);
+       sum = 2 * m2s;
+
+       for (k = 0; k < nipf; k++)
+       {
+               sum += ipf[k];
+       }
+
+       delete[] ipf;  // bug 92 - Lajos - 03/02/2005
+
+       return sum;
+}
diff --git a/src/snark/main.cpp b/src/snark/main.cpp
new file mode 100644 (file)
index 0000000..0ccd87c
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/main.cpp $
+ $LastChangedRevision: 118 $
+ $Date: 2014-07-09 14:22:29 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+
+//jk 12/08/07  combining snark with experimenter into a single program
+#include <unistd.h>         //provides routine for parsing the command line
+
+#include "snark.h"
+extern "C"
+{
+#include "experimenter.h"
+}
+
+int main(int argc, char *argv[])
+{
+       int choice = 1;       //runs "plain snark" by default
+       int c;
+       extern int optind, optopt;
+
+       while ((c = getopt(argc, argv, "eh")) != -1)
+       {
+               switch (c)
+               {
+               case 'e':
+                       choice = 2;
+                       break;
+               case 'h':
+                       fprintf(stderr, "\nsnark14 [-e] [-h] [input_file] [>>output_file]\n");
+                       fprintf(stderr, "  \tRuns snark14 image reconstruction program.\n");
+                       fprintf(stderr, "  \nOPTIONS:\n");
+                       fprintf(stderr, "  -e \truns the experimenter\n");
+                       fprintf(stderr, "  -h \tdisplays this help message\n");
+                       fprintf(stderr, "  input_file \tcontains input for either snark14 or experimenter \n");
+                       fprintf(stderr, "  >>output_file \toutput is redirected to this file\n\n");
+                       return 0;
+               case '?':
+                       fprintf(stderr,
+                                       "Unrecognized option: -%c\nRun \"snark14 -h\"  for more information.\n\n",
+                                       optopt);
+                       return -1;
+
+               }
+       }
+
+       if (argc - optind + 1 > 2)
+       {
+               fprintf(stderr, "ERROR: too many arguments on the command line.\n"
+                               "Run \"snark14 -h\"  for more information.\n\n");
+               return 0;
+       }
+
+       if (1 == choice)
+       {
+               //call snark14 and pass the parameters
+               snark(argc - optind + 1, argv);
+       }
+       else if (2 == choice)
+       {
+               //call snark14Experimenter and pass the parameters
+               experimenter(argc - optind + 1, argv);
+       }
+       else
+       {
+               fprintf(stderr, "Error: Invalid choice entered. \n\n");
+       }
+
+       return 0;
+
+} //end of main
diff --git a/src/snark/mart.cpp b/src/snark/mart.cpp
new file mode 100644 (file)
index 0000000..1df619a
--- /dev/null
@@ -0,0 +1,709 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/mart.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ IMPLEMENTATIONS OF VARIOUS VERSIONS OF MULTIPLICATIVE ART ALGORITHM
+ PROGRAMMED BY A. V. LAKSHMINARAYANAN AND A. LENT
+ SUNY AT BUFFALO, MAY, 1977;  REVISED JAN 78
+ IT IS ASSUMED THAT PROJECTION DATA ARE INTRINSICALLY NONNEGATIVE
+ NONNEGATIVE RECONSTRUCTIONS ARE SOUGHT
+
+ DESCRIPTION OF PARAMETERS
+
+ INPUT CONSISTS OF THE KEYWORD 'METHOD' FOLLOWED BY ONE OF FOUR
+ OPTIONS 'GBH', 'LENT', 'LAK1', 'LAK2', FOLLOWED BY AN INTEGER
+ MODIFIER KOUNT, TWO FLOATING POINT MODIFIERS  RELAX AND DATZRO,
+ OPTIONALLY FOLLOWED BY WORD MODIFIERS 'NORMAL', 'ENTROPY'
+ THE KEYWORD 'METHOD' MUST BE PRESENT; ITS MODIFIERS HAVE THE
+ FOLLOWING MEANING
+
+ 'GBH', USE MULTIPLICATIVE ART ALGORITHM OF GORDON AND HERMAN
+ INT. REV. CYTOL. 38, 1974
+ START WITH PICTURE UNIFORMLY AVEDEN
+ RELAXATION PARAMETER ADDED TO LITERATURE VERSION OF
+ ALGORITHM
+ 'LENT', USE MULTIPLICATIVE ART ALGORITHM OF LENT
+ PROC. CONF ON IMAGE ANALYSIS AND EVALUATION, JULY,1976, TORON
+ SOCIETY OF PHOTOGRAPHIC SCIENTISTS AND ENGINEERS
+ START WITH PICTURE AVEDEN EXCEPT FOR PIXELS IN RAYS WITH ZERO
+ PROJECTION DATA
+ THIS STARTING POINT IS IMMEDIATELY CHANGED BY APPLICATION
+ OF NORMALIZATION CONSTRAINT
+ NORMALIZE COEFFICIENT MATRIX BY ROWS
+
+ 'LAK1', USE (APPROX) MULTIPLICATIVE ART ALGORITHM OF LAKSHMINARAYANAN
+ LINEAR APPROXIMATION TO THE NONINTEGRAL POWER OF MULT ART.
+ FIRST TWO TERMS OF THE BINOMIAL EXPANSION USED.
+ USE SAME STARTING POINT AS UNDER 'LENT'
+ NORMALIZE COEFFICIENTS BY MAX ELEMENT OF PROJECTION MATRIX
+
+ 'LAK2', USE (APPROX) MULT ART OF LAKSHMINARAYANAN
+ QUADRATIC APPROXIMATION TO THE NONINTEGRAL POWER OF MULT ART.
+ FIRST THREE TERMS OF THE BINOMIAL EXPANSION USED.
+ SAME STARTING POINT AND COEFFICIENT NORMALIZATION AS 'LAK1'
+
+ IF KOUNT .NE. 0, USE ONLY THE FIRST KOUNT RAYS OF THE PICK SEQUENCE
+ THE EFFECT OF KOUNT IS DETERMINED BY THE SNARK SELECT CARD
+ DEFAULT...IF KOUNT .LE. 0, KOUNT RESET  TO COMPLETE SET OF PROJ DATA
+
+ RELAX IS THE UNDERRELXATION PARAMETER.
+ VALUES LESS THAN 1.0 ARE SUGGESTED FOR NOISY PROJECTION DATA.
+ VALUES BIGGER THAN 1.0 ARE NOT PROHIBITED BY THEORY AND MAY SPEED
+ CONVERGENCE.
+ THE    PRECEDING REMARKS ARE NOT MEANINGFUL FOR 'GBH'
+ FOR 'GBH', RELAX MUST BE CONSIDERED TO HAVE DIMENSIONS
+
+ DATZRO..ANY PROJECTION DATA WITH VALUE .LE. THAN DATZRO WILL BE
+ CONSIDERED ZERO BY THE PROGRAM.
+
+ 'NORMAL' , IF PRESENT, NORMALIZE RECON TO DENSITY AVEDEN
+ AT END OF EACH ITERATION
+
+ 'ENTROPY' ,IF PRESENT, CALCULATE AND PRINT ENTROPY FUNCTIONAL
+ DEFINITION
+ LET T = SIGMA RECON(I) OVER ALL PIXELS
+ LET Y(I) = RECON(I)/T
+ ENTROPY = - SIGMA Y(I)*ALOG(Y(I))
+
+ EXAMPLE INPUT SEQUENCES FOLLOW
+ METHOD GBH 0 RELAX = 1.0 IGNORE RAYSUMS LT 0.0
+ METHOD LAK1 KOUNT = 0  0.8  0.0 ENTROPY
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+#include "int2str.h"
+#include "pick.h"
+#include "ray.h"
+#include "wray.h"
+#include "anglst.h"
+#include "pseudo.h"
+#include "infile.h"
+#include "blob.h"
+#include "raysel.h"
+
+#include "projfile.h"  //for debugg purpose
+
+#include "mart.h"
+
+BOOLEAN mart_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       static const INTEGER hmeth = CHAR2INT('m', 'e', 't', 'h');
+       static const INTEGER hnorm = CHAR2INT('n', 'o', 'r', 'm');
+       static const INTEGER hentr = CHAR2INT('e', 'n', 't', 'r');
+
+       static const INTEGER gbh = CHAR2INT('g', 'b', 'h', ' ');
+       static const INTEGER lent = CHAR2INT('l', 'e', 'n', 't');
+       static const INTEGER lak1 = CHAR2INT('l', 'a', 'k', '1');
+       static const INTEGER lak2 = CHAR2INT('l', 'a', 'k', '2');
+
+       BOOLEAN xalg0_tmp;
+       BOOLEAN eol;
+       static INTEGER nalg;
+       INTEGER word;
+       static REAL datzro; //set static
+       static INTEGER lnorm;
+       static INTEGER lfnal;
+       INTEGER i;
+       INTEGER np;
+       INTEGER nr;
+       REAL raysum;
+       INTEGER numb;
+       REAL snorm;
+       INTEGER j;
+       INTEGER l;
+       INTEGER isum;
+       REAL fact;
+       static REAL aijmax; // set static
+       REAL wj;
+       INTEGER k;
+       REAL trysum;
+       REAL corfac;
+       REAL delu;
+       REAL ajmax;
+       REAL corr;
+       REAL roaij;
+       REAL reldif;
+       REAL aij;
+       REAL hafrel;
+       REAL hafabs;
+       REAL fac;
+       REAL tot;
+       REAL entrop;
+       REAL rot;
+       static INTEGER kount;
+       static REAL relax; //set static
+
+       INTEGER area;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+               //    num_rays = GeoPar.nrays;
+       }
+
+       else
+       {
+               area = Blob.area;
+               //    num_rays = GeoPar.usrays;
+       }
+
+       xalg0_tmp = FALSE;
+
+       if (!(iter > 1))
+       {
+
+               // GET THE METHOD
+
+               INTEGER exp0[1] =
+               { hmeth };
+               word = InFile.getwrd(TRUE, &eol, exp0, 1);
+
+               if (eol)
+               {
+                       fprintf(output,
+                                       "\n          **** error - keyword method is missing***");
+                       return TRUE;
+               }
+
+               INTEGER exp1[4] =
+               { gbh, lent, lak1, lak2 };
+
+               word = InFile.getwrd(FALSE, &eol, exp1, 4);
+
+               if (eol)
+               {
+                       fprintf(output, "\n          **** error - one and only one of the following methods must be specified : gbh, lent, lak1, or lak2***");
+                       return TRUE;
+               }
+
+               if (word == gbh)
+               {
+                       nalg = 1;
+                       fprintf(output, "\n          multiplicative art version %s",
+                                       int2str(gbh));
+               }
+               else if (word == lent)
+               {
+                       nalg = 2;
+                       fprintf(output, "\n          multiplicative art version %s",
+                                       int2str(lent));
+               }
+               else if (word == lak1)
+               {
+                       nalg = 3;
+                       fprintf(output, "\n          multiplicative art version %s",
+                                       int2str(lak1));
+               }
+               else
+               {  //lak2
+                       nalg = 4;
+                       fprintf(output, "\n          multiplicative art version %s",
+                                       int2str(lak2));
+               }
+
+               // GET KOUNT, RELAXATION PARAMETER, RAYSUM LIMIT, NORMAL, ENTROPY
+               kount = InFile.getint(FALSE, &eol);
+
+               relax = InFile.getnum(FALSE, &eol);
+
+               datzro = InFile.getnum(FALSE, &eol);
+
+               if (eol)
+               {
+                       fprintf(output,
+                                       "\n          **** some data is missing: either kount, relax, or data_zero***");
+                       return TRUE;
+               }
+
+               // optional inputs
+
+               INTEGER exp3[2] =
+               { hnorm, hentr };
+               word = InFile.getwrd(FALSE, &eol, exp3, 2);
+
+               if (eol)
+                       goto L10;
+               // finished reading input
+
+               lnorm = FALSE;
+               lfnal = FALSE;
+
+               if (word == hnorm)
+               {
+                       lnorm = TRUE;
+                       INTEGER exp3a[1] =
+                       { hentr };
+                       word = InFile.getwrd(FALSE, &eol, exp3a, 1);
+                       if (word == hentr)
+                               goto L5;
+                       else
+                               goto L10;
+               }
+
+               else
+               {
+                       L5: lfnal = TRUE;
+               }
+
+               //***  CHECKING INPUTS AND SETTING DEFAULTS
+               L10: if (kount <= 0)
+               {
+                       if (RaySel.useray)  // select user
+                               kount = GeoPar.prjnum * GeoPar.usrays; // change nrays to usrays. hstau 7/2003
+                       else
+                               //select snark
+                               kount = GeoPar.prjnum * GeoPar.snrays;
+               } // set value to kount for select user or select snark. Wei   11/2004
+
+               if (relax <= 0)
+                       relax = 1.0;
+               if ((nalg == 3) && (relax > 1.0))
+                       relax = 1.0;
+               if (datzro < Consts.zero)
+                       datzro = Consts.zero;
+
+               fprintf(output, "\n          no of rays used in each iteration %10i",
+                               kount);
+               fprintf(output, "\n          underrelaxation factor %10.5f", relax);
+               fprintf(output,
+                               "\n          all projection data with values less than %20.10e are ignored",
+                               datzro);
+
+               if (lnorm)
+               {
+                       fprintf(output, "\n          reconstruction is normalized");
+               }
+               else
+               {
+                       fprintf(output, "\n          reconstruction not normalized");
+               }
+
+               if (lfnal)
+               {
+                       fprintf(output, "\n          entropy functional is calculated");
+               }
+               else
+               {
+                       fprintf(output, "\n          entropy functional not calculated");
+               }
+
+               if (GeoPar.aveden <= Consts.zero)
+               {
+                       fprintf(output,
+                                       "\n ***aveden too small.  probably incorrect use of mart, no execution***");
+                       return TRUE;
+               }
+
+               for (i = 0; i < area; i++)
+               {
+                       recon[i] = GeoPar.aveden;
+               }
+
+               //***  NO CHOICE IN INITIAL GUESS; EXALG OPTIONS DONT OPERATE
+
+               if (nalg != 1)
+               {
+                       //  WILL ZERO OUT ANY PIXEL IN A RAY WITH ZERO PROJ DATA
+                       for (np = 0; np < GeoPar.prjnum; np++)
+                       {
+                               for (nr = 0; nr < GeoPar.nrays; nr++)
+                               {
+                                       raysum = Anglst.prdta(np, nr);
+                                       if (raysum <= datzro)
+                                       {
+                                               if (GeoPar.strip)
+                                               {
+                                                       if (Blob.pix_basis)
+                                                       {
+                                                               ray(np, nr, list, weight, &numb, &snorm);
+                                                       }
+                                                       else
+                                                       {
+                                                               Blob.bray(np, nr, list, weight, &numb, &snorm);
+                                                       }
+                                               }
+                                               if (GeoPar.line)
+                                               {
+                                                       if (Blob.pix_basis)
+                                                       {
+                                                               wray(np, nr, list, weight, &numb, &snorm);
+                                                       }
+                                                       else
+                                                       {
+                                                               Blob.bwray(np, nr, list, weight, &numb, &snorm);
+                                                       }
+                                               }
+                                               if (numb != 0)
+                                               {
+                                                       for (j = 0; j < numb; j++)
+                                                       {
+                                                               l = list[j];
+                                                               recon[l] = 0.0;
+                                                       }
+                                               }
+                                       }
+                               }
+
+                       }
+
+                       isum = 0;
+
+                       for (i = 0; i < area; i++)
+                       {
+                               if (recon[i] != 0.0)
+                               {
+
+                                       if (!Blob.pix_basis)
+                                       { //if blobs
+                                               if (i % 2 == Blob.pr)
+                                               {
+                                                       isum++;
+                                               }
+                                       }
+                                       else
+                                       {
+                                               isum++;
+                                       }
+                               }
+                       }
+
+                       if (isum == 0)
+                       {
+
+                               fprintf(output,
+                                               "\n  ***warning-  all projection data near zero. zero reconstruction.***");
+                               return TRUE;
+                       }
+
+                       //  NORMALIZE
+
+                       fact = area * GeoPar.aveden / isum;
+                       if (!Blob.pix_basis)
+                       { //if blobs
+                               fact = fact / 2.0;
+                       }
+                       for (i = 0; i < area; i++)
+                       {
+                               if (recon[i] != 0.0)
+                                       recon[i] = fact;
+                       }
+
+                       //  LOCATE BIGGEST ELEMENT IN PROJECTION MATRIX FOR LAK1 AND LAK2 ONLY
+                       //  THIS STRATEGY IS CONSERVATIVE IN THAT COEFFICIENTS OF PIXELS
+                       //  WHOSE VALUES ARE KNOWN TO BE ZERO ARE INCLUDED IN THE SEARCH
+                       if (nalg != 2)
+                       {
+                               aijmax = 0.0;
+                               for (np = 0; np < GeoPar.prjnum; np++)
+                               {
+                                       for (nr = 0; nr < GeoPar.nrays; nr++)
+                                       {
+                                               if (GeoPar.strip)
+                                               {
+                                                       if (Blob.pix_basis)
+                                                       {
+                                                               ray(np, nr, list, weight, &numb, &snorm);
+                                                       }
+                                                       else
+                                                       {
+                                                               Blob.bray(np, nr, list, weight, &numb, &snorm);
+                                                       }
+                                               }
+                                               if (GeoPar.line)
+                                               {
+                                                       if (Blob.pix_basis)
+                                                       {
+                                                               wray(np, nr, list, weight, &numb, &snorm);
+                                                       }
+                                                       else
+                                                       {
+                                                               Blob.bwray(np, nr, list, weight, &numb, &snorm);
+                                                       }
+                                               }
+                                               if (numb != 0)
+                                               {
+                                                       for (j = 0; j < numb; j++)
+                                                       {
+                                                               wj = weight[j];
+                                                               if (wj > aijmax)
+                                                                       aijmax = wj;
+                                                       }
+                                               }
+                                       }
+
+                               }
+
+                               //  BASIC UPDATE PART OF PROGRAM
+                       }
+               }
+       }
+
+       switch (nalg)
+       {
+
+       //  GORDON,BENDER,HERMAN MULT ART
+       case 1:
+               for (k = 0; k < kount; k++)
+               {
+                       pick(&np, &nr);
+
+                       raysum = Anglst.prdta(np, nr);
+                       if (Blob.pix_basis)
+                       {
+                               trysum = pseudo(recon, np, nr, list, weight, &numb, &snorm,
+                                               GeoPar.line, FALSE);
+                       }
+                       else
+                       {
+                               trysum = Blob.bpseudo(recon, np, nr, list, weight, &numb,
+                                               &snorm, GeoPar.line, FALSE);
+                       }
+                       if (numb != 0)
+                       {
+                               if (raysum <= datzro)
+                               {
+                                       for (j = 0; j < numb; j++)
+                                       {
+                                               l = list[j];
+                                               recon[l] = 0.0;
+                                       }
+                               }
+                               else
+                               {
+
+                                       if ((trysum <= Consts.zero) && (trace >= 1))
+                                       {
+                                               fprintf(output,
+                                                               "\n zero pseudo proj dat %5i %5i %10.5f %10.5f",
+                                                               np, nr, raysum, trysum);
+                                       }
+
+                                       if (trysum > Consts.zero)
+                                       {
+                                               corfac = relax * (REAL) log(raysum / trysum);
+                                               for (j = 0; j < numb; j++)
+                                               {
+                                                       l = list[j];
+                                                       recon[l] *= (REAL) exp(corfac * weight[j]);
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               //  END GBH UBDATE
+               break;
+
+               //  LENT MULT ART
+
+       case 2:
+
+               for (k = 0; k < kount; k++)
+               {
+                       pick(&np, &nr);
+                       raysum = Anglst.prdta(np, nr);
+                       if (raysum > datzro)
+                       {
+                               if (Blob.pix_basis)
+                               {
+                                       trysum = pseudo(recon, np, nr, list, weight, &numb, &snorm,
+                                                       GeoPar.line, FALSE);
+                               }
+                               else
+                               {
+                                       trysum = Blob.bpseudo(recon, np, nr, list, weight, &numb,
+                                                       &snorm, GeoPar.line, FALSE);
+                               }
+                               if (numb != 0)
+                               {
+                                       if (trysum != 0.0)
+                                       {
+                                               delu = (REAL) log(raysum / trysum);
+
+                                               // FIND ROW SCALE FACTOR
+                                               ajmax = 0.0;
+
+                                               for (j = 0; j < numb; j++)
+                                               {
+                                                       if (weight[j] > ajmax)
+                                                               ajmax = weight[j];
+                                               }
+
+                                               corr = relax * delu / ajmax;
+
+                                               for (j = 0; j < numb; j++)
+                                               {
+                                                       l = list[j];
+                                                       recon[l] *= (REAL) exp(corr * weight[j]);
+                                               }
+
+                                       }
+                               }
+                       }
+               }
+
+               // END LENT UPDATE
+               break;
+
+               // LAK APPROX MULT ART - LINEAR APPROXIMATION
+       case 3:
+
+               roaij = relax / aijmax;
+
+               for (k = 0; k < kount; k++)
+               {
+                       pick(&np, &nr);
+                       raysum = Anglst.prdta(np, nr);
+                       if (raysum > datzro)
+                       {
+                               if (Blob.pix_basis)
+                               {
+                                       trysum = pseudo(recon, np, nr, list, weight, &numb, &snorm,
+                                                       GeoPar.line, FALSE);
+                               }
+                               else
+                               {
+                                       trysum = Blob.bpseudo(recon, np, nr, list, weight, &numb,
+                                                       &snorm, GeoPar.line, FALSE);
+                               }
+                               if (!((numb == 0) || (trysum <= Consts.zero)))
+                               {
+                                       reldif = (raysum - trysum) / MAX0(raysum, trysum);
+
+                                       // LINEAR APPROX
+                                       for (j = 0; j < numb; j++)
+                                       {
+                                               l = list[j];
+                                               aij = weight[j] * roaij;
+                                               recon[l] *= ((REAL) 1.0 + reldif * aij);
+                                       }
+                               }
+                       }
+               }
+               break;
+
+               //END LAK1 UPDATE
+               // LAK APPROX MULT ART - QUADRATIC APPROXIMATION
+
+       case 4:
+
+               roaij = relax / aijmax;
+
+               for (k = 0; k < kount; k++)
+               {
+                       pick(&np, &nr);
+                       raysum = Anglst.prdta(np, nr);
+                       if (raysum > datzro)
+                       {
+                               if (Blob.pix_basis)
+                               {
+                                       trysum = pseudo(recon, np, nr, list, weight, &numb, &snorm,
+                                                       GeoPar.line, FALSE);
+                               }
+                               else
+                               {
+                                       trysum = Blob.bpseudo(recon, np, nr, list, weight, &numb,
+                                                       &snorm, GeoPar.line, FALSE);
+                               }
+                               if (!((numb == 0) || (trysum <= Consts.zero)))
+                               {
+                                       reldif = (raysum - trysum) / MAX0(raysum, trysum);
+
+                                       // QUADRATIC APPROX
+                                       hafrel = (REAL) 0.5 * reldif;
+                                       hafabs = (REAL) fabs(hafrel);
+                                       for (j = 0; j < numb; j++)
+                                       {
+                                               l = list[j];
+                                               aij = weight[j] * roaij;
+                                               fac = (REAL) 1.0
+                                                               + reldif * aij
+                                                                               * ((REAL) 1.0 + hafrel * aij + hafabs);
+                                               recon[l] *= fac;
+                                       }
+                               }
+                       }
+               }
+               break;
+
+       }
+       //  END LAK2 UPDATE
+
+       //  CHECK OPTIONS
+
+       if (!(lnorm || lfnal))
+               return xalg0_tmp;
+
+       tot = 0.0;
+
+       for (i = 0; i < area; i++)
+       {
+               if (!Blob.pix_basis)
+               { //if blobs
+                       if (i % 2 == Blob.pr)
+                       {
+                               tot += recon[i];
+                       }
+               }
+               else
+               {
+                       tot += recon[i];
+               }
+       }
+
+       if (tot > Consts.zero)
+       {
+               if (lnorm)
+               {
+                       fact = GeoPar.aveden * area / tot;  // aveden in both basis concide
+                       if (!Blob.pix_basis)
+                       {
+                               fact /= 2.0;
+                       }
+                       for (i = 0; i < area; i++)
+                       {
+                               recon[i] *= fact;
+                       }
+
+                       tot = GeoPar.aveden * area;
+                       if (!Blob.pix_basis)
+                       {
+                               tot /= 2.0;
+                       }
+               }
+
+               if (!lfnal)
+                       return xalg0_tmp;
+
+               entrop = 0.0;
+               for (i = 0; i < area; i++)
+               {
+                       if (recon[i] > 0.0)
+                       {
+                               rot = recon[i] / tot;
+                               entrop -= rot * (REAL) log(rot); //remove the minus sign here, wei
+                       }
+               }
+
+               fprintf(output,
+                               "\n                                                        iter %5i entropy %20.10e",
+                               iter, entrop);
+
+               return xalg0_tmp;
+       }
+       fprintf(output,
+                       "\n ***total density %20.10e  is too small, no normalization or entropy calculation***",
+                       tot);
+       return xalg0_tmp;
+}
diff --git a/src/snark/mart.h b/src/snark/mart.h
new file mode 100644 (file)
index 0000000..6e81708
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/mart.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef MART_H
+#define MART_H      
+
+#include "alg.h"
+
+class mart_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif  // MART_H    
diff --git a/src/snark/mode.cpp b/src/snark/mode.cpp
new file mode 100644 (file)
index 0000000..30a4cbd
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/mode.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ SETS THE CONSTRAINT MODE PARAMETERS IN USER COMMON.
+ THESE ARE:
+ LOFL - LOWER CONSTRAINT FLAG
+ LOWER- LOWER CONSTRAINT VALUE
+ UPFL - UPPER CONSTRAINT FLAG
+ UPPER- UPPER CONSTRAINT VALUE
+ */
+
+#include <cstdlib>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "modefl.h"
+#include "uiod.h"
+
+#include "int2str.h"
+#include "infile.h"
+
+#include "mode.h"
+
+void mode()
+{
+       INTEGER word;
+
+       BOOLEAN eol;
+
+       static const INTEGER mode_codes[2] =
+       { CHAR2INT('l', 'o', 'w', 'e'), CHAR2INT('u', 'p', 'p', 'e') };
+
+       Modefl.lofl = FALSE;
+       Modefl.upfl = FALSE;
+
+       word = InFile.getwrd(FALSE, &eol, mode_codes, 2);
+
+       while (!eol)
+       {
+               if (word == mode_codes[0])
+               {
+                       Modefl.lofl = TRUE;
+                       Modefl.lower = InFile.getnum(FALSE, &eol);
+
+                       if (eol)
+                       {
+                               fprintf(output, "\n **** value after keyword LOWER can not be found\n **** program aborted\n");
+                               exit(-1);
+                       };
+
+               };
+
+               if (word == mode_codes[1])
+               {
+                       Modefl.upfl = TRUE;
+                       Modefl.upper = InFile.getnum(FALSE, &eol);
+
+                       if (eol)
+                       {
+                               fprintf(output,
+                                               "\n **** value after keyword UPPER can not be found\n **** program aborted\n");
+                               exit(-1);
+                       };
+               }
+
+               word = InFile.getwrd(FALSE, &eol, mode_codes, 2);
+
+       }
+
+       //if both flags ('Modefl.lofl' & 'Modefl.upfl') are set to TRUE, but lower
+       //constraint ('Modefl.lower') was given a value greater than that given to upper constraint
+       //('Modefl.upper'), then output complaint to user and exit execution of snark05 (with exit code 111)
+       if (Modefl.lofl && Modefl.upfl)
+       {
+               if (Modefl.lower > Modefl.upper)
+               {
+                       fprintf(output,
+                                       "\n **** LOWER must not be greater than UPPER\n **** program aborted\n");
+                       exit(-1);
+               }
+       }
+
+       if (Modefl.lofl)
+       {
+               fprintf(output, "\n      lower constraint set to %9.4f", Modefl.lower);
+       }
+
+       if (Modefl.upfl)
+       {
+               fprintf(output, "\n      upper constraint set to %9.4f", Modefl.upper);
+       }
+}
diff --git a/src/snark/mode.h b/src/snark/mode.h
new file mode 100644 (file)
index 0000000..6436f73
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/mode.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef MODE_H
+#define MODE_H
+
+void mode();
+
+#endif
diff --git a/src/snark/modefl.cpp b/src/snark/modefl.cpp
new file mode 100644 (file)
index 0000000..8f0e531
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/modefl.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ */
+
+#include "modefl.h"
+
+modefl_class Modefl =
+{
+FALSE, 0.0,
+FALSE, 0.0
+};
+
diff --git a/src/snark/modefl.h b/src/snark/modefl.h
new file mode 100644 (file)
index 0000000..b9d50fa
--- /dev/null
@@ -0,0 +1,22 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/modefl.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef MODEFL_H
+#define MODEFL_H
+
+#include "blkdta.h"
+
+extern class modefl_class
+{
+public:
+       BOOLEAN lofl;REAL lower;BOOLEAN upfl;REAL upper;
+} Modefl;
+
+#endif
diff --git a/src/snark/nav.cpp b/src/snark/nav.cpp
new file mode 100644 (file)
index 0000000..0f81256
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "nav.h"
+
+void nav_class::Init()
+{
+}
+void nav_class::Run(REAL* xkn, REAL* vkn)
+{
+}
diff --git a/src/snark/nav.h b/src/snark/nav.h
new file mode 100644 (file)
index 0000000..303a3fc
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef NAV_H
+#define NAV_H
+
+#include "blkdta.h"
+
+class nav_class
+{
+public:
+       virtual void Init();
+       virtual void Run(REAL* xkn, REAL* vkn);
+};
+
+#endif
diff --git a/src/snark/nav1.cpp b/src/snark/nav1.cpp
new file mode 100644 (file)
index 0000000..ca1a5fe
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav1.cpp $
+ $LastChangedRevision: 153 $
+ $Date: 2014-07-27 21:27:06 -0500 (Sun, 27 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+
+**************************************************************************************
+Non-ascending vector for secondary optimization criterion "total variation" (sec_cri1)
+**************************************************************************************
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <iostream>
+#include "nav1.h"
+#include "math.h"
+#include "anglst.h"
+#include "blob.h"
+
+void nav1_class::Run(REAL* xkn, REAL* vkn)
+{
+ int pixelcount = GeoPar.area;
+  
+ REAL gradientSquareNorm = 0;
+ calcGradient(xkn, vkn);
+ for(INTEGER i = 0; i < pixelcount; i++)
+     gradientSquareNorm += pow(vkn[i], 2);
+  
+ REAL gradientNorm = sqrt(gradientSquareNorm);
+ if(gradientNorm > pow(10,-15))
+    for(INTEGER i = 0; i < pixelcount; i++)
+        vkn[i] = (-1.0) * vkn[i] / gradientNorm;
+ else
+    for(INTEGER i = 0; i < pixelcount; i++)
+        vkn[i] = 0.0;
+}
+
+void nav1_class::calcGradient(REAL* x, REAL* grad)
+{
+ // read image dimensions
+ int nelem = GeoPar.nelem;
+ int pixelcount = GeoPar.area;
+  
+ // define minimum value for divisions
+ const double min = pow(10,-15);
+  
+ // set gradient starting value
+ memset(grad,0,pixelcount*sizeof(REAL));
+  
+ // formula 1
+ // (2*x[i]-x[i+1]-x[i+nelem])/sqrt(pow(x[i]-x[i+1],2)+pow(x[i]-x[i+nelem],2))
+
+ // formula 2
+ // (x[i]-x[i-1])/sqrt(pow(x[i-1]-x[i],2)+pow(x[i-1]-x[i-1+nelem],2))
+
+ // formula 3
+ // (x[i]-x[i-nelem])/sqrt(pow(x[i-nelem]-x[i+1-nelem],2)+pow(x[i-nelem]-x[i],2))
+ /*
+  __________________________
+ |1|       1 & 2         |2|
+ |-|---------------------|-|
+ | |                     | |
+ | |                     | |
+ |1|                     | |
+ | |                     | |
+ |&|      1 & 2 & 3      |2|
+ | |                     | |
+ |3|                     | |
+ | |                     | |
+ | |                     | |
+ |_|_____________________|_|
+ |3|          3          |0|
+  -------------------------
+ */
+ // top left pixel: only formula 1 applies
+ double denx = pow(x[0]-x[1],2)+pow(x[0]-x[nelem],2);
+ if(denx>min){
+    grad[0]=(2*x[0]-x[1]-x[nelem])/sqrt(denx);
+   }
+  
+ double deny;
+ // (rest of) top row: formulas 1 and 2 apply
+ for(int i=1; i<nelem; i++){
+     deny = pow(x[i-1]-x[i],2)+pow(x[i-1]-x[i-1+nelem],2);
+      
+     if((i+1)==nelem){
+        if(deny>min)
+           grad[i] = ((x[i]-x[i-1])/sqrt(deny));
+       }
+     else{ 
+        denx = (x[i]-x[i+1])*(x[i]-x[i+1]) + (x[i]-x[i+nelem])*(x[i]-x[i+nelem]);
+         
+        if(denx>min && deny>min)
+           grad[i]=((2*x[i]-x[i+1]-x[i+nelem])/sqrt(denx)) + ((x[i]-x[i-1])/sqrt(deny));
+       }
+ }
+  
+ double denz;
+ // rest of image except left and right column and bottom row: all 3 formulas apply
+ for(int i=nelem; i<pixelcount-nelem; i++){
+     if(!(i%nelem)){ // first column: only cases 1 & 3
+        denx = pow(x[i]-x[i+1],2) + pow(x[i]-x[i+nelem],2);
+        denz = pow(x[i-nelem]-x[i-nelem+1],2) + pow(x[i-nelem]-x[i],2);
+        if(denx>min && denz>min){
+           grad[i]=((2*x[i]-x[i+1]-x[i+nelem])/sqrt(denx)) + ((x[i]-x[i-nelem])/sqrt(denz));
+          }
+       }
+     else{
+        if(!((i+1)%nelem)){ // last column: only case 2 applies
+           deny = pow(x[i-1]-x[i],2) + pow(x[i-1]-x[i-1+nelem],2);
+           if(deny>min){
+              grad[i]=(x[i]-x[i-1])/sqrt(deny);
+             }
+          }
+        else{
+           denx = pow(x[i]-x[i+1],2)+pow(x[i]-x[i+nelem],2);
+           deny = pow(x[i-1]-x[i],2)+pow(x[i-1]-x[i-1+nelem],2);
+           denz = pow(x[i-nelem]-x[i-nelem+1],2)+pow(x[i-nelem]-x[i],2);
+           if(denx>min && deny>min && denz>min){
+              grad[i]=(2*x[i]-x[i+1]-x[i+nelem])/sqrt(denx) +
+                      (x[i]-x[i-1])/sqrt(deny) +
+                      (x[i]-x[i-nelem])/sqrt(denz);
+             }
+          }
+       }
+    }
+ // Bottom row without last pixel: only third case applies
+ for(int i=pixelcount-nelem; i<(pixelcount-1); i++){
+     denz = pow(x[i-nelem]-x[i-nelem+1],2)+pow(x[i-nelem]-x[i],2);
+     // left column: formulas 1 and 3 apply
+     if(denz>min){
+        grad[i] = ((x[i]-x[i-nelem])/sqrt(denz));
+       }
+    }
+
+ // failsafe
+ for(int i=0;i<(pixelcount-1);i++){
+     if(isnan(grad[i]))
+        grad[i]=0.0;
+    }
+}
diff --git a/src/snark/nav1.h b/src/snark/nav1.h
new file mode 100644 (file)
index 0000000..f52977a
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav1.h $
+$LastChangedRevision: 49 $
+$Date: 2014-06-16 21:49:04 -0400 (Mon, 16 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+*/
+
+#ifndef NAV1_H
+#define NAV1_H
+
+#include "nav.h"
+
+class nav1_class: public nav_class
+{
+       void Run(REAL* xkn, REAL* vkn);
+       void calcGradient(REAL* x, REAL* grad);
+};
+     
+#endif
diff --git a/src/snark/nav2.cpp b/src/snark/nav2.cpp
new file mode 100644 (file)
index 0000000..783109a
--- /dev/null
@@ -0,0 +1,140 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav2.cpp $
+$LastChangedRevision: 145 $
+$Date: 2014-07-17 19:49:25 -0400 (Thu, 17 Jul 2014) $
+$Author: olangthaler $
+***********************************************************
+
+*********************************************************************************
+Non-ascending vector for secondary optimization criterion "smoothness" (sec_cri2)
+*********************************************************************************
+*/
+
+#include <cstdio>
+#include <stdlib.h>
+#include <string.h>
+#include <iostream>
+#include "nav2.h"
+#include "math.h"
+#include "anglst.h"
+#include "blob.h"
+
+void nav2_class::Run(REAL* xkn, REAL* vkn)
+{
+       int pixelcount = GeoPar.area;
+
+       REAL gradientSquareNorm = 0;
+       calcGradient(xkn, vkn);
+       for (INTEGER i = 0; i < pixelcount; i++) gradientSquareNorm += pow(vkn[i], 2);
+       REAL gradientNorm = sqrt(gradientSquareNorm);
+       if (gradientNorm > pow(10,-15)) for (INTEGER i = 0; i < pixelcount; i++) vkn[i] = (-1.0) * vkn[i] / gradientNorm;
+       else for (INTEGER i = 0; i < pixelcount; i++) vkn[i] = 0;
+}
+
+void nav2_class::calcGradient(REAL* x, REAL* grad)
+{
+       // read image dimensions
+       int nelem = GeoPar.nelem;
+       int pixelcount = GeoPar.area;
+       double temp=0;
+
+       // define minimum value for divisions
+       double min = pow(10,-15);
+
+       // set gradient starting value
+       memset(grad,0,pixelcount*sizeof(REAL));
+
+       // pre-processing
+       REAL* pre = new REAL[pixelcount];
+       memset(pre,0,pixelcount*sizeof(REAL));
+
+       // iterate through all pixels that are not on the border
+       for (int i=nelem+1; i<pixelcount-nelem-1; i++)
+       {
+               // skip left and right column
+               if (!(i%nelem) || !((i+1)%nelem)) continue;
+
+               pre[i]=x[i]-(0.125*(x[i-nelem-1]+x[i-nelem]+x[i-nelem+1]+x[i-1]+x[i+1]+x[i+nelem-1]+x[i+nelem]+x[i+nelem+1]));
+       }
+
+       // actual processing
+       // the four corners
+       temp=-0.25*pre[nelem+1];
+       if (fabs(temp)>min) grad[0]=temp;
+       temp=-0.25*pre[2*nelem-2];
+       if (fabs(temp)>min) grad[nelem-1]=temp;
+       temp=-0.25*pre[pixelcount-2*nelem+1];
+       if (fabs(temp)>min) grad[pixelcount-nelem]=temp;
+       temp=-0.25*pre[pixelcount-nelem-2];
+       if (fabs(temp)>min) grad[pixelcount-1]=temp;
+
+       // the 8 pixels adjoining the corners
+       temp=-0.25*(pre[nelem+1]+pre[nelem+2]);
+       if (fabs(temp)>min) grad[1]=temp;
+       temp=-0.25*(pre[nelem+1]+pre[2*nelem+1]);
+       if (fabs(temp)>min) grad[nelem]=temp;
+
+       temp=-0.25*(pre[2*nelem-2]+pre[2*nelem-3]);
+       if (fabs(temp)>min) grad[nelem-2]=temp;
+       temp=-0.25*(pre[2*nelem-2]+pre[3*nelem-2]);
+       if (fabs(temp)>min) grad[2*nelem-1]=temp;
+
+       temp=-0.25*(pre[pixelcount-2*nelem+1]+pre[pixelcount-2*nelem+2]);
+       if (fabs(temp)>min) grad[pixelcount-nelem+1]=temp;
+       temp=-0.25*(pre[pixelcount-2*nelem+1]+pre[pixelcount-3*nelem+1]);
+       if (fabs(temp)>min) grad[pixelcount-2*nelem]=temp;
+
+       temp=-0.25*(pre[pixelcount-nelem-2]+pre[pixelcount-nelem-3]);
+       if (fabs(temp)>min) grad[pixelcount-2]=temp;
+       temp=-0.25*(pre[pixelcount-nelem-2]+pre[pixelcount-2*nelem-2]);
+       if (fabs(temp)>min) grad[pixelcount-nelem-1]=temp;
+
+       // the remainder of the top and bottom rows
+       int t=0;
+       for (int i=2; i<nelem-2; i++)
+       {
+               temp=-0.25*(pre[i+nelem-1]+pre[i+nelem]+pre[i+nelem+1]);
+               if (fabs(temp)>min) grad[i]=temp;
+
+               t = i+(nelem*(nelem-1));
+               temp=-0.25*(pre[t-nelem-1]+pre[t-nelem]+pre[t-nelem+1]);
+               if (fabs(temp)>min) grad[t]=temp;
+       }
+
+       // the remainder of the left and right columns
+       for (int i=2*nelem; i<nelem*(nelem-3)+1; i+=nelem)
+       {
+               temp=-0.25*(pre[i-nelem+1]+pre[i+1]+pre[i+nelem+1]);
+               if (fabs(temp)>min) grad[i]=temp;
+
+               t = i+nelem-1;
+               temp=-0.25*(pre[t-nelem-1]+pre[t-1]+pre[t+nelem-1]);
+               if (fabs(temp)>min) grad[t]=temp;
+       }
+
+       // the remainder of the image: all pixels that are not on the border
+       // note: since the border pixels of the preprocessed array are 0, the
+       // pixels of the "inner border" do not need to be handled separately
+       for (int i=nelem+1; i<pixelcount-nelem-1; i++)
+       {
+               // skip left and right column
+               if (!((i)%nelem) || !((i+1)%nelem)) continue;
+
+               temp=2*pre[i]-0.25*(pre[i-nelem-1]+pre[i-nelem]+pre[i-nelem+1]+pre[i-1]+pre[i+1]+pre[i+nelem-1]+pre[i+nelem]+pre[i+nelem+1]);
+
+               if (fabs(temp)>min) grad[i]=temp;
+       }
+
+       delete[] (pre);
+
+       // failsafe
+       for (int i=0;i<pixelcount;i++)
+       {
+               if (isnan(grad[i]))
+               {
+                       grad[i]=0;
+               }
+       }
+}
diff --git a/src/snark/nav2.h b/src/snark/nav2.h
new file mode 100644 (file)
index 0000000..21d13a7
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav2.h $
+$LastChangedRevision: 49 $
+$Date: 2014-06-16 21:49:04 -0400 (Mon, 16 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+*/
+
+#ifndef NAV2_H
+#define NAV2_H
+
+#include "nav.h"
+
+class nav2_class: public nav_class
+{
+       void Run(REAL* xkn, REAL* vkn);
+       void calcGradient(REAL* x, REAL* grad);
+};
+     
+#endif
diff --git a/src/snark/nav3.cpp b/src/snark/nav3.cpp
new file mode 100644 (file)
index 0000000..1c28a9c
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav3.cpp $
+$LastChangedRevision: 49 $
+$Date: 2014-06-16 21:49:04 -0400 (Mon, 16 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+
+*************************************************************************************
+Dummy class for the calculation of the non-ascending vector corresponding to sec_cri3
+*************************************************************************************
+*/
+
+#include "nav3.h"
+#include "math.h"
+#include "anglst.h"
+#include "blob.h"
+
+void nav3_class::Run(REAL* xkn, REAL* vkn)
+{
+       int pixelcount = 0;
+
+       if(Blob.pix_basis)
+       {
+               pixelcount = GeoPar.area;
+       }
+       else
+       {
+               pixelcount = Blob.area;
+       }
+
+       REAL gradientSquareNorm = 0;
+
+       // calculate the gradient of your phi function here
+       // calcGradient(xkn, vkn);
+
+       for (INTEGER i = 0; i < pixelcount; i++) gradientSquareNorm += pow(vkn[i], 2);
+       REAL gradientNorm = sqrt(gradientSquareNorm);
+       for (INTEGER i = 0; i < pixelcount; i++) vkn[i] = (-1.0) * vkn[i] / gradientNorm;
+}
diff --git a/src/snark/nav3.h b/src/snark/nav3.h
new file mode 100644 (file)
index 0000000..ca9c6a2
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav3.h $
+$LastChangedRevision: 49 $
+$Date: 2014-06-16 21:49:04 -0400 (Mon, 16 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+*/
+
+#ifndef NAV3_H
+#define NAV3_H
+
+#include "nav.h"
+
+class nav3_class: public nav_class
+{
+       void Run(REAL* xkn, REAL* vkn);
+};
+     
+#endif
diff --git a/src/snark/nav4.cpp b/src/snark/nav4.cpp
new file mode 100644 (file)
index 0000000..d6c93cc
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav4.cpp $
+$LastChangedRevision: 49 $
+$Date: 2014-06-16 21:49:04 -0400 (Mon, 16 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+
+*************************************************************************************
+Dummy class for the calculation of the non-ascending vector corresponding to sec_cri3
+*************************************************************************************
+*/
+
+#include "nav4.h"
+#include "math.h"
+#include "anglst.h"
+#include "blob.h"
+
+void nav4_class::Run(REAL* xkn, REAL* vkn)
+{
+       int pixelcount = 0;
+
+       if(Blob.pix_basis)
+       {
+               pixelcount = GeoPar.area;
+       }
+       else
+       {
+               pixelcount = Blob.area;
+       }
+
+       REAL gradientSquareNorm = 0;
+
+       // calculate the gradient of your phi function here
+       // calcGradient(xkn, vkn);
+
+       for (INTEGER i = 0; i < pixelcount; i++) gradientSquareNorm += pow(vkn[i], 2);
+       REAL gradientNorm = sqrt(gradientSquareNorm);
+       for (INTEGER i = 0; i < pixelcount; i++) vkn[i] = (-1.0) * vkn[i] / gradientNorm;
+}
diff --git a/src/snark/nav4.h b/src/snark/nav4.h
new file mode 100644 (file)
index 0000000..94411c8
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav4.h $
+$LastChangedRevision: 49 $
+$Date: 2014-06-16 21:49:04 -0400 (Mon, 16 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+*/
+
+#ifndef NAV4_H
+#define NAV4_H
+
+#include "nav.h"
+
+class nav4_class: public nav_class
+{
+       void Run(REAL* xkn, REAL* vkn);
+};
+     
+#endif
diff --git a/src/snark/nav5.cpp b/src/snark/nav5.cpp
new file mode 100644 (file)
index 0000000..95e7e76
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav5.cpp $
+$LastChangedRevision: 49 $
+$Date: 2014-06-16 21:49:04 -0400 (Mon, 16 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+
+*************************************************************************************
+Dummy class for the calculation of the non-ascending vector corresponding to sec_cri3
+*************************************************************************************
+*/
+
+#include "nav5.h"
+#include "math.h"
+#include "anglst.h"
+#include "blob.h"
+
+void nav5_class::Run(REAL* xkn, REAL* vkn)
+{
+       int pixelcount = 0;
+
+       if(Blob.pix_basis)
+       {
+               pixelcount = GeoPar.area;
+       }
+       else
+       {
+               pixelcount = Blob.area;
+       }
+
+       REAL gradientSquareNorm = 0;
+
+       // calculate the gradient of your phi function here
+       // calcGradient(xkn, vkn);
+
+       for (INTEGER i = 0; i < pixelcount; i++) gradientSquareNorm += pow(vkn[i], 2);
+       REAL gradientNorm = sqrt(gradientSquareNorm);
+       for (INTEGER i = 0; i < pixelcount; i++) vkn[i] = (-1.0) * vkn[i] / gradientNorm;
+}
diff --git a/src/snark/nav5.h b/src/snark/nav5.h
new file mode 100644 (file)
index 0000000..3a989d8
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/nav5.h $
+$LastChangedRevision: 49 $
+$Date: 2014-06-16 21:49:04 -0400 (Mon, 16 Jun 2014) $
+$Author: olangthaler $
+***********************************************************
+*/
+
+#ifndef NAV5_H
+#define NAV5_H
+
+#include "nav.h"
+
+class nav5_class: public nav_class
+{
+       void Run(REAL* xkn, REAL* vkn);
+};
+     
+#endif
diff --git a/src/snark/noise.cpp b/src/snark/noise.cpp
new file mode 100644 (file)
index 0000000..b94f753
--- /dev/null
@@ -0,0 +1,288 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/noise.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cmath>
+#include <cstdio>
+#include <cstdlib>
+#include <DIGGauss.h>
+#include <DIGPoisson.h>
+#include "consts.h"
+#include "geom.h"
+#include "noise.h"
+#include "spctrm.h"
+#include "uiod.h"
+
+// bug221 - moved noise code to this class - swr - 03/03/07
+
+Noise_class NoisePar = Noise_class();
+
+Noise_class::Noise_class()
+{
+       quanin = 0;
+       quanmn = 1.0;
+       quancm = 1.0;
+       sctnfl = false;
+       sctnpk = 0.0;
+       sctnwd = 0.0;
+       ultnfl = false;
+       ultnmn = 0.0;
+       ultnsd = 0.0;
+       addnfl = false;
+       addnmn = 0.0;
+       addnsd = 0.0;
+       oldnp = -1;
+       sctcnt = NULL;
+       sctwts = NULL;
+       calray = NULL;
+}
+
+void Noise_class::resetNoise()
+{
+       // jklukowska, bug 263, in case the noise was set
+       // previously, we need to reset it to initial values
+       quanin = 0;
+       quanmn = 1.0;
+       quancm = 1.0;
+       sctnfl = false;
+       sctnpk = 0.0;
+       sctnwd = 0.0;
+       ultnfl = false;
+       ultnmn = 0.0;
+       ultnsd = 0.0;
+       addnfl = false;
+       addnmn = 0.0;
+       addnsd = 0.0;
+       oldnp = -1;
+       sctcnt = NULL;
+       sctwts = NULL;
+       calray = NULL;
+}
+
+Noise_class::~Noise_class()
+{
+       if (sctcnt != NULL)
+               delete[] sctcnt;
+       if (sctwts != NULL)
+               delete[] sctwts;
+       if (calray != NULL)
+               delete[] calray;
+}
+
+void Noise_class::setAdditiveNoise(REAL mean, REAL std)
+{
+       addnfl = true;
+       addnmn = mean;
+       addnsd = std;
+}
+
+REAL Noise_class::additiveNoise(REAL value)
+{
+       return addnfl ? value + Gauss(addnmn, addnsd) : value;
+}
+
+void Noise_class::setMultiplicativeNoise(REAL mean, REAL std)
+{
+       ultnfl = true;
+       ultnmn = mean;
+       ultnsd = std;
+}
+
+REAL Noise_class::multiplicativeNoise(REAL value)
+{
+       return ultnfl ? value * Gauss(ultnmn, ultnsd) : value;
+}
+
+void Noise_class::setScatter(REAL peak, REAL width)
+{
+       sctnfl = true;
+       sctnpk = peak;
+       sctnwd = width;
+       // PRE-COMPUTE THE WEIGHTS FOR SCATTER CALCULATION
+       // FIRST CONPUTE THE EXTENT OF SCATTER IN TERMS OF NUMBER OF RAYS
+       // WE NEED SPACE = USRAYS LONG FOR CONVOLUTING
+
+       sctcnt = new REAL[GeoPar.usrays];
+       nsctr = (int) (width / GeoPar.pinc + 1.0);
+
+       sctwts = new REAL[nsctr];
+       for (INTEGER n = 0; n < nsctr; n++)
+       {
+               sctwts[n] = (REAL) (peak * (1.0 - n * GeoPar.pinc / width));
+       }
+       sctwts[0] += 1.0;
+}
+
+void Noise_class::scatterNoise(REAL* projection)
+{
+       if (sctnfl)
+       {
+
+               // CONVOLUTE WITH THE SCATTER FUNCTION
+
+               for (INTEGER nr = 0; nr < GeoPar.usrays; nr++)
+               {
+                       sctcnt[nr] = projection[nr];
+               }
+
+               for (INTEGER nr = 0; nr < GeoPar.usrays; nr++)
+               {
+                       REAL sum = sctcnt[nr] * sctwts[0];
+                       REAL vsum = sctwts[0];
+
+                       for (INTEGER nrsct = 1; nrsct < nsctr; nrsct++)
+                       {
+                               INTEGER nshift = nrsct;
+
+                               // CONVOLVE CAREFULLY
+
+                               if ((nr - nshift) >= 0)
+                               {
+                                       vsum += sctwts[nrsct];
+                                       sum += sctcnt[nr - nshift] * sctwts[nrsct];
+                               }
+
+                               if ((nr + nshift) < GeoPar.usrays)
+                               {
+                                       vsum += sctwts[nrsct];
+                                       sum += sctcnt[nr + nshift] * sctwts[nrsct];
+                               }
+
+                       }
+                       projection[nr] = sum / vsum;
+               }
+       }
+
+}
+
+void Noise_class::setQuantumNoise(INTEGER type, REAL mean, REAL calibration)
+{
+       quanin = type;
+       quanmn = mean;
+       quancm = calibration;
+       setQuantumNoise();
+}
+
+void Noise_class::setQuantumNoise()
+{
+       // GET AVERAGE BACKGROUND ABSORPTION
+       back = 0.0;
+       if (quanin == PET)
+       {
+               for (INTEGER l = 0; l < Spctrm.nergy; l++)
+               {
+                       back += Spctrm.engwt[l] * Spctrm.backgr[l];
+               }
+       }
+       else
+       {
+               for (INTEGER l = 0; l < Spctrm.nergy; l++)
+               {
+                       back += (REAL) (Spctrm.engwt[l] * exp(-Spctrm.backgr[l]));
+               }
+       }
+       c = back;
+       // COMPUTE THE MEAN NUMBER OF PHOTONS EXITING FOR ACTUAL AND
+       // CALIBRATION MEASUREMENTS
+       aback = quanmn * back;
+       if (quanin == PET)
+               aback = back;
+       cback = quancm * aback;
+
+       // IF CALIBRATION TYPE 2 GET THE USRAYS CALIBRATION VALUES AND STORE
+       // IN WORK AREA
+       if (quanin == CONSTANT_RAY)
+       {
+
+               calray = new REAL[GeoPar.nrays];
+
+               for (INTEGER nr = 0; nr < GeoPar.nrays; nr++)
+               {
+                       calray[nr] = Gauss(cback, (REAL) sqrt(cback))
+                                       / Gauss(cback, (REAL) sqrt(cback));
+#ifdef FFCOMPARE
+
+                       fprintf(output,"\n calray= %36.30f", calray[nr]);
+#endif
+               }
+       }
+       oldnp = -1;
+
+}
+
+REAL Noise_class::applyQuantumNoise(INTEGER np, INTEGER nr, REAL sum)
+{
+       if (quanin == NONOISE)
+               return sum;
+       if (quanin == PET)
+       {
+               if (quanmn >= 0)
+                       sum = (REAL) Poisson(sum);
+       }
+       else
+       {
+               //    if (quanin > NONOISE) sum = (REAL) Poisson(sum);
+               if (sum < (REAL) 100.0)
+                       sum = (REAL) Poisson(sum);
+               if (sum >= (REAL) 100.0)
+                       sum = Gauss(sum, (REAL) sqrt(sum));
+       }
+
+       // CHECK IF THE OBJECT IS OPAQUE FOR THIS RAY; TOO MUCH ABSORPTION
+
+       if ((sum <= Consts.zero * aback) && (quanin != PET))
+       {
+               fprintf(output,
+                               "\n **** in projection %5i ray %5i no photons get through", np,
+                               nr);
+               fprintf(output,
+                               "\n **** in order to do tomography, more photons are needed");
+               fprintf(output, "\n **** program aborted\n");
+
+               exit(-1);
+       }
+       return sum;
+}
+
+REAL Noise_class::raysum(REAL raysum)
+{
+       return quanin == PET ? raysum : exp(-raysum);
+}
+
+REAL Noise_class::computeAttenuation(INTEGER np, INTEGER nr, REAL ind)
+{
+       if (np != oldnp && quanin == CONSTANT_PROJECTION)
+       {
+               c = Gauss(cback, (REAL) sqrt(cback)) / Gauss(cback, (REAL) sqrt(cback));
+               oldnp = np;
+       }
+       if (quanin == PET)
+       {
+               if (quanmn < 0)
+               {
+                       ind += aback;
+               }
+               else
+               {
+                       ind += Poisson(aback);
+               }
+       }
+       else
+       {
+               REAL a = ind;
+               if (quanin > NONOISE)
+                       a /= Gauss(aback, (REAL) sqrt(aback));
+               if (quanin == CONSTANT_RAY)
+                       c = calray[nr];
+               if (quanin == VARIABLE)
+                       c = Gauss(cback, (REAL) sqrt(cback)) / Gauss(cback, (REAL) sqrt(cback));
+               ind = (REAL) log(c / a);
+       }
+       return ind;
+}
diff --git a/src/snark/noise.h b/src/snark/noise.h
new file mode 100644 (file)
index 0000000..e8055ea
--- /dev/null
@@ -0,0 +1,45 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/noise.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef NIOISE_H
+#define NIOISE_H
+
+#include "blkdta.h"
+
+// bug221 - moved noise code to this class - swr - 03/03/07
+
+extern class Noise_class
+{
+public:
+       INTEGER quanin;REAL quanmn;REAL quancm;BOOLEAN sctnfl;REAL sctnpk;REAL sctnwd;BOOLEAN ultnfl;REAL ultnmn;REAL ultnsd;BOOLEAN addnfl;REAL addnmn;REAL addnsd;
+       void setAdditiveNoise(REAL mean, REAL std);REAL additiveNoise(REAL value);
+       void setMultiplicativeNoise(REAL mean, REAL std);REAL multiplicativeNoise(REAL value);
+       void setScatter(REAL peak, REAL width);
+       void scatterNoise(REAL* projection);
+       void setQuantumNoise(INTEGER type, REAL mean, REAL calibration);
+       void setQuantumNoise();REAL applyQuantumNoise(INTEGER np, INTEGER nr, REAL sum);REAL raysum(REAL raysum);REAL computeAttenuation( INTEGER np, INTEGER nr, REAL ind);
+       void resetNoise(); // jklukowska, bug 263, in case the noise was set
+                                          // previously, we need to reset it to initial values
+       Noise_class();
+       ~Noise_class();
+private:
+       REAL* sctcnt;REAL* sctwts;REAL* calray;INTEGER nsctr;REAL back;REAL aback;REAL cback;REAL c;INTEGER oldnp;
+} NoisePar;
+
+enum
+{
+       NONOISE = 0,
+       CONSTANT_PROJECTION = 1,
+       CONSTANT_RAY = 2,
+       VARIABLE = 3,
+       PET = 4
+};
+
+#endif
diff --git a/src/snark/objects.cpp b/src/snark/objects.cpp
new file mode 100644 (file)
index 0000000..0bf2fcf
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/objects.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "objects.h"
+
+int MAX_NUMBER_OF_OBJECTS = 0;
+SNARK_Object *objects;
diff --git a/src/snark/objects.h b/src/snark/objects.h
new file mode 100644 (file)
index 0000000..ea54a91
--- /dev/null
@@ -0,0 +1,64 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/objects.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef OBJECTS_H
+#define OBJECTS_H
+
+#include "blkdta.h"
+
+///////////////////////////////////////////////////////////////////
+// THE FIRST 7 ROWS OF 'OBJECT' STORE THE DENSITY FOR THE 7 ENERGY
+// LEVELS, 8TH  STORES THE AVERAGE DENSITY;
+// 9TH ROW SPECIFIES TYPE OF OBJECT, 1 FOR ELLIPSE/CIRCLE
+//                                   2 FOR RECTANGLE/SQUARE
+//                                   3 FOR TRIANGLE
+//                                   4 FOR SEGMENT OF CIRCLE
+//                                   5 FOR SECTOR OF CIRCLE
+// 10TH ROW  CX  X-COORDINATE OF CENTER
+// 11TH ROW  CY  Y-COORDINATE OF CENTER
+// 12TH ROW  U  SEMI X-AXIS LENGTH
+// 13TH ROW  V  SEMI Y-AXIS LENGTH
+// 14TH ROW  ANG  ANGLE OF ROTATION FROM X-AXIS
+// 15TH ROW  SINANG  SIN OF ANGLE OF ROTATION
+// 16TH ROW  COSANG  COSINE OF ANGLE OF ROTATION
+// 17TH ROW RAYL   LENGTH OF RAY INTERSECTED BY OBJECT
+// THIS VALUE OF SUBSCRIPT REFERRED TO IN CREAPR ONLY
+enum SNARK_Object_type
+{
+       SOT_elip, SOT_rect, SOT_tria, SOT_segm, SOT_sect
+};
+
+class SNARK_Object
+{
+public:
+       REAL den1[7];   // Densities
+       REAL denav;     // Average Dansity
+       SNARK_Object_type type;      // Object type
+       REAL cx;        // Center X
+       REAL cy;        // Center Y
+       REAL u;         //
+       REAL v;         //
+       REAL ang;       //
+       REAL sinang;    //
+       REAL cosang;    //
+       REAL rayl;      //
+};
+
+class SNARK_Object_Node
+{
+public:
+       SNARK_Object data;
+       SNARK_Object_Node *next;
+};
+
+extern int MAX_NUMBER_OF_OBJECTS;
+extern SNARK_Object *objects;
+
+#endif
diff --git a/src/snark/pick.cpp b/src/snark/pick.cpp
new file mode 100644 (file)
index 0000000..4e96ef1
--- /dev/null
@@ -0,0 +1,218 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pick.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ EACH CALL TO PICK RETURNS THE NUMBER NR OF A NEW RAY AND THE
+ NUMBER NP OF A NEW PROJECTION ACCORDING TO THE SELECTION OF
+ SEQUENCING MADE BY THE SELECT COMMAND.  DEFAULT IS SEQUENTIAL RAY
+ SELECTION WITH RAY-STEP = PROJECTION-STEP = 1
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "raysel.h"
+#include "uiod.h"
+#include "geom.h" 
+#include "effpick.h" 
+
+#include "DIGRand.h"
+
+#include "pick.h"
+
+void pick(INTEGER* np, INTEGER* nr)
+{
+
+       switch (RaySel.stype)
+       {
+
+       //EFFICIENT RAY PICKING
+
+       case 7: // efficient picking
+
+               if (RaySel.effcnt % (RaySel.numray * GeoPar.prjnum) == 0)
+               {
+                       RaySel.old_numprj[0] = -1;
+                       RaySel.effcnt = 0; // Bug #214, wei, 11/20/2006
+               }
+
+               if (RaySel.effcnt % RaySel.numray == 0)
+               {
+                       RaySel.old_numray[0] = -1;
+
+                       pi_map(RaySel.num_digprj, RaySel.decompprj, RaySel.baseprj,
+                                       &RaySel.old_numprj, &RaySel.new_numprj, &RaySel.curnp);
+               }
+
+               pi_map(RaySel.num_digray, RaySel.decompray, RaySel.baseray,
+                               &RaySel.old_numray, &RaySel.new_numray, &RaySel.curnr);
+
+               if (!RaySel.useray)
+               {
+                       RaySel.curnr += GeoPar.fsnray; //(GeoPar.nrays-GeoPar.snrays)/2;
+               }
+               else
+               {
+                       RaySel.curnr += GeoPar.fusray; //(GeoPar.nrays-GeoPar.usrays)/2;
+               }
+
+               RaySel.effcnt++;
+
+               break;
+
+               // RANDOM
+       case 2:
+               L30: if (!RaySel.useray)
+               {
+                       RaySel.curnr = (INTEGER) (Rand() * ((REAL) (GeoPar.snrays))
+                                       + ((REAL) (RaySel.begray))); // bug 184 - swr - 11/04/05
+               }
+               else
+               {
+                       RaySel.curnr = (INTEGER) (Rand() * ((REAL) (GeoPar.usrays))
+                                       + ((REAL) (RaySel.begray))); // bug 184 - swr - 11/04/05
+               }
+               RaySel.curnp = (INTEGER) (Rand() * (REAL) (GeoPar.prjnum)); // bug 184 - swr - 11/04/05
+               break;
+
+               // SEQP
+       case 1:
+               L40: RaySel.curnp += RaySel.prjinc;
+               if (RaySel.curnp >= GeoPar.prjnum)
+               {
+                       RaySel.curnp = RaySel.initnp;
+                       RaySel.curnr += RaySel.rayinc;
+                       if (RaySel.curnr > RaySel.endray)
+                       {
+                               RaySel.initnr++;
+                               if (RaySel.initnr
+                                               >= MIN0((RaySel.begray + RaySel.rayinc - 1),
+                                                               RaySel.endray))
+                               {
+                                       RaySel.initnr = RaySel.begray;
+                                       RaySel.initnp++;
+                                       if (RaySel.initnp >= MIN0(RaySel.prjinc, GeoPar.prjnum))
+                                       {
+                                               RaySel.initnp = 0;
+                                       }
+                                       RaySel.curnp = RaySel.initnp;
+                               }
+                               RaySel.curnr = RaySel.initnr;
+                       }
+               }
+               break;
+
+               // SEQR
+       case 0:
+               L50: RaySel.curnr += RaySel.rayinc;
+               if (RaySel.curnr > RaySel.endray)
+               {
+                       RaySel.curnr = RaySel.initnr;
+                       RaySel.curnp += RaySel.prjinc;
+                       if (RaySel.curnp >= GeoPar.prjnum)
+                       {
+                               RaySel.initnp++;
+                               if (RaySel.initnp >= MIN0(RaySel.prjinc, GeoPar.prjnum))
+                               {
+                                       RaySel.initnp = 0;
+                                       RaySel.initnr++;
+                                       if (RaySel.initnr
+                                                       >= MIN0((RaySel.begray + RaySel.rayinc - 1),
+                                                                       RaySel.endray))
+                                       {
+                                               RaySel.initnr = RaySel.begray;
+                                       }
+                                       RaySel.curnr = RaySel.initnr;
+                               }
+                               RaySel.curnp = RaySel.initnp;
+                       }
+               }
+               break;
+
+               // (CYCLES) OF RAYS AT RANDOM FOLLOWED BY SEQUENTIAL RAYS
+       case 3:
+               if (RaySel.rcnt1 == RaySel.rn1)
+               {
+                       if (RaySel.rn2 <= 0)
+                               goto L50;
+                       if (RaySel.rcnt2 != RaySel.rn2)
+                       {
+                               RaySel.rcnt2++;
+                               goto L50;
+                       }
+                       RaySel.rcnt1 = 0;
+                       RaySel.rcnt2 = 0;
+               }
+               RaySel.rcnt1++;
+               goto L30;
+
+               // (CYCLES) OF RAYS AT RANDOM FOLLOWED BY SEQUENTIAL
+               // PROJECTION SELECTION
+       case 4:
+               if (RaySel.rcnt1 == RaySel.rn1)
+               {
+                       if (RaySel.rn2 <= 0)
+                               goto L40;
+                       if (RaySel.rcnt2 != RaySel.rn2)
+                       {
+                               RaySel.rcnt2++;
+                               goto L40;
+                       }
+                       RaySel.rcnt1 = 0;
+                       RaySel.rcnt2 = 0;
+               }
+               RaySel.rcnt1++;
+               goto L30;
+
+               // (CYCLES) OF SEQUENTIAL RAYS FOLLOWED BY RAYS AT RANDOM
+       case 5:
+               if (RaySel.rcnt1 == RaySel.rn1)
+               {
+                       if (RaySel.rn2 <= 0)
+                               goto L30;
+                       if (RaySel.rcnt2 != RaySel.rn2)
+                       {
+                               RaySel.rcnt2++;
+                               goto L30;
+                       }
+                       RaySel.rcnt1 = 0;
+                       RaySel.rcnt2 = 0;
+               }
+               RaySel.rcnt1++;
+               goto L50;
+
+               // (CYCLES) OF SEQUENTIAL PROJECTION RAYS FOLLOWED BY RAYS AT RANDOM
+       case 6:
+               if (RaySel.rcnt1 == RaySel.rn1)
+               {
+                       if (RaySel.rn2 <= 0)
+                               goto L30;
+                       if (RaySel.rcnt2 != RaySel.rn2)
+                       {
+                               RaySel.rcnt2++;
+                               goto L30;
+                       }
+                       RaySel.rcnt1 = 0;
+                       RaySel.rcnt2 = 0;
+               }
+               RaySel.rcnt1++;
+               goto L40;
+       }
+
+       // COMMON RETURN
+       *np = RaySel.curnp;
+       *nr = RaySel.curnr;
+
+       if (trace > 4)
+       {
+               fprintf(output, "\n          pick    np = %5i  nr = %5i", *np, *nr);
+       }
+       return;
+}
+
diff --git a/src/snark/pick.h b/src/snark/pick.h
new file mode 100644 (file)
index 0000000..e0d8773
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pick.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef PICK_H
+#define PICK_H
+
+void pick(INTEGER* np, INTEGER* nr);
+
+#endif
diff --git a/src/snark/pix2blob.cpp b/src/snark/pix2blob.cpp
new file mode 100644 (file)
index 0000000..c0fc414
--- /dev/null
@@ -0,0 +1,338 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pix2blob.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+/* This subroutine converts an image function in pixel basis into that in blob basis. This subroutine uses SIRT type algorithm with blob footprints for speeding up. See subroutine blob2pix() for the meaning of various variables.
+ */
+
+#include <cstdio>
+#include <cmath>
+#include <cstdlib>
+
+#include "blkdta.h"
+#include "blob.h"
+#include "geom.h"
+#include "consts.h"
+#include "effpick.h" 
+#include "uiod.h"
+
+void Blob_class::pix2blob(REAL* pict, REAL* blob_array)
+{
+       INTEGER m, h, m1, h1;
+       INTEGER i, k, j, ii, kk, jj;
+       INTEGER jc, kc;
+       INTEGER M2, H2;
+       INTEGER nelem2;
+       INTEGER jx, ky;
+       INTEGER ind, indb;
+
+
+       REAL xc, yc, auy;
+       REAL ipixsiz = (REAL) 1.0 / GeoPar.pixsiz;
+       INTEGER count, ncount;
+       REAL maxpict, minpict;
+       REAL amppict;
+       REAL nc;
+       REAL sd;
+       INTEGER niter;
+       REAL width;
+       REAL rneigh;
+       REAL tau;
+       REAL unif;
+       REAL frelax;
+
+       frelax = 2.0; //changed on 4/8/04, from 1.0 to 2.0, as suggested by Laszlo
+       tau = 0.3;
+       unif = 0.0005;
+       width = 3.5;
+       rneigh = 0.75;
+       niter = 5000;
+
+       frelax *= GeoPar.pixsiz * GeoPar.pixsiz
+                       / (Consts.pi * Blob.support * Blob.support);
+       frelax = MIN0(2.0, frelax);  //frelax param cannot be greater than 2 !
+
+       REAL *u = new REAL[GeoPar.area]; //art4 dual var
+       REAL *Delta = new REAL[GeoPar.area]; //art4 epsilon
+       REAL *Gamma = new REAL[GeoPar.area]; //art4 epsilon
+       INTEGER *que = new INTEGER[GeoPar.area]; //art4
+
+       INTEGER pow2, num_dig;
+       INTEGER *decomp = NULL;
+       INTEGER *base = NULL;      //wei 3/2005
+       INTEGER *old_numk, *new_numk;
+       INTEGER *old_numj, *new_numj;
+
+       H2 = (INTEGER) (Blob.H / 2);
+       M2 = (INTEGER) (Blob.M / 2);
+       nelem2 = (INTEGER) (GeoPar.nelem / 2);
+
+       //get the decomposition of the smallest power of 2 >= nelem
+       pow2 = 1;
+
+       while (pow2 < GeoPar.nelem)
+       {
+               pow2 *= 2;
+       }
+
+       factorization(pow2, &decomp, &num_dig);
+       get_base(decomp, num_dig, &base);
+       old_numk = new INTEGER[num_dig];
+       new_numk = new INTEGER[num_dig];
+       old_numj = new INTEGER[num_dig];
+       new_numj = new INTEGER[num_dig];
+
+       // initialising the blobs with the value of the nearest pixel and computing mod2 using BLOB footprint
+
+       for (h = lhf; h <= lhl; h++)
+       {
+               for (m = lmf; m <= lml; m++)
+               { // m and h must have the same parity!!
+                       if ((m + h) % 2 == 0)
+                       {
+                               m1 = m + M2;
+                               h1 = h + H2;
+
+                               indb = h1 * Blob.M + m1;
+
+                               xc = di2 * m;  // coord of the center of the blob (m,h)
+                               yc = di2sq3 * h;
+
+                               auy = ipixsiz * yc;
+                               jx = (INTEGER) floor(ipixsiz * xc + 0.5); // coord of the center of
+                               ky = (INTEGER) floor(auy + 0.5);        // the nearest pixel
+
+                               jc = jx + nelem2; // bring to the right address
+                               kc = (INTEGER) floor(-auy + 0.5) + nelem2;
+
+                               if (jc > ljl)
+                                       jc = ljl;
+                               if (jc < ljf)
+                                       jc = ljf;
+
+                               if (kc > lkl)
+                                       kc = lkl;
+                               if (kc < lkf)
+                                       kc = lkf;
+
+                               blob_array[indb] = pict[kc * GeoPar.nelem + jc];
+                       }
+               }
+       }
+
+       //initialize dual var and finding the max amplitud between pict and 0
+       maxpict = -Consts.infin;
+       minpict = Consts.infin;
+       for (k = 0; k < GeoPar.nelem; k++)
+       {
+               for (j = 0; j < GeoPar.nelem; j++)
+               {
+                       ind = k * GeoPar.nelem + j;
+                       if (maxpict < pict[ind])
+                       {
+                               maxpict = pict[ind];
+                       }
+                       if (minpict > pict[ind])
+                       {
+                               minpict = pict[ind];
+                       }
+                       u[ind] = 0.0;
+               }
+       }
+       amppict = MAX0(maxpict,0.0) - MIN0(minpict, 0.0);
+
+       //computing delta and gamma of ART4
+       for (k = 0; k < GeoPar.nelem; k++)
+       {
+               for (j = 0; j < GeoPar.nelem; j++)
+               {
+                       ind = k * GeoPar.nelem + j;
+                       p2b_neighb(k, j, pict, &nc, rneigh);
+                       if (pict[ind] >= nc)
+                       {
+                               Delta[ind] = unif * amppict;
+                               Gamma[ind] = -(tau * fabs(pict[ind] - nc) + unif * amppict);
+                       }
+                       else
+                       {
+                               Delta[ind] = tau * fabs(pict[ind] - nc) + unif * amppict;
+                               Gamma[ind] = -unif * amppict;
+                       }
+               }
+       }
+
+       i = 0;
+       for (;;)
+       {
+               //initializing list "que" and count
+               count = 0;
+               old_numk[0] = -1;
+               for (kk = 0; kk < pow2; kk++)
+               {
+                       pi_map(num_dig, decomp, base, &old_numk, &new_numk, &k);
+                       if (k < GeoPar.nelem)
+                       {
+                               old_numj[0] = -1;
+                               for (jj = 0; jj < pow2; jj++)
+                               {
+                                       pi_map(num_dig, decomp, base, &old_numj, &new_numj, &j);
+                                       if (j < GeoPar.nelem)
+                                       {
+                                               ind = k * GeoPar.nelem + j;
+                                               que[count] = ind;
+                                               count++;
+                                       }
+                               } //for jj
+                       }
+               } //for kk
+                 //ART4-type algorithm
+               ii = 0;
+               for (;;)
+               {
+                       Correct(pict, blob_array, u, Delta, Gamma, que, count, &ncount, &sd,
+                                       width, frelax);
+                       count = ncount;
+
+                       if (count == 0 || i >= niter)
+                               break;
+                       i++;
+                       ii++;
+               }
+               if (ii == 0 || i >= niter)
+                       break;
+       }
+
+       delete[] old_numk;  // bug 92 - Lajos - 03/02/2005
+       delete[] new_numk;  // bug 92 - Lajos - 03/02/2005
+       delete[] old_numj;  // bug 92 - Lajos - 03/02/2005
+       delete[] new_numj;  // bug 92 - Lajos - 03/02/2005
+       delete[] u;  // bug 92 - Lajos - 03/02/2005
+       delete[] Delta;  // bug 92 - Lajos - 03/02/2005
+       delete[] Gamma;  // bug 92 - Lajos - 03/02/2005
+       delete[] que;  // bug 92 - Lajos - 03/02/2005
+       if (decomp != NULL)
+               delete[] decomp;
+       if (base != NULL)
+               delete[] base;      //wei 3/2005
+
+       return;
+}
+
+void Blob_class::Correct(REAL* pict, REAL* blob_array, REAL* u, REAL* Delta,
+               REAL* Gamma, INTEGER* que, INTEGER count, INTEGER* ncount, REAL* sd,
+               REAL width, REAL frelax)
+{
+
+       INTEGER ind, indb;
+       INTEGER c;
+       INTEGER k, j;
+       INTEGER numb;
+       INTEGER multp = (INTEGER) floor(Blob.support / Blob.delta + 0.5) + 1;
+       INTEGER npts = 4 * multp * multp;
+       INTEGER *list = new INTEGER[npts];
+       INTEGER g;
+       REAL *weight = new REAL[npts];
+       REAL sum;
+       REAL snorm;
+       REAL diff;
+       REAL lowb, uppb;
+       REAL ck;
+
+       *sd = 0;
+       *ncount = 0;
+
+       for (c = 0; c < count; c++)
+       {
+               ind = que[c];
+               sum = 0.0;
+               k = ind / GeoPar.nelem;
+               j = ind % GeoPar.nelem;
+               bpix(k, j, list, weight, &numb, &snorm);
+               if (numb > 0)
+               {
+                       for (g = 0; g < numb; g++)
+                       {
+                               indb = list[g];
+                               sum += blob_array[indb] * weight[g];
+                       }
+                       diff = pict[ind] - sum;
+                       (*sd) += (diff * diff);
+                       if (!(diff <= -width * Gamma[ind])
+                                       || !(diff >= -width * Delta[ind])) //Ran bug 235 August 17, 2008
+                       {
+                               que[(*ncount)] = ind;
+                               (*ncount)++;
+                               //compute the change
+                               lowb = frelax * (diff + Gamma[ind]) / snorm;
+                               uppb = frelax * (diff + Delta[ind]) / snorm;
+                               ck = MAX0(MIN0(uppb, u[ind]), lowb);
+
+                               // updates of dual var
+                               u[ind] -= ck;
+                               // backward operation with relaxation param relax
+                               for (g = 0; g < numb; g++)
+                               {
+                                       indb = list[g];
+                                       blob_array[indb] += (ck * weight[g]);
+                               }
+                       } // if no satisf
+               } //if numb
+       } //if c
+       delete[] list;  // bug 92 - Lajos - 03/02/2005
+       delete[] weight;  // bug 92 - Lajos - 03/02/2005
+       return;
+}
+
+void Blob_class::p2b_neighb(INTEGER k, INTEGER j, REAL* pict, REAL *nc,
+               REAL rneigh)
+{
+
+       INTEGER m, n;
+       INTEGER kk, jj, ind;
+       INTEGER size;
+       REAL mult = rneigh * Blob.support / GeoPar.pixsiz;
+       INTEGER multn = (INTEGER) ceil(mult);
+
+       size = 0;
+       (*nc) = 0.0;
+
+       for (m = -multn; m <= multn; m++)
+       {
+               for (n = -multn; n <= multn; n++)
+               {
+                       if ((n * n + m * m) <= (mult * mult))
+                       {
+                               size++;
+                       }
+               }
+       }
+       for (m = -multn; m <= multn; m++)
+       {
+               kk = k + m;
+               if (kk >= 0 && kk < GeoPar.nelem)
+               {
+                       for (n = -multn; n <= multn; n++)
+                       {
+                               jj = j + n;
+                               if (jj >= 0 && jj < GeoPar.nelem)
+                               {
+                                       if ((n * n + m * m) <= (mult * mult))
+                                       {
+                                               ind = kk * GeoPar.nelem + jj;
+                                               (*nc) += pict[ind];
+                                       }
+                               }
+                       }
+               }
+       }
+       (*nc) /= (REAL) size;
+
+       return;
+}
+
diff --git a/src/snark/pnch.cpp b/src/snark/pnch.cpp
new file mode 100644 (file)
index 0000000..ea9d4f0
--- /dev/null
@@ -0,0 +1,140 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pnch.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ POST-PROCESSING ROUTINE TO OUTPUT RECONSTRUCTIONS IN THE SNARK
+ PICTURE FORMAT.
+ */
+
+#include <cstdlib>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "recfile.h"
+#include "pnchfile.h"
+#include "infile.h"
+
+#include "post.h"
+
+#include "pnch.h"
+
+void pnch()
+{
+       // was in post but it is really local
+       CHAR prjnam[81];
+       CHAR phnnam[81];
+       CHAR recnam[81];
+
+       // was in geo but it is realy local
+       INTEGER nelem;
+       INTEGER area;
+
+       //commented out since it is never used. Lajos, Dec 16, 2004
+       static const INTEGER hphan = CHAR2INT('p', 'h', 'a', 'n');
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 13, 2004
+       static const INTEGER pnch_codes[1] =
+       { CHAR2INT('p', 'h', 'a', 'n') };
+
+       BOOLEAN eol, phan;
+       INTEGER flags[51];
+       CHAR algn[5];
+       unsigned INTEGER count, iter;
+       REAL* recon;
+
+       static bool called = FALSE;
+
+       // if first time call open new punch file
+       if (!called)
+       {
+               if (PunchFile.Open(false) != 0)
+               {
+                       fprintf(output, "\n **** unable to open file: punch");
+                       fprintf(output, "\n **** PUNCH execution aborted\n");
+                       return;
+               }
+               called = true;
+       }
+       else
+       { // otherwise append
+               if (PunchFile.Open(true) != 0)
+               {
+                       fprintf(output, "\n **** unable to open file: punch");
+                       fprintf(output, "\n **** PUNCH execution aborted\n");
+                       return;
+               }
+       }
+
+       if (RecFile.Open("recfil") != 0)
+       {
+               fprintf(output, "\n **** unable to open file: punch");
+               fprintf(output, "\n **** PUNCH execution aborted\n");
+               PunchFile.Close();
+               return;
+       }
+
+       if (RecFile.GetNelem(&nelem) != 0)
+       {
+               ;
+       }
+
+       if (RecFile.GetProjName(prjnam) != 0)
+       {
+               ;
+       }
+
+       area = nelem * nelem;
+
+       phan = (InFile.getwrd(FALSE, &eol, pnch_codes, 1) == hphan);
+
+       InFile.listit(flags);
+
+       recon = new REAL[area];
+
+       if (phan)
+       {
+               if (RecFile.ReadPhan(phnnam, recon) != 0)
+               {
+                       fprintf(output, "\n **** phantom not present\n");
+               }
+               else
+               {
+                       PunchFile.WritePhantomHeader(phnnam);
+
+                       PunchFile.WriteData(recon, nelem);
+               }
+       }
+
+       prjnam[30] = 0;
+
+       while (RecFile.ReadRec(recnam, algn, &count, &iter, recon) == 0)
+       {
+
+               recnam[30] = 0;
+
+               if (flags[iter - 1] != 0)
+               {
+
+                       fprintf(output,
+                                       "\n          reconstruction of %4s using %s iter %5i,   %s",
+                                       recnam, algn, count, prjnam);
+
+                       PunchFile.WriteRecHeader(recnam, algn, count, prjnam);
+
+                       PunchFile.WriteData(recon, nelem);
+               }
+       }
+
+       delete[] recon;  // bug 92 - Lajos - 03/02/2005
+
+       RecFile.Close();
+       PunchFile.Close();
+}
+
diff --git a/src/snark/pnch.h b/src/snark/pnch.h
new file mode 100644 (file)
index 0000000..1cd11af
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pnch.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef PNCH_H
+#define PNCH_H
+
+void pnch();
+
+#endif
diff --git a/src/snark/pnchfile.cpp b/src/snark/pnchfile.cpp
new file mode 100644 (file)
index 0000000..f5ea2a8
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pnchfile.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ */
+
+#include <cstdlib>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "creacm.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "noise.h"
+#include "objects.h"
+#include "recfile.h"
+#include "pnchfile.h"
+
+PunchFile_class PunchFile;
+
+PunchFile_class::PunchFile_class()
+{
+       PnchFil = NULL;
+}
+
+int PunchFile_class::Open(BOOLEAN append)
+{
+       const char* mode = (append) ? "a+" : "w";
+       if ((PnchFil = fopen("punch", mode)) == NULL)
+       {
+               return -1;
+       }
+
+       return 0;
+}
+
+void PunchFile_class::Close()
+{
+       if (PnchFil != NULL)
+       {
+               fclose(PnchFil);
+               PnchFil = NULL;
+       }
+}
+
+void PunchFile_class::WriteRecHeader(CHAR* recnam, CHAR* algn, INTEGER count,
+               CHAR* prjnam)
+{
+       fprintf(PnchFil, "%30s alg %4s iter %4i %30s\n", recnam, algn, count,
+                       prjnam);
+       WriteHeader(false);
+}
+
+void PunchFile_class::WritePhantomHeader(CHAR* phnnam)
+{
+       fprintf(PnchFil, "%s\n", phnnam);
+
+       WriteHeader(true);
+}
+
+void PunchFile_class::WriteData(REAL* recon, INTEGER nelem)
+{
+       REAL* jlo = recon;
+
+       for (int n = 0; n < nelem; n++)
+       {
+               for (int j = 0; j < nelem; j++)
+               {
+                       fprintf(PnchFil, " %10.4f", *jlo);
+                       if ((j % 7) == 6)
+                               fprintf(PnchFil, "\n");
+
+                       jlo++;
+               }
+               if (nelem % 7 != 0)
+                       fprintf(PnchFil, "\n");
+       }
+}
+
+void PunchFile_class::WriteHeader(BOOLEAN Phantom)
+{
+
+       static const CHAR keywdStr[40][5] =
+       { "last", "spec", "mono", "poly", "obje", "phan", "aver", "rays", "geom",
+                       "para", "dive", "stri", "line", "tang", "arc ", "unif", "vari",
+                       "angl", "meas", "perf", "nois", "quan", "scat", "mult", "addi",
+                       "seed", "back", "run ", "modi", "save", "pixe", "equa", "user",
+                       "and ", "afte", "step", "spac", "pnch", "    ", "    " };
+
+       static const CHAR kindStr[5][5] =
+       { "elip", "rect", "tria", "segm", "sect" };
+
+       static const INTEGER KWI_last = 0;
+       static const INTEGER KWI_spec = 1;
+       static const INTEGER KWI_mono = 2;
+       static const INTEGER KWI_poly = 3;
+       static const INTEGER KWI_obj = 4;
+       static const INTEGER KWI_pixel = 30;
+
+       // DATA SPACE FOR OBJECTS IN PHANTOM AT TOP OF BLANK COMMON
+
+       BOOLEAN perfct;
+       BOOLEAN noisfl;
+       BOOLEAN quanfl;
+
+       static const REAL one = 1.0;
+
+       int i, j;
+
+       INTEGER itype;
+
+       quanfl = NoisePar.quanin > 0;
+       noisfl = quanfl || NoisePar.ultnfl || NoisePar.addnfl;
+       perfct = !(NoisePar.sctnfl || noisfl);
+
+       // ALSO SET VALUES PROPERLY FOR UNAVAILABLE QUANTITIES
+       Creacm.nobj = 0;
+       Spctrm.nergy = 1;
+       Spctrm.energy[0] = -1;
+
+       // WRITE HEADER INFORMATION ON FILE11 FOR PHANTOM & RAYSUMS
+       // PUNCH OUT THE HEADER INFORMATION FOR THE PHANTOM AND PICTURES
+
+       // SPECTRUM
+       if (Spctrm.nergy == 1)
+       {
+               fprintf(PnchFil, "%s    %s %4i\n", keywdStr[KWI_spec],
+                               keywdStr[KWI_mono], Spctrm.energy[0]);
+       }
+
+       if (Spctrm.nergy > 1)
+       {
+
+               fprintf(PnchFil, "%s    %4s %4i\n", keywdStr[KWI_spec],
+                               keywdStr[KWI_poly], Spctrm.nergy);
+
+               for (i = 0; i < Spctrm.nergy; i++)
+               {
+                       fprintf(PnchFil, "%5i %5i ", Spctrm.energy[i], Creacm.percnt[i]);
+               }
+               fprintf(PnchFil, "\n");
+       }
+
+       // OBJECTS
+
+       fprintf(PnchFil, "%s\n", keywdStr[KWI_obj]);
+
+       if (Creacm.nobj != 0)
+       {
+
+               for (i = 0; i < Creacm.nobj; i++)
+               {
+                       itype = (int) objects[i].type;
+
+                       fprintf(PnchFil, "%4s  %9.4f %9.4f %9.4f %9.4f %9.4f %9.4f\n",
+                                       kindStr[itype], objects[i].cx, objects[i].cy, objects[i].u,
+                                       objects[i].v, objects[i].ang, objects[i].den1[0]);
+
+                       if (Spctrm.nergy > 1)
+                       {
+                               fprintf(PnchFil, "%4i ", i + 1);
+                               for (j = 1; j < Spctrm.nergy; j++)
+                               {
+                                       fprintf(PnchFil, " %9.4f", objects[i].den1[j]);
+                               }
+                               fprintf(PnchFil, "\n");
+                       }
+               }
+       }
+
+       fprintf(PnchFil, "%s %9.4f\n", keywdStr[KWI_last], one);
+
+       // SKIP PHANTOM AVERAGING AND OTHER INFO SUCH AS NELEM FOR RDPROJ
+
+       fprintf(PnchFil, "phan aver 1\n"); // bug 121 - swr - 6/30/05
+       int nelem;               // bug 166 - swr - 9/24/05
+       RecFile.GetNelem(&nelem);
+       REAL pixsiz;
+       RecFile.GetPixSize(&pixsiz);
+       fprintf(PnchFil, "%s    %i    size    %10.4f\n", keywdStr[KWI_pixel], nelem,
+                       pixsiz);
+
+       // IF CALLED FROM PUNCH WE ARE DONE
+       return;
+}
+
diff --git a/src/snark/pnchfile.h b/src/snark/pnchfile.h
new file mode 100644 (file)
index 0000000..8373163
--- /dev/null
@@ -0,0 +1,31 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pnchfile.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef PNCHFILE_H
+#define PNCHFILE_H
+
+extern class PunchFile_class
+{
+private:
+       FILE* PnchFil;
+       void WriteHeader(BOOLEAN Phantom);
+
+public:
+
+       PunchFile_class();
+       int Open(BOOLEAN append);
+       void WriteRecHeader(CHAR* recnam, CHAR* algn, INTEGER count, CHAR* prjnam);
+       void WritePhantomHeader(CHAR* phnnam);
+       void WriteData(REAL* recon, INTEGER nelem);
+       void Close();
+
+} PunchFile;
+
+#endif
diff --git a/src/snark/point.cpp b/src/snark/point.cpp
new file mode 100644 (file)
index 0000000..ce6c20e
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/point.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS SUBROUTINE PRODUCES THE POINT BY POINT RESOLUTION OF THE
+ RECONSTRUCTED PICTURE.  THIS MEASURE IS SIMILAR TO THAT DEFINED
+ IN FRIEDER AND HERMAN (J. THEOR. BIOL., VOL. 33, PP. 189-211),
+ HOWEVER, THE NUMBER OF SQUARES OF THE DIFFERENT SIZES HAS BEEN
+ GREATLY REDUCED TO MAKE THIS COMPUTATIONALLY FEASIBLE.
+ */
+
+#include <cstdio>
+#include <cstdlib>
+#include <cmath>
+
+#include "blkdta.h"
+#include "uiod.h"
+#include "eval.h"
+
+void Eval_class::point(REAL* a, REAL* b, REAL* c, INTEGER nelem, INTEGER* nerr,
+               REAL*epsil)
+{
+       int i, j, k;
+
+       INTEGER nh;
+       INTEGER nw;
+       INTEGER narea;
+       REAL cmax;
+       INTEGER nnh;
+       INTEGER nnw;
+       INTEGER ij;
+       INTEGER ik;
+       INTEGER ii;
+       INTEGER ii1;
+       INTEGER ii2;
+       INTEGER ii3;
+
+       *nerr = (INTEGER) (log((REAL) nelem) / log((REAL) 2) + 1.0);
+       if ((*nerr) > 15)
+       {
+               fprintf(output, "\n **** image is too large for evaluation");
+               fprintf(output, "\n **** program aborted\n");
+               fprintf(output, "\n");
+               exit(-1);
+       }
+
+       nh = nelem;
+       nw = nelem;
+       narea = nelem * nelem;
+
+       // COMPUTE THE DIFFERENCE PICTURE
+
+       for (i = 0; i < narea; i++)
+       {
+               c[i] = a[i] - b[i];
+       }
+
+       for (k = 0; k < *nerr; k++)
+       {
+               cmax = 0.0;
+               // FIND THE MAXIMUM PICTURE ELEMENT
+               for (i = 0; i < narea; i++)
+               {  //changed from 'i=1' to 'i=0' (Joel)
+                       cmax = MAX0((REAL) fabs(c[i]), cmax);
+               }
+
+               epsil[k] = cmax;
+
+               /*
+                REDUCE THE SIZE OF THE PICTURE BY AVERAGING 2X2 SQUARES,
+                DISCARDING REMAINING ODD SQUARES.  FOR EXAMPLE, IF THE ORIGINAL
+                PICTURE WAS 63X63, SUCESSIVE AVERAGED PICTURE SIZES WOULD BE
+                31X31, 15X15, 7X7, 3X3, AND 1X1.
+                */
+
+               nnh = nh / 2;
+               nnw = nw / 2;
+               ij = 0;           // used to be 'ij = 1' (Joel 8-12-03)
+               ik = 0;           // used to be 'ik = 1' (Joel 8-12-03)
+               for (i = 0; i < nnh; i++)
+               {
+
+                       ii = ik;
+                       for (j = 0; j < nnw; j++)
+                       {
+                               ii1 = ii + nw;
+                               ii2 = ii + 1;
+                               ii3 = ii1 + 1;
+                               c[ij] = (REAL) 0.25 * (c[ii] + c[ii1] + c[ii2] + c[ii3]);
+                               ii = ii + 2;
+                               ij = ij + 1;
+                       }
+                       ik = ik + nw + nw;
+               }
+
+               nh = nnh;
+               nw = nnw;
+               narea = nh * nw;
+       }
+       return;
+}
diff --git a/src/snark/pointwse.c b/src/snark/pointwse.c
new file mode 100644 (file)
index 0000000..23fe896
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pointwse.c $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include "experimenter.h"
+#include "read_eval_recon2.h"
+#include "pointwse.h"
+
+/* ----------------------------- pointwse.c -------------------------------
+
+ This function computes the pointwise accuracy.
+
+ INPUTS:
+ mode - number of MODE commands read in so far.
+ itr1 - array of length niters containing the iteration numbers for the
+ first algorithm.
+ itr2 - array of length niters containing the iteration numbers for the
+ second algorithm.
+ niters - number of iterations to be compared
+ keywrd1 - string containing the keyword which defines the first algorithm.
+ keywrd2 - string containing the keyword which defines the second algorithm.
+
+ OUTPUTS:
+ str_acc1 - array of length niters containing the structural accuracy for
+ the first algorithm.
+ str_acc1 - array of length niters containing the structural accuracy for
+ the second algorithm.
+
+ */
+
+void pointwse(int mode, int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* poin_acc1, double* poin_acc2)
+
+{
+       double recon;
+       int i;
+
+
+       for (i = 0; i < niters; i++)
+       { /* read in normalized root mean square distance for
+        the reconstructions. */
+
+               read_eval_recon2(mode, itr1[i], keywrd1, &recon);
+               poin_acc1[i] = -recon;
+               read_eval_recon2(mode, itr2[i], keywrd2, &recon);
+               poin_acc2[i] = -recon;
+
+       }
+
+}
diff --git a/src/snark/pointwse.h b/src/snark/pointwse.h
new file mode 100644 (file)
index 0000000..8766458
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pointwse.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef POINTWSE_H
+#define POINTWSE_H
+
+void pointwse(int mode, int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* poin_acc1, double* poin_acc2);
+
+#endif
diff --git a/src/snark/posit.cpp b/src/snark/posit.cpp
new file mode 100644 (file)
index 0000000..00f80a6
--- /dev/null
@@ -0,0 +1,123 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/posit.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ POSIT IS USED TO DETERMINE THE EQUATION OF A RAY.  ITS INPUT
+ CONSISTS OF THE NUMBER OF THE RAY AND THE SINE AND COSINE OF
+ THE PROJECTION ANGLE.  IT RETURNS THE COORDINATES OF A POINT
+ ON THE RAY, (AX,AY), AND THE SLOPE OF THE RAY, (MX,MY).  THE
+ ROUTINE ACCESSES GEOMETRY INFORMATION CONTAINED IN /GEOM/ AND
+ ASSUMES THAT GENPHI HAS BEEN CALLED TO COMPUTE THE SINE AND COSINE
+ TABLES FOR THE DIVERGENT GEOMETRY CASE.
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "uiod.h"
+
+#include "anglst.h"
+#include "posit.h"
+
+void posit(INTEGER np, INTEGER nr, REAL* ax, REAL* ay, REAL* mx, REAL* my)
+{
+       REAL costh;
+       REAL sinth;
+
+       REAL aa, rwidth;
+
+       INTEGER ind;
+
+// CHECK VALIDITY OF PARAMETERS NP AND NR
+
+       if ((np < 0) || (np >= GeoPar.prjnum))
+       {
+               fprintf(output, "\n **** np = %d is out of range (0..%d)", np,
+                               GeoPar.prjnum - 1);
+               fprintf(output, "\n **** program aborted\n");
+               exit(777);
+       }
+
+       if ((nr < 0) || (nr >= GeoPar.nrays))
+       {
+               fprintf(output, "\n **** nr = %d is out of range (0..%d)", nr,
+                               GeoPar.nrays - 1);
+               fprintf(output, "\n **** program aborted\n");
+               exit(777);
+       }
+
+       // INITIALIZATION
+       sinth = Anglst.bsin[np];
+       costh = Anglst.bcos[np];
+
+       ind = nr - GeoPar.midray;
+
+       // BREAK HERE FOR DIVERGENT OR PARALLEL GEOMETRY
+
+       if (!GeoPar.par)
+       {
+
+               // DIVERGENT CALCULATIONS FOLLOW
+               // RETURN THE POSITION OF THE SOURCE AS THE POINT ON THE RAY.
+               // THE ANGLE OF THE RAY IS THE DIFFERENCE OF THE PROJECTION ANGLE
+               // AND THE ANGLE THE RAY MAKES WITH THE CENTER RAY.
+
+               *ax = GeoPar.radius * costh;
+               *ay = GeoPar.radius * sinth;
+
+               if (ind < 0)
+               {
+                       *mx = costh * Anglst.cphi[(-ind) - 1]
+                                       - sinth * Anglst.sphi[(-ind) - 1];
+                       *my = sinth * Anglst.cphi[(-ind) - 1]
+                                       + costh * Anglst.sphi[(-ind) - 1];
+               }
+               else if (ind == 0)
+               {
+                       *mx = costh;
+                       *my = sinth;
+               }
+               else if (ind > 0)
+               {
+                       *mx = costh * Anglst.cphi[ind - 1] + sinth * Anglst.sphi[ind - 1];
+                       *my = sinth * Anglst.cphi[ind - 1] - costh * Anglst.sphi[ind - 1];
+               }
+       }
+       else
+       {
+
+               // PARALLEL CALCULATIONS FOLLOW
+               // COMPUTE THE INTERSECTION OF THE RAY WITH A LINE PERPENDICULAR TO
+               // IT AND PASSING THROUGH THE ORIGIN.  THE ANGLE IS JUST THE
+               // PROJECTION ANGLE.
+
+               if (GeoPar.uni)
+                       rwidth = GeoPar.pinc;
+               if (GeoPar.vri)
+                       rwidth = MAX0((REAL) fabs(sinth), (REAL) fabs(costh))
+                                       * GeoPar.pinc;
+               aa = rwidth * ind;
+               *ax = -sinth * aa;
+               *ay = costh * aa;
+               *mx = costh;
+               *my = sinth;
+       }
+
+
+       if (trace > 7)
+       {
+               fprintf(output, "\n          posit   ax = %25.20f ay = %25.20f", *ax,
+                               *ay);
+               fprintf(output, "\n                  mx = %25.20f my = %25.20f", *mx,
+                               *my);
+       }
+       return;
+}
diff --git a/src/snark/posit.h b/src/snark/posit.h
new file mode 100644 (file)
index 0000000..3e091af
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/posit.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef PASIT_H
+#define PASIT_H
+
+void posit(INTEGER np, INTEGER nr, REAL* ax, REAL* ay, REAL* mx, REAL* my);
+
+#endif
diff --git a/src/snark/post.cpp b/src/snark/post.cpp
new file mode 100644 (file)
index 0000000..9dea255
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/post.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "post.h"
+
+CHAR prjnam[81], phnnam[81], recnam[81];
diff --git a/src/snark/post.h b/src/snark/post.h
new file mode 100644 (file)
index 0000000..4b006a7
--- /dev/null
@@ -0,0 +1,18 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/post.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef POST_H
+#define POST_H
+
+#include "blkdta.h"
+
+extern CHAR prjnam[81], phnnam[81], recnam[81];
+
+#endif
diff --git a/src/snark/prdta.cpp b/src/snark/prdta.cpp
new file mode 100644 (file)
index 0000000..e7e3d9f
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/prdta.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ PRDTA RETURNS AS ITS VALUE THE RAYSUM OF THE NR-TH RAY IN THE
+ NP-TH PROJECTION.
+ IT BRINGS INTO CORE THE NRAYS VALUES FOR THE PROJECTION IF THEY
+ ARE NOT ALREADY THERE
+ */
+
+#include <cstdlib>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "anglst.h"
+#include "uiod.h"
+
+#include "projfile.h"
+
+REAL anglst_class::prdta(INTEGER np, INTEGER nr)
+{
+       REAL raysum;
+
+// IF NP IS NOT A VALID PROJECTION  TERMINATE WITH ERROR MESSAGE
+
+       if ((np < 0) || (np >= GeoPar.prjnum))
+       {
+               // ARGUMENTS OUT OF RANGE
+               fprintf(output, "\n **** np = %d is out of range (0..%d)", np, GeoPar.prjnum - 1);
+               fprintf(output, "\n **** program aborted\n");
+               exit(777);
+       }
+
+       raysum = 0.0;
+
+       // TEST IF PROJECTION IS ALREADY IN CORE, SAME AS LAST ONE READ
+
+       if (np != Anglst.incore)
+       {
+
+               // GET PROJECTION DATA FROM RANDOM FILE
+               Anglst.incore = np;
+               ProjFile.ReadProj(np, Anglst.pbase, GeoPar.nrays);
+       }
+
+       // IF  NR  IS NOT A VALID RAY NUMBER TERMINATE WITH ERROR MESSAGE
+
+       if ((nr < 0) || (nr >= GeoPar.nrays))
+       {
+               fprintf(output, "\n **** nr = %d is out of range (0..%d)", nr, GeoPar.nrays - 1);
+               fprintf(output, "\n **** program aborted\n");
+               exit(777);
+       }
+
+       raysum = Anglst.pbase[nr];
+
+       if (trace > 5)
+       {
+               fprintf(output, "\n          prdta   np = %5i  nr = %5i  raysum = %9.4f", np, nr, raysum);
+       }
+       return raysum;
+}
+
diff --git a/src/snark/primfc.cpp b/src/snark/primfc.cpp
new file mode 100644 (file)
index 0000000..31d7bda
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/primfc.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS SUBROUTINE DETERMINES THE PRIMEFACTORIZATION
+ OF N I.E.
+ N=2**M * IPF(1)*...*IPF(NIPF)
+ */
+
+#include <cstdlib>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "primfc.h"
+
+void primfc(INTEGER n, INTEGER* m, INTEGER* nipf, INTEGER* ipf, INTEGER mnipf)
+{
+       INTEGER ns;
+       INTEGER n2;
+       INTEGER iup;
+       INTEGER i;
+
+       // DETERMINE M
+
+       ns = n;
+       *m = 0;
+
+       for (;;)
+       {
+               n2 = ns / 2;
+               if ((2 * n2) != ns)
+                       break;
+               ns = n2;
+               (*m)++;
+       }
+
+       // DETERMINE OTHER PRIME FACTORS
+
+       (*nipf) = 0;
+       iup = ns;
+
+       for (i = 3; i <= iup; i += 2)
+       {
+               if (i > ns)
+                       return;
+               for (;;)
+               {
+                       n2 = ns / i;
+                       if ((n2 * i) != ns)
+                               break;
+                       ns = n2;
+                       (*nipf)++;
+                       if (*nipf > mnipf)
+                       {
+                               fprintf(output,
+                                               "\n **** the number of prime factors in %d is too large (> %d)",
+                                               n, mnipf);
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(1010);
+                       }
+                       ipf[*nipf - 1] = i;
+               }
+       }
+       return;
+}
diff --git a/src/snark/primfc.h b/src/snark/primfc.h
new file mode 100644 (file)
index 0000000..63de2cc
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/primfc.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef PRIMFC_H
+#define PRIMFC_H
+
+void primfc(INTEGER n, INTEGER* m, INTEGER* nipf, INTEGER* ipf, INTEGER mnipf);
+
+#endif      
diff --git a/src/snark/projection.c b/src/snark/projection.c
new file mode 100644 (file)
index 0000000..d393ded
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/projection.c $
+ $LastChangedRevision: 118 $
+ $Date: 2014-07-09 14:22:29 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of:
+ /*--------------------------------------------------------------------------
+ Super Snark V 1.0
+ Written by Jingsheng Zheng... November 1992
+
+ Modified by Jolyon Browne... June 1993
+ ----------------------------------------------------------------------------*/
+
+#include <strings.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "projection.h"
+
+/*--------------------------------------------------------------------------
+
+ This function echos the information stored in the file specified on
+ line 3 of the SuperSNARK input sequence. This information is sent to the
+ SNARK input stream.
+
+ INPUTS:
+ proj_flname - name of file containing information about generation of the
+ projection data. This is the file specified on line 3 of the
+ SuperSNARK input sequence.
+ seed - seed used in the random number generator.
+
+ OUTPUTS:
+ none.
+ ----------------------------------------------------------------------------*/
+
+/**
+ * 20140618 - BPRO: BUG 288 QUICK-FIX
+ *
+ * Replace current version of void projection(char* proj_flname, long seed)
+ * with the version from tar-ball: snark14.11.02.23
+ *
+ * Reason:
+ * The current version (tar-ball: snark14.14.04.10) should verify the
+ * input file of the projection command regarding its validity, but is missing
+ * some options (e.g. NITERS).
+ * The old version (tar-ball: snark14.11.02.23) does not perform any checks but
+ * copies all lines into the snark_e[runNo].in file.
+ *
+ * The file projection.c of the current version has been added as
+ * projection_snark14.14.04.10.c
+ * to SVN --> it can be used as basis for a "real" bug fix of bug 288
+ */
+void projection(char* proj_flname, long seed)
+{
+       char string[MAXLINESIZE];
+       FILE *projfl;
+
+       //seed = -1; // bug 176 - swr - 11/8/05
+       // bug 269, Joanna Klukowska, Feb. 13, 2011
+       // projection seed is generated randomly based on the seed in the input file
+       long projection_seed = (long) (100000000 * drand48());
+
+       if ((projfl = fopen(proj_flname, "r")) == NULL)
+       {
+               errorc("error in opening file", proj_flname);
+       }
+
+       while ((fgets(string, sizeof(string), projfl)) != NULL)
+       {
+               while (isSkip(string)) //it's a comment line,
+               {                    //echo it to output and read next line
+                       if (isComment(string))
+                               fprintf(pstream, "%s", string);
+                       if (fgets(string, sizeof(string), projfl) == NULL)
+                               break;
+               }
+               if (strncasecmp(string, "seed", 4) == 0)
+               {
+                       fprintf(pstream, "seed %ld\n", projection_seed);
+               }
+               else
+               {
+                       fprintf(pstream, "%s", string);
+               }
+       }
+
+       fclose(projfl);
+}
diff --git a/src/snark/projection.h b/src/snark/projection.h
new file mode 100644 (file)
index 0000000..bd173d8
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/projection.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef PROJECTION_H
+#define PROJECTION_H
+
+void projection(char* proj_flname, long seed);
+
+#endif
+
diff --git a/src/snark/projfile.cpp b/src/snark/projfile.cpp
new file mode 100644 (file)
index 0000000..eaced05
--- /dev/null
@@ -0,0 +1,451 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/projfile.cpp $
+ $LastChangedRevision: 118 $
+ $Date: 2014-07-09 14:22:29 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdlib>
+#include <cstring>
+#include <cmath>
+
+#include "uiod.h"
+
+#include "projfile.h"
+
+SnarkPrjFile ProjFile;
+
+SnarkPrjFile::SnarkPrjFile()
+{
+       AnglesBuff = NULL;
+}
+
+INTEGER SnarkPrjFile::Open(const char* FileName)
+{
+
+       if (DIGFileSnarkProj::Open(FileName) != 0)
+       {
+               return -1;
+       }
+
+       Angles = 1;
+       return 0;
+}
+
+INTEGER SnarkPrjFile::ReadHeader(char* name, Noise_class* Noise,
+               spctrm_class* Spct, anglst_class* Anglst)
+{
+       const char* tname;
+       double treal1, treal2;
+       int tint;
+       int i;
+       unsigned int tuint;
+
+       //////////////
+       // get Name //
+       //////////////
+
+       GetTitle(&tname);
+       strncpy(name, tname, 80);
+       name[80] = 0;
+
+       /////////////////////////////
+       // get GeoPar's attributes //
+       /////////////////////////////
+
+       GetNoOfProjs(&tuint);
+       NumberOfProjections = GeoPar.prjnum = tuint;
+
+       double tDIGSamp;
+       GetSampling(&tDIGSamp);
+       GeoPar.pinc = tDIGSamp;
+
+       unsigned int tDIGDim;
+       GetNoOfRays(&tDIGDim);
+       NumberOfRays = GeoPar.usrays = tDIGDim;
+
+       GeometryTypeEnum tGeomType;
+       GetGeometryType(&tGeomType);
+
+       DetectorTypeEnum tDetType;
+       ProjTypeEnum tProjType;
+
+       if (tGeomType == GT_DIVERGENT)
+       {
+               GeoPar.div = true;
+               GeoPar.par = false;
+               GeoPar.strip = false; // bug 207 - swr - 3/3/06
+               GeoPar.line = true;
+
+               GetGeometry(&treal1, &treal2, &tDetType);
+
+               if (tDetType == DT_TANGENT)
+               {
+                       GeoPar.tang = true;
+                       GeoPar.arc = false;
+               }
+               else
+               {
+                       GeoPar.tang = false;
+                       GeoPar.arc = true;
+               };
+
+               GeoPar.radius = treal1;
+               GeoPar.stod = treal2;
+       }
+       else
+       {
+               GeoPar.div = false;
+               GeoPar.par = true;
+
+               GetGeometry(&tDetType, &tProjType);
+
+               if (tDetType == DT_UNIFORM)
+               {
+                       GeoPar.uni = true;
+                       GeoPar.vri = false;
+               }
+               else
+               {
+                       GeoPar.uni = false;
+                       GeoPar.vri = true;
+               };
+
+               if (tProjType == PT_STRIP)
+               {
+                       GeoPar.strip = true;
+                       GeoPar.line = false;
+               }
+               else
+               {
+                       GeoPar.strip = false;
+                       GeoPar.line = true;
+               };
+       };
+
+       ////////////////////////////
+       // get Noise's attributes //
+       ////////////////////////////
+
+       //bug221 start - swr - 03/03/07
+       if (GetNoiseQuantum(&treal1, &treal2, &tint) == 0)
+       {
+               Noise->setQuantumNoise(tint, treal1, treal2);
+       }
+       else
+       {
+               Noise->setQuantumNoise(0, 1.0, 1.0);
+       }
+
+       if (GetNoiseScatter(&treal1, &treal2) == 0)
+       {
+               Noise->setScatter(treal1, treal2);
+       };
+
+       if (GetNoiseAdditive(&treal1, &treal2) == 0)
+       {
+               Noise->setAdditiveNoise(treal1, treal2);
+       };
+
+       if (GetNoiseMultiplicative(&treal1, &treal2) == 0)
+       {
+               Noise->setMultiplicativeNoise(treal1, treal2);
+       };
+       //bug221 end - swr - 03/03/07
+
+       ///////////////////////////
+       // get Spct's attributes //
+       ///////////////////////////
+
+       GetNoOfEnergies(&tuint);
+       Spct->nergy = tuint;
+
+       for (i = 0; i < tuint; i++)
+       {
+               GetSpectrum(i, &tint, &treal1, &treal2);
+
+               Spct->energy[i] = tint;
+               Spct->engwt[i] = treal1;
+               Spct->backgr[i] = treal2;
+       };
+
+       ///////////////////////////////////
+       // calculate GeoPar's attributes //
+       ///////////////////////////////////
+
+       GeoPar.snrays = GeoPar.numray(GeoPar.nelem, GeoPar.pixsiz);
+
+       if (GeoPar.usrays > GeoPar.snrays)
+       {
+               GeoPar.nrays = GeoPar.usrays;
+       }
+       else
+       { // bug194 - swr - 1/6/06
+               GeoPar.nrays = GeoPar.snrays;
+       }
+
+
+       GeoPar.midray = GeoPar.nrays / 2;
+       GeoPar.fsnray = (GeoPar.nrays - GeoPar.snrays) / 2;
+       GeoPar.lsnray = GeoPar.fsnray + GeoPar.snrays - 1;
+       GeoPar.fusray = (GeoPar.nrays - GeoPar.usrays) / 2;
+       GeoPar.lusray = GeoPar.fusray + GeoPar.usrays - 1;
+
+       //////////////////////////////
+       // get Anglst's  attributes //
+       //////////////////////////////
+
+       Anglst->Init(GeoPar.prjnum);
+
+       for (i = 0; i < GeoPar.prjnum; i++)
+       {
+
+               if (SelectProj(i) != 0)
+               {
+                       return -1;
+               }
+
+               if (GetProjAngle(&(Anglst->bth[i])) != 0)
+               {
+                       return -1;
+               }
+
+               Anglst->bsin[i] = (REAL) sin(Anglst->bth[i]);
+               Anglst->bcos[i] = (REAL) cos(Anglst->bth[i]);
+       };
+
+       Anglst->pbase = new REAL[GeoPar.nrays];
+       Anglst->incore = -1;
+
+       if (GeoPar.div)
+       {
+               Anglst->genphi();
+       }
+
+       return 0;
+}
+
+INTEGER SnarkPrjFile::ReadProj(INTEGER np, REAL* data, unsigned INTEGER nsize)
+{
+       unsigned int i;
+       unsigned int tNum;
+       INTEGER tSkip;
+       REAL *tArray;
+
+       if (SelectProj(np) != 0)
+       {
+               return -1;
+       }
+
+       GetNoOfRays(&tNum);
+       tArray = new REAL[tNum];
+       GetProjData(tArray);
+
+       if (nsize <= NumberOfRays)
+       {
+
+               // NSIZE IS FEWER THAN OR EQUAL TO USRAYS
+               tSkip = (NumberOfRays - nsize) / 2;
+               for (i = 0; i < nsize; i++)
+               {
+                       data[i] = tArray[i + tSkip];
+               }
+       }
+       else
+       {
+
+               // NSIZE IS GREATER THAN USRAYS
+               for (i = 0; i < nsize; i++)
+               {
+                       data[i] = 0.0;
+               }
+
+               tSkip = (nsize - NumberOfRays) / 2;
+
+               for (i = 0; i < NumberOfRays; i++)
+               {
+                       data[i + tSkip] = tArray[i];
+               }
+       };
+
+       delete[] tArray;
+
+       return 0;
+}
+
+INTEGER SnarkPrjFile::Open(const char* FileName, INTEGER usrays, INTEGER prjnum)
+{
+       NumberOfRays = usrays;
+       NumberOfProjections = prjnum;
+
+       AnglesBuff = new REAL[prjnum];
+
+       if (DIGFileSnarkProj::Open(FileName, "unknown", usrays, GeoPar.pinc,
+                       "This projection file has been created by snark14") != 0)
+               return -1;
+
+       Angles = 0;
+
+       return 0;
+}
+
+INTEGER SnarkPrjFile::WriteHeader(char* name, Geometry_class* Geo,
+               Noise_class* Noise, spctrm_class* Spct)
+{
+       //////////////
+       // set Name //
+       //////////////
+
+       SetTitle(name);
+
+       /////////////////////////////
+       // set GeoPar's attributes //
+       /////////////////////////////
+
+       if (Geo->div)
+       {
+               if (Geo->tang)
+               {
+                       SetGeometry(Geo->radius, Geo->stod, DT_TANGENT);
+               }
+               else
+               {
+                       SetGeometry(Geo->radius, Geo->stod, DT_ARC);
+               }
+       };
+
+       if (Geo->par)
+       {
+               if (Geo->uni)
+               {
+                       if (Geo->strip)
+                       {
+                               SetGeometry(DT_UNIFORM, PT_STRIP);
+                       }
+                       else
+                       {
+                               SetGeometry(DT_UNIFORM, PT_LINE);
+                       }
+               }
+               else
+               {
+                       if (Geo->strip)
+                       {
+                               SetGeometry(DT_VARIABLE, PT_STRIP);
+                       }
+                       else
+                       {
+                               SetGeometry(DT_VARIABLE, PT_LINE);
+                       }
+               };
+       };
+
+       ////////////////////////////
+       // set Noise's attributes //
+       ////////////////////////////
+
+       if (Noise->quanin > 0)
+       {
+               SetNoiseQuantum(Noise->quanmn, Noise->quancm, Noise->quanin);
+       }
+
+       if (Noise->sctnfl == true)
+       {
+               SetNoiseScatter(Noise->sctnpk, Noise->sctnwd);
+       }
+
+       if (Noise->addnfl == true)
+       {
+               SetNoiseAdditive(Noise->addnmn, Noise->addnsd);
+       }
+
+       if (Noise->ultnfl == true)
+       {
+               SetNoiseMultiplicative(Noise->ultnmn, Noise->ultnsd);
+       }
+
+       ///////////////////////////
+       // set Spct's attributes //
+       ///////////////////////////
+
+       int i;
+       double* treal1 = new double[Spct->nergy];
+       double* treal2 = new double[Spct->nergy];
+
+       for (i = 0; i < Spct->nergy; i++)
+       {
+               treal1[i] = Spct->engwt[i];
+               treal2[i] = Spct->backgr[i];
+       };
+
+       SetSpectrum(Spct->nergy, Spct->energy, treal1, treal2);
+
+       delete[] treal1;
+       delete[] treal2;
+
+       return 0;
+}
+
+INTEGER SnarkPrjFile::WriteAngles(REAL* bth)
+{
+
+       unsigned int i;
+
+
+       // if angles already stored report error
+       if (Angles == 1)
+       {
+               return -1;
+       }
+
+       // store angles into buffer
+       for (i = 0; i < NumberOfProjections; i++)
+       {
+               AnglesBuff[i] = bth[i];
+       };
+
+       Angles = 1;
+       return 0;
+}
+
+INTEGER SnarkPrjFile::WriteProj(INTEGER np, REAL* iprjec)
+{
+
+       if (Angles == 0)
+       {
+               fprintf(output, "\n **** PRJFile error: projection can not "
+                               "be stored while angles are not given !!!\n");
+               return -1;
+       };
+
+       if (AppendProj(np, AnglesBuff[np], "Projection created by snark14", iprjec)
+                       != 0)
+       {
+               return -1;
+       }
+
+       return 0;
+}
+
+INTEGER SnarkPrjFile::Close()
+{
+
+       if (AnglesBuff != NULL)
+       {
+               delete[] AnglesBuff; // bug 92 - Lajos - 03/02/2005
+               AnglesBuff = NULL;
+       }
+
+       // closes the file
+
+       if (DIGFileSnarkProj::Close() != 0)
+       {
+               return 1;
+       }
+
+       return 0;
+
+}
diff --git a/src/snark/projfile.h b/src/snark/projfile.h
new file mode 100644 (file)
index 0000000..a948df3
--- /dev/null
@@ -0,0 +1,51 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/projfile.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SROJFILE_H
+#define SROJFILE_H
+
+#include <cstdio>
+
+#include "blkdta.h"
+
+#include "geom.h"
+#include "spctrm.h"
+#include "noise.h"
+#include "anglst.h"
+
+#include "DIGFileSnarkProj.h"
+
+extern class SnarkPrjFile: private DIGFileSnarkProj
+{
+protected:
+
+       unsigned INTEGER NumberOfRays;         // usrays
+       unsigned INTEGER NumberOfProjections;  // prjnum
+       char Angles, Reading, Writing;
+       double* AnglesBuff;
+public:
+       SnarkPrjFile();
+       //~SPRJFile();
+
+       INTEGER Open(const char* FileName);INTEGER Open(const char* FileName, INTEGER usrays, INTEGER prjnum);
+
+       INTEGER ReadHeader(char* name, Noise_class* Noise, spctrm_class* Spct, anglst_class* Anglst);
+
+       INTEGER ReadProj(INTEGER np, REAL* data, unsigned INTEGER nsize);
+
+       INTEGER WriteHeader(char* name, Geometry_class* Geo, Noise_class* Noise, spctrm_class* Spct);
+
+       INTEGER WriteAngles(REAL* bth);INTEGER WriteProj(INTEGER np, REAL* iprjec);
+
+       INTEGER Close();
+
+} ProjFile;
+
+#endif
diff --git a/src/snark/pseudo.cpp b/src/snark/pseudo.cpp
new file mode 100644 (file)
index 0000000..13ed909
--- /dev/null
@@ -0,0 +1,63 @@
+/*      
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pseudo.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+// COMPUTE THE PSEUDO PROJECTION OF RAY NR IN PROJECTION NP OF
+// THE PICTURE PICT.
+#include <cstdio>
+
+#include "blkdta.h"
+#include "modefl.h"
+#include "uiod.h"
+
+#include "ray.h"
+#include "wray.h"
+#include "pseudo.h"
+
+REAL pseudo(REAL* pict, INTEGER np, INTEGER nr, INTEGER* list, REAL* weight,
+               INTEGER* numb, REAL* snorm, BOOLEAN line, BOOLEAN constr)
+{
+
+       INTEGER nb, k;
+       REAL pictk;
+       REAL sum = 0.0;
+
+       if (!line)
+       {
+               ray(np, nr, list, weight, numb, snorm);
+       }
+       else
+       {
+               wray(np, nr, list, weight, numb, snorm);
+       }
+
+       if (*numb != 0)
+       {
+               for (nb = 0; nb < *numb; nb++)
+               {
+                       k = list[nb];
+                       pictk = pict[k];
+                       if (constr)
+                       {
+                               if (Modefl.lofl)
+                                       pictk = MAX0(pictk, Modefl.lower);
+                               if (Modefl.upfl)
+                                       pictk = MIN0(pictk, Modefl.upper);
+                       }
+                       sum += pictk * weight[nb];
+               }
+       }
+       if (trace > 5)
+       {
+               fprintf(output,
+                               "\n          pseudo  np = %5i  nr = %5i  pseudo = %9.4f\n", np,
+                               nr, sum);
+       }
+       return sum;
+}
diff --git a/src/snark/pseudo.h b/src/snark/pseudo.h
new file mode 100644 (file)
index 0000000..7625e62
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/pseudo.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef PSEUDO_H
+#define PSEUDO_H
+      
+REAL pseudo (REAL* pict, INTEGER np, INTEGER nr, INTEGER* list, REAL* weight, INTEGER* numb, REAL* snorm, BOOLEAN line, BOOLEAN constr);
+
+#endif      
diff --git a/src/snark/qfilt.cpp b/src/snark/qfilt.cpp
new file mode 100644 (file)
index 0000000..7fdfce4
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/qfilt.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ COMPUTE THE VALUE OF THE FILTER FUNCTION FOR THE RHO-FILTERED
+ LAYERGRAM ALGORITHM
+ */
+
+/*      
+ THE IMPLEMENTED FILTERS ARE-
+ FILTER=0     BRACEWEL  ABS(R)*BOX(R/(2.0*CUTOFF))
+ FILTER=1     SHEPP     ABS(R)*SINC(R/(2.0*CUTOFF))
+ *BOX(R/(2.0*CUTOFF))
+ FILTER=2     COSINE    ABS(R)*COS(PI*R/(2.0*CUTOFF))
+ *BOX(R/(2.0*CUTOFF))
+ FILTER=3     HAMMING   ABS(R)*(ALPHA+(1.0-ALPHA)*COS(PI*R))
+ *BOX(R/2.0)
+ WHERE ALPHA = CUTOFF
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "qfilt.h"
+#include "consts.h"
+#include "uiod.h"
+
+REAL qfilt(REAL r, REAL cutoff, INTEGER filter)
+{
+       if (!((filter < 0) || (filter > 3)))
+       {
+               switch (filter)
+               {
+
+               case 0:
+                       if (fabs(r) > cutoff)
+                               return 0.0;
+                       return (REAL) fabs(r);
+
+               case 1:
+                       if (fabs(r) > cutoff)
+                               return 0.0;
+                       return (REAL) (cutoff * sin(Consts.pid2 * fabs(r) / cutoff)
+                                       / Consts.pid2);
+
+               case 2:
+                       if (fabs(r) > cutoff)
+                               return 0.0;
+                       return (REAL) (fabs(r) * cos(Consts.pid2 * r / cutoff));
+
+               case 3:
+                       if (fabs(r) > 1.0)
+                               return 0.0;
+                       return (REAL) (fabs(r)
+                                       * (cutoff + (1.0 - cutoff) * cos(Consts.pi * r)));
+               }
+       }
+
+       // INVALID FILTER, OUTPUT ERROR MESSAGE AND STOP
+
+       fprintf(output, "\n **** filter = %d is not a valid filter type for qfilt routine", filter);
+       fprintf(output, "\n **** program aborted\n");
+       exit(500);
+}
diff --git a/src/snark/qfilt.h b/src/snark/qfilt.h
new file mode 100644 (file)
index 0000000..8db8ad0
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/qfilt.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef QFILT_H
+#define QFILT_H
+
+REAL qfilt(REAL r, REAL cutoff, INTEGER filter);
+
+#endif
diff --git a/src/snark/qinit.cpp b/src/snark/qinit.cpp
new file mode 100644 (file)
index 0000000..9c94b37
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/qinit.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ INITIALIZE FILTER FUNCTION TABLE
+ FILTER = 1     FOR BAND LIMITING FILTER
+ = 2     FOR LOW PASS SINC FILTER
+ = 3     FOR LOW PASS COS  FILTER
+ = 4     FOR GENERALIZED HAMMING FILTER
+ (CUTOFF BECOMES PARAMETER ALPHA)
+ */
+
+#include <cstdlib>       
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "sinc.h"
+#include "qinit.h"
+#include "consts.h" 
+#include "uiod.h"
+
+void qinit(REAL* table, INTEGER isize, INTEGER filter, REAL c)
+{
+       REAL mc;
+
+       REAL factr;
+       INTEGER i;
+       REAL amc;
+       REAL smc;
+       REAL h1;
+       REAL h2;
+       REAL cm1;
+       INTEGER nsize;
+       INTEGER k;
+
+       switch (filter)
+       {
+       // BRACEWELL BAND LIMITING FILTER
+
+       case 0:
+               factr = c * c / (REAL) 4.0;
+               table[0] = factr;
+
+               for (i = 1; i < isize; i++)
+               {
+                       mc = i * c;
+                       table[i] = factr
+                                       * ((REAL) 2.0 * sinc(mc) - SQR(sinc(mc / ((REAL) 2.0))));
+               }
+               return;
+
+               // SHEPP LOW PASS FILTER
+
+       case 1:
+               factr = SQR(c / Consts.pi);
+               table[0] = (REAL) 2.0 * factr;
+               factr *= Consts.pid2;
+
+               for (i = 1; i < isize; i++)
+               {
+                       mc = i * c;
+                       amc = (REAL) 0.5 + mc;
+                       smc = (REAL) 0.5 - mc;
+                       table[i] = factr
+                                       * (sinc((REAL) 0.5 * amc) * (REAL) cos(Consts.pid2 * smc)
+                                                       + sinc((REAL) 0.5 * smc)
+                                                                       * (REAL) cos(Consts.pid2 * amc));
+               }
+               return;
+
+               // LOW PASS FILTER (COS)
+
+       case 2:
+               factr = SQR(c / Consts.pi);
+               table[0] = factr * (Consts.pi - (REAL) 2.0);
+               factr *= Consts.pid2 * Consts.pid2;
+
+               for (i = 1; i < isize; i++)
+               {
+                       mc = i * c;
+                       amc = (REAL) 0.5 + mc;
+                       smc = (REAL) 0.5 - mc;
+                       h1 = sinc((REAL) 0.5 * amc);
+                       h2 = sinc((REAL) 0.5 * smc);
+                       table[i] =
+                                       factr
+                                                       * (sinc(amc) + sinc(smc)
+                                                                       - (REAL) 0.5 * (SQR(h1) + SQR(h2)));
+               }
+               return;
+
+               // GENERALIZED HAMMING
+
+       case 3:
+               cm1 = c - (REAL) 1.0;
+               factr = (REAL) 1.0 / (Consts.pi * Consts.pi);
+               table[0] = c / (REAL) 4.0 + cm1 * factr;
+               table[1] = -c * factr - cm1 / (REAL) 8.0;
+               nsize = isize - 1;
+
+               for (k = 2; k < nsize; k += 2)
+               {
+                       table[k] = cm1 * factr / (REAL) 2.0
+                                       * ((REAL) pow((k - 1), (-2)) + (REAL) pow((k + 1), (-2)));
+                       table[k + 1] = -c * factr * (REAL) pow((k + 1), (-2));
+               }
+
+               table[isize - 1] = cm1 * factr / (REAL) 2.0
+                               * ((REAL) pow((isize - 2), (-2)) + (REAL) pow((isize), (-2)));
+               return;
+
+       default:
+               fprintf(output, "\n **** filter = %d is not a valid filter type for qinit routine", filter);
+               fprintf(output, "\n **** program aborted\n");
+               exit(500);
+               //}
+       }
+}
diff --git a/src/snark/qinit.h b/src/snark/qinit.h
new file mode 100644 (file)
index 0000000..e2742e9
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/qinit.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef QINIT_H
+#define QINIT_H
+
+void qinit(REAL* table, INTEGER isize, INTEGER filter, REAL c);
+
+#endif
diff --git a/src/snark/qintp.cpp b/src/snark/qintp.cpp
new file mode 100644 (file)
index 0000000..ea264a8
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/qintp.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ INITIALIZE CONVOLUTING FUNCTION FOR CONVOLUTION ALGORITHM.
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "consts.h"
+
+#include "qintp.h"
+
+REAL qintp(REAL pos, REAL* table, INTEGER n, INTEGER interp)
+{
+       INTEGER epos;
+       INTEGER opos;
+       REAL er;
+       REAL or1;
+       INTEGER i;
+
+       REAL a0;
+       REAL a1;
+       REAL a2;
+       REAL a3;
+       REAL sum;
+       REAL sgn;
+       INTEGER k;
+       REAL a1t2;
+       REAL a2t2;
+       REAL a4;
+       REAL a0t2;
+       REAL a1t4;
+       REAL a2t4;
+       REAL a3t4;
+       REAL a4t2;
+       REAL p1pm2;
+       REAL p2pm3;
+       REAL ppm1;
+       REAL pa23;
+       REAL pa14;
+       REAL pa05;
+
+       epos = (INTEGER) pos;
+       opos = (INTEGER) (pos + 0.5);
+       er = pos - epos;
+       or1 = pos - opos;
+       i = interp + 2;
+
+       /// fix for indexes in C++
+       epos--;
+       opos--;
+
+       switch (i)
+       {
+
+       // MODIFIED CUBIC SPLINE
+
+       case 1:
+               a0 = table[epos - 1];
+               a1 = table[epos];
+               a2 = table[epos + 1];
+               a3 = table[epos + 2];
+               return a1 + (REAL) 0.5 * er * (a2 - a0 + er     * ((REAL) 2.0 * a0 - (REAL) 5.0 * a1 + (REAL) 4.0 * a2 - a3     + er * (a3 - a0 + (REAL) 3.0 * (a1 - a2))));
+
+               // BAND LIMITING (SINC) INTERPOLATION
+
+       case 2:
+               if (fabs(or1) < Consts.zero)
+               {
+                       return table[opos];
+               }
+               sum = 0.0;
+               sgn = -1.0;
+               for (k = 0; k < n; k++)
+               {
+                       sum += sgn * table[k] / (pos - k);
+                       sgn = -sgn;
+               }
+
+               if (((opos / 2) * 2) == opos)
+               {
+                       return sum * (REAL) sin(Consts.pi * or1) / Consts.pi;
+               }
+               else
+               {
+                       return -sum * (REAL) sin(Consts.pi * or1) / Consts.pi;
+               }
+
+               // NEAREST POINT
+
+       case 3:
+               return table[opos];
+
+               // LINEAR INTERPOLATION
+
+       case 4:
+               return table[epos] + er * (table[epos + 1] - table[epos]);
+
+               // 3 POINT LAGRANGE
+
+       case 5:
+               a0 = table[opos - 1] / (REAL) 2.0;
+               a1 = table[opos];
+               a2 = table[opos + 1] / (REAL) 2.0;
+               return a1 + or1 * (-a0 + a2 + or1 * (a0 - a1 + a2));
+
+               // 4 POINT LAGRANGE
+
+       case 6:
+               a0 = table[epos - 1] / (REAL) 6.0;
+               a1 = table[epos] / (REAL) 2.0;
+               a2 = table[epos + 1] / (REAL) 2.0;
+               a3 = table[epos + 2] / (REAL) 6.0;
+               a1t2 = table[epos];
+               a2t2 = table[epos + 1];
+               return a1t2 + er * ((REAL) -2.0 * a0 - a1 + a2t2 - a3 + er * ((REAL) +3.0 * a0 - a1t2 + a2 + er * (-a0 + a1 - a2 + a3)));
+
+               // 5 POINT LAGRANGE
+
+       case 7:
+               a0 = table[opos - 2] / (REAL) 24.0;
+               a1 = table[opos - 1] / (REAL) 6.0;
+               a2 = table[opos] / (REAL) 4.0;
+               a3 = table[opos + 1] / (REAL) 6.0;
+               a4 = table[opos + 2] / (REAL) 24.0;
+               a0t2 = (REAL) 2.0 * a0;
+               a1t4 = (REAL) 4.0 * a1;
+               a2t4 = table[opos];
+               a3t4 = (REAL) 4.0 * a3;
+               a4t2 = (REAL) 2.0 * a4;
+               return a2t4 + or1 * (a0t2 - a1t4 + a3t4 - a4t2 + or1 * (-a0 + a1t4 - (REAL) 5.0 * a2 + a3t4 - a4 + or1 * (-a0t2 + a1 - a3 + a4t2 + or1 * (a0 - a1 + a2 - a3 + a4))));
+
+               // 6 POINT LAGRANGE
+
+       case 8:
+               p1pm2 = (er + (REAL) 1.0) * (er - (REAL) 2.0);
+               p2pm3 = (er + (REAL) 2.0) * (er - (REAL) 3.0);
+               ppm1 = er * (er - (REAL) 1.0);
+               pa23 = p1pm2 * p2pm3 / (REAL) 12.0;
+               pa14 = p2pm3 * ppm1 / (REAL) 24.0;
+               pa05 = ppm1 * p1pm2 / (REAL) 120.0;
+               return -pa05 * (er - (REAL) 3.0) * table[epos - 2]
+                               + pa14 * (er - (REAL) 2.0) * table[epos - 1]
+                               - pa23 * (er - (REAL) 1.0) * table[epos]
+                               + pa23 * er * table[epos + 1]
+                               - pa14 * (er + (REAL) 1.0) * table[epos + 2]
+                               + pa05 * (er + (REAL) 2.0) * table[epos + 3];
+
+       default:
+               // error invalid parameter interp
+               return 0;
+       }
+}
diff --git a/src/snark/qintp.h b/src/snark/qintp.h
new file mode 100644 (file)
index 0000000..3ed48ab
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/qintp.h $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef QINTP_H
+#define QINTP_H      
+
+REAL qintp(REAL pos, REAL* table, INTEGER n, INTEGER interp);
+
+#endif      
diff --git a/src/snark/quad.cpp b/src/snark/quad.cpp
new file mode 100644 (file)
index 0000000..fa34b00
--- /dev/null
@@ -0,0 +1,1311 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ quad.cpp,v 1.6 2009/06/01 03:33:26 jklukowska Exp
+
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
+ *                                                                *
+ *      QUADRATIC ITERATIVE RECONSTRUCTION ALGORITHMS             *
+ *                                                                *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
+
+
+    PROGRAM BY EHUD ARTZY 1977
+
+     INTRODUCTION
+     ============
+
+     THIS PROGRAM IS SET TO MINIMIZE THE FUNCTION
+
+     K(X)=SA*(P-M*X)#*A*(P-M*X)+(X-XBAR)#*(SB*B**L+SC*C**(-1)*(X-XBAR)
+
+     WHERE
+
+     M IS AN MM BY NN MATRIX
+     P AN MM-DIMENSIONAL VECTOR
+     A IS A NONNEGATIVE DIAGONAL MATRIX OF RANK MM
+     B,C ARE POSITIVE DEFINITE SYMETRIC NN BY NN MATRICES
+     SA,SB,SC ARE NONNEGATIVE REAL NUMBERS
+     XBAR IS AN NN-DIMENSIONAL VECTOR
+     L IS A NONNEGATIVE INTEGER
+     # STANDS FOR TRANSPOSE
+
+     IF SB = SC = 0 THEN AN ADDITIONAL DIAGONAL MATRIX D OF RANK NN IS
+     INTRODUCED WHICH, FOR ALL X WHICH MINIMIZE K(X), WILL CHOOSE THE
+     ONE WHICH MINIMIZES THE NORM OF D**(-1)*(X-XBAR)
+
+     IF SB + SC GREATER THAN 0 THEN
+
+        LET
+
+   (1)  Q = C**(T/2)*((SA*M#*A*M +SB*B**L)*C**(T/2) +(SC*C**(T/2 - 1))
+
+        F = C**(T/2)*SA*M#*A*(P - M*XBAR)
+
+        IF Y IS A SOLUTION OF Q*Y = F THEN  X = C**(T/2)*Y + XBAR
+        MINIMIZES K(X)
+
+     ELSE LET
+
+   (2)   Q = D*M#*A*M*D
+
+         F = D*M#*A*P
+
+         IF Y IS A SOLUTION OF Q*Y = F THEN X = D*Y IS A
+         MINIMUM POINT OF K(X)
+
+     FOR FURTHER DETAILS SEE:
+           QUADRATIC OPTIMIZATION FOR IMAGE RECONSTRUCTION.
+           GABOR T. HERMAN AND ARNOLD LENT
+           COMPUTER GRAPHICS AND IMAGE PROCESSING 5,319-332 (1976)
+
+      THE FOLLOWING ALGORITHM IS USED TO FIND THE SOLUTION OF Q*Y = F
+
+      G(0) = R(0) = Q*Y(0) - F
+      Y(K+1) = Y(K) - DELTA(K)*G(K)
+      R(K+1) = Q*Y(K+1) - F
+      G(K+1) = R(K+1) + GMA(K)*G(K)
+
+      AN ALTERNATIVE WAY TO COMPUTE R(K+1) IS GIVEN BY
+      R(K+1) = R(K) - DELTA(K)*Q*G(K)
+
+      THE FORMER IS REFFERED TO AS DIRECT METHOD AND THE LATER INDIRECT
+      METHOD
+
+      THE CHOICE OF DELTA(K) AND GMA(K) DETERMINE THE PARTICULAR KIND
+      OF ALGORITHM USED. WHEN GMA(K) = 0 FOR EVERY K WE HAVE A ONE STEP
+      METHOD (OSM) OTHERWISE WE HAVE TWO STEPS METHOD (TSS)
+
+      FOR USING THE PROGRAM THE USER MUST SPECIFY THE FOLLOWING
+      PARAMETERS:
+
+     CARD 1 - AOPT,BOPT,COPT,MINZ,PERIOD,TOLER,DELTA,GMA
+
+      AOPT  : 1 - OSM WITH DIRECT COMPUTATION OF GRADIENT
+              2 - OSM WITH INDIRECT COMPUTATION OF GRADIENT
+              3 - TSS WITH DIRECT COMPUTATION OF GRADIENT
+              4 - TSS WITH INDIRECT COMPUTATION OF GRADIENT
+
+      BOPT  : 0 - THIS IS A STATIONARY METHOD FOR OSM USER SUPPLIES
+                  DELTA FOR TSS USER SUPPLIES DELTA AND GMA
+              1 - THIS IS A STATIONARY METHOD WITH DELTA COMPUTED BY
+                 THE PROGRAM TO BE
+
+                         DELTA = 2.0/(LMD + ESMIN)
+                 WHERE
+                   LMD AND ESMIN ARE ESTIMATES OF LARGEST AND SMALLEST
+                   POSITIVE EIGENVALUES OF THE MATRIX Q.
+             -1 -  USER SUPPLY LMD AND ESMIN FOR BOPT 1
+              2 -  FOR OSM THIS IS RICHARDSON METHOD OF LENGTH PERIOD
+                   FOR TSS THIS IS SEMI ITERATIVE METHOD BASED ON
+                   RICHARDSON STATIONARY METHOD. LMD AND ESMIN(SEE 1)
+                   ARE COMPUTED BY THE PROGRAM FOR REFERENCE SEE:
+                   DAVID M. YOUNG
+                   ITERATIVE SOLUTION OF LARGE LINEAR SYSTEMS
+                   ACADEMIC PRESS 1971
+             -2 -  USER SUPPLY LMD AND ESMIN FOR BOPT 2
+              3 -  FOR OSM THIS IS THE STEEPEST DESCENT METHOD WHERE
+                   DELTA(K) = R(K)#*R(K)/(R(K)#*Q*R(K))
+                   FOR TSS THIS IS THE CONJUGATE GRADIENT METHOD WHERE
+                   DELTA(K) = R(K)#*R(K)/(G(K)#*Q*G(K))
+                   GMA(K) = R(K)#*R(K)/(R(K-1)#*R(K-1))
+
+      COPT  : 1 -  EQUATION 2 IS USED WITH GOITEIN D MATRIX
+                   FOR REFERENCE SEE:
+                   M. GOITEIN
+                   THREE-DIMENSIONAL DENSITY RECONSTRUCTION FROM A
+                   SERIES OF TWO-DIMENSIONAL PROJECTIONS
+                   NUCL. INSTR. METHODS 101, 509-518 (1972)
+              2 -  EQUATION 2 IS USED WITH LSIRT D MATRIX
+                   FOR REFERENCE SEE:
+                   A. V. LAKSHMINARAYNAN AND A. LENT
+                   THE SIMULTANEOUS ITERATIVE RECONSTRUCTION TECHNIQUE
+                   AS LEAST SQUARES METHOD
+                   SPIE. VOL. 96 OPTICAL INSTRUMENTATION IN
+                   MEDICINE V (1976)
+              3 -  THE USER SUPPLY HIS OWN DIAGONAL D MATRIX. THE
+                   VALUES OF THE DIAGONAL ELEMENTS ARE COMPUTED BY
+                   DSET SQUARED AND STORED IN A VECTOR OF LENGTH
+                   AREA (SEE SNARK MANUAL). THE CALLING SEQUENCE
+                   FOR DSET IS
+                   CT(D,LIST,WEIGHT)
+                   WHERE
+                   D     -CALCULATED VECTOR
+                   LIST  -SEE THE SNARK MANUAL
+                   WEIGHT-SEE THE SNARK MANUAL
+              4 -  EQUATION 1 IS USED CARD 3-5 MUST BE PRESENTED
+
+      MINZ  : 0 -  FOR BOPT 1 OR 2 ESMIN IS ASSUMED TO BE 0
+              1 -  FOR BOPT 1 OR 2 ESMIN IS CALCULATED
+
+      PERIOD: N -  N IS THE LENGTH OF THE PERIOD FOR THE RICHARDSON OSM
+                   N MUST BE IN THE RANGE 1-32
+
+      TOLER :   -  THIS IS THE TOLERANCE FOR WHICH LMD AND ESMIN IS
+                   COMPUTED FOR REFERENCE SEE:
+                   A COMPUTER INPLEMENTATION OF BAYESIAN ANALYSIS
+                   OF IMAGE RECONSTRUCTION
+                   G. T. HERMAN AND A. LENT
+                   INFORMATION AND CONTROL 31,364-384 (1976)
+
+      DELTA :   -  FOR BOPT 0 THIS IS CONSTANT DELTA
+                   FOR BOPT -1,-2 THIS IS USER SUPPLY ESMIN
+
+      GMA   :   -  FOR BOPT 0 AND TSS THIS IS CONSTANT GMA
+                   FOR BOPT -1,-2 THIS IS USER SUPPLY LMD
+
+     CARD 2 - DOPT,EOPT,FOPT,GOPT,HOPT,POPT,ERROR,MINPRD,INTERP
+
+      DOPT  : 1 -  NATURAL ORDER FOR PICKING DELTA FOR RICHARDSON OSM
+                   (AOPT LE 2 BOPT 2)
+              2 -  USER SUPPLY ORDER OF PICKING DELTA CARD 6 MUST BE
+                   PRESENTED
+              3 - LEBEDTV-FINOGENOV ORDERING FOR PICKING DELTA
+                  FOR REFERENCE SEE:
+                  R.S. ANDERSSEN AND G.H. GOLUB
+                  RICHARDSONS NON-STATIONARY MATRIX ITERATIVE PROCEDURE
+                  STAN-CS-72-307 (1972)
+                  STANFORD UNIVERSITY
+      EOPT  : 1 - A IS THE IDENTITY MATRIX TIMES THE CONSTANT ERROR
+              2 - THE VALUE OF THE MATRIX A IS COMPUTED BY ESTIMATING
+                  THE VARIANCE IN THE MEASUREMENTS. THIS OPTION IS
+                  AVAILABLE ONLY FOR NOISY DATA (SEE SNARK MANUAL FOR
+                  NOISE ESTIMATION).
+              3 - USER SUPPLY AN ERROR ROUTINE. THE CALLING SEQUENCE
+                  IS
+                    PUNCTION UERROR(NP,NR,PD)
+                    WHERE
+                    NP - IS A PROJECTION NUMBER
+                    NR - IS A RAY NUMBER IN PROJECTION NP
+                    PD - IS THE VALUE OF THE (NP,NR) PROJECTION
+
+      FOPT  : 1 - XBAR (EXPECTED VALUE) IS THE ZERO VECTOR
+              2 - XBAR IS AVERAGE DENSITY AS APROXIMATE BY SNARK
+              3 - XBAR IS NORMALIZE BACK PROJECTION
+              4 - XBAR IS CONTINUOUS BACK PROJECTION
+              5 - XBAR IS STARTING POINT
+      GOPT  : 0 - NO SPLITTING
+              1 - DIAGONAL SPLITTING
+              2 - USER SUPPLY SPLITTING MATRIX
+                    CALL SSET(S,LIST,WEIGHT)
+            WHERE
+            S IS A DIAGONAL SPLITTING MATRIX
+            LIST SEE THE SNARK05 MANUAL
+            WEIGHT SEE THE SNARK05 MANUAL
+
+      HOPT  : 1 - RECONSTRUCTED PICTURE IS CORRECTED SO THAT AVERAGE
+                  DENSITY WILL BE EQUAL TO THAT OF AVERAGE DENSITY
+                  COMPUTED BY SNARK
+              0 - NO CORRECTION
+
+      POPT  : 0 - NO REPORTS
+              1 - THE FOLLOWING VALUES ARE REPORTED
+                  GRADIENT (ONLY FOR AOPT GE 2 OR BOPT 3)
+                  NORM OF CORRECTION,DELTA,NORM OF CORRECTING VECTOR
+              2 - IN ADDITION COST FUNCTION IF POSSIBLE
+
+      ERROR :   - FOR EOPT 1 THE VALUE OF THE DIAGONAL ELEMENT
+      MINPRD:   - IF MULTIPLICATIVE NOISE IS PRESENTED AND EOPT 2
+                  A CONSTANT TO USE WHEN MEASURMENT IS ZERO MUST BE
+                  SPECIFIED
+
+      INTERP:   - FOR FOPT 4 THIS IS THE INTERPOLATION INDEX
+               (SEE THE SNARK05 MANUAL)
+
+      THE FOLLOWING CARD(S) IS(ARE) READ ONLY IF BOPT = 2
+
+            ORDER(I), I = 1,PERIOD
+      ORDER :  PERIOD NUMBERS IN THE RANGE 1 TO PERIOD
+
+      THE FOLLOWING 3 CARDS ARE READ ONLY IF COPT GE 4
+
+     CARD 3 - SA,SB,SC
+
+      SA    :   CONSTANT (SEE EQUATION 1)
+      SB    :   CONSTANT (SEE EQUATION 1)
+      SC    :   CONSTANT (SEE EQUATION 1)
+
+     CARD 4 - L,BW1,BW2,BBCON          *** MATRIX B ***
+
+      L     : POWER OF MATRIX B
+      BW1   : VARIANCE OF DENSITY IN AN ARBITRARY PIXEL
+      BW2   : COVARIANCE OF DENSITIES IN NEIGHBORING PIXELS
+      BW3   : COVARIANCE OF DENSITIES IN DIAGONALY NEIGHBORING PIXELS
+      BBCON : KAMI - GENERALIZED KASHYAP-MITTAL SMOOTING (L MUST BE 1)
+                     FOR REFERENCE SEE:
+                     R.L. KASHYAP AND M.C. MITTLE
+                     PICTURE RECONSTRUCTION FROM PROJECTIONS
+                     1EEE TRANS. COMPUTERS, C-27,915-923 (1975)
+              SAJZ - SMOTH AS IN SNAR WITHOUT NORMALIZATION
+              SAJC - SAME AS SAJZ EXCEPT THAT BOARDER PIXELS ASSUME
+                     THE SAME DENSITY OUTSIDE THE PICTURE
+              SNAR - SMOTH AS IN SNARK(SEE SNARK MANUAL) FOR SNAR
+                     B IS NOT A SYMETRIC MATRIX
+
+     CARD 5 - T,CW1,CW2,CW3,CBCON      *** MATRIX C ***
+
+      T     : T/2 IS THE POWER OF MATRIX C IN EQUATION 1
+      CW1   : SEE BW1
+      CW2   : SEE BW2
+      CW3   : SEE BW3
+      CBCON : SEE BBCON
+
+
+
+***********************************************************************
+*/
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "fourie.h"
+#include "anglst.h"
+#include "bckprj.h"
+#include "int2str.h"
+#include "modefl.h"
+#include "consts.h"
+#include "uiod.h"
+#include "projfile.h"
+#include "infile.h"
+#include "errpar.h"
+#include "err.h"
+#include "blob.h"
+
+#include "quad.h"
+
+INTEGER quad_class::Init()
+{
+
+  cg_ = NULL;
+  g_ = NULL;
+  v_ = NULL;
+  w_ = NULL;
+  r_ = NULL;
+  f_ = NULL;
+  fb_ = NULL;
+  s_ = NULL;
+  d_ = NULL;
+  m = NULL;
+  n = NULL;
+
+  del = NULL;               //bug 174, wei, 10/2005
+  order = NULL;
+
+  return 0;                      //wei, 3/2005
+}
+
+INTEGER quad_class::Reset()
+{
+  if(m != NULL&& m != n) delete[] m;
+  if(n != NULL&& n != w_) delete[] n;                 //bug 191, wei, 12/2005
+  if(cg_ != NULL&&cg_!=g_) delete[] cg_;
+  if(g_ != NULL&&g_!=r_) delete[] g_;
+  if(v_ != NULL&&v_!=r_) delete[] v_;
+  if(w_ != NULL&&w_!=r_) delete[] w_;
+  if(r_ != NULL) delete[] r_;
+  if(f_ != NULL) delete[] f_;
+  if(fb_ != NULL) delete[] fb_;
+  if(s_ != NULL) delete[] s_;
+  if(d_ != NULL) delete[] d_;
+  if(del != NULL) delete[] del;   //bug 174, wei, 10/2005
+  if(order != NULL) delete[] order;
+
+    
+
+  return 0;                    //wei, 3/2005
+}
+
+BOOLEAN quad_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+  static INTEGER minz;
+
+  static REAL delta;
+  REAL toler;
+  static REAL gma;//set static. hstau see deltac()  below
+  //INTEGER popt;  poot is global, why is it declared here? hstau
+  INTEGER ir;
+  //REAL ratio;
+  //INTEGER iratio;
+  INTEGER i;
+
+  ///INTEGER* order;
+  //REAL error;
+  //REAL sa;
+  //REAL sb;
+  //REAL sc;
+  //INTEGER l;
+  //INTEGER t;
+  //REAL bw1;
+  //REAL bw2;
+  //REAL bw3;
+  //INTEGER bbcon;
+  //REAL cw1;
+  //REAL cw2;
+  //REAL cw3;
+  //INTEGER cbcon;
+  //REAL xbar;
+  ///INTEGER iterx;
+  //INTEGER aopt;
+  //INTEGER bopt;
+  //INTEGER copt;
+  //INTEGER period;
+  //INTEGER dopt;
+  //INTEGER eopt;
+  //INTEGER fopt;
+  //INTEGER gopt;
+  //INTEGER  hopt;
+  
+  INTEGER k;
+  REAL dumy;
+  REAL dum = 0.0; // this is dummy variable
+  //INTEGER js;
+  static REAL esmin; // needed to be set static? hstau
+  INTEGER j;
+
+  INTEGER np;
+  REAL theta;
+  REAL sinth;
+  REAL costh;
+  REAL spac;
+
+
+  BOOLEAN xalg8_tmp;
+  
+/*
+  static REAL* cg_;//set static. hstau see deltad()  below
+  static REAL* g_;//set static. hstau see deltad()  below
+  static REAL* v_;
+  static REAL* w_;  //set static. hstau
+  static REAL* r_;
+  static REAL* f_;  //set static. hstau see resedu() and prpict()  below
+  static REAL* fb_;  //for blob case;
+  static REAL* s_; //set static. hstau
+  static REAL* d_; //set static. hstau                     //moved to class quad,wei,3/2005
+*/                               
+
+  static REAL lmd; // needed to be set static? hstau
+  ///dimension init(20),dmart(6),let(8)
+  INTEGER headng;
+  static BOOLEAN alg;//set static. hstau
+  BOOLEAN eol;
+
+  /*
+  //data let / 1ha,1hb,1hc,1hd,1he,1hf,1hg,1hh /
+   static const INTEGER let[] = {// needed to be set static? hstau
+     CHAR2INT(' ',' ',' ',' '),   //added to match Fortran indexing .hstau
+     CHAR2INT('a',' ',' ',' '),
+     CHAR2INT('b',' ',' ',' '),
+     CHAR2INT('c',' ',' ',' '),
+     CHAR2INT('d',' ',' ',' '),
+     CHAR2INT('e',' ',' ',' '),
+     CHAR2INT('f',' ',' ',' '),
+     CHAR2INT('g',' ',' ',' '),
+     CHAR2INT('h',' ',' ',' ')
+   };
+   */
+  const char *let[] = {
+    "algorithm", 
+    "delta_flag",
+    "d_flag",
+    "order",
+    "error_type",
+    "exp_value",
+    "split", 
+    "normalize",
+    "period",
+    "toler",
+    "print",
+    "error",
+    "minv",
+    "interp"};
+
+  //data dmart /4hgoit,4hein ,4hsirt,4h    ,4huser,4h    /
+//  static const INTEGER dmart[] = {// needed to be set static? hstau
+//    CHAR2INT(' ',' ',' ',' '),   //added to match Fortran indexing .hstau
+//    CHAR2INT('g','o','i','t'),
+//    CHAR2INT('e','i','n',' '),
+//    CHAR2INT('s','i','r','t'),
+//    CHAR2INT(' ',' ',' ',' '),
+//    CHAR2INT('u','s','e','r'),
+//    CHAR2INT(' ',' ',' ',' ')
+//  };
+
+  ///data init / 4hzero,4h vec,4htor ,4h    ,4haver,4hage ,4hdens,
+  ///            4hity ,4hback,4h pro,4hject,4hion , 4hcont,4h bac,
+  ///            4hk pr,4hojs ,4hinit,4hial ,4hvect,4hor  /
+
+  static const INTEGER init[] = {// needed to be set static? hstau
+    CHAR2INT(' ',' ',' ',' '),   //added to match Fortran indexing .hstau
+    CHAR2INT('z','e','r','o'),
+    CHAR2INT(' ','v','e','c'),
+    CHAR2INT('t','o','r',' '),
+    CHAR2INT(' ',' ',' ',' '),
+    CHAR2INT('a','v','e','r'),
+    CHAR2INT('a','g','e',' '),
+    CHAR2INT('d','e','n','s'),
+    CHAR2INT('i','t','y',' '),
+    CHAR2INT('b','a','c','k'),
+    CHAR2INT(' ','p','r','o'),
+    CHAR2INT('j','e','c','t'),
+    CHAR2INT('i','o','n',' '), 
+    CHAR2INT('c','o','n','t'),
+    CHAR2INT(' ','b','a','c'),
+    CHAR2INT('k',' ','p','r'),
+    CHAR2INT('o','j','s',' '),
+    CHAR2INT('i','n','i','t'),
+    CHAR2INT('i','a','l',' '),
+    CHAR2INT('v','e','c','t'),
+    CHAR2INT('o','r',' ',' ')
+  };
+
+  static const INTEGER hbb = CHAR2INT(' ',' ',' ',' ');// needed to be set static? hstau
+  static const INTEGER hin = CHAR2INT(' ',' ','i','n');// needed to be set static? corr. move i n to the last two positions hstau
+
+  // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 16, 2004
+  static const INTEGER quad_blurck_codes[4] =
+  {
+    CHAR2INT('s','n','a','r'),
+    CHAR2INT('k','a','m','i'),
+    CHAR2INT('s','a','j','z'),
+    CHAR2INT('s','a','j','c')
+  };
+
+
+  INTEGER area;
+
+
+  iterx = iter;
+
+  
+  if(Blob.pix_basis) {
+    area = GeoPar.area;
+  }
+  else {
+    area = Blob.area;
+  }
+    
+ ///tracer
+  //   for(i = 0; i < area; i++) {
+  //  fprintf(output,"\nrecon=%f", recon[i]);
+  //}
+      ////tracer
+// THE FOLLOWING SECTION IS EXECUTED ONLY AT FIRST ITERATION
+
+  if(!(iter != 1)) {
+
+    // INITILIZE DUMMY VARIABLE
+
+    xalg8_tmp = FALSE;
+    alg = FALSE;
+    ///  d = 1;
+    ///  f = 1;
+    ///  s = 1;
+
+    // READ INPUT
+
+    ///aopt = getint(input, &eol);
+    ///bopt = getint(NULL, &eol);
+    ///copt = getint(NULL, &eol);
+    ///minz = getint(NULL, &eol);
+    ///period = getint(NULL, &eol);
+    ///toler = getnum(NULL, &eol);
+    ///delta = getnum(NULL, &eol);
+    ///gma = getnum(NULL, &eol);
+    ///dopt = getint(input, &eol);
+    ///eopt = getint(NULL, &eol);
+    ///fopt = getint(NULL, &eol);
+    ///gopt = getint(NULL, &eol);
+    ///hopt = getint(NULL, &eol);
+    ///popt = getint(NULL, &eol);
+    ///error_1 = getnum(NULL, &eol);
+    ///Err.minprd = getnum(NULL, &eol);
+    ///Fourie.interp = getint(NULL, &eol);
+
+    aopt = InFile.getint(TRUE, &eol);
+    bopt = InFile.getint(FALSE, &eol);
+    copt = InFile.getint(FALSE, &eol);
+    minz = InFile.getint(FALSE, &eol);
+    period = InFile.getint(FALSE, &eol);
+    toler = InFile.getnum(FALSE, &eol);
+    delta = InFile.getnum(FALSE, &eol);
+    gma = InFile.getnum(FALSE, &eol);
+
+    if(eol) {
+      fprintf(output, "\n         *** insufficient data item - end of line encountered ***");
+      xalg8_tmp = TRUE;
+      return xalg8_tmp;
+    }
+
+    dopt = InFile.getint(TRUE, &eol);
+    eopt = InFile.getint(FALSE, &eol);
+    fopt = InFile.getint(FALSE, &eol);
+    gopt = InFile.getint(FALSE, &eol);
+    hopt = InFile.getint(FALSE, &eol);
+    popt = InFile.getint(FALSE, &eol);
+    error_1 = InFile.getnum(FALSE, &eol);
+    Err.minprd = InFile.getnum(FALSE, &eol);
+    Fourie.interp = InFile.getint(FALSE, &eol);
+    //tracer
+    //fprintf(output,"dopt=%d eopt=%d fopt=%d  gopt=%d hopt=%d popt=%d error=%f minv=%f interp=%d", dopt, eopt, fopt, gopt, hopt, popt, error_1, Err.minprd, Fourie.interp);  
+    //tracer
+    if(eol) {
+      fprintf(output, "\n         *** insufficient data item - end of line encountered ***");
+      xalg8_tmp = TRUE;
+      return xalg8_tmp;
+    }
+
+    // CHECK RANGE OF OPTIONS
+
+    // Add a general checking regardless whether the parameter will be used or not,
+    // reflecting the table summrizing all the restrictions on the QUAD variables in the manual
+    // bug 191, wei, 12/2006
+    
+    if(!((aopt>=1 ) &&(aopt<=4)))  
+       { fprintf(output, "\n         *** option algorithm is out of range ***");
+      xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!((bopt>= -2) &&(bopt<=3)))  
+       {fprintf(output, "\n         *** option delta-flga is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!((copt>= 1) &&(copt<=4)))  
+       {fprintf(output, "\n         *** option d-flag is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!(period>=1 ))                     
+       {fprintf(output, "\n         *** option period is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!(toler> Consts.zero))            
+       {fprintf(output, "\n         *** option toler is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!((dopt>=1 ) &&(dopt<=3)))  
+       {fprintf(output, "\n         *** option order is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!((eopt>=1 ) &&(eopt<=3)))  
+       {fprintf(output, "\n         *** option error-type is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!((fopt>= 1) &&(fopt<=5)))  
+       {fprintf(output, "\n         *** option exp-valueis out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!((gopt>=0 ) &&(gopt<=2)))  
+       {fprintf(output, "\n         *** option split is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!((hopt>=0 ) &&(hopt<=1)))  
+       {fprintf(output, "\n         *** option normalize is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!((popt>=0 ) &&(popt<=2)))  
+       {fprintf(output, "\n         *** option print is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!(error_1> Consts.zero ))       
+       {fprintf(output, "\n         *** option error is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!(Err.minprd> Consts.zero ))  
+       {fprintf(output, "\n         *** option minv is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+    if(!((Fourie.interp>= -1) &&(Fourie.interp<=6)))  
+       {fprintf(output, "\n         *** option interp is out of range ***");
+          xalg8_tmp = TRUE;
+      return xalg8_tmp;}
+      
+        
+    ir = 0;
+    if(((aopt == 3) || (aopt == 4)) && ((bopt == 1) || (bopt == -1))) ir = 3;   // corr. and bug in Fortran hstau
+    if((aopt < 1) || (aopt > 4)) ir = 1;
+    if((bopt < -2) || (bopt > 3)) ir += 2;  //bug in Fortran hstau
+    if((copt < 1) || (copt > 4)) ir += 4;
+
+    if(!((aopt > 2) || (abs(bopt))  !=  2)) {
+
+      if((dopt < 1) || (dopt > 3)) ir += 8;
+    }
+
+    if((eopt < 1) || (eopt > 3)) ir += 16;
+    if(copt  >  3)  {
+
+      if((fopt < 1) || (fopt > 5)) ir += 32;//bug in Fortran hstau
+    }
+    if((gopt < 0) || (gopt > 2)) ir += 64;
+    if((hopt < 0) || (hopt > 1)) ir += 128;
+    if(period < 1)               ir += 256;  // added hstau
+    if(toler < Consts.zero)      ir += 512;  // added hstau
+    if( popt < 0  ||  popt > 2 ) ir += 1024;  // added hstau
+    if(error_1 < Consts.zero)    ir += 2048;  // added hstau
+    
+    if(eopt == 2) {
+      if(Err.minprd < Consts.zero) ir += 4096;  // added hstau
+    }
+    
+    if(fopt == 4) {
+      if(Fourie.interp < -1 ||  Fourie.interp > 6 ) ir += 8192; // added hstau
+    }
+   
+    if(aopt > 2 && abs(bopt) == 2) {  //eleminate this quad algorithm from the old manual. hstau 1/04
+      fprintf(output, "\n\n      ***delta_flag cannot be 2 or -2 for algorithm = 3 or 4***");
+      xalg8_tmp = TRUE;
+      return xalg8_tmp;
+    }
+
+      // OPTION OUT OF RANGE
+    if(ir > 0) {
+      for(i = 0; i < 14; i++) {
+        if(ir != ((ir/2)*2)) {
+          //fprintf(output, "\n\n      *** %c opt out of range, program stops***", let[i]);
+          fprintf(output, "\n\n      ***option %s out of range, program stops***", let[i]); //hstau
+        }
+
+        ir = ir/2;
+      }
+      xalg8_tmp = TRUE;
+      return xalg8_tmp;
+
+    }
+
+    // PRINT HEADING
+
+    if((aopt >= 3) && (bopt == 3)) {
+      fprintf(output, "\n           the conjugate gradient algorithm");
+    }
+
+    if((aopt <= 2) && (bopt == 3)) {
+      fprintf(output, "\n           the steepest descent algorithm");
+    }
+
+    if((aopt >= 3) && (abs(bopt) == 2)) {
+      fprintf(output, "\n           richardson semi iterative method");
+    }
+
+    if((aopt <= 2) && (abs(bopt) == 2)) {
+      fprintf(output, "\n           richardson one step method");
+    }
+
+    if((aopt >= 3) && (abs(bopt)  <=  1)) {
+      fprintf(output, "\n           a stationary two steps method");
+    }
+
+    if((aopt <= 2) && (abs(bopt)  <=  1)) {
+      fprintf(output, "\n           a stationary one steps method");
+    }
+
+    headng = hbb;
+    if(aopt == (aopt/2)*2) headng = hin;
+    fprintf(output, "\n\n            %2sdirect gradient computation", int2str(headng)); //corr. reduce space betw %2s and direct hstau
+    fprintf(output, "\n          =================================");
+
+    if(gopt == 1) {
+      fprintf(output, "\n\n              diagonal scaling is used");
+    }
+
+    if(gopt == 2) {
+      fprintf(output, "\n\n              with user supplied scalling");
+    }
+  
+    //bug 154 this checking is ignored hstau. 8 2005
+    /*
+    // CHECK RATIO OF PIXSIZ AND RINC (APPLY ONLY FOR STRIP MODE) affect blobs? hstau
+
+    ratio = GeoPar.pixsiz/GeoPar.pinc;
+    iratio = (INTEGER)(ratio + 0.5);
+    if((GeoPar.strip) && ((iratio < 1) || (fabs(iratio-ratio) >= 0.05))) {
+      fprintf(output, "\n\n      ***warning pinc is not an integer multiplication of pixsiz");
+    }
+    */
+  
+    // READ USER SUPLIED ORDER IF CALLED FOR
+
+    if(!((aopt > 2) || (abs(bopt) != 2))) {
+      order = new INTEGER[period];
+
+      if(dopt == 2) {
+
+        order[0] = InFile.getint(TRUE, &eol);
+
+      if(eol || order[0] < 1 || order[0] > period){
+        fprintf(output, "\n\n       insufficient data item, user specified order required \n   or illegal order number, order should be integer in [1, period]");
+        xalg8_tmp = TRUE;
+        return xalg8_tmp;}
+
+        for(i = 1; i < period; i++) {   //corr.hstau
+          //alg = eol;
+          ///if(alg) order[i] = getint(input, &eol);
+          //if(alg) order[i] = InFile.getint(TRUE, &eol);
+          ///if(!alg) order[i] = getint(NULL, &eol);
+          //if(!alg) order[i] = InFile.getint(FALSE, &eol);
+           order[i] = InFile.getint(FALSE, &eol);
+
+      if(eol || order[0] < 1 || order[0] > period){
+        fprintf(output, "\n\n       insufficient data item, user specified order required \n   or illegal order number, order should be integer in [1, period] \n");
+        xalg8_tmp = TRUE;
+        return xalg8_tmp;}                                //wei, bug 174, 10/2005
+        }
+        //alg = FALSE;
+      }
+    }
+
+    // FOR  COPT .GT. 3 READ NEXT CARDS
+
+    if(copt <= 3) {
+
+      // SET UNUSED VARIABLES
+
+      sa = 1.0;
+      sb = 0.0;
+      sc = 0.0;
+      l = 0;
+      t = 0;
+    }
+    else {
+      ///sa = getnum(input, &eol);
+      ///sb = getnum(NULL, &eol);
+      ///sc = getnum(NULL, &eol);
+      ///l = getint(input, &eol);
+      ///bw1 = getnum(NULL, &eol);
+      ///bw2 = getnum(NULL, &eol);
+      ///bw3 = getnum(NULL, &eol);
+      ///bbcon = getwrd(NULL, &eol);
+      ///t = getint(input, &eol);
+      ///cw1 = getnum(NULL, &eol);
+      ///cw2 = getnum(NULL, &eol);
+      ///cw3 = getnum(NULL, &eol);
+      ///cbcon = getwrd(NULL, &eol);
+
+      sa = InFile.getnum(TRUE, &eol);
+      sb = InFile.getnum(FALSE, &eol);
+      sc = InFile.getnum(FALSE, &eol);
+
+      if(eol){
+        fprintf(output, "\n\n       insufficient data item, a, b, c missing, check the manual \n");
+        xalg8_tmp = TRUE;
+        return xalg8_tmp;}
+
+      l = InFile.getint(TRUE, &eol);   
+      bw1 = InFile.getnum(FALSE, &eol);
+      bw2 = InFile.getnum(FALSE, &eol);
+      bw3 = InFile.getnum(FALSE, &eol);
+      bbcon = InFile.getwrd(FALSE, &eol, quad_blurck_codes, 4);
+
+     if(eol){
+        fprintf(output, "\n\n       insufficient data item, matrix B missing, check the manual \n");
+        xalg8_tmp = TRUE;
+        return xalg8_tmp;}
+        
+      t = InFile.getint(TRUE, &eol);
+      cw1 = InFile.getnum(FALSE, &eol);
+      cw2 = InFile.getnum(FALSE, &eol);
+      cw3 = InFile.getnum(FALSE, &eol);
+      cbcon = InFile.getwrd(FALSE, &eol, quad_blurck_codes, 4);
+
+      if(eol){
+        fprintf(output, "\n\n       insufficient data item \n, matrix C missing, check the manual \n");
+        xalg8_tmp = TRUE;
+        return xalg8_tmp;}
+        
+      //tracer
+      //      fprintf(output,"t=%d", t);
+      //tracer
+    
+      // CHECK INPUT
+
+      if(t == 0) copt = 5;  // should it not be a 4?? hstau
+      fprintf(output, "\n\n      the weights are: sa= %8.4f sb= %8.4f sc= %8.4f", sa, sb, sc);
+
+      if(!((sa >= 0.0) && (sb >= 0.0) && (sc >= 0.0))) { // there was a bug in this line (see Fortran version). hstau 6/2/2003
+        fprintf(output, "\n\n      ***negative weight, program stops***");
+
+        xalg8_tmp = TRUE;
+      }
+
+      if(!((sb == 0.0) || (l == 0))) {
+        fprintf(output, "\n\n      matrix b is raised to the power %4i", l);
+
+
+        if(l <= 0) {
+          fprintf(output, "\n\n      ***negative power, program stops***");
+          xalg8_tmp = TRUE;
+        }
+        blurck(bw1, bw2, bw3, bbcon, l, &alg); 
+       
+        xalg8_tmp = alg;
+        if((Blob.pix_basis && GeoPar.nelem < 3) || (!Blob.pix_basis && Blob.H < 5) ) {
+          fprintf(output, "\n\n      ***nelem (or the number of blobs in one direction) must be greater than 2 (4) for smoothing");
+          fprintf(output, "\n      program stops***");
+          xalg8_tmp = TRUE;
+        }
+      }
+      k = t;
+      if(copt != 5) {
+
+        fprintf(output, "\n\n      t value for the matrix c is %4i", t);
+
+        if(t <= 0) {
+          //fprintf(output, "\n\n      ***t value %4i is not allowed*** program stops", t);
+          fprintf(output, "\n\n      ***t value %4i is not allowed, program stops***", t); //hstau
+
+          xalg8_tmp = TRUE;
+        }
+        else {
+          if(!((aopt == 1) && (bopt  <=  2) && (gopt == 0))) {
+
+            // SET T ACORDING TO METHOD
+
+            t = k / 2;
+            if(k != t*2) {
+              //fprintf(output, "\n\n      ***with either aopt .gt. 1 .or. bopt .gt. 2 t .or. splitting must be even, program stops***");  //Fortran code like output?? hstau
+              fprintf(output, "\n\n      ***with either aopt > 1 or bopt > 2, t or splitting must be even, program stops***");  //Fortran code like output?? hstau
+
+              xalg8_tmp = TRUE;
+              goto L7;
+            }
+          }
+          blurck(cw1, cw2, cw3, cbcon, t, &alg);
+          xalg8_tmp = alg;
+          if((Blob.pix_basis && GeoPar.nelem < 3) || (!Blob.pix_basis && Blob.H < 5) ) {
+            fprintf(output, "\n\n      ***nelem (or the number of blobs in one direction) must be greater than 2 (4) for smoothing");
+            fprintf(output, "\n      program stops***");
+
+            xalg8_tmp = TRUE;
+          }
+        }
+      }
+    }
+    // ERROR CHECK
+
+L7:
+    if((eopt - 2) <= 0) {
+      if((eopt - 2) < 0) {
+
+       //bug 154 this report is removed hstau. 8 2005
+       /*
+        fprintf(output, "\n\n      error is identity matrix times the constant %9.4f", error_1);
+       */
+      
+        if(fabs(error_1) > Consts.zero) goto L11;
+        fprintf(output, "\n\n      ***abs(error) must be greater than ZERO*** program stops");
+
+        xalg8_tmp = TRUE;
+        goto L11;
+      }
+      else {
+        fprintf(output, "\n\n      error is calculated by program");
+
+        fprintf(output, "\n\n      minimum measurement is %9.4f", Err.minprd);
+
+        if(Err.minprd <= Consts.zero) {
+          xalg8_tmp = TRUE;
+          //fprintf(output, "\n\n      *** min variance is less than zero, program stops***");
+          fprintf(output, "\n\n      *** minv is less than ZERO, program stops***");  //corr. hstau
+
+          goto L12;
+        }
+        errpar(alg);
+         if(Err.errtyp == 0) error_1 = Err.minprd;
+         if(Err.errtyp == 0) eopt = 1;  //suspicious logic. hstau
+        xalg8_tmp = alg;
+        
+        goto L11;
+      }
+    }
+
+    fprintf(output, "\n\n      user error routine");
+
+    dumy = uerror(1, 1, dum, &alg);
+    xalg8_tmp = alg;
+
+
+        
+L11:
+    if(!xalg8_tmp) { 
+      if(copt <= 3) {
+      
+        //bug 154 this report is removed hstau. 8 2005
+
+       /*
+        fprintf(output, "\n\n      second criterion matrix is %4s", int2str(dmart[2*copt-1])); 
+        //fprintf(output, "%4s matrix", int2str(dmart[2*copt-1]));
+        fprintf(output, "%4s matrix", int2str(dmart[2*copt])); //corr.hstau
+       */
+
+        d_ = new REAL[area];
+      
+        if(copt  <=  2) deset(d_, list, weight, &alg);  // check this.hstau ok
+        if(copt == 3) dset(d_, list, weight, &alg);
+        xalg8_tmp = alg; 
+         
+        if(Blob.pix_basis) {
+          prpict(GeoPar.nelem, d_, 1, "dset", "d");
+        }
+        else {
+          bprpict(Blob.M, Blob.H, d_, 1, "dset", "d");
+        }
+      }
+      // SPLIT IF CALLED FOR
+
+      if(!xalg8_tmp) {
+        if(gopt > 0) {
+          s_ = new REAL[area];
+        }
+        if(gopt == 1) seset(s_, list, weight, &alg);
+        if(gopt == 2) sset(s_, list, weight, &alg);
+        xalg8_tmp = alg;
+        if(gopt > 0) {
+          if(Blob.pix_basis) {
+            prpict(GeoPar.nelem, s_, 1, "set ", "s");
+          }
+          else {
+            bprpict(Blob.M, Blob.H, s_, 1, "set", "s");
+          }
+        }
+        // FOR COPT .LE. 3 AND SPLITTING COMBINE THE VECTORS
+      
+        if(!((copt > 3) || (gopt == 0))) {
+          //js = s - 1;
+          for(i = 0; i < area; i++) {
+            d_[i] *= s_[i];
+          }
+          delete[] s_;  // bug 92 - Lajos - 03/02/2005
+          s_ = NULL;    //bug 174, wei, 10/2005
+          ///  s = 1; !!!              //check this.hstau
+        }
+      }
+    }
+L12:
+
+    if(bopt != 3) {
+      if((bopt == 0) && (aopt >= 3)) {
+        fprintf(output, "\n\n      user supplied delta is %9.4f", delta);
+        fprintf(output, "\n      user supplied gma   is %9.4f", gma);
+      }
+      if((bopt == 0) && (aopt <= 2)) {
+        fprintf(output, "\n\n      user supplied delta is %9.4f", delta);
+      }
+      if(bopt != 0) {
+        if(bopt <= 0) {
+          //fprintf(output, "\n\n      user supplied smallest eigenvalue %14.6e", delta); 
+          fprintf(output, "\n\n      user supplied smallest eigenvalue %14.6e", gma);  // bug in Fortran .hstau
+          //fprintf(output, "\n      user supplied largest eigenvalue  %14.6e", gma);
+          fprintf(output, "\n      user supplied largest eigenvalue  %14.6e", delta);   //bug in Fortran .hstau
+          if((delta+gma) <= Consts.zero) {
+            fprintf(output, "\n\n      ***largest eigenvalue must be positive number");
+            fprintf(output, "\n      greater than smallest eigenvalue, program stops***");
+
+            xalg8_tmp = TRUE;
+            goto L13;
+          }
+
+          //esmin = delta;
+          //lmd = gma;
+          esmin = gma; // bug in Fortran.hstau
+          lmd = delta;  // bug in Fortran. hstau
+          bopt = - bopt;
+        }
+        else {
+          if(minz == 0) {
+            fprintf(output, "\n\n      smallest eigenvalue is set to 0");
+          }
+          fprintf(output, "\n\n      eigenvalue is calculated to tolerance %9.4f", toler);
+
+          if(toler <= Consts.zero) {
+            fprintf(output, "\n\n      ***tolerance too small, program stops***");
+
+            xalg8_tmp = TRUE;
+            goto L13;
+          }
+       
+          if(xalg8_tmp) {
+
+            goto L13;
+          }
+
+          r_ = new REAL[area];
+          //eigval(r, (minz == 0), d, list, weight, toler, esmin, lmd, s);
+          eigval(r_, (minz == 0), d_, list, weight, toler, &esmin, &lmd, s_); //corr. hstau
+          delete[] r_;  // bug 92 - Lajos - 03/02/2005
+          r_ = NULL; //bug 147, wei, 2005/10
+
+          if((esmin+lmd) <= Consts.zero) {
+            xalg8_tmp = TRUE;
+            fprintf(output, "\n\n      ***largest eigenvalue must be positive number");
+            fprintf(output, "\n\n      greater than smallest eigenvalue, program stops***");
+
+            goto L13;
+          }
+        }   
+ //tracer
+       //      fprintf(output,"\n quad: bopt=%d esmin=%f lmd=%f ",bopt,esmin, lmd);
+        
+      //tracer
+
+        if(bopt == 1) delta = ((REAL) 2.0) / (esmin + lmd);
+        if(bopt == 1) {
+          fprintf(output, "\n\n      delta computed by program is %14.4e", delta);
+        }
+        if((bopt == 2) && (aopt  <=  2)) {
+          fprintf(output, "\n\n      the period for richardson method is %2i", period);
+        } 
+        if(bopt == 2) prsemi(esmin, lmd, &alg, &delta);//affected by blobs? hstau. no
+        xalg8_tmp = alg;
+      
+      }
+    }
+
+L13:
+    j = 4*(fopt - 1);
+    if(copt > 3) {
+      fprintf(output, "\n\n      expected value is %4s", int2str(init[j+1]));
+      fprintf(output, "%4s", int2str(init[j+2]));  // corr. hstau
+      fprintf(output, "%4s", int2str(init[j+3]));
+      fprintf(output, "%4s", int2str(init[j+4]));
+    }
+
+    if(Modefl.lofl) {
+      fprintf(output, "\n\n      lower value of pixels is set to %9.4f", Modefl.lower);
+    }
+    if(Modefl.upfl) {
+      fprintf(output, "\n\n      upper value of pixels is set to %9.4f", Modefl.upper);
+    }
+    if(hopt >= 1) {
+      fprintf(output, "\n\n      average density is corrected after each iteration");
+    }
+
+    // RETURN IF THERE ARE ERRORS IN INPUT
+
+    if(xalg8_tmp) {
+
+
+      return xalg8_tmp;
+    }
+
+    // INITILIZE EXPECTED VECTOR                   
+
+    xbar = 0.0;
+    if(fopt == 2) xbar = GeoPar.aveden;
+    if(fopt > 2) {
+      f_ = new REAL[GeoPar.area];   // f always in pixel basis. hstau
+      if(fopt == 4) {
+        if(GeoPar.div) {
+          fprintf(output, "\n\n      warning   continuous back projection is not intended for divergent data");
+        }
+        Fourie.rinc = GeoPar.pinc;
+        r_ = new REAL[GeoPar.nrays];
+
+        for(i = 0; i < GeoPar.area; i++) {
+          f_[i] = 0.0;
+        }
+      
+        for(np = 0; np < GeoPar.prjnum; np++) {
+          ProjFile.ReadProj(np, r_, GeoPar.nrays);
+          Anglst.getang(np, &theta, &sinth, &costh);
+          if(GeoPar.vri) Fourie.rinc = (REAL) (GeoPar.pinc * MAX0(fabs(costh), fabs(sinth)));
+          spac = GeoPar.pixsiz/Fourie.rinc;
+          bckprj(f_, GeoPar.nelem, r_, GeoPar.nrays, sinth, costh, spac, Fourie.interp);
+        }
+
+        delete[] r_;  // bug 92 - Lajos - 03/02/2005
+        r_ = NULL;//bug 147, wei, 2005/10
+        
+        for(i = 0; i < GeoPar.area; i++) {
+          f_[i] /= ((REAL)(GeoPar.prjnum));
+        }
+      }
+      else {
+        if(fopt == 3) back(f_, list, weight);
+        if(fopt == 5) { 
+           if(Blob.pix_basis) { 
+              for(i = 0; i < GeoPar.area; i++) { 
+                 f_[i] = recon[i];   
+             }
+          }
+           else {
+              fb_ = new REAL[Blob.area];
+              for(i = 0; i < Blob.area; i++) { 
+                 fb_[i] = recon[i];   
+             }
+          }
+       }
+      }
+    }
+
+    if(!Blob.pix_basis && fopt > 2 && fopt !=5) {  
+       fb_ = new REAL[Blob.area];
+       //tracer
+       //fprintf(output,"\nf=%f %f %f area=%d", f[0],f[1],f[2],Blob.area);fflush(output);
+       //tracer
+       Blob.pix2blob(f_,fb_);
+       delete[] f_;  // bug 92 - Lajos - 03/02/2005
+       f_ = NULL; //bug 147, wei, 2005/10
+       
+       //f = fb;
+    }
+  
+    // ALLOCATE AREA
+
+    r_ = new REAL[area];
+    g_ = r_;
+    v_ = r_;
+    w_ = r_;
+    if((aopt == 2) || (aopt == 4)) {
+      v_ = new REAL[area];
+    }
+    if(aopt >= 3) {
+      g_ = new REAL[area];
+    }
+  
+    cg_ = g_;
+//tracer
+    //fprintf(output,"\n quad: cg=%f",cg[0]);
+       ///tracer
+  
+    if((sc != 0.0) || ((sb !=  0.0) && (l > 0))) {
+      w_ = new REAL[area];
+    }
+
+
+    if((((copt !=  5) || (gopt > 0))  &&   // corr. why so many () hstau
+       ((aopt !=  1) || (bopt > 2))) ||
+       ((aopt == 1) && (bopt > 2))
+       ) {
+
+      cg_ = new REAL[area];
+    }
+    // FIRST TIME AROUND CALL RESEDU FOR ALL METHODS
+
+  }  // if iter == 1
+  else {
+
+  // FLOW CONTROL
+
+
+  // AOPT EQUAL 2 OR AOPT EQUAL 4
+
+    if(aopt == (aopt/2)*2) {
+      nextr(r_, v_, delta, area);        
+      if(Blob.pix_basis) {  
+        prpict(GeoPar.nelem, r_, iter, "next", "r");
+      }
+      else {
+        bprpict(Blob.M, Blob.H, r_, iter, "next", "r");
+      }
+      goto L22;
+    }
+  }
+
+  // AOPT EQUAL 1 OR AOPT EQUAL 3
+
+  if(Blob.pix_basis) {  
+    resedu(recon, r_, w_, d_, list, weight, f_, s_); 
+//tracer
+    //fprintf(output,"\n quad2: r=%f, cg=%f",r[0],cg[0]);
+       ///tracer
+   
+    prpict(GeoPar.nelem, r_, iter, "rese", "r");
+  }
+  else {
+    resedu(recon, r_, w_, d_, list, weight, fb_, s_);  
+  
+    bprpict(Blob.M, Blob.H, r_, iter, "rese", "r");
+  }
+
+  // FOR BOPT = 2 GET DELTA AND GMA
+
+L22:
+  if(bopt == 2) semi(&delta, &gma, &alg);
+      
+  xalg8_tmp = alg;
+  if(xalg8_tmp) return xalg8_tmp;
+  
+  // FOR CONSTANT DELTA AND AOPT EQUAL 1 CALCULATE NEXT PICTURE
+
+  if(!((bopt  <=  2) && (aopt == 1))) {
+
+    // SECOND CRITERIA
+
+    if(copt <= 3) {
+
+      //deltad(r, g, v, cg, d, delta, gma, list, weight, &alg);
+      deltad(r_, g_, v_, cg_, d_, &delta, &gma, list, weight, &alg); //corr.hstau
+
+      if(Blob.pix_basis) {  
+        prpict(GeoPar.nelem, r_, iter, "deld", "r");
+        prpict(GeoPar.nelem, cg_,iter, "deld", "cg");
+      }
+      else {
+        bprpict(Blob.M, Blob.H, r_, iter, "deld", "r");
+        bprpict(Blob.M, Blob.H, cg_,iter, "deld", "cg");
+      }   
+      xalg8_tmp = alg;
+      if(alg) return xalg8_tmp;
+    }
+    else {
+
+      //deltac(r, g, v, cg, w, delta, gma, list, weight, &alg, s);
+      deltac(r_, g_, v_, cg_, w_, &delta, &gma, list, weight, &alg, s_);// corr.hstau
+
+
+      if(Blob.pix_basis) {  
+        prpict(GeoPar.nelem, r_, iter, "delc", "r");
+        prpict(GeoPar.nelem, g_, iter, "delc", "g");
+        prpict(GeoPar.nelem, v_, iter, "delc", "v");
+        prpict(GeoPar.nelem, cg_, iter, "delc", "cg");
+      }
+      else {
+        bprpict(Blob.M, Blob.H, r_, iter, "delc", "r");
+        bprpict(Blob.M, Blob.H, g_, iter, "delc", "g");
+        bprpict(Blob.M, Blob.H, v_, iter, "delc", "v");
+        bprpict(Blob.M, Blob.H, cg_, iter, "delc", "cg");
+      }
+
+      xalg8_tmp = alg;
+      if(alg) return xalg8_tmp;
+    }
+  }
+
+  // COMPUTE NEXT PICTURE
+
+  nxtpct(recon, cg_, delta);
+
+  // IF POPT .EQ. 2 AND POSSIBLE COMPUTE THE COST FUNCTION
+
+  if(popt >= 2) {
+    if(Blob.pix_basis) {  
+      costfn(recon, r_, g_, cg_, w_, list, weight, f_);
+    }
+    else {
+      costfn(recon, r_, g_, cg_, w_, list, weight, fb_);
+    }
+  }
+  return xalg8_tmp;
+}
+
diff --git a/src/snark/quad.h b/src/snark/quad.h
new file mode 100644 (file)
index 0000000..c4d1154
--- /dev/null
@@ -0,0 +1,135 @@
+ /* 
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ quad.h,v 1.7 2009/09/26 14:54:43 jklukowska Exp
+*/
+
+#ifndef XALG8_H
+#define XALG8_H      
+
+#include "alg.h"
+
+///      common /quad/ aopt,bopt,copt,dopt,eopt,fopt,gopt,hopt,popt,
+///     1 l,bw1,bw2,bw3,bbcon,t,cw1,cw2,cw3,cbcon,sa,sb,sc,xbar,error,
+///     2 iterx,period,z,eta,del,order
+///      integer aopt,bopt,copt,dopt,eopt,fopt,gopt,hopt,popt,l,bbcon,
+///     1 t,cbcon,iterx,period,del,order
+///      real bw1,bw2,bw3,cw1,cw2,cw3,sa,sb,sc,xbar,error,z,eta
+
+/*
+class quad_class
+{
+public:
+  INTEGER aopt,bopt,copt,dopt,eopt,fopt,gopt,hopt,popt,l,bbcon;
+  INTEGER t,cbcon,iterx,period;
+  REAL* del;
+  INTEGER* order;
+
+  REAL bw1,bw2,bw3,cw1,cw2,cw3,sa,sb,sc,xbar,error_1,z,eta;
+};
+*/
+
+class quad_class: public alg_class
+{
+private:
+  //quad_class Quad;
+
+  INTEGER aopt,bopt,copt,dopt,eopt,fopt,gopt,hopt,popt,l,bbcon;
+  INTEGER t,cbcon,iterx,period;
+  REAL* del;
+  INTEGER* order;
+
+
+  REAL* cg_;
+  REAL* g_;
+  REAL* v_;
+  REAL* w_;
+  REAL* r_;
+  REAL* f_;
+  REAL* fb_;
+  REAL* s_;
+  REAL* d_; 
+  REAL* m;
+  REAL* n;                //wei,3/2005
+       
+  REAL bw1,bw2,bw3,cw1,cw2,cw3,sa,sb,sc,xbar,error_1,z,eta;
+
+  void deltac(
+    REAL* r,
+    REAL* g,
+    REAL* v,
+    REAL* cg,
+    REAL* w,
+    //REAL delta,
+    //REAL gma,
+    REAL* delta,   //corr. hstau
+    REAL* gma,     //corr. hstau
+    INTEGER* list,
+    REAL* weight,
+    BOOLEAN* alg,
+    REAL* s
+  );
+
+  void deltad(
+    REAL* r,
+    REAL* g,
+    REAL* v,
+    REAL* cg,
+    REAL* d,
+    //REAL delta, 
+    //REAL gma,
+    REAL* delta,   //corr. hstau
+    REAL* gma,     //corr. hstau
+    INTEGER* list,
+    REAL* weight,
+    BOOLEAN *alg
+  );
+
+  void eigval(
+    REAL* y,
+    BOOLEAN nomin,
+    REAL* d,
+    INTEGER* list,
+    REAL* weight,
+    REAL tol,
+    REAL* estmin,  //corr.hstau
+    REAL* lambda,  //corr.hstau
+    //REAL estmin,
+    //REAL lambda,
+    REAL* s
+  );
+
+  void matrix(REAL* y, REAL* x, REAL* d, INTEGER* list, REAL* weight, REAL* s);
+  void mtamx(REAL* x, REAL* y, INTEGER* list, REAL* weight);
+  void costfn(REAL* recon, REAL* r, REAL* g, REAL* cg, REAL* w, INTEGER* list, REAL* weight, REAL* f);
+  void resedu(REAL* x, REAL* r, REAL* w, REAL* d, INTEGER* list, REAL* weight, REAL* f, REAL* s);
+  void adsmos(REAL* x, INTEGER m, REAL w1, REAL w2, REAL w3, INTEGER bcon);
+  void badsmos(REAL* x, INTEGER m, REAL w1, REAL w2, INTEGER bcon);  // blob version of adsmos
+  void mtamxp(REAL* x, REAL* y, INTEGER* list, REAL* weight);
+  void semi(REAL* delta, REAL* gma, BOOLEAN* alg);
+  void prsemi(REAL estmin, REAL lambda, BOOLEAN* alg, REAL* delta);
+  void deset(REAL* d, INTEGER* list, REAL* weight, BOOLEAN* alg);
+  void nxtpct(REAL* x, REAL* cg, REAL delta);
+  REAL uerror(INTEGER np, INTEGER nr, REAL pd, BOOLEAN* alg);
+  void sset(REAL* s, INTEGER* list, REAL* weight, BOOLEAN* alg);
+  void seset(REAL* s, INTEGER* list, REAL* weight, BOOLEAN* alg);
+  void dset(REAL* d, INTEGER* list, REAL* weight, BOOLEAN* alg);
+  void back(REAL* x, INTEGER* list, REAL* weight);
+  void blurck(REAL b1, REAL b2, REAL b3, INTEGER bcon, INTEGER npow, BOOLEAN* alg1);
+  void nextr(REAL* r, REAL* v, REAL delta, INTEGER area);
+  void prpict(INTEGER n, REAL* x, INTEGER it, const CHAR* l, const CHAR* m);
+  void bprpict(INTEGER M, INTEGER H, REAL* x, INTEGER it, const CHAR* l, const CHAR* m); // blob version of prpict
+
+public:
+  BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+  INTEGER Init();
+  INTEGER Reset();
+};
+
+#endif      
diff --git a/src/snark/quad_adsmos.cpp b/src/snark/quad_adsmos.cpp
new file mode 100644 (file)
index 0000000..1b3dac3
--- /dev/null
@@ -0,0 +1,281 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_adsmos.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS ROUTINE PERFORMS THE FOUR DIFFERENT SMOOTHING PROCEDURES
+ USED IN THE QUADRATIC OPTIMIZATION ALGORITHM.
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+
+#include "blob.h"
+#include "quad.h"
+
+//pragma message( "to fix!" )
+/// fix indexes 1 -> 0
+
+void quad_class::adsmos(REAL* x, INTEGER m, REAL w1, REAL w2, REAL w3,
+               INTEGER bcon)
+{
+
+       BOOLEAN snar, sajc;
+
+       static const INTEGER hsnar = CHAR2INT('s', 'n', 'a', 'r');
+       static const INTEGER hsajc = CHAR2INT('s', 'a', 'j', 'c');
+       static const INTEGER hkami = CHAR2INT('k', 'a', 'm', 'i');
+
+       INTEGER kami;
+       INTEGER n;
+       INTEGER n1;
+       INTEGER n2;
+       REAL weit4;
+       REAL weit6;
+       REAL weit9;
+       REAL* ip = NULL;
+       REAL* in = NULL;   //wei  3/2005
+       // REAL* ipf;          //wei 3/2005
+       INTEGER j;
+       INTEGER i;
+       INTEGER l1;
+       INTEGER ln;
+       INTEGER k;
+       REAL* ipin;
+       INTEGER li;
+       INTEGER l;
+
+       // FOR THE KAMI METHOD THE ROUTINE IS EXECUTED TWICE
+
+       kami = 1;
+
+       // INDEX PARAMETERS
+
+       n = GeoPar.nelem;
+       n1 = n - 1;
+       n2 = n + 1;
+       snar = FALSE;
+       sajc = FALSE;
+       if (bcon == hsnar)
+               snar = TRUE;
+       if (bcon == hsajc)
+               sajc = TRUE;
+       if (snar)
+       {
+               weit4 = (REAL) (w1 + 2.0 * w2 + w3);
+               weit6 = weit4 + w2 + w3;
+               weit9 = (REAL) (weit6 + w2 + 2.0 * w3);
+
+       }
+       // ALLOCATE WORKING SPACE
+
+       ip = new REAL[n];
+
+       in = new REAL[n];
+
+       // IPF IS  USE FOR SUB FREE ONLY
+
+       //ipf = ip;         wei, 3/2005
+
+       // SMOOTHING IS DONE M TIMES
+
+       for (;;)
+       {
+               for (j = 0; j < m; j++)
+               {
+
+                       // SMOOTH FIRST ROW OF PICTURE
+
+                       in[0] = x[0];
+                       in[n1] = x[n1];
+
+                       if (!sajc)
+                       {
+
+                               x[0] = w1 * x[0] + w2 * (x[1] + x[n]) + w3 * x[n2];
+                               if (snar)
+                                       x[0] /= weit4;
+
+                               for (i = 1; i < n1; i++)
+                               {
+
+                                       in[i] = x[i];
+
+                                       x[i] = w1 * x[i] + w2 * (in[i - 1] + x[i + 1] + x[n + i])
+                                                       + w3 * (x[n1 + i] + x[n2 + i]);
+
+                                       if (snar)
+                                               x[i] /= weit6;
+                               }
+                               x[n1] = w1 * x[n1] + w2 * (in[n1 - 1] + x[n1 + n])
+                                               + w3 * x[n + n1 - 1];
+
+                               if (snar)
+                                       x[n - 1] /= weit4;
+                       }
+                       else
+                       {
+                               x[0] = (REAL) (w1 * x[0] + w2 * (2.0 * x[0] + x[1] + x[n])
+                                               + w3 * (x[0] + x[1] + x[n2] + x[n]));
+
+                               for (i = 1; i < n1; i++)
+                               {
+                                       in[i] = x[i];
+
+                                       x[i] = w1 * x[i] + (w2 + w3) * (in[i - 1] + x[i + 1])
+                                                       + w2 * (x[i] + x[n + i])
+                                                       + w3 * (x[n1 + i] + x[n2 + i]);
+
+                               }
+
+                               x[n1] = (REAL) (w1 * x[n1]
+                                               + w2 * (in[n1 - 1] + 2. * x[n1] + x[n + n1])
+                                               + w3 * (x[n1] + in[n1 - 1] + x[n1 + n] + x[n1 + n1]));
+                       }
+
+                       // ROW 2 TO ROW N - 1
+
+                       l = n;
+                       //l1 = n2;
+                       l1 = n;
+                       //ln = 2*n;
+                       ln = 2 * n - 1;
+
+                       for (k = 1; k < n1; k++)
+                       {
+                               ipin = in;
+                               in = ip;
+                               ip = ipin;
+                               in[0] = x[l1];
+                               in[n1] = x[ln];
+                               x[l1] = w1 * x[l1] + w2 * (ip[0] + x[l1 + 1] + x[n + l1])
+                                               + w3 * (ip[1] + x[l1 + n2]);
+
+                               if (sajc)
+                                       x[l1] += w2 * (in[0]) + w3 * (ip[0] + x[l1 + n1]);
+                               if (snar)
+                                       x[l1] /= weit6;
+
+                               for (i = 1; i < n1; i++)
+                               {
+
+                                       li = l + i;
+                                       in[i] = x[li];
+
+                                       x[li] = w1 * x[li]
+                                                       + w2 * (in[i - 1] + x[li + 1] + ip[i] + x[li + n])
+                                                       + w3
+                                                                       * (ip[i - 1] + ip[i + 1] + x[li + n1]
+                                                                                       + x[li + n2]);
+
+                                       if (snar)
+                                               x[li] /= weit9;
+                               }
+
+                               x[ln] = w1 * x[ln] + w2 * (in[n - 2] + ip[n - 1] + x[ln + n])
+                                               + w3 * (ip[n - 2] + x[ln + n1]);
+
+                               if (snar)
+                                       x[ln] /= weit6;
+                               if (sajc)
+                                       x[ln] += w2 * in[n1] + w3 * (ip[n1] + x[ln + n]);
+
+                               l = l + n;
+                               l1 = l1 + n;
+                               ln = ln + n;
+                       }
+
+                       // SMOOTH LAST ROW
+
+                       // IN LAST ROW CHANGE ROLE OF IN AND IP
+
+                       //ip[1] = x[l1];
+                       ip[0] = x[l1];
+
+                       if (!sajc)
+                       {
+
+                               x[l1] = w1 * x[l1] + w2 * (in[0] + x[l1 + 1]) + w3 * (in[1]);
+
+                               if (snar)
+                                       x[l1] /= weit4;
+
+                               for (i = 1; i < n1; i++)
+                               {
+                                       li = l + i;
+                                       ip[i] = x[li];
+
+                                       x[li] = w1 * x[li] + w2 * (in[i] + ip[i - 1] + x[li + 1])
+                                                       + w3 * (in[i - 1] + in[i + 1]);
+
+                                       if (snar)
+                                               x[li] /= weit6;
+                               }
+
+                               x[ln] = w1 * x[ln] + w2 * (ip[n1 - 1] + in[n1])
+                                               + w3 * in[n1 - 1];
+
+                               if (snar)
+                                       x[ln] /= weit4;
+                       }
+                       else
+                       {
+                               x[l1] = (REAL) (w1 * x[l1]
+                                               + w2 * (2.0 * x[l1] + in[0] + x[l1 + 1])
+                                               + w3 * (x[l1] + in[1] + in[0] + x[l1 + 1]));
+
+                               for (i = 1; i < n1; i++)
+                               {
+                                       li = l + i;
+
+                                       ip[i] = x[li];
+
+                                       x[li] = w1 * x[li] + (w2 + w3) * (ip[i - 1] + x[li + 1])
+                                                       + w2 * (in[i] + x[li])
+                                                       + w3 * (in[i - 1] + in[i + 1]);
+
+                               }
+
+                               x[ln] = (REAL) (w1 * x[ln]
+                                               + w2 * (in[n1] + ip[n1 - 1] + 2.0 * x[ln])
+                                               + w3 * (x[ln] + in[n - 1] + in[n1 - 1] + ip[n1 - 1]));
+                       }
+               }
+
+               if ((bcon != hkami) || (kami == 2))
+                       goto L17;
+
+               // PREPARE FOR SECOND ROUND FOR KAMI
+
+               kami = 2;
+
+               for (i = 0; i < n; i++)
+               {
+                       x[i] = 0.0;
+                       x[l + i] = 0.0;
+               }
+
+               l1 = 0;
+               ln = n;
+               for (i = 2; i < n; i++)
+               {
+                       l1 = l1 + n;
+                       ln = ln + n;
+                       x[l1] = 0.0;
+                       x[ln] = 0.0;
+               }
+       }
+
+       L17:
+       //delete[] ipf;  // bug 92 - Lajos - 03/02/2005   wei,3/2005
+       delete[] ip;
+       delete[] in;  // wei 3/2005
+
+       return;
+}
diff --git a/src/snark/quad_back.cpp b/src/snark/quad_back.cpp
new file mode 100644 (file)
index 0000000..34ed55f
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_back.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THE BACK PROJECTIONS ARE STORED IN X AFTER CORRECTION TO AVRDEN
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "ray.h"
+#include "wray.h"
+#include "anglst.h"
+
+#include "quad.h"
+
+void quad_class::back(REAL* x, INTEGER* list, REAL* weight)
+{
+
+       INTEGER i;
+       INTEGER np;
+       REAL dum;   // what is this variable for?? hstau
+       INTEGER nr;
+       INTEGER numb;
+       REAL snorm;
+       INTEGER nb;
+       INTEGER ky;
+       REAL zn;
+
+       // ZERO OUT X
+
+       for (i = 0; i < GeoPar.area; i++)
+       {
+               x[i] = 0.0;
+       }
+
+       // COMPUTE BACK PROJECTION
+
+       if (!GeoPar.strip)
+       {
+
+               for (np = 0; np < GeoPar.prjnum; np++)
+               {
+                       dum = Anglst.prdta(np, 1);  // should be Anglst.prdta(np, 0)? hstau
+                       for (nr = 0; nr < GeoPar.nrays; nr++)
+                       {
+                               wray(np, nr, list, weight, &numb, &snorm);
+                               if (numb > 0)
+                               {
+                                       for (nb = 0; nb < numb; nb++)
+                                       {
+                                               ky = list[nb];
+                                               x[ky] += Anglst.prdta(np, nr) * weight[nb];
+                                       }
+                               }
+                       }
+               }
+               zn = (REAL) 1.0 / ((REAL) (GeoPar.prjnum));
+       }
+       else
+       {
+               for (np = 0; np < GeoPar.prjnum; np++)
+               {
+                       dum = Anglst.prdta(np, 1);
+                       for (nr = 0; nr < GeoPar.nrays; nr++)
+                       {
+                               ray(np, nr, list, weight, &numb, &snorm);
+                               if (numb > 0)
+                               {
+                                       for (nb = 0; nb < numb; nb++)
+                                       {
+                                               ky = list[nb];
+                                               x[ky] += Anglst.prdta(np, nr);
+                                       }
+                               }
+                       }
+               }
+
+               zn = (GeoPar.pixsiz * GeoPar.pixsiz) / ((REAL) (GeoPar.prjnum));
+
+               // CORRECT TO AVRDEN
+       }
+
+       for (i = 0; i < GeoPar.area; i++)
+       {
+               x[i] *= zn;
+       }
+
+       return;
+}
diff --git a/src/snark/quad_badsmos.cpp b/src/snark/quad_badsmos.cpp
new file mode 100644 (file)
index 0000000..8d419b7
--- /dev/null
@@ -0,0 +1,448 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_badsmos.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS ROUTINE PERFORMS THE FOUR DIFFERENT SMOOTHING PROCEDURES
+ USED IN THE QUADRATIC OPTIMIZATION ALGORITHM FOR BLOB RECONSTRUCTIONS.//changed . hstau
+
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+
+#include "blob.h"
+#include "quad.h"
+
+//pragma message( "to fix!" )
+/// fix indexes 1 -> 0
+
+void quad_class::badsmos(REAL* x, INTEGER m, REAL w1, REAL w2, INTEGER bcon)
+{
+       BOOLEAN snar, sajc;
+
+       static const INTEGER hsnar = CHAR2INT('s', 'n', 'a', 'r');
+       static const INTEGER hsajc = CHAR2INT('s', 'a', 'j', 'c');
+       static const INTEGER hkami = CHAR2INT('k', 'a', 'm', 'i');
+
+       INTEGER kami;
+       //INTEGER n,    // number of rows
+       INTEGER H;    // number of rows
+       INTEGER M;   // number of columns
+       INTEGER m1;  // Blob.M-1
+       INTEGER m2;  //Blob.M+1
+       INTEGER h1;  //Blob.H-1
+
+       REAL weit4;
+       REAL weit6;
+       //REAL weit9;
+       REAL weit3;
+       REAL weit5;
+       REAL weit7;
+
+       REAL w3 = w2;
+       REAL* ip = NULL;
+       REAL* in = NULL;  //wei 3/2005
+       //REAL* ipf;         //wei 3/2005
+       //REAL lb, rb;
+       REAL lt, rt;
+       INTEGER j;
+       INTEGER i;
+       INTEGER l1;
+       INTEGER ln;
+       INTEGER k;
+       REAL* ipin;
+       INTEGER li;
+       INTEGER l;
+
+       INTEGER area;
+       INTEGER kpr;
+
+       area = Blob.area;
+
+       // FOR THE KAMI METHOD THE ROUTINE IS EXECUTED TWICE
+
+       kami = 1;
+
+       // INDEX PARAMETERS
+
+       //n = GeoPar.nelem;
+       H = Blob.H;
+       M = Blob.M;
+       //n1 = n - 1;
+       //n2 = n + 1;
+       h1 = H - 1;
+       m1 = M - 1;
+       m2 = M + 1;
+
+       snar = FALSE;
+       sajc = FALSE;
+       if (bcon == hsnar)
+               snar = TRUE;
+       if (bcon == hsajc)
+               sajc = TRUE;
+       if (snar)
+       {
+               weit4 = (REAL) (w1 + w2 + 2.0 * w3);
+               weit6 = weit4 + w2 + w3;
+               //weit9 = (REAL) (weit6 + w2 + 2.0 * w3);
+               weit3 = (REAL) (w1 + w2 + w3);
+               weit5 = weit3 + w2 + w3;
+               weit7 = (REAL) (weit5 + 2.0 * w3);
+
+       }
+       // ALLOCATE WORKING SPACE
+
+       //ip = new REAL[n];
+       ip = new REAL[M];
+
+       //in = new REAL[n];
+       in = new REAL[M];
+
+       for (;;)
+       {
+               for (j = 0; j < m; j++)
+               {
+
+                       // SMOOTH FIRST ROW OF PICTURE
+
+                       in[Blob.pr] = x[Blob.pr];
+                       in[m1 - Blob.pr] = x[m1 - Blob.pr];
+
+                       if (!sajc)
+                       {
+                               if (Blob.pr == 0)
+                               {
+                                       x[0] = w1 * x[0] + w2 * x[2] + w3 * x[m2];
+                                       if (snar)
+                                               x[Blob.pr] /= weit3; //x[0] /= weit4;
+                               }
+
+                               else
+                               {
+                                       x[1] = w1 * x[1] + w2 * x[3] + w3 * x[Blob.pr + m2]
+                                                       + w3 * x[M];
+                                       if (snar)
+                                               x[Blob.pr] /= weit4; //x[0] /= weit4;
+                               }
+                               for (i = Blob.pr + 2; i < m1 - Blob.pr; i += 2)
+                               {
+                                       in[i] = x[i];
+                                       x[i] = w1 * x[i] + w2 * (in[i - 2] + x[i + 2])
+                                                       + w3 * (x[m1 + i] + x[m2 + i]);
+
+                                       if (snar)
+                                               x[i] /= weit5; //x[i] /= weit6;
+                               }
+                               if (Blob.pr == 0)
+                               {
+                                       x[m1] = w1 * x[m1] + w2 * in[m1 - 2] + w3 * x[m1 + m1];
+                                       //if(snar) x[n-1] /= weit4;
+                                       if (snar)
+                                               x[m1] /= weit3;
+                               }
+                               else
+                               {
+                                       x[m1 - 1] = w1 * x[m1 - 1] + w2 * in[m1 - 3]
+                                                       + w3 * x[m1 - 1 + m1] + w3 * x[m1 - 1 + m2];
+                                       if (snar)
+                                               x[m1 - 1] /= weit4;
+                               }
+
+                       }
+                       else
+                       {
+                               k = 0;
+                               if (Blob.pr == 0)
+                               {
+                                       REAL a1 = x[0];
+                                       REAL a2 = (x[0] + x[m2] + x[2 * M]) / 3.0;
+                                       x[0] = (REAL) (w1 * x[0] + w2 * (a1 + x[2])
+                                                       + w3 * (x[0] + (x[0] + x[2]) / 2.0 + a2 + x[m2]));
+                               }
+                               else
+                               {
+                                       REAL a1 = (x[1] + x[M]) / 2.0;
+                                       x[1] = (REAL) (w1 * x[1] + w2 * (a1 + x[3])
+                                                       + w3
+                                                                       * (x[1] + (x[1] + x[3]) / 2.0 + x[M]
+                                                                                       + x[M + 2]));
+                               }
+
+                               for (i = Blob.pr + 2; i < m1 - Blob.pr; i += 2)
+                               {
+                                       in[i] = x[i];
+                                       x[i] = w1 * x[i] + w2 * (in[i - 2] + x[i + 2]) + w3 * (x[m1 + i] + x[m2 + i] + x[i] + (in[i - 2] + x[i + 2]) / 2.0);
+
+                               }
+
+                               // bug 191 - SAJC smoothing - swr - 12/17/05
+                               if (Blob.pr == 0)
+                               {
+                                       REAL a1 = x[m1];
+                                       REAL a2 = (x[m1] + x[m1 + m1] + x[2 * M + m1]) / 3.0;
+                                       x[m1] = (REAL) (w1 * x[m1] + w2 * (in[m1 - 2] + a1) + w3 * (x[m1] + (x[m1] + in[m1 - 2]) / 2.0 + x[m1 + m1] + a2));
+                               }
+                               else
+                               {
+                                       REAL a1 = (x[m1 - 1] + x[m1 - 1 + m2]) / 2.0;
+                                       x[m1 - 1] = (REAL) (w1 * x[m1 - 1] + w2 * (in[m1 - 3] + a1) + w3 * ((in[m1 - 3] + x[m1 - 1]) / 2.0 + x[m1 - 1] + x[m1 + m1 - 1] + x[m1 + m1 + 1]));
+                               }
+
+                       }
+
+                       for (k = 1; k < h1; k++)
+                       {
+                               ipin = in;
+                               in = ip;
+                               ip = ipin;
+                               kpr = (k - Blob.pr) % 2;
+                               l = k * M;
+                               l1 = l + kpr;
+                               ln = l1 + m1 - 2 * kpr;
+
+                               lt = in[kpr];
+                               rt = in[m1 - kpr];
+                               in[kpr] = x[l1];
+                               in[m1 - kpr] = x[ln];
+
+                               x[l1] = w1 * x[l1] + w2 * x[l1 + 2];
+
+                               if (kpr == 0)
+                               {
+                                       x[l1] += w3 * (ip[1] + x[l1 + m2]);
+                               }
+                               else
+                               {
+                                       x[l1] += w3 * (ip[0] + ip[2] + x[l1 + m2] + x[l1 + m1]);
+                               }
+                               if (sajc)
+                               {
+                                       // bug 191 - SAJC smoothing - swr - 12/17/05
+                                       if (kpr == 0)
+                                       {
+                                               REAL a1;
+                                               if (k > 1)
+                                                       a1 = (lt + ip[1] + in[0]) / 3.0;
+                                               else
+                                                       a1 = (ip[1] + in[0]) / 2.0;
+                                               REAL a2 = in[0];
+                                               REAL a3;
+                                               if (k < h1 - 1)
+                                                       a3 = (in[0] + x[l1 + m2] + x[l1 + 2 * M]) / 3.0;
+                                               else
+                                                       a3 = (in[0] + x[l1 + m2]) / 2.0;
+                                               x[l1] += w2 * a2 + w3 * (a1 + a3);
+                                       }
+                                       else
+                                       {
+                                               REAL a1 = (ip[0] + in[1] + x[l1 + m1]) / 3.0;
+                                               x[l1] += w2 * a1;
+                                       }
+                               }
+
+                               if (snar)
+                               {
+                                       if (kpr == 0)
+                                               x[l1] /= weit5;
+                                       else
+                                               x[l1] /= weit6;
+                               }
+                               for (i = 2 + kpr; i < m1 - kpr; i += 2)
+                               {    //next point on the same row
+                                       li = k * M + i;
+                                       in[i] = x[li];
+                                       x[li] = w1 * x[li] + w2 * (in[i - 2] + x[li + 2]) + w3 * (ip[i - 1] + ip[i + 1] + x[li + m1] + x[li + m2]);
+
+                                       if (snar)
+                                               x[li] /= weit7;
+                               }
+                               x[ln] = w1 * x[ln] + w2 * in[m1 - 2 - kpr];
+
+                               if (kpr % 2 == 0)
+                               {
+                                       x[ln] += w3 * (ip[m1 - 1] + x[ln + m1]);
+                               }
+                               else
+                               {
+                                       x[ln] += w3
+                                                       * (ip[m1 - 2] + x[ln + m1] + x[ln + m2] + ip[m1]);
+                               }
+
+                               if (snar)
+                               {
+                                       if (kpr == 0)
+                                               x[ln] /= weit4;
+                                       else
+                                               x[ln] /= weit6;
+                               }
+
+                               if (sajc)
+                               {
+                                       // bug 191 - SAJC smoothing - swr - 12/17/05
+                                       if (kpr == 0)
+                                       {
+                                               REAL a1;
+                                               if (k > 1)
+                                                       a1 = (rt + in[m1] + ip[m1 - 1]) / 3.0;
+                                               else
+                                                       a1 = (in[m1] + ip[m1 - 1]) / 2.0;
+                                               REAL a2 = in[m1];
+                                               REAL a3;
+                                               if (k < h1 - 1)
+                                                       a3 = (in[m1] + x[ln + m1] + x[ln + 2 * M]) / 3.0;
+                                               else
+                                                       a3 = (in[m1] + x[ln + m1]) / 2.0;
+                                               x[ln] += w2 * a2 + w3 * (a1 + a3);
+                                       }
+                                       else
+                                       {
+                                               REAL a1 = (in[m1 - 1] + ip[m1] + x[ln + m2]) / 3.0;
+                                               x[ln] += w2 * a1;
+                                       }
+                               }
+                       }
+
+                       // SMOOTH LAST ROW
+
+                       // IN LAST ROW CHANGE ROLE OF IN AND IP
+
+                       l1 = h1 * M + Blob.pr;
+                       ln = l1 + m1 - 2 * Blob.pr;
+                       l = h1 * M;
+                       lt = ip[Blob.pr];
+                       rt = ip[m1 - Blob.pr];
+
+                       ip[Blob.pr] = x[l1];
+
+                       if (!sajc)
+                       {
+                               if (Blob.pr == 0)
+                               {
+                                       x[l1] = w1 * x[l1] + w2 * x[l1 + 2] + w3 * (in[1]);
+                               }
+                               else
+                               {
+                                       x[l1] = w1 * x[l1] + w2 * x[l1 + 2] + w3 * (in[0] + in[2]);
+                               }
+
+                               if (snar)
+                               {
+                                       if (Blob.pr == 0)
+                                               x[l1] /= weit3;
+                                       else
+                                               x[l1] /= weit4;
+                               }
+
+                               for (i = 2 + Blob.pr; i < m1 - Blob.pr; i += 2)
+                               {
+                                       li = l + i;
+                                       ip[i] = x[li];
+
+                                       x[li] = w1 * x[li] + w2 * (ip[i - 2] + x[li + 2])
+                                                       + w3 * (in[i - 1] + in[i + 1]);
+
+                                       if (snar)
+                                               x[li] /= weit5;
+                               }
+                               if (Blob.pr == 0)
+                               {
+                                       x[ln] = w1 * x[ln] + w2 * ip[m1 - 2] + w3 * in[m1 - 1];
+                               }
+                               else
+                               {
+                                       x[ln] = w1 * x[ln] + w2 * ip[m1 - 3]
+                                                       + w3 * (in[m1 - 2] + in[m1]);
+                               }
+
+                               if (snar)
+                               {
+                                       if (Blob.pr == 0)
+                                               x[ln] /= weit3;
+                                       else
+                                               x[ln] /= weit4;
+                               }
+                       }
+                       else
+                       {
+                               // bug 191 - SAJC smoothing - swr - 12/17/05
+                               if (Blob.pr == 0)
+                               {
+                                       REAL a1 = x[l1];
+                                       REAL a2 = (x[l1] + lt + in[1]) / 3.0;
+                                       x[l1] = w1 * x[l1] + w2 * (x[l1 + 2] + a1)
+                                                       + w3
+                                                                       * (a2 + in[1] + x[l1]
+                                                                                       + (x[l1] + x[l1 + 2]) / 2.0);
+                               }
+                               else
+                               {
+                                       REAL a1 = (x[l1] + in[0]) / 2.0;
+                                       x[l1] = w1 * x[l1] + w2 * (a1 + x[l1 + 2]) + w3 * (in[0] + in[2] + x[l1] + (x[l1] + x[l1 + 2]) / 2.0);
+                               }
+
+                               for (i = 2 + Blob.pr; i < m1 - Blob.pr; i += 2)
+                               {
+                                       li = l + i;
+                                       ip[i] = x[li];
+
+                                       x[li] = w1 * x[li] + w2 * (ip[i - 2] + x[li + 2])
+                                                       + w3
+                                                                       * (x[li] + 0.5 * ip[i - 2] + 0.5 * x[li + 2]
+                                                                                       + in[i - 1] + in[i + 1]);
+
+                               }
+
+                               // bug 191 - SAJC smoothing - swr - 12/17/05
+                               if (Blob.pr == 0)
+                               {
+                                       REAL a1 = x[ln];
+                                       REAL a2 = (x[ln] + in[m1 - 1] + rt) / 3.0;
+                                       x[ln] = w1 * x[ln] + w2 * (ip[m1 - 2] + a1) + w3 * (a2 + in[m1 - 1] + (ip[m1 - 2] + x[ln]) / 2.0 + x[ln]);
+                               }
+                               else
+                               {
+                                       REAL a1 = (x[ln] + in[m1]) / 2.0;
+                                       x[ln] = w1 * x[ln] + w2 * (ip[m1 - 3] + a1) + w3 * (in[m1 - 2] + in[m1] + (ip[m1 - 3] + x[ln]) / 2.0 + x[ln]);
+                               }
+                       }
+               }
+
+               if ((bcon != hkami) || (kami == 2))
+                       goto L17;
+
+               // PREPARE FOR SECOND ROUND FOR KAMI
+
+               kami = 2;
+
+               for (i = 0; i < M; i++)
+               {
+                       x[i] = 0.0;
+                       x[l + i] = 0.0;
+               }
+
+               l1 = 0;
+               ln = m1;
+
+               for (i = 1; i < h1; i++)
+               {
+                       l1 = l1 + M;
+                       ln = ln + m1;
+                       x[l1] = 0.0;
+                       x[ln] = 0.0;
+               }
+       }
+
+       L17:
+       // delete[] ipf;  // bug 92 - Lajos - 03/02/2005      wei/2005
+       delete[] ip;
+       delete[] in;   // wei 3/2005
+
+       return;
+}
diff --git a/src/snark/quad_blurck.cpp b/src/snark/quad_blurck.cpp
new file mode 100644 (file)
index 0000000..651b9b3
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_blurck.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "consts.h"
+#include "uiod.h"
+#include "int2str.h"
+
+#include "quad.h"
+
+void quad_class::blurck(REAL b1, REAL b2, REAL b3, INTEGER bcon, INTEGER npow,
+               BOOLEAN* alg1)
+{
+
+       static const INTEGER hsnar = CHAR2INT('s', 'n', 'a', 'r');
+       static const INTEGER hkami = CHAR2INT('k', 'a', 'm', 'i');
+       static const INTEGER hsajz = CHAR2INT('s', 'a', 'j', 'z');
+       static const INTEGER hsajc = CHAR2INT('s', 'a', 'j', 'c');
+
+       REAL bsum;
+       BOOLEAN psd;
+       BOOLEAN pos;
+
+       if (!((bcon == hsnar) || (bcon == hkami) || (bcon == hsajz)
+                       || (bcon == hsajc)))
+       {
+               *alg1 = TRUE;
+               fprintf(output,
+                               "\n\n      ***unrecognized parameter %4s, program stops***",
+                               int2str(bcon));
+
+               return;
+       }
+       bsum = b1 + (REAL) 4.0 * (b2 + b3);
+       fprintf(output, "\n\n      variance of density in an arbitrary pixel is  %9.5f", b1);
+       fprintf(output, "\n       covariance of densities in neighboring pixels is %9.5f", b2);
+       fprintf(output, "\n       covariance of densities in diagonally neighboring pixels is %9.5f", b3);
+
+       fprintf(output, "\n\n      %4s boundary conditions", int2str(bcon));
+       fprintf(output, "\n       sum of weights %9.4f", bsum);
+
+       if (!((bcon != hkami) || (npow == 1)))
+       {
+               fprintf(output,
+                               "\n\n      ***for kami only first power is allowed, program stops***");
+
+               *alg1 = TRUE;
+               return;
+       }
+       if (bcon == hkami)
+               return;
+
+       // CHECKING ON POSITIVE-DEFINITENESS OF SMOOTHING MATRIX
+       psd = TRUE;
+       if (bsum <= -.000001)
+               psd = FALSE;
+       if ((b1 - 4.0 * b2 + 4.0 * b3) <= -.000001)
+               psd = FALSE;
+       if ((b1 - 4.0 * b3) <= -.000001)
+               psd = FALSE;
+       *alg1 = !psd;
+       if (*alg1)
+       {
+               fprintf(output,
+                               "\n\n      ***warning, smoothing matrix is not positive semi definite");
+       }
+       if (bcon != hsnar)
+               return;
+
+//  PERFORMING TRADITIONAL SNARK CHECK ON POSITIVITY
+       pos = FALSE;
+       if ((b1 > Consts.zero) && (b2 >= 0.0) && (b3 >= 0.0))
+               pos = TRUE;
+       *alg1 = !pos;
+       if (*alg1)
+       {
+               fprintf(output, "\n\n      ***elements of smoothing matrix too small or negative, program stops***"); //hstau
+       }
+       return;
+}
diff --git a/src/snark/quad_bprpict.cpp b/src/snark/quad_bprpict.cpp
new file mode 100644 (file)
index 0000000..b97b3aa
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_bprpict.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ DEBUGGING AID
+
+ N - PICTURE SIZE TO BE PRINTED
+ X - PICTURE TO BE PRINTED
+ IT- ITRRATION NUMBER
+ L - LOCATION IDENTIFIER
+ M - VECTOR IDENTIFIER
+ */
+
+//    TRACING IS DONE FOR EACH ITERATION
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "quad.h"
+
+void quad_class::bprpict(INTEGER M, INTEGER H, REAL* x, INTEGER it,
+               const CHAR* l, const CHAR* m)
+{
+       static INTEGER itrace = 0; //itrace here should be static, wei
+
+       INTEGER i;
+       INTEGER j;
+       INTEGER k;
+
+       if (it == 1)
+               itrace = trace;
+       if (itrace == 0)
+               return;
+
+       fprintf(output, "\n\n called at iter  %2i after  %s with  %s", it, l, m);
+
+       for (i = 0; i < M; i++)
+       {
+               j = i * H;
+               for (k = 0; k < H; k++)
+               {
+                       if ((k != 0) && ((k % 6) == 0))
+                       {
+                               fprintf(output, "\n\n");
+                       }
+                       fprintf(output, "%15.6e    ", x[k + j]);
+
+               }
+       }
+       return;
+}
+
diff --git a/src/snark/quad_costfn.cpp b/src/snark/quad_costfn.cpp
new file mode 100644 (file)
index 0000000..8aa56a4
--- /dev/null
@@ -0,0 +1,218 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_costfn.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS SUBROUTINE COMPUTES THE VALUE OF K(X) NEEDED BY THE QUADRATIC
+ OPTIMIZATION ALGORITHM.
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "fourie.h"
+#include "consts.h"
+#include "uiod.h"
+#include "wray.h"
+#include "ray.h"
+#include "anglst.h"
+#include "errfac.h"
+#include "blob.h"
+
+#include "quad.h"
+
+void quad_class::costfn(REAL* recon, REAL* r, REAL* g, REAL* cg, REAL* w,
+               INTEGER* list, REAL* weight, REAL* f)
+{
+
+       static REAL ppcost; // made static to avoid garbage value for `iterx > 1'. Lajos, Feb 10, 2005
+       INTEGER np;
+       REAL theta;
+       REAL sinth;
+       REAL costh;
+       REAL rinc2;
+       INTEGER nr;
+       REAL pr;
+       BOOLEAN alg;
+       REAL xxcost;
+       REAL bxcost;
+       INTEGER i;
+       REAL xmcost;
+       REAL pmcost;
+       INTEGER numb;
+       REAL snorm;
+       REAL val;
+       INTEGER nb;
+       INTEGER k;
+       REAL valder;
+       REAL cost;
+
+       INTEGER area;
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       if (copt == 4)
+       {
+               fprintf(output, "\n\n      cost function can not be computed");
+               return;
+       }
+
+       if (iterx <= 1)
+       {
+               ppcost = 0.0;
+               Fourie.rinc = GeoPar.pinc;
+               for (np = 0; np < GeoPar.prjnum; np++)
+               {
+                       Anglst.getang(np, &theta, &sinth, &costh);
+                       if (GeoPar.vri)
+                               Fourie.rinc = GeoPar.pinc
+                                               * MAX0((REAL) fabs(costh), (REAL) fabs(sinth));
+                       rinc2 = Fourie.rinc * Fourie.rinc;
+                       for (nr = 0; nr < GeoPar.nrays; nr++)
+                       {
+                               pr = Anglst.prdta(np, nr);
+                               if ((eopt - 2) >= 0)
+                               {
+                                       if ((eopt - 2) > 0)
+                                       {
+                                               error_1 = uerror(np, nr, pr, &alg);
+                                       }
+                                       else
+                                       {
+                                               error_1 = errfac(pr, Fourie.rinc, rinc2);
+                                       }
+                               }
+                               ppcost += pr * pr / error_1;
+                       }
+               }
+
+               n = w;
+               if (w == r)
+               {
+                       n = new REAL[area];
+               }
+               m = n;
+
+               if (!((sb < Consts.zero) || (l <= 0)))
+               {
+                       m = cg;
+                       if (cg == g)
+                       {
+                               m = new REAL[area];
+                       }
+               }
+       }
+
+       xxcost = 0.0;
+       bxcost = 0.0;
+       if ((sb + sc) > Consts.zero)
+       {
+               for (i = 0; i < area; i++)
+               {
+                       if (fopt >= 3)
+                               xbar = f[i];
+                       n[i] = recon[i] - xbar;
+                       m[i] = n[i];
+               }
+
+               if ((sb > Consts.zero) && (l > 0))
+               {
+                       if (Blob.pix_basis)
+                       {
+                               adsmos(n, l, bw1, bw2, bw3, bbcon);
+                       }
+                       else
+                       {
+                               badsmos(n, l, bw1, bw2, bbcon);
+                       }
+               }
+
+               for (i = 0; i < area; i++)
+               {
+                       if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                       {
+                               xxcost += m[i] * m[i];
+                               if (sb > Consts.zero)
+                                       bxcost += m[i] * n[i];
+                       }
+               }
+       }
+
+       xmcost = 0.0;
+       pmcost = 0.0;
+       Fourie.rinc = GeoPar.pinc;
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+               Anglst.getang(np, &theta, &sinth, &costh);
+               if (GeoPar.vri)
+                       Fourie.rinc = GeoPar.pinc * MAX0((REAL) fabs(costh), (REAL) fabs(sinth));
+               rinc2 = Fourie.rinc * Fourie.rinc;
+               for (nr = 0; nr < GeoPar.nrays; nr++)
+               {
+                       pr = Anglst.prdta(np, nr);
+                       if (GeoPar.strip)
+                       {
+                               if (Blob.pix_basis)
+                               {
+                                       ray(np, nr, list, weight, &numb, &snorm);
+                               }
+                               else
+                               {
+                                       Blob.bray(np, nr, list, weight, &numb, &snorm);
+                               }
+                       }
+                       if (GeoPar.line)
+                       {
+                               if (Blob.pix_basis)
+                               {
+                                       wray(np, nr, list, weight, &numb, &snorm);
+                               }
+                               else
+                               {
+                                       Blob.bwray(np, nr, list, weight, &numb, &snorm);
+                               }
+                       }
+                       if (numb != 0)
+                       {
+                               val = 0.0;
+                               for (nb = 0; nb < numb; nb++)
+                               {
+                                       k = list[nb];
+                                       val += recon[k] * weight[nb];
+                               }
+
+                               if ((eopt - 2) >= 0)
+                               {
+                                       if ((eopt - 2) > 0)
+                                       {
+                                               error_1 = uerror(np, nr, pr, &alg);
+                                       }
+                                       else
+                                       {
+                                               error_1 = errfac(pr, Fourie.rinc, rinc2);
+                                       }
+                               }
+                               valder = val / error_1;
+                               xmcost += val * valder;
+                               pmcost += pr * valder;
+                       }
+               }
+       }
+
+       cost = sa * (ppcost - (REAL) 2.0 * pmcost + xmcost) + sb * bxcost + sc * xxcost;
+       fprintf(output, "\n\n      value of cost function %15.6e", cost);
+
+       return;
+}
diff --git a/src/snark/quad_deltac.cpp b/src/snark/quad_deltac.cpp
new file mode 100644 (file)
index 0000000..3e9223d
--- /dev/null
@@ -0,0 +1,306 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_deltac.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+                                 R#*R
+        DELTA = ---------------------------------------------------
+                G#*C**T*((SA*M#*A*M + SB*B**L)*C**T + SC*C**(T-1))*G
+
+    AOPT=1             AOPT=2            AOPT=3           AOPT=4
+    (R=G=V)            (R=G)             (R=V)
+
+1.                                       PRTNRM=TWONRM    SAME
+2.  TWONRM=R#*R        SAME              SAME             SAME
+3.                                       GMA=TWONRM/PRTN  SAME
+4.                                       G=R-GMA*G        SAME
+5.  W=C**(T-1)*G       SAME              SAME             SAME
+6.  CG=C*W             SAME              SAME             SAME
+7.  V=SA*M#*A*M*CG     SAME              SAME             SAME
+8.  V=V+SC*W           SAME              SAME             SAME
+9.  W=B**L*CG          SAME              SAME             SAME
+10. V=V+SB*W           SAME              SAME             SAME
+11.                    V=C**T*V                           SAME
+12.                    GTQG=V*G                           SAME
+13. GTQG=V*CG                            SAME
+           TWONRM
+14. DELTA= ------      SAME              SAME             SAME
+            GTQG
+                       NOTE:             NOTE:            NOTE:
+                       TWONRM AND DELTA  ONLY CG IS       FOR CONSTANT
+                       ARE NOT COMPUTED  COMPUTED FOR     DELTA, DELTA
+                       FOR CONSTANT      CONSTANT         IS NOT
+                       DELTA             DELTA            COMPUTED
+*/
+      
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+#include "blob.h"
+
+#include "quad.h"
+
+void quad_class::deltac(
+  REAL* r,
+  REAL* g,
+  REAL* v,
+  REAL* cg,
+  REAL* w,
+  REAL* delta,  // corr. hstau
+  REAL* gma,    // corr. hstau
+  INTEGER* list, 
+  REAL* weight,
+  BOOLEAN* alg,
+  REAL* s
+)
+{
+  static REAL twonrm; // set static. hstau
+  static REAL prtn;// set static. hstau
+  REAL gtqg;
+  INTEGER i;
+
+  INTEGER area;
+
+  if(Blob.pix_basis) {
+    area = GeoPar.area;
+  }
+  else {
+    area = Blob.area;
+  }
+  if(iterx == 1) twonrm = 0.0; //corr. hstau
+
+       
+  if(!((bopt <= 2) && (popt <= 0))) {
+    prtn = twonrm;
+
+//C2.
+
+    twonrm = 0.0;
+
+    // MULTIFLY R BY S FOR SPLITTING
+
+    if(gopt > 0) {
+      for(i = 0; i < area; i++) {
+        if(Blob.pix_basis || (!Blob.pix_basis && i%2 == Blob.pr)) {
+          twonrm += s[i] * r[i] * r[i];
+       }
+      }
+    }
+    else {
+
+      for(i = 0; i < area; i++) {
+        if(Blob.pix_basis || (!Blob.pix_basis && i%2 == Blob.pr)) {
+         twonrm += r[i] * r[i];
+       }
+      }
+    }
+
+    if(popt >= 1) {
+      //fprintf(output, "\n\n      norm square of gradient vector is %15.6e", twonrm);
+         fprintf(output, "\n\n      squared norm of the residual is %15.6e", twonrm);      //wei, bug 191, 12/2005   
+    }
+
+    if(twonrm <= Consts.zero) {
+      //fprintf(output, "\n\n      norm of gradient vector is zero, iteration stops");
+     fprintf(output, "\n\n       norm of the residual is zero, iteration stops");  //wei, bug 191, 12/2005  
+      
+      *alg = TRUE;
+      return;
+    }
+  }
+
+  // AT FIRST ITERATION FOR CONJUGATE GRADIANT SET G = R
+
+  if(aopt > 2) {
+    if(iterx == 1) {
+      for(i = 0; i < area; i++) {
+        g[i] = r[i];
+      }
+    }
+//C3.
+    else {
+      if(bopt == 3) *gma = twonrm/prtn; //gma = twonrm/prtn;
+
+//C4.
+
+      for(i = 0; i < area; i++) {
+        g[i] = r[i] + (*gma) * g[i];
+       // g[i] = r[i] + gma * g[i];
+      }
+    }
+  }
+  // INITILIZE CG TO G
+
+  if(gopt <= 0) {
+
+    // NO SPLITTING REQUIRED
+
+    for(i = 0; i < area; i++) {
+      cg[i] = g[i];
+    }
+  }
+  else {
+    // SPLITTING
+
+    for(i = 0; i < area; i++) {
+      cg[i] = g[i] * s[i];
+    }
+  }
+
+  if(t > 1) {
+    if(copt != 5) {
+      if(Blob.pix_basis) {
+        adsmos(cg, t-1, cw1, cw2, cw3, cbcon);
+      }
+      else {
+        badsmos(cg, t-1, cw1, cw2, cbcon);
+      }
+    }
+    // NO NEED FOR W=C**(T-1)*G IF SC=0
+  }
+
+   
+  if(sc > Consts.zero) { //
+
+//C5.
+
+    for(i = 0; i < area; i++) {
+      w[i] = cg[i];
+    }
+  }
+//C6.
+
+  if(copt != 5) {
+    if(Blob.pix_basis) {
+      adsmos(cg,1, cw1, cw2, cw3, cbcon);
+    }
+    else {
+      badsmos(cg,1, cw1, cw2, cbcon);
+    }
+  }
+  // RETURN FOR CONSTANT DELTA AND AOPT=3
+
+  if((aopt == 3) && (bopt <= 2)) return;
+
+//C7.
+
+  mtamx(cg, v, list, weight);
+
+  if(sc > Consts.zero) {
+
+//C8.
+
+    for(i = 0; i < area; i++) {
+      v[i] += sc * w[i];
+    }
+  }
+//C9.
+
+
+  if(sb > Consts.zero) {
+    if(l > 0) {
+      for(i = 0; i < area; i++) {
+        w[i] = cg[i];
+      }
+
+      if(Blob.pix_basis) {
+        adsmos(w, l, bw1, bw2, bw3, bbcon);
+      }
+      else {
+        badsmos(w, l, bw1, bw2, bbcon);
+      }
+      
+//C10.
+
+      for(i = 0; i < area; i++) {
+        v[i] += sb * w[i];
+      }
+    }
+    else {
+      for(i = 0; i < area; i++) {
+        v[i] += sb * cg[i];
+      }
+    }
+  }
+
+  // CHECK FOR METHOD
+
+  if(!((aopt == 1) || (aopt == 3))) {
+
+//C11.
+
+    if(copt != 5) {
+      if(Blob.pix_basis) {
+        adsmos(v, t, cw1, cw2, cw3, cbcon);
+      }
+      else {
+        badsmos(v, t, cw1, cw2, cbcon);
+      }
+    }
+    // FOR CONSTANT DELTA RETURN
+
+    if(bopt <= 2) return;
+
+//C12.
+
+    gtqg = 0.0;
+
+    if(gopt <= 0) {
+
+      // INDIRECT NO SPLITTING
+
+      for(i = 0; i < area; i++) {
+        if(Blob.pix_basis || (!Blob.pix_basis && i%2 == Blob.pr)) {
+        gtqg += v[i] * g[i];
+       }
+      }
+
+    }
+    else {
+
+      // INDIRECT WITH SPLITTING
+
+      for(i = 0; i < area; i++) {
+        if(Blob.pix_basis || (!Blob.pix_basis && i%2 == Blob.pr)) {
+          gtqg += v[i] * g[i] * s[i];
+       }
+      }
+    }
+  }
+  else {
+//C13.
+
+// DIRECT METHOD CG = C**(T/2)*S**2*G
+
+    gtqg = 0.0;
+
+    for(i = 0; i < area; i++) {
+      if(Blob.pix_basis || (!Blob.pix_basis && i%2 == Blob.pr)) {
+        gtqg += v[i] * cg[i];
+      }
+    }
+  }
+  // CHECK FOR ZERO DENOMINATOR
+
+
+  if(fabs(gtqg) > Consts.zero) {
+
+//C14.
+
+    *delta = twonrm / gtqg;
+  
+    return;
+  }
+  fprintf(output, "\n***zero denominator when computing delta iteratively, program stops***"); //not selfexplained hstau
+  *alg = TRUE;
+  return;
+}      
diff --git a/src/snark/quad_deltad.cpp b/src/snark/quad_deltad.cpp
new file mode 100644 (file)
index 0000000..ac4ff43
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_deltad.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+                 R#*D*D*R
+      DELTA = ---------------------
+              G#*D*(D*M#*A*M*D)*D*G
+
+    NOTE: R = M#*A*(M*X-P)
+
+    AOPT=1            AOPT=2           AOPT=3             AOPT=4
+
+    (R=G=V)           (R=G)            (R=V)
+
+1.                                     PRTN=TWONRM        SAME
+2.  TWONRM=D**2*R**2  SAME             SAME               SAME
+3.                                     GMA=TWONRM/PRTN    SAME
+4.                                     G=R+GMA*G          SAME
+5.  CG=D**2*G         SAME             SAME               SAME
+6.  V=M#*A*M*CG       SAME             SAME               SAME
+7.  GTQG=CG*V         SAME             SAME               SAME
+          TWONRM
+8.  DELTA=------      SAME             SAME               SAME
+           GTQG
+
+                      NOTE:            NOTE:              NOTE:
+                      TWONRM AND       FOR CONSTANT
+                      DELTA ARE NOT    DELTA ONLY         SAME
+                      COMPUTED FOR     V IS COMPUTED
+                      CONSTANT DELTA
+*/
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+#include "blob.h"
+
+#include "quad.h"
+
+void quad_class::deltad(
+REAL* r,
+REAL* g,
+REAL* v,
+REAL* cg,
+REAL* d,
+REAL* delta,  // corr. hstau
+               REAL* gma,     //corr. hstau
+               INTEGER* list,
+               REAL* weight,
+               BOOLEAN *alg)
+{
+       static REAL twonrm;     // set static. hstau
+       static REAL prtn;     // set static. hstau
+       REAL gtqg;
+       INTEGER i;
+
+       INTEGER area;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       if (iterx == 1)
+               twonrm = 0.0;  //corr? hstau
+
+//C1.
+
+       if (!((bopt <= 2) && (popt <= 0)))
+       {
+               prtn = twonrm;
+
+//C2.
+
+               twonrm = 0.0;
+               for (i = 0; i < area; i++)
+               {
+                       if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                       {
+                               twonrm += d[i] * r[i] * r[i];
+                       }
+               }
+
+               if (popt >= 1)
+               {
+                       fprintf(output, "\n\n      squared norm of the residual is %15.6e",
+                                       twonrm);     //wei, bug 191, 12/2005
+               }
+
+               if (twonrm <= Consts.zero)
+               {
+                       fprintf(output,
+                                       "\n\n      norm of the residual is zero, iteration stops"); //wei, bug 191, 12/2005
+                       *alg = TRUE;
+                       return;
+               }
+       }
+
+       if (aopt > 2)
+       {
+               if (iterx == 1)
+               {
+
+//C3.
+                       for (i = 0; i < area; i++)
+                       {
+                               g[i] = r[i];
+                       }
+                       goto L4;
+                       //corr.hstau
+               }
+               if (bopt == 3)
+                       *gma = twonrm / prtn; //gma = twonrm/prtn;
+
+//C4.
+
+               for (i = 0; i < area; i++)
+               {
+                       g[i] = r[i] + (*gma) * g[i];  // corr. hstau
+;
+               }
+
+//C5.
+       }
+       L4:  // corr.hstau
+       for (i = 0; i < area; i++)
+       {
+               cg[i] = d[i] * g[i];
+
+
+       }
+
+       // RETURN FOR AOPT .LE. 2 AND BOPT .LE. 2
+
+       if ((bopt <= 2) && (aopt <= 2))
+               return; // corr.hstau
+//C6.
+
+       mtamx(cg, v, list, weight);
+
+       if (bopt <= 2)
+               return;
+
+//C7.
+
+       gtqg = 0.0;
+       for (i = 0; i < area; i++)
+       {
+               if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+               {
+                       gtqg += cg[i] * v[i];
+               }
+       }
+
+
+       // CHECK FOR ZERO DENOMINATOR
+
+       if (fabs(gtqg) > Consts.zero)
+       {
+
+//C8.
+               *delta = twonrm / gtqg;
+
+               return;
+       }
+
+       fprintf(output, "\n***zero denominator when computing delta iteratively, program stops***"); //not selfexplained hstau
+       *alg = TRUE;
+       return;
+}
diff --git a/src/snark/quad_deset.cpp b/src/snark/quad_deset.cpp
new file mode 100644 (file)
index 0000000..15ff947
--- /dev/null
@@ -0,0 +1,167 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_deset.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ SET UP D MATRIX
+
+ COPT = 1 GOITEIN
+
+ COPT = 2 MODIFIED SIRT
+
+ ZERO OUT THE D VECTOR
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+#include "ray.h"
+#include "wray.h"
+#include "anglst.h"
+#include "errfac.h"
+#include "blob.h"
+
+#include "quad.h"
+
+void quad_class::deset(REAL* d, INTEGER* list, REAL* weight, BOOLEAN* alg)
+{
+       INTEGER i;
+       INTEGER np;
+       INTEGER nr;
+       INTEGER numb;
+       REAL snorm;
+       REAL totwei;
+       INTEGER k;
+       REAL truval;
+       INTEGER j;
+
+       INTEGER area;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       for (i = 0; i < area; i++)
+       {
+               d[i] = 0.0;
+       }
+
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+               for (nr = 0; nr < GeoPar.nrays; nr++)
+               {
+                       if (GeoPar.line)
+                       {
+                               if (Blob.pix_basis)
+                                       wray(np, nr, list, weight, &numb, &snorm);
+                               else
+                                       Blob.bwray(np, nr, list, weight, &numb, &snorm);
+                       }
+                       if (GeoPar.strip)
+                       {
+                               if (Blob.pix_basis)
+                                       ray(np, nr, list, weight, &numb, &snorm);
+                               else
+                                       Blob.bray(np, nr, list, weight, &numb, &snorm);
+                       }
+                       if (numb != 0)
+                       {
+                               if (copt != 1)
+                               {
+
+                                       // MODIFIED SIRT
+
+                                       totwei = 0.0;
+
+                                       for (k = 0; k < numb; k++)
+                                       {
+                                               totwei += weight[k];
+                                       }
+
+                                       if ((eopt - 2) >= 0)
+                                       {
+                                               if ((eopt - 2) > 0)
+                                               {
+                                                       truval = Anglst.prdta(np, nr);
+                                                       error_1 = uerror(np, nr, truval, alg);
+                                               }
+                                               else
+                                               {
+                                                       truval = Anglst.prdta(np, nr);
+                                                       error_1 = errfac(truval, 0.0, 0.0);
+                                               }
+                                       }
+                                       totwei /= error_1;
+
+                                       for (k = 0; k < numb; k++)
+                                       {
+                                               j = list[k];
+                                               d[j] += totwei * weight[k];
+                                       }
+                               }
+                               else
+                               {
+                                       // GOITEIN
+
+                                       if ((eopt - 2) >= 0)
+                                       {
+                                               if ((eopt - 2) > 0)
+                                               {
+                                                       truval = Anglst.prdta(np, nr);
+                                                       error_1 = uerror(np, nr, truval, alg);
+                                               }
+                                               else
+                                               {
+                                                       truval = Anglst.prdta(np, nr);
+                                                       error_1 = errfac(truval, 0.0, 0.0);
+                                               }
+                                       }
+
+                                       for (k = 0; k < numb; k++)
+                                       {
+                                               j = list[k];
+                                               d[j] += (weight[k] * weight[k]) / error_1;
+                                       }
+                               }
+
+                               // NEXT NR
+                       }
+               }
+
+//     NEXT NP
+
+       }
+
+       for (i = 0; i < area; i++)
+       {
+               if (fabs(d[i]) <= Consts.zero)
+               {
+
+                       if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                       {
+                               *alg = TRUE;
+                               fprintf(output, "\n\n      ***a picture element is missed by all rays, can not compute matrix D, program stops***"); //hstau
+                               return;
+                       }
+               }
+
+               if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+               {
+                       d[i] = (REAL) 1.0 / d[i];
+               }
+       }
+       return;
+}
diff --git a/src/snark/quad_dset.cpp b/src/snark/quad_dset.cpp
new file mode 100644 (file)
index 0000000..0dd8eac
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_dset.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ DUMMY SUBROUTINE FOR QUAD - MAY BE REPLACED WITH A
+ USER DEFINED CALCULATION OF THE VECTOR D.
+
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "quad.h"      
+
+void quad_class::dset(REAL* d, INTEGER* list, REAL* weight, BOOLEAN* alg)
+{
+       *alg = TRUE;
+       fprintf(output, "\n    ***user failed to supply dset routine,  program stops");
+       return;
+}
diff --git a/src/snark/quad_eigval.cpp b/src/snark/quad_eigval.cpp
new file mode 100644 (file)
index 0000000..40bc6e8
--- /dev/null
@@ -0,0 +1,300 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_eigval.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+     THIS SUBROUTINE ESTIMATES THE LOWER AND UPPER EIGEN VALUE
+     FOR THE MATRIX
+
+           C**P(SA*C*M#*A*M + SB*C*B**L + SC)
+
+     WHERE
+
+         P = T - 1
+
+                          OR FOR THE MATRIX
+
+                     D*M#*A*M*D
+
+     Y IS A WORKING STORAGE ASSUMED TO BE THE RECONSTRUCTION AREA
+*/
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+#include <DIGGauss.h>
+#include "blob.h"
+
+#include "quad.h"
+
+void quad_class::eigval(
+REAL* y,
+BOOLEAN nomin,
+REAL* d,
+INTEGER* list,
+REAL* weight,
+REAL tol,
+REAL* estmin, //corr. hstau
+               REAL* lambda, // corr.hstau
+               REAL* s)
+{
+
+       REAL max, lower, upper;
+
+       INTEGER i;
+       REAL* x;
+       REAL presmn;
+       INTEGER maxpt;
+       REAL xnorml;
+       REAL test;
+
+       INTEGER area;
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       //     ALLOCATE STORAGE AREA
+
+       x = new REAL[area];
+
+//     INITIALIZE X
+
+       for (i = 0; i < area; i++)
+       {
+               x[i] = 1.0;
+       }
+
+       /*
+        FOR METHOD OF ESTIMATING MAX EIGENVALUE SEE
+        A COMPUTER IMPLEMENTATION OF BAYESIAN ANALYSIS
+        OF IMAGE RECONSTRUCTION
+
+        G. T. HERMAN AND A. LENT
+
+        INFORMATION AND CONTROL 31,364-384(1976)
+
+        CALCULATE Y = MATRIX*X
+        */
+       for (;;)
+       {
+               matrix(y, x, d, list, weight, s);
+
+               // SET UPPER AND LOWER BOUNDS
+               lower = Consts.infin;
+               upper = -Consts.infin;
+               *estmin = 0.0;
+               // COMPUTE LAMBDA
+
+               *lambda = 0.0;
+
+               for (i = 0; i < area; i++)
+               {
+                       if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                       {
+                               (*lambda) += y[i];
+
+                               // COMPUTE UPPER AND LOWER BOUND CHECK  FOR POSSIBLE DIVISION BY ZERO
+
+                               if (x[i] <= Consts.zero)
+                               {
+                                       fprintf(output, "\n\n      ***warning***");
+                                       fprintf(output, "\n      z(%5i) = %15.6e", i, x[i]);
+                                       fprintf(output,
+                                                       "\n      lower and upper bound are ignored");
+                               }
+
+                               else
+                               {
+                                       test = y[i] / x[i];
+
+                                       // CHECK FOR NONPOSITIVE RESULTS
+
+                                       if (test <= 0.0)
+                                       {
+                                               fprintf(output, "\n\n      ***warning***");
+                                               fprintf(output,
+                                                               "\n      negative value in matrix*x(%5i) = %e",
+                                                               i, y[i]);
+                                               fprintf(output, "\n      valve ignored");
+                                       }
+                                       else
+                                       {
+                                               if (test < lower)
+                                                       lower = test;
+                                               if (test > upper)
+                                                       upper = test;
+                                       }
+                               }
+                       }
+               }
+
+               if (Blob.pix_basis)
+               {
+                       (*lambda) /= ((REAL) (area));
+               }
+               else
+               {
+                       (*lambda) /= ((REAL) (area / 2.0));
+               }
+
+               if (popt >= 1)
+               {
+                       fprintf(output,
+                                       "\n\n      lower estimate for largest eigenvalue %15.6e",
+                                       lower);
+                       fprintf(output,
+                                       "\n            estimate for largest eigenvalue %15.6e",
+                                       *lambda);
+                       fprintf(output,
+                                       "\n      upper estimate for largest eigenvalue %15.6e",
+                                       upper);        //bug 147, wei, 2005/10
+               }
+
+               // TEST FOR TERMINATION
+
+               if (((upper - lower) / upper) < tol)
+               {
+                       break;
+               }
+
+               // EVALUATE NEXT X
+
+               for (i = 0; i < area; i++)
+               {
+                       if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                       {
+                               x[i] = y[i] / (*lambda);
+                       }
+               }
+       }
+
+       *estmin = upper;
+
+       if (!nomin)
+       {
+
+               /*
+                ESTIMATE SMALLEST EIGEN VALUE
+                FOR METHOD SEE ABOVE REFERENCE AND
+
+                A FIRST COURSE IN NUMERICAL ANALYSIS
+
+                A. RALSTON
+
+                MCGRAW-HILL 1965 PAGE 475
+
+                INITIALIZE X
+                */
+
+               for (i = 0; i < area; i++)
+               {
+
+                       if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                       {
+                               x[i] = Gauss(0.0, 1.0);
+                       }
+               }
+
+               // CALCULATE Y = UPPER*X - MATRIX*X
+
+               for (;;)
+               {
+                       max = -Consts.infin;
+                       matrix(y, x, d, list, weight, s);
+                       for (i = 0; i < area; i++)
+                       {
+                               if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                               {
+                                       y[i] = upper * x[i] - y[i];
+                               }
+                       }
+
+                       presmn = *estmin;
+
+                       if (!((t == 0) || (copt != 4)))
+                       {
+
+                               // NON SYMETRIC MATRIX
+
+                               // FIND MAX OF x[i]
+
+                               for (i = 0; i < area; i++)
+                               {
+                                       if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                                       {
+                                               if (x[i] > max)
+                                               {
+                                                       max = x[i];
+                                                       maxpt = i;
+                                               }
+                                       }
+                               }
+
+                               // NEW ESTIMATES FOR MINIMUM EIGENVALUE
+
+                               *estmin = y[maxpt] / max;
+                       }
+                       else
+                       {
+                               //    SYMETRIC MATRIX
+
+                               max = 0;
+                               *estmin = 0.0;
+                               for (i = 0; i < area; i++)
+                               {
+                                       if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                                       {
+                                               max += x[i] * x[i];
+                                               (*estmin) += y[i] * x[i];
+                                       }
+                               }
+                               (*estmin) /= max;
+                       }
+
+                       if (popt >= 1)
+                       {
+                               fprintf(output, "\n\n      estimate for largest eigenvalue of upper*i-matrix %15.6e",
+                                               *estmin); //bug 147, wei, 2005/10
+                       }
+
+                       xnorml = *estmin;
+                       if (fabs(*estmin) <= Consts.zero)
+                               xnorml = 1.0;
+                       if (fabs(*estmin - presmn) / xnorml <= tol)
+                       {
+                               break;
+                       }
+
+                       for (i = 0; i < area; i++)
+                       {
+                               if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+                               {
+                                       x[i] = y[i] / xnorml;
+                               }
+                       }
+               }
+       }
+       *estmin = upper - (*estmin);
+
+       if (popt >= 1)
+       {
+               fprintf(output, "\n\n      estimate for smallest eigenvalue %15.6e", *estmin);  //bug 147, wei, 2005/10
+       }
+
+       delete[] x;  // bug 92 - Lajos - 03/02/2005
+
+       return;
+}
diff --git a/src/snark/quad_matrix.cpp b/src/snark/quad_matrix.cpp
new file mode 100644 (file)
index 0000000..00e51d0
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_matrix.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+
+ THIS ROUTINE CALCULATES
+
+ Y = D*M#*A*M*X     IF COPT .LE. 3
+
+ OR
+
+ Y = C**P*(C*(SA+M#*A*M + SB*B**C) + SC)*X   OTHERWISE
+
+ WHERE P = T - 1
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "blob.h"
+
+#include "quad.h"
+
+void quad_class::matrix(REAL* y, REAL* x, REAL* d, INTEGER* list, REAL* weight,
+               REAL* s)
+{
+       REAL* j;
+       INTEGER i;
+       INTEGER area;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       // COMPUTE SA*M#*A*M*X STORE IN Y
+
+       if (sa > Consts.zero)
+               mtamx(x, y, list, weight);
+
+       if (copt > 3)
+       {
+
+               if (sb > Consts.zero)
+               {
+
+                       j = new REAL[area];
+
+                       for (i = 0; i < area; i++)
+                       {
+                               j[i] = x[i];
+                       }
+
+                       if (l > 0)
+                       {
+                               if (Blob.pix_basis)
+                               {
+                                       adsmos(j, l, bw1, bw2, bw3, bbcon);
+                               }
+                               else
+                               {
+                                       badsmos(j, l, bw1, bw2, bbcon);
+                               }
+                       }
+                       for (i = 0; i < area; i++)
+                       {
+                               y[i] += sb * j[i];
+                       }
+                       delete[] j;  // bug 92 - Lajos - 03/02/2005
+               }
+               if (copt != 5)
+               {
+                       if (Blob.pix_basis)
+                       {
+                               adsmos(y, 1, cw1, cw2, cw3, cbcon);
+                       }
+                       else
+                       {
+                               badsmos(y, 1, cw1, cw2, cbcon);
+                       }
+               }
+
+               if (sc != 0.0)
+               {
+
+                       for (i = 0; i < area; i++)
+                       {
+                               y[i] += sc * x[i];
+                       }
+               }
+
+               if ((copt != 5) && ((t - 1) > 0))
+               {
+                       if (Blob.pix_basis)
+                       {
+                               adsmos(y, t - 1, cw1, cw2, cw3, cbcon);
+                       }
+                       else
+                       {
+                               badsmos(y, t - 1, cw1, cw2, cbcon);
+                       }
+               }
+
+               if (gopt > 0)
+               {
+                       for (i = 0; i < area; i++)
+                       {
+                               y[i] *= s[i];
+                       }
+               }
+
+               if ((copt != 5) && (t > 0))
+               {
+                       if (Blob.pix_basis)
+                       {
+                               adsmos(y, t, cw1, cw2, cw3, cbcon);
+                       }
+                       else
+                       {
+                               badsmos(y, t, cw1, cw2, cbcon);
+                       }
+               }
+               return;
+       }
+       // D SECTION
+
+       for (i = 0; i < area; i++)
+       {
+               y[i] *= d[i];
+       }
+
+       return;
+}
diff --git a/src/snark/quad_mtamx.cpp b/src/snark/quad_mtamx.cpp
new file mode 100644 (file)
index 0000000..959a5ec
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_mtamx.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Y = SA*M#*A*M*X
+
+ X AND Y MUST BE DISTINCT
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "noise.h"
+#include "wray.h"
+#include "anglst.h"
+#include "ray.h"
+#include "errfac.h"
+#include "consts.h"
+
+#include "blob.h"
+#include "quad.h"
+
+void quad_class::mtamx(REAL* x, REAL* y, INTEGER* list, REAL* weight)
+{
+       INTEGER i;
+       INTEGER np;
+       INTEGER nr;
+       INTEGER numb;
+       REAL snorm;
+       REAL val;
+       INTEGER nb;
+       INTEGER k;
+       REAL truval;
+       REAL pix4;
+       REAL theta;
+       REAL sinth;
+       REAL costh;
+
+       REAL rinc;
+       REAL rinc2;
+
+       BOOLEAN alg;
+
+       REAL hex_voronoi;
+       INTEGER area;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       hex_voronoi = Consts.sqrt3 / (REAL) 2.0 * Blob.delta * Blob.delta;
+
+       // ZERO OUT Y
+
+       for (i = 0; i < area; i++)
+       {
+               y[i] = 0.0;
+       }
+
+       // FOR BETTER PERFORMANCE LINE AND STRIP MODES ARE SEPERATED
+
+       if (!GeoPar.strip)
+       {
+
+               // LINE MODE
+
+               for (np = 0; np < GeoPar.prjnum; np++)
+               {
+                       for (nr = 0; nr < GeoPar.nrays; nr++)
+                       {
+                               if (Blob.pix_basis)
+                               {
+                                       wray(np, nr, list, weight, &numb, &snorm);
+                               }
+                               else
+                               {
+                                       Blob.bwray(np, nr, list, weight, &numb, &snorm);
+                               }
+                               if (numb > 0)
+                               {
+                                       val = 0.0;
+
+
+                                       for (nb = 0; nb < numb; nb++)
+                                       {
+                                               k = list[nb];
+                                               val += x[k] * weight[nb];
+                                       }
+
+
+                                       if ((eopt - 2) >= 0)
+                                       {
+                                               if ((eopt - 2) > 0)
+                                               {
+                                                       truval = Anglst.prdta(np, nr);
+                                                       error_1 = uerror(np, nr, truval, &alg);
+                                               }
+                                               else
+                                               {
+                                                       truval = Anglst.prdta(np, nr);
+                                                       error_1 = errfac(truval, 0.0, 0.0);
+                                               }
+                                       }
+                                       val *= sa / error_1;
+
+
+                                       for (nb = 0; nb < numb; nb++)
+                                       {
+                                               k = list[nb];
+                                               y[k] += val * weight[nb];
+                                       }
+                                       // NEXT NR
+                               }
+                       }
+                       // NEXT NP
+
+               }
+               return;
+
+               // STRIP MODE
+       }
+
+       rinc = GeoPar.pinc;
+       if (Blob.pix_basis)
+       {
+               pix4 = sa * GeoPar.pixsiz * GeoPar.pixsiz * GeoPar.pixsiz
+                               * GeoPar.pixsiz;
+       }
+       else
+       {
+               pix4 = sa * hex_voronoi * hex_voronoi;
+       }
+
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+               Anglst.getang(np, &theta, &sinth, &costh);
+               if ((NoisePar.quanin > 0) && GeoPar.vri)
+               {
+                       rinc = GeoPar.pinc * MAX0((REAL) fabs(costh), (REAL) fabs(sinth));
+               }
+
+               rinc2 = rinc * rinc;
+
+               for (nr = 0; nr < GeoPar.nrays; nr++)
+               {
+                       if (Blob.pix_basis)
+                       {
+                               ray(np, nr, list, weight, &numb, &snorm);
+                       }
+                       else
+                       {
+                               Blob.bray(np, nr, list, weight, &numb, &snorm);
+                       }
+
+                       if (numb > 0)
+                       {
+                               val = 0.0;
+
+                               for (nb = 0; nb < numb; nb++)
+                               {
+                                       k = list[nb];
+                                       val += x[k];
+                               }
+
+
+                               if ((eopt - 2) >= 0)
+                               {
+                                       if ((eopt - 2) > 0)
+                                       {
+                                               truval = Anglst.prdta(np, nr);
+                                               error_1 = uerror(np, nr, truval, &alg);
+                                               goto L16;
+                                       }
+                                       else
+                                       {
+                                               truval = Anglst.prdta(np, nr);
+                                               error_1 = errfac(truval, rinc, rinc2);
+                                       }
+                               }
+
+                               L16: val *= pix4 / error_1;
+
+
+                               for (nb = 0; nb < numb; nb++)
+                               {
+                                       k = list[nb];
+                                       y[k] += val;
+                               }
+                               // NEXT NR
+                       }
+               }
+               // NEXT NP
+       }
+       return;
+}
diff --git a/src/snark/quad_mtamxp.cpp b/src/snark/quad_mtamxp.cpp
new file mode 100644 (file)
index 0000000..163c7cd
--- /dev/null
@@ -0,0 +1,238 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_mtamxp.cpp $
+ $LastChangedRevision: 80 $
+ $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Y = SA*M#*A*(M*X - P)
+
+ X AND Y MUST BE DISTINCT
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "fourie.h"
+#include "noise.h"
+#include "anglst.h"
+#include "wray.h"
+#include "ray.h"
+#include "errfac.h"
+#include "consts.h"
+
+#include "blob.h"
+#include "quad.h"
+
+void quad_class::mtamxp(REAL* x, REAL* y, INTEGER* list, REAL* weight)
+{
+       BOOLEAN alg;
+
+       INTEGER i;
+       INTEGER np;
+       INTEGER nr;
+       INTEGER numb;
+       REAL snorm;
+       REAL val;
+       INTEGER nb;
+       INTEGER k;
+       REAL truval;
+       REAL pix2;
+       REAL pix3;
+       REAL pix4;
+       REAL theta;
+       REAL sinth;
+       REAL costh;
+       REAL rinc2;
+       REAL hex_voronoi;
+       hex_voronoi = Consts.sqrt3 / (REAL) 2.0 * Blob.delta * Blob.delta;
+
+       INTEGER area;
+
+       if (Blob.pix_basis)
+       {
+
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       ///tracer
+       //for(i = 0; i < area; i++) {
+       //   fprintf(output,"\nmtamxpx=%f", x[i]);
+       // }
+       ////tracer
+
+       // ZERO OUT Y
+
+       for (i = 0; i < area; i++)
+       {
+               y[i] = 0.0;
+       }
+
+       // FOR BETTER PERFORMANCE LINE AND STRIP MODES ARE SEPERATED
+
+       if (!GeoPar.strip)
+       {
+
+               // LINE MODE
+
+               for (np = 0; np < GeoPar.prjnum; np++)
+               {
+                       for (nr = 0; nr < GeoPar.nrays; nr++)
+                       {
+
+                               if (Blob.pix_basis)
+                               {
+                                       wray(np, nr, list, weight, &numb, &snorm);
+                               }
+                               else
+                               {
+                                       Blob.bwray(np, nr, list, weight, &numb, &snorm);
+                               }
+                               if (numb > 0)
+                               {
+                                       val = 0.0;
+
+                                       // VAL = M*X
+
+                                       for (nb = 0; nb < numb; nb++)
+                                       {
+                                               k = list[nb];
+                                               val += x[k] * weight[nb];
+                                       }
+
+                                       // VAL = M*X - P
+
+                                       truval = Anglst.prdta(np, nr);
+                                       val -= truval;
+
+                                       // VAL = SA*A*(M*X - P)
+
+                                       if ((eopt - 2) >= 0)
+                                       {
+                                               if ((eopt - 2) > 0)
+                                               {
+                                                       error_1 = uerror(np, nr, truval, &alg);
+                                               }
+                                               else
+                                               {
+                                                       error_1 = errfac(truval, 0.0, 0.0);
+                                               }
+                                       }
+
+                                       val *= sa / error_1;
+
+                                       // Y = SA*M#*A*(M*X - P)
+
+                                       for (nb = 0; nb < numb; nb++)
+                                       {
+                                               k = list[nb];
+                                               y[k] += val * weight[nb];
+                                       }
+
+//    NEXT NR
+                               }
+                       }
+
+//    NEXT NP
+
+               }
+
+               return;
+       }
+//    STRIP MODE
+
+       Fourie.rinc = GeoPar.pinc;  //think rinc and these pix* for blob case. hstau
+       if (Blob.pix_basis)
+       {
+               pix2 = GeoPar.pixsiz * GeoPar.pixsiz;
+               pix3 = pix2 * sa;
+               pix4 = pix3;   // bug in Fortran?. NO hstau
+       }
+       else
+       {
+               pix2 = hex_voronoi;
+               pix3 = pix2 * sa;
+               pix4 = pix3;
+       }
+
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+               Anglst.getang(np, &theta, &sinth, &costh);
+               if ((NoisePar.quanin > 0) && GeoPar.vri)
+                       Fourie.rinc = GeoPar.pinc
+                                       * MAX0((REAL) fabs(costh), (REAL) fabs(sinth));
+               rinc2 = Fourie.rinc * Fourie.rinc;
+
+               for (nr = 0; nr < GeoPar.nrays; nr++)
+               {
+                       if (Blob.pix_basis)
+                       {
+                               ray(np, nr, list, weight, &numb, &snorm);
+                       }
+                       else
+                       {
+                               Blob.bray(np, nr, list, weight, &numb, &snorm);
+                       }
+
+                       if (numb > 0)
+                       {
+                               val = 0.0;
+
+                               // VAL = M*X  (NOTE THAT M IS A 0-1 MATRIX)
+
+                               for (nb = 0; nb < numb; nb++)
+                               {
+                                       k = list[nb];
+                                       val += x[k];
+                               }
+
+                               val *= pix2;
+
+                               // VAL = M*X - P
+
+                               truval = Anglst.prdta(np, nr);
+
+                               val -= truval;
+
+                               // VAL = SA*M#*A*(M*X - P)
+
+                               if ((eopt - 2) >= 0)
+                               {
+                                       if ((eopt - 2) > 0)
+                                       {
+                                               error_1 = uerror(np, nr, truval, &alg);
+                                       }
+                                       else
+                                       {
+                                               error_1 = errfac(truval, Fourie.rinc, rinc2);
+                                       }
+                               }
+                               val *= pix4 / error_1;
+
+                               // Y = SA*M#*A*(M*X - P)
+
+                               for (nb = 0; nb < numb; nb++)
+                               {
+
+                                       k = list[nb];
+                                       y[k] += val;
+                               }
+
+                               // NEXT NR
+                       }
+
+               }
+
+               // NEXT NP
+
+       }
+       return;
+}
diff --git a/src/snark/quad_nextr.cpp b/src/snark/quad_nextr.cpp
new file mode 100644 (file)
index 0000000..e696f36
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_nextr.cpp $
+ $LastChangedRevision: 89 $
+ $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ FOR AOPT 2 AND 4 NEXT R IS COMPUTED
+ COMPUTE THE NEXT GRADIENT BY THE INDIRECT METHOD
+ USED BY QUADRATIC OPTIMIZATION ALGORITHM.
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+
+#include "quad.h"
+
+void quad_class::nextr(REAL* r, REAL* v, REAL delta, INTEGER area)
+{
+       INTEGER i;
+
+       for (i = 0; i < area; i++)
+       {
+               r[i] -= delta * v[i];
+       }
+
+       return;
+}
diff --git a/src/snark/quad_nxtpct.cpp b/src/snark/quad_nxtpct.cpp
new file mode 100644 (file)
index 0000000..6480df6
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_nxtpct.cpp $
+ $LastChangedRevision: 89 $
+ $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ COMPUTE NEXT PICTURE
+ */
+
+#include <cstdio>
+#include <cmath>
+#include "blkdta.h"
+#include "geom.h"
+#include "modefl.h"
+#include "consts.h"
+#include "uiod.h"
+#include "blob.h"
+#include "quad.h"
+
+void quad_class::nxtpct(REAL* x, REAL* cg, REAL delta)
+{
+
+       INTEGER i;
+       REAL prjden;
+       REAL temden;
+       REAL tem;
+       REAL ratio;
+       REAL snorm;
+       REAL corr;
+
+       INTEGER area;
+       //INTEGER pr;
+
+       //pr = (Blob.H + Blob.M)%2;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       for (i = 0; i < area; i++)
+       {
+               x[i] -= delta * cg[i];
+       }
+
+       // CONSTRAIN VALUES AND AVERAGE DENSITY ADJUSTMENT
+
+       prjden = GeoPar.aveden * ((REAL) (GeoPar.area));
+
+       temden = 0.0;
+
+       for (i = 0; i < area; i++)
+       {
+               if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+               {
+                       tem = x[i];
+                       if (Modefl.lofl)
+                               tem = MAX0(tem, Modefl.lower);
+                       if (Modefl.upfl)
+                               tem = MIN0(tem, Modefl.upper);
+                       temden += tem;
+                       x[i] = tem;
+               }
+       }
+
+       if (hopt >= 1)
+       {
+
+               if (fabs(temden) <= Consts.zero)
+               {
+                       fprintf(output,
+                                       "\n\n      reconstructed picture is zero, your request for picture normalizing set the picture to aveden");
+
+                       for (i = 0; i < area; i++)
+                       {
+                               x[i] = GeoPar.aveden;
+                       }
+
+               }
+               else
+               {
+
+                       ratio = prjden / temden;
+                       if (popt >= 1)
+                       {
+                               fprintf(output, "\n\n      ratio of densities ,%15.4e", ratio); //bug 147, wei, 2005/10
+                       }
+
+                       for (i = 0; i < area; i++)
+                       {
+                               x[i] *= ratio;
+                       }
+               }
+       }
+
+       if (popt <= 0)
+               return;
+
+//     CALCULATE INDICATOR SIZE OF CORRECTION
+
+       snorm = 0.0;
+       for (i = 0; i < area; i++)
+       {
+               if (Blob.pix_basis || (!Blob.pix_basis && i % 2 == Blob.pr))
+               {
+                       snorm += cg[i] * cg[i];
+               }
+       }
+
+       snorm = (REAL) sqrt(snorm);
+       corr = (REAL) fabs(delta) * snorm;
+
+       fprintf(output, "\n\n      norm of correction ,%15.4e", corr); //bug 147, wei, 2005/10
+       fprintf(output, "\n      delta              %15.4e", delta);
+       fprintf(output, "\n      norm of corr vector %15.4e", snorm);
+
+       return;
+}
diff --git a/src/snark/quad_prpict.cpp b/src/snark/quad_prpict.cpp
new file mode 100644 (file)
index 0000000..4137ee6
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_prpict.cpp $
+ $LastChangedRevision: 89 $
+ $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ DEBUGGING AID
+
+ N - PICTURE SIZE TO BE PRINTED
+ X - PICTURE TO BE PRINTED
+ IT- ITRRATION NUMBER
+ L - LOCATION IDENTIFIER
+ M - VECTOR IDENTIFIER
+ */
+
+// TRACING IS DONE FOR EACH ITERATION
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "quad.h"
+
+void quad_class::prpict(INTEGER n, REAL* x, INTEGER it, const CHAR* l,
+               const CHAR* m)
+{
+       ///data itrace /0/
+       static INTEGER itrace = 0;    //itrace here should be static,wei
+
+       INTEGER i;
+       INTEGER j;
+       INTEGER k;
+
+       //bug 154 hstau 8 2005 just return
+       return;
+
+       if (it == 1)
+               itrace = trace;  // where is trace defined??(blkdta.cpp) hstau
+       if (itrace == 0)
+               return;
+
+       fprintf(output, "\n\n called at iter  %2i after  %s with  %s", it, l, m);
+
+       for (i = 0; i < n; i++)
+       {
+               j = i * n; //j = (i-1) * n; Is the latter a bug? hstau 6/2/2003
+               for (k = 0; k < n; k++)
+               {
+                       if ((k != 0) && ((k % 6) == 0))
+                       {
+                               fprintf(output, "\n\n");
+                       }
+                       fprintf(output, "%15.6e    ", x[k + j]);
+
+               }
+       }
+       return;
+}
+
diff --git a/src/snark/quad_prsemi.cpp b/src/snark/quad_prsemi.cpp
new file mode 100644 (file)
index 0000000..ee69a9d
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_prsemi.cpp $
+ $LastChangedRevision: 89 $
+ $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS ROUTINE CALCULATES THE PARAMETERS FOR THE RICHARDSON METHOD
+ AND THE SEMI-ITERATIVE METHOD
+ HERE
+
+ Z = 4*((LAMBDA + ESTMIN)/(LAMBDA - ESTMIN))**2
+
+ ETA = 2/(LAMBDA + ESTMIN)
+
+ ORDER IS THE VECTOR CONTAINING THE ORDER FOR PICKING THE DELTA
+ FOR RICHARDSON METHOD
+ DEL IS THE VECTOR OF DELTA FOR THE RICHARDSON METHOD
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "quad.h"
+
+void quad_class::prsemi(REAL estmin, REAL lambda, BOOLEAN* alg, REAL* delta)
+{
+       INTEGER i;
+       INTEGER j;
+       INTEGER k;
+       INTEGER n;
+       INTEGER m;
+       INTEGER ll;
+       INTEGER* ic;
+       INTEGER iorder;
+       REAL pdm;
+       REAL botm;
+       //REAL* del;   //wei,3/2005  bug 174, wei, 10/2005
+
+       z = lambda - estmin;
+       eta = lambda + estmin;  //bug in Fortran. undefined eta hstau
+       if (fabs(z) <= Consts.zero)
+       {
+               *alg = TRUE;
+               fprintf(output,
+                               "\n\n       ***difference of eigenvalues is less than ZERO, program stops***");
+               return;
+       }
+
+       // RICHARDSON METHOD
+       if (!((period > 0) && (period <= 32)))
+       {
+               fprintf(output,
+                               "\n\n       ***period out of range (1-32), program stops***");
+               *alg = TRUE;
+               return;
+       }
+
+       if (period == 1)
+       {
+               // RICHARDSON IS A STATIONARY METHOD
+               *delta = (REAL) 2.0 / eta;
+               fprintf(output,
+                               "\n\n       with period=1 this is stationary method with delta = %15.6e",
+                               *delta);
+               bopt = 1;
+               return;
+       }
+
+       if ((dopt - 2) >= 0)
+       {
+               if ((dopt - 2) > 0)
+               {
+                       // LEBEDEV -FINOGENOV ORDERING
+
+                       // CHECK TO SEE THAT PERIOD IS A POWER OF 2
+
+                       m = period;
+                       for (i = 1; i < 6; i++)
+                       {   //corr. hstau
+                               if (m != (m / 2) * 2)
+                                       goto L5;
+                               m = m / 2;
+                               if (m == 1)
+                                       goto L6;
+                       }
+
+                       L5: fprintf(output,
+                                       "\n\n      ***for lebedev-finogenov ordering period must");
+                       fprintf(output, "\n      be a power of 2, program stops***");
+                       *alg = TRUE;
+                       return;
+
+                       L6: order[0] = 1;
+                       k = 1;
+                       for (j = 1; j <= i; j++)
+                       {  // index j is not explicit in the loops.hstau
+                               ll = 2 * k + 1;
+                               //for(m = 0; m < k; m++) {
+                               for (m = 1; m <= k; m++)
+                               {
+                                       n = k - m;
+                                       order[2 * n + 1] = ll - order[n];   // corr.hstau
+                                       iorder = 2 * n;  //corr. hstau
+                                       order[iorder] = order[n];
+                               }
+                               k = 2 * k;
+                       }
+
+                       fprintf(output, "\n      lebedev-finogenov ordering");
+                       for (i = 0; i < period; i++)
+                       {
+                               if ((i % 32) == 0)
+                               {
+                                       fprintf(output, "\n      ");
+                               }
+                               fprintf(output, "%3i ", order[i]);
+                       }
+               }
+               else
+               {
+                       // USER SUPPLIED ORDER
+                       // CHECK USER ORDER
+
+                       // ic = new INTEGER[period];
+                       ic = new INTEGER[period + 1]; // corr. hstau
+
+                       //for(i = 0; i < period; i++) {
+                       for (i = 1; i <= period; i++)
+                       {  // corr.hstau
+                               ///ici = ic + i;
+                               ic[i] = 0;
+                       }
+
+                       for (i = 0; i < period; i++)
+                       {
+                               ///iorder = order + i;
+                               j = order[i];
+                               ic[j]++;
+                               if (!((order[i] > 0) && (order[i] <= period)))
+                               {
+                                       fprintf(output,
+                                                       "\n      ***%2i th order out of range, program stops***",
+                                                       i);
+                                       *alg = TRUE;
+                               }
+                       }
+
+                       for (i = 1; i <= period; i++)
+                       {  // corr.hstau
+                               ///ici = ic + i;
+                               if (ic[i] != 1)
+                               {
+                                       fprintf(output,
+                                                       "\n       warning*** the %3ith delta is used %3i times",
+                                                       i, ic[i]);
+                               }
+                       }
+
+                       delete[] ic;  // bug 92 - Lajos - 03/02/2005
+
+                       fprintf(output, "\n\n      user supplied ordering");
+                       for (i = 0; i < period; i++)
+                       {
+                               if ((i % 32) == 0)
+                               {
+                                       fprintf(output, "\n      ");
+                               }
+                               fprintf(output, "%3i ", order[i]);
+                       }
+               }
+       }
+       // NATURAL ORDER
+       else
+       {
+               for (i = 0; i < period; i++)
+               {
+                       //order[i] = i;
+                       order[i] = i + 1; //corr.hstau
+               }
+
+               fprintf(output, "\n\n      natural ordering");
+               // COMPUTE DELTA
+       }
+       del = new REAL[period];
+
+       pdm = Consts.pi / ((REAL) 2.0 * ((REAL) (period))); //pi? hstau
+
+       for (i = 0; i < period; i++)
+       {
+               botm = eta - z * (REAL) cos((2.0 * ((REAL) (i)) - 1.0) * pdm);
+               if (fabs(botm) <= Consts.zero)
+               {
+                       *alg = TRUE;
+                       fprintf(output,
+                                       "\n\n      ***cannot compute delta, zero denominator, program stops");
+                       // if(del != NULL) delete[] del;  //wei, 3/2005  bug 174, wei, 10/2005
+                       return;
+               }
+               del[i] = (REAL) 2.0 / botm;
+
+       }
+       //if(del != NULL) delete[] del;  //wei, 3/2005 bug 174, wei, 10/2005
+       return;
+}
diff --git a/src/snark/quad_resedu.cpp b/src/snark/quad_resedu.cpp
new file mode 100644 (file)
index 0000000..6df476b
--- /dev/null
@@ -0,0 +1,210 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_resedu.cpp $
+ $LastChangedRevision: 89 $
+ $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ X IS THE RECONSTRUCTED PICTURE
+
+ (A)  R = SA*C**T*M#*A*(M*X-P)+(SB*C**T*B**L+SC*C**(T-1))*(X-XBAR)
+
+ W IS TEMPORARY STORAGE VECTOR
+
+ IF T IS ODD OR DELTA CONSTANT WITH AOPT=1 THEN:
+ G = C**T*R    (G=R)
+
+
+ OR
+ (B)  R = M#*A*(M*X-P) AND FOR CONSTANT DELTA AND AOPT=1
+ G = D**2*R    (G=R)
+
+ (A)                          (B)
+
+ 1.       R=SA*M#*A*(M*X-P)            SAME
+ 2.                                    R=D**2*R
+ 3.       W=X-XBAR
+ 4.       X=B**L*W
+ 5.       R=R+SB*W
+ 6.       R=C**T*R
+ 7.       W=X-XBAR
+ 8.       W=C**(T-1)*W
+ 9.       R=R+SC*W
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "consts.h"
+#include "blob.h"
+
+#include "quad.h"
+
+void quad_class::resedu(REAL* x, REAL* r, REAL* w, REAL* d, INTEGER* list,
+               REAL* weight, REAL* f, REAL* s)
+{
+       INTEGER i;
+       INTEGER area;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       if (sa > Consts.zero)
+       {
+
+//C1.
+               mtamxp(x, r, list, weight);
+
+               if (copt <= 3)
+               {
+
+                       // IF DELTA IS NOT CONSTAT OR AOPT NOT 1 RETURN
+
+                       if ((bopt > 2) || (aopt != 1))
+                       {
+                               return;
+                       }
+//C2.
+
+                       for (i = 0; i < area; i++)
+                       {
+                               r[i] *= d[i];
+                       }
+                       return;
+               }
+       }
+
+       if (sb > Consts.zero)
+       {
+
+//C3.
+
+               if (fopt > 2)
+               {
+
+                       for (i = 0; i < area; i++)
+                       {
+                               w[i] = x[i] - f[i];
+                       }
+               }
+               else
+               {
+                       for (i = 0; i < area; i++)
+                       {
+                               w[i] = x[i] - xbar;
+                       }
+               }
+
+               if (l != 0)
+               {
+
+//C4.
+
+                       if (Blob.pix_basis)
+                       {
+                               adsmos(w, l, bw1, bw2, bw3, bbcon);
+                       }
+                       else
+                       {
+                               badsmos(w, l, bw1, bw2, bbcon);
+                       }
+//C5.
+               }
+               for (i = 0; i < area; i++)
+               {
+                       r[i] += sb * w[i];
+               }
+       }
+//C6.
+
+       if (copt != 5)
+       {
+               if (Blob.pix_basis)
+               {
+                       adsmos(r, t, cw1, cw2, cw3, cbcon);
+               }
+               else
+               {
+                       badsmos(r, t, cw1, cw2, cbcon);
+               }
+       }
+
+       if (sc > Consts.zero)
+       {
+
+//C7.
+
+               if (fopt > 2)
+               {
+
+                       for (i = 0; i < area; i++)
+                       {
+                               w[i] = x[i] - f[i];
+                       }
+               }
+               else
+               {
+
+                       for (i = 0; i < area; i++)
+                       {
+                               w[i] = x[i] - xbar;
+                       }
+               }
+
+//C8.
+
+               if ((t - 1 > 0) && (copt != 5))
+               {
+                       if (Blob.pix_basis)
+                       {
+                               adsmos(w, t - 1, cw1, cw2, cw3, cbcon);
+                       }
+                       else
+                       {
+                               badsmos(w, t - 1, cw1, cw2, cbcon);
+                       }
+               }
+
+//C9.
+
+               for (i = 0; i < area; i++)
+               {
+                       r[i] += sc * w[i];
+               }
+       }
+
+// FOR ONE STEP METHOD WITH DIRECT COMPUTATION OF RESIDUE
+// WHICH DO NOT USE DELTAC OR DELTAD COMPUTE THE CORRECTING VECTOR
+// MODIFY BY THE SPLITTING
+
+       if ((aopt != 1) || (bopt >= 3) || (gopt == 0))
+       {
+               return;
+       }
+       for (i = 0; i < area; i++)
+       {
+               r[i] *= s[i];
+       }
+
+       if (copt != 5)
+       {
+               if (Blob.pix_basis)
+               {
+                       adsmos(r, t, cw1, cw2, cw3, cbcon);
+               }
+               else
+               {
+                       badsmos(r, t, cw1, cw2, cbcon);
+               }
+       }
+       return;
+}
diff --git a/src/snark/quad_semi.cpp b/src/snark/quad_semi.cpp
new file mode 100644 (file)
index 0000000..743eaea
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_semi.cpp $
+ $LastChangedRevision: 89 $
+ $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS SUBROUTINE RETURNS DELTA FOR RICHARDSON METHOD
+ OR
+ DELTA AND GMA FOR THE SEMI ITERATIVE METHOD
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "quad.h"
+
+void quad_class::semi(REAL* delta, REAL* gma, BOOLEAN* alg)
+{
+
+       INTEGER j;
+       INTEGER k;
+
+       j = (iterx - 1) % period;  //corr!!! hstau
+       k = order[j];
+       *delta = del[k];
+       return;
+}
diff --git a/src/snark/quad_seset.cpp b/src/snark/quad_seset.cpp
new file mode 100644 (file)
index 0000000..a96d3ca
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_seset.cpp $
+ $LastChangedRevision: 89 $
+ $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "quad.h"
+
+void quad_class::seset(REAL* s, INTEGER* list, REAL* weight, BOOLEAN* alg)
+{
+
+       *alg = TRUE;
+       fprintf(output,
+                       "\n\n        ***user seset is not supplied, program stops***");
+}
diff --git a/src/snark/quad_sset.cpp b/src/snark/quad_sset.cpp
new file mode 100644 (file)
index 0000000..4cc9c20
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_sset.cpp $
+ $LastChangedRevision: 89 $
+ $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "quad.h"
+
+void quad_class::sset(REAL* s, INTEGER* list, REAL* weight, BOOLEAN* alg)
+{
+       *alg = TRUE;
+
+       fprintf(output, "\n\n      *** user sset not supplied - program aborts");
+}
diff --git a/src/snark/quad_uerror.cpp b/src/snark/quad_uerror.cpp
new file mode 100644 (file)
index 0000000..ff715f1
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/quad_uerror.cpp $
+ $LastChangedRevision: 89 $
+ $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ DUMMY FUNCTION FOR QUAD - TO BE REPLACED BY A FUNCTION TO
+ ESTIMATE THE ERROR IN A PROJECTION MEASUREMENT.
+ */
+
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "quad.h"
+
+REAL quad_class::uerror(INTEGER np, INTEGER nr, REAL pd, BOOLEAN* alg)
+{
+       *alg = TRUE;
+
+       fprintf(output, "\n\n      ***user error routine is not suplied, program stops***");
+       return 0.0;
+
+}
diff --git a/src/snark/ray.cpp b/src/snark/ray.cpp
new file mode 100644 (file)
index 0000000..eaee530
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/ray.cpp $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ RAY RETURNS A LIST OF POINTS THAT LIE IN THE N RAY-TH RAY TAKEN
+ AT ANGLE THETA AND WITH RAY WIDTHS DX AND DY MEASURED IN
+ THE X AND Y DIRECTIONS.
+ NUM IS THE NUMBER OF POINTS IN THE RAY.
+ LIST IS THE SET OF POINTS RETURNED.  FOR A POINT WITH COORDINATES
+ (I,J), LIST = (J-1)*WIDTH + I
+
+ Algorithm rewritten and simplified as part of bug 82 - swr 2/20/05
+ */
+
+#include <cstdio>
+#include <cmath>
+#include <stdlib.h>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "uiod.h"
+
+#include "posit.h"
+
+#include "ray.h"
+
+void ray(INTEGER nproj, INTEGER nray, INTEGER* list, REAL* weight,
+               INTEGER* numb, REAL* snorm)
+{
+       int i, j;
+
+       //INTEGER lo,hi;    // bug82 - swr 2/20/05
+
+       static INTEGER lastp = -1; // made static to match the intent of the Fortran code. Lajos, Feb 10, 2005
+
+       REAL ax;
+       REAL ay;
+       REAL costh;
+       REAL sinth;
+       static REAL dee;
+       static REAL pmid; // made static to match the intent of the Fortran code. Lajos, Feb 10, 2005
+       static REAL sin_1;    // bug82 start - swr 2/20/05
+       static REAL cos_1;
+       static INTEGER inci; // made static to match the intent of the Fortran code. Lajos, Feb 10, 2005
+       static INTEGER incj; // made static to match the intent of the Fortran code. Lajos, Feb 10, 2005
+       //INTEGER iscrpt;    // bug82 end - swr 2/20/05
+       REAL pix2;
+       static INTEGER midpix;    // bug82 - swr 2/20/05
+       static INTEGER nrlo, nrhi;
+
+       // bug 168 - swr - 9/24/05
+       if (GeoPar.div)
+       {
+               fprintf(output,
+                               "\n         ***** ray is not usable with divergent geometry\n");
+               exit(1);
+       }
+
+       *numb = 0;
+       posit(nproj, nray, &ax, &ay, &costh, &sinth);
+       //nr = (REAL) (nray - GeoPar.midray);    // bug82 - swr 2/20/05
+
+       if (nproj != lastp)
+       {
+
+               // INITIALIZATION FOR A NEW PROJECTION ANGLE
+
+               lastp = nproj;
+               if (GeoPar.uni)
+                       dee = GeoPar.pinc;
+               if (GeoPar.vri)
+                       dee = GeoPar.pinc * ((REAL) MAX0(fabs(costh), fabs(sinth)));
+               pmid = (GeoPar.nelem + 1) / ((REAL) 2.0);
+
+               if (fabs(sinth) < fabs(costh))
+               {
+                       sin_1 = sinth;
+                       cos_1 = costh;
+                       inci = 1;
+                       incj = GeoPar.nelem;
+               }
+               // FOR ANGLES THAT ARE CLOSER TO THE Y-AXIS THAN TO THE X-AXIS,
+               // THE FOLLOWING EFFECTIVELY PERFORMS A ROTATION ABOUT THE LINE X=-Y.
+               else
+               {
+                       sin_1 = costh;
+                       cos_1 = sinth;
+                       inci = GeoPar.nelem;
+                       incj = 1;
+               }
+               midpix = GeoPar.midpix - 1;    // bug82 - swr 2/20/05
+               // find limits of the rays that can intersect the reconstruction region
+               REAL halfw = midpix * GeoPar.pixsiz;
+               INTEGER nr = (INTEGER) ceil(halfw * (fabs(costh) + fabs(sinth)) / dee);
+               nrlo = GeoPar.midray - nr;
+               nrhi = GeoPar.midray + nr;
+       }
+
+       if (nray >= nrlo && nray <= nrhi)
+       {
+
+               // DETERMINE THE POINTS THAT LIE IN THE RAY
+               // The equation of a line making an angle atan2(sin_1, cos_1)
+               // with the x axis and a perpendicular distance r from the origin
+               // is given by y*cos_1 - x * sin_1 = r.  swr - 2/20/05
+
+               // find the distance the two edges of the strip are from the origin
+               REAL r1 = ((REAL) (nray - GeoPar.midray) - 0.5) * dee;
+               REAL r2 = ((REAL) (nray - GeoPar.midray) + 0.5) * dee;
+
+               for (i = -midpix; i <= midpix; ++i)
+               {
+                       // for each column of pixels, find the two edges of the strip
+                       REAL x = i * GeoPar.pixsiz;
+                       REAL y1 = (r1 + x * sin_1) / cos_1;
+                       REAL y2 = (r2 + x * sin_1) / cos_1;
+                       // swap if necessary
+                       if (y1 > y2)
+                       {
+                               REAL t = y1;
+                               y1 = y2;
+                               y2 = t;
+                       }
+                       // convert to pixel coordinates
+                       INTEGER jlo = MAX0((INTEGER)ceil(-y2 / GeoPar.pixsiz), -midpix);
+                       INTEGER jhi = MIN0((INTEGER)ceil(-y1 / GeoPar.pixsiz), midpix + 1);
+                       // add to the list
+                       for (j = jlo; j < jhi; ++j)
+                       {
+                               list[*numb] = (j + midpix) * incj + (i + midpix) * inci;
+                               if (list[*numb] < 0 || list[*numb] >= GeoPar.area)
+                                       printf("\nray: error pixel out of range = %d", list[*numb]);
+                               ++*numb;
+                       }
+               }
+               // end of new algorithm - swr 2/20/05
+       }
+
+       pix2 = GeoPar.pixsiz * GeoPar.pixsiz;
+
+       for (i = 0; i < *numb; i++)
+       {
+               weight[i] = pix2;
+       }
+
+       *snorm = pix2 * pix2 * (*numb);
+       if (trace > 6)
+       {
+               fprintf(output,
+                               "\n          ray     np = %5i  nr = %5i  numb = %5i  snorm = %10.4f",
+                               nproj, nray, *numb, *snorm);
+       }
+
+       if ((*numb > 0) && (trace > 9))
+       {
+               for (i = 0; i < *numb; i++)
+               {
+                       if (i % 10 == 0)
+                               fprintf(output, "\n                  ");
+                       fprintf(output, "%6i", list[i]);
+               }
+       }
+
+       return;
+}
diff --git a/src/snark/ray.h b/src/snark/ray.h
new file mode 100644 (file)
index 0000000..8af9078
--- /dev/null
@@ -0,0 +1,17 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/ray.h $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef RAY_H
+#define RAY_H      
+
+void ray(INTEGER nproj, INTEGER nray, INTEGER* list, REAL* weight,
+               INTEGER* numb, REAL* snorm);
+
+#endif      
diff --git a/src/snark/raylen.cpp b/src/snark/raylen.cpp
new file mode 100644 (file)
index 0000000..c10fd96
--- /dev/null
@@ -0,0 +1,375 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/raylen.cpp $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ RAYLEN RETURNS THE LENGTH OF THE RAY IN AN ELEMENTAL OBJECT
+
+ SEE SNARK05 MANUAL FOR A FULL DESCRIPTION OF THE FUNCTIONING OF
+ THE ROUTINE
+
+ TYPE = 1 FOR ELLIPSE/CIRCLE
+ TYPE = 2 FOR RECTANGLE/SQUARE
+ TYPE = 3 FOR ISOS. TRIANGLE
+ TYPE = 4 FOR SEGMENT OF CIRCLE
+ TYPE = 5 FOR SECTOR OF CIRCLE
+ AX,AY AND MX,MY DEFINE THE RAY:
+ (AX,AY) COORDINATES OF ANY POINT ON THE RAY;
+ (MX,MY) ARE THE X- AND Y- DIRECTION COSINES OF THE RAY
+ IF THE RAY MAKES AN ANGLE THETA WITH X-AXIS THEN MX = COS(THETA)
+ AND MY = SIN(THETA)
+
+ (CX,CY) ARE THE COORDINATES OF THE CENTER OF THE OBJECT
+
+ (U,V) ARE THE HALF- AXIS LENGTHS OF THE OBJECT
+
+ (PX,PY) ARE THE COSINE AND SINE OF THE ANGLE OF ROTATION OF THE
+ OBJECT ( THE ANGLE U MAKES WITH THE X-AXIS)
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "raylen.h"
+#include "consts.h"
+
+REAL raylen(SNARK_Object_type type, REAL ax, REAL ay, REAL mx, REAL my, REAL cx,
+               REAL cy, REAL u, REAL v, REAL px, REAL py)
+{
+       REAL raylen_temp;
+       REAL xo, yo;
+
+       REAL xnew, ynew, unew, vnew, xdc, ydc;
+
+       REAL diam;
+
+       REAL temp, slope;
+       REAL ycept;
+       REAL xcept;
+
+       REAL x1, x2;
+
+       REAL a, b, c, d, bb;
+
+       BOOLEAN rotate;
+
+       REAL vtou, vsu;
+
+       raylen_temp = 0.0;
+
+       // SHIFT THE ORIGIN TO THE CENTER OF THE OBJECT
+
+       xo = ax - cx;
+       yo = ay - cy;
+
+       // ROTATE ABOUT ORIGIN BY AN ANGLE = (U,X-AXIS) SO THAT U AND V ARE
+       // ALONG THE NEW X AND Y AXES RESPECTIVELY
+
+       xnew = xo * px + yo * py;
+       ynew = -xo * py + yo * px;
+       unew = u;
+       vnew = v;
+       xdc = mx * px + my * py;
+       ydc = -mx * py + my * px;
+
+
+       // FIND THE CIRCLE COMPLETELY ENCLOSING OBJECT
+
+       diam = (REAL) 2.1 * MAX0(unew, vnew);
+
+       // CHECK IF RAY HAS SLOPE .LE. 1.0  FOR COMPUTATIONAL PURPOSES
+       // REMEMBER THIS FOR TRIA, SEGM, AND SECT SINCE THEY DO NOT
+       // HAVE TWO-FOLD SYMMETRY
+
+       rotate = FALSE;
+       if (!((REAL) fabs(xdc) >= (REAL) fabs(ydc)))
+       {
+
+               // ROTATE ABOUT ORIGIN BY 90 DEG TO INSURE THAT SLOPE IS LE 1.0 IN
+               // MAGNITUDE
+
+               rotate = TRUE;
+               temp = xnew;
+               xnew = ynew;
+               ynew = -temp;
+
+               temp = xdc;
+               xdc = ydc;
+               ydc = -temp;
+
+               temp = unew;
+               unew = vnew;
+               vnew = temp;
+       }
+
+       // SEE IF RAY IS ANYWHERE NEAR OBJECT CIRCLE
+
+       slope = ydc / xdc;
+       if ((REAL) fabs(slope) <= (REAL) 0.000001)
+       {
+               slope = 0;
+       }
+
+       ycept = ynew - slope * xnew;
+
+       if ((REAL) fabs(ycept) < (REAL) 0.000001)
+       {
+               ycept = 0.0;
+       }
+
+       xcept = 0.0;
+
+       if ((REAL) fabs(slope) > Consts.zero)
+       {
+               xcept = xnew - ynew / slope;
+       }
+
+       if (((REAL) fabs(xcept) > diam) && ((REAL) fabs(ycept) > diam))
+       {
+               return raylen_temp;
+       }
+
+       // if RECTANGLE or CIRCLE/ELLIPSE
+
+       if (type == SOT_rect)
+       {
+               // CHECK IF RAY THROUGH RECTANGLE/SQUARE IS NEARLY PARALLEL TO X AXIS
+               if (!((REAL) fabs(ydc) > (REAL) 0.0001))
+               {
+                       if ((REAL) fabs(ynew) <= vnew)
+                               raylen_temp = (REAL) 2.0 * unew;
+
+                       return raylen_temp;
+               }
+               // GENERAL LINE INSIDE A RECTANGLE
+
+#ifdef FFCOMPARE
+
+               // there is still difference here between fortran
+               raylen_temp = (REAL) fabs(
+                               (
+                                               MAX0(-unew, MIN0(unew, ((REAL) (vnew - ynew) / slope) + xnew))
+                                               - MAX0(-unew, MIN0(unew, ((REAL) -(vnew + ynew) / slope) + xnew))
+                               )
+                               / xdc
+               );
+#else
+
+               raylen_temp =
+                               (REAL) fabs(
+                                               (
+                                               MAX0(-unew, MIN0(unew, (vnew - ynew) / slope + xnew))
+                                                               - MAX0(-unew,
+                                                                               MIN0(unew, -(vnew + ynew) / slope + xnew)))
+                                                               / xdc);
+#endif
+
+               return raylen_temp;
+       }
+
+       // GENERAL LINE INSIDE ELLIPSE
+       if (type == SOT_elip)
+       {
+               vsu = vnew * vnew + (unew * slope) * (unew * slope);
+               d = vsu - ycept * ycept;
+
+               // IF D POSITIVE, RAY INTERSECTS THE CIRCLE/ELLIPSE
+               if (d > Consts.zero)
+               {
+                       raylen_temp = (REAL) 2.0 * unew * vnew * (REAL) sqrt(d)
+                                       / (REAL) fabs(vsu * xdc);
+#ifdef FFCOMPARE
+                       REAL zzz = (REAL) sqrt(d);
+                       REAL xxx = (REAL) 2.0 * unew * vnew * zzz;
+                       REAL yyy = (REAL) fabs(vsu * xdc);
+                       REAL aaa = (REAL) xxx / yyy;
+                       raylen_temp = (REAL) xxx / yyy;
+#endif
+               }
+               return raylen_temp;
+       }
+
+       // TRIANGLE, SEGMENT, SECTOR
+
+       if (!(type == SOT_segm))
+       {
+
+               // TRIANGLE AND TRIANGULAR PORTION OF SECTOR
+
+               // SPECIAL CASE FOR TRIANGLE AND SECTOR
+               // CHECK IF RAY IS NEARLY PARALLEL TO ONE OF THE SIDES
+
+               vtou = vnew / unew;
+               if (!((REAL) fabs(vtou - (REAL) fabs(slope)) >= (REAL) 0.0001))
+               {
+                       if (!(rotate))
+                       {
+                               if (!((REAL) fabs(xcept) > unew))
+                               {
+                                       if (slope >= 0.0)
+                                               raylen_temp = (REAL) 0.5
+                                                               * (REAL) fabs((unew - xcept) / xdc);
+                                       if (slope < 0.0)
+                                               raylen_temp = (REAL) 0.5
+                                                               * (REAL) fabs((unew + xcept) / xdc);
+                               }
+                       }
+                       else
+                       {
+                               if (!((REAL) fabs(ycept) > vnew))
+                               {
+                                       if (slope >= 0.0)
+                                               raylen_temp = (REAL) 0.5
+                                                               * (REAL) fabs((vnew - ycept) / ydc);
+                                       if (slope < 0.0)
+                                               raylen_temp = (REAL) 0.5
+                                                               * (REAL) fabs((vnew + ycept) / ydc);
+                               }
+                       }
+               }
+               else
+               {
+                       // TRIANGLE  GENERAL CASE
+
+                       if (!(rotate))
+                       {
+                               x1 = (vnew - ycept) / (slope + vtou);
+                               if ((x1 <= -Consts.zero) || (x1 > unew))  //bug 273, jklukowska
+                                       x1 = xcept;
+                               x2 = (vnew - ycept) / (slope - vtou);
+                               if ((x2 < -unew) || (x2 >= Consts.zero))  //bug 273, jklukowska
+                                       x2 = xcept;
+
+                               // RAY THROUGH VERTEX OF ISOSCELES TRIANGLE
+                               if (((REAL) fabs(x1) < (REAL) 0.00001)
+                                               && ((REAL) fabs(x2) < (REAL) 0.00001)
+                                               && ((REAL) fabs(xcept) <= unew))
+                                       x1 = xcept;
+                               raylen_temp = (REAL) fabs((x1 - x2) / xdc);
+                       }
+                       else
+                       {
+
+                               x1 = (vnew - ycept) / (slope + vtou);
+                               if ((x1 < 0.0) || (x1 >= unew + 0.00001))
+                                       x1 = 0.0;
+                               x2 = (-vnew - ycept) / (slope - vtou);
+                               if ((x2 < 0.0) || (x2 >= unew + 0.00001))
+                                       x2 = 0.0;
+                               // RAY THROUGH VERTEX OF ISOSCELES TRIANGLE
+
+                               if (((REAL) fabs(x1 - unew) < (REAL) 0.000001)
+                                               && ((REAL) fabs(x2 - unew) < (REAL) 0.000001)
+                                               && ((REAL) fabs(ycept) <= vnew))
+                                       x2 = 0.0;
+                               raylen_temp = (REAL) fabs((x1 - x2) / xdc);
+                       }
+
+               }
+
+               if (type == SOT_tria)
+               {
+                       return raylen_temp;
+               }
+       }
+
+       // SEGMENT OR THE SEGMENT PORTION OF THE SECTOR OF A CIRCLE
+
+       if (!rotate)
+       {
+               if (((REAL) fabs(xcept) > unew) && (ycept > 0.0))
+               {
+                       return raylen_temp;
+               }
+
+               a = (REAL) 1.0 + slope * slope;
+               bb = ycept - vnew;
+               b = slope * bb;
+               c = bb * bb - (unew * unew + vnew * vnew);
+               d = b * b - a * c;
+               if (d <= 0.0)
+               {
+                       return raylen_temp;
+               }
+
+               // THE RAY DOES INTERSECT THE CIRCLE
+               d = (REAL) sqrt(d);
+               if (b >= 0.0)
+                       x1 = -(b + d) / a;
+               if (b < 0.0)
+                       x1 = (-b + d) / a;
+               x2 = c / (a * x1);
+               if (x1 * slope + ycept > 0.0)
+                       goto L111;
+               if (x2 * slope + ycept > 0.0)
+                       goto L112;
+
+               // X COMPONENT OF INTERSECTION LENGTH IS DIFFERENCE OF ROOTS OF QUADR
+               if (raylen_temp > 0.0)
+               {
+                       return raylen_temp;
+               }
+               raylen_temp += (REAL) 2.0 * d / (REAL) fabs(a * xdc);
+               return raylen_temp;
+
+               // RAY INTERSECTS LINEAR BOUNDARY OF SEGMENT
+               L111: x1 = xcept;
+               if (x2 * slope + ycept <= 0.0)
+                       goto L113;
+
+               L112: x2 = xcept;
+
+               L113: raylen_temp += (REAL) fabs((x1 - x2) / xdc);
+               return raylen_temp;
+       }
+
+       if (((REAL) fabs(ycept) > vnew) && (xcept > 0.0))
+       {
+               return raylen_temp;
+       }
+
+       a = (REAL) 1.0 + slope * slope;
+       b = slope * ycept - unew;
+       c = ycept * ycept - vnew * vnew;
+       d = b * b - a * c;
+
+       if (d <= 0.0)
+       {
+               return raylen_temp;
+       }
+
+       d = (REAL) sqrt(d);
+       if (b >= 0.0)
+               x1 = -(b + d) / a;
+       if (b < 0.0)
+               x1 = (-b + d) / a;
+       x2 = c / (a * x1);
+       if (x1 > 0.0)
+               goto L121;
+       if (x2 > 0.0)
+               goto L122;
+
+       // X COMPONENT OF INTERSECTION LENGTH IS DIFFERENCE OF ROOTS OF QUADR
+       if (raylen_temp > 0.0)
+       {
+               return raylen_temp;
+       }
+       raylen_temp += (REAL) 2.0 * d / (REAL) fabs(a * xdc);
+       return raylen_temp;
+
+       // RAY INTERSECTS LINEAR BOUNDARY OF SEGMENT
+       L121: x1 = 0.0;
+       if (x2 <= 0.0)
+               goto L123;
+
+       L122: x2 = 0.0;
+
+       L123: raylen_temp += (REAL) fabs((x1 - x2) / xdc);
+       return raylen_temp;
+}
diff --git a/src/snark/raylen.h b/src/snark/raylen.h
new file mode 100644 (file)
index 0000000..ec973d1
--- /dev/null
@@ -0,0 +1,18 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/raylen.h $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef RAYLEN_H
+#define RAYLEN_H
+      
+#include "objects.h"
+
+REAL raylen(SNARK_Object_type type, REAL ax, REAL ay, REAL mx, REAL my, REAL cx, REAL cy, REAL u, REAL v, REAL px, REAL py);
+      
+#endif
diff --git a/src/snark/raysel.cpp b/src/snark/raysel.cpp
new file mode 100644 (file)
index 0000000..126d564
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/raysel.cpp $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "raysel.h"
+#include <cstdio>
+
+///////////////////////////////////////////////////////////////////
+
+raysel_class RaySel;
+
+raysel_class::raysel_class()
+{
+       useray = TRUE;
+       stype = 7;    //efficient mode by default  wei 1/2005
+       rayinc = 1;
+       prjinc = 1;
+       effcnt = 0;
+       decompray = NULL;
+       decompprj = NULL; //wei 3/2005
+
+}
diff --git a/src/snark/raysel.h b/src/snark/raysel.h
new file mode 100644 (file)
index 0000000..47cc843
--- /dev/null
@@ -0,0 +1,28 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/raysel.h $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef RAYSEL_H
+#define RAYSEL_H
+
+#include "blkdta.h"
+
+extern class raysel_class
+{
+public:
+       BOOLEAN useray;INTEGER begray;INTEGER endray;INTEGER stype;INTEGER initnr;INTEGER initnp;INTEGER curnr;INTEGER curnp;INTEGER rayinc;INTEGER prjinc;INTEGER rn1;INTEGER rn2;INTEGER rcnt1;INTEGER rcnt2;
+
+       INTEGER* old_numray;  //for efficient ray picking
+       INTEGER* new_numray;INTEGER* old_numprj;INTEGER* new_numprj;INTEGER* baseray;INTEGER* decompray;INTEGER* baseprj;INTEGER* decompprj;INTEGER num_digray;INTEGER num_digprj;INTEGER effcnt;INTEGER numray;
+
+       raysel_class();
+
+} RaySel;
+
+#endif
diff --git a/src/snark/rdpict.cpp b/src/snark/rdpict.cpp
new file mode 100644 (file)
index 0000000..ad00df8
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/rdpict.cpp $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ READ A TEST PICTURE FROM FILE 'FILE11' AND CONVERT TO SNARK
+ INTERNAL REPRESENTATION
+ */
+
+#include <cstdlib>       
+#include <cstdio>
+
+#include "blkdta.h"
+#include "creacm.h"
+#include "geom.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "creaer.h"
+#include "recfile.h"
+
+#include "file11.h"
+#include "infile.h"
+
+#include "rdpict.h"
+
+//CHAR pictf[20];
+
+void rdpict()
+{
+       static BOOLEAN rdpict_called = false;
+
+       BOOLEAN eol;
+
+       INTEGER tword;
+       static const INTEGER pict_codes[2] =
+       { CHAR2INT('r', 'e', 'c', 'o'), CHAR2INT('t', 'e', 's', 't') };
+
+       // TEST FOR MULTIPLE CALLS AND ISSUE WARNING
+       if (rdpict_called)
+               creaer(1);
+
+       rdpict_called = TRUE;
+       Creacm.test = NULL;
+
+       // DETERMINE WHETHER PICTURE TEST OR RECON.
+
+       tword = InFile.getwrd(FALSE, &eol, pict_codes, 2);
+
+       if (eol)
+       {
+               fprintf(output, "\n **** TEST or RECONSTRUCTION must be specified");
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1);
+       };
+
+       if (tword == pict_codes[0])
+       {
+               // FOR PICT RECON GET NELEM, PIXSIZ, WRITE ON RECFIL QUIT
+               GeoPar.nelem = InFile.getint(FALSE, &eol);
+               // The following line added for SNARK89 Version 1.01 7/13/90
+               if ((GeoPar.nelem <= 0) || (GeoPar.nelem / 2 * 2 == GeoPar.nelem))
+                       creaer(9);
+               GeoPar.area = GeoPar.nelem * GeoPar.nelem;
+               GeoPar.midpix = (GeoPar.nelem + 1) / 2;
+               GeoPar.pixsiz = InFile.getnum(FALSE, &eol);
+               // The following line added for SNARK89 Version 1.01 7/13/90
+               if (GeoPar.pixsiz < Consts.zero)
+                       creaer(10);
+
+               // OPEN RECONSTRUCTION FILE FOR PICTURE RECONSTRUCTION CASE
+
+               if (RecFile.Open("recfil", GeoPar.nelem, GeoPar.pixsiz) != 0)
+               {
+                       fprintf(output, "\n **** unable to open recfil");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               }
+       }
+       else
+       {
+               // READ PICTURE HEADER INFORMATION
+
+               if (File11.Open(FALSE) != 0)
+               {
+                       fprintf(output, "\n **** unable to open file11 for reading");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+               File11.isOpen = TRUE;
+
+               File11.CreaInPicture();
+
+               if (Creacm.erflag)
+                       exit(444);
+
+               // WRITE HEADER ON RECFIL
+               // OPEN RECONSTRUCTION FILE FOR PICTURE TEST CASE
+
+               if (RecFile.Open("recfil", GeoPar.nelem, GeoPar.pixsiz) != 0)
+               {
+                       fprintf(output, "\n **** unable to open recfil");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               }
+
+               // ALLOCATE SPACE FOR THE PICTURE
+               Creacm.test = new REAL[GeoPar.area];
+
+               // READ IN THE TEST PICTURE INTO THE WORK AREA
+
+               File11.ReadPicture(Creacm.test, GeoPar.nelem);
+
+               // WRITE TEST PICTURE ON RECFIL
+               RecFile.WritePhan(Creacm.name, Creacm.test);
+
+               fprintf(output, "\n         test picture read");
+               fprintf(output, "\n         %s", Creacm.name);
+       }
+
+       return;
+}
diff --git a/src/snark/rdpict.h b/src/snark/rdpict.h
new file mode 100644 (file)
index 0000000..55db370
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/rdpict.h $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef RDPICT_H
+#define RDPICT_H
+
+void rdpict();
+
+#endif      
diff --git a/src/snark/rdproj.cpp b/src/snark/rdproj.cpp
new file mode 100644 (file)
index 0000000..f3e781a
--- /dev/null
@@ -0,0 +1,689 @@
+/*      
+  ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/rdproj.cpp $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ RDPROJ GENERATES THE RANDOM ACCESS VERSION OF THE PROJECTION DATA
+ ON  PRJFIL.
+ THE MODIFIER ON  PROJECTION CARD IS ONE OF THE FOLLOWING -
+ REAL     THIS IS THE DEFAULT VALUE.  PROJECTION DATA ARE READ FROM
+ FILE11  AND PUT ON PRJFIL
+ PSEUDO   CREATES PSEUDO PROJECTION DATA FROM INFORMATION ON FILE11
+ AND INPUT  AND PUTS ON PRJFIL.  THIS REQUIRES THAT
+ PICTURE  TEST  BE ALREADY SPECIFIED.
+ OLD      THIS ASSUMES THAT PRJFIL ALREADY EXISTS FROM A PREVIOUS
+ SNARK RUN.  THE GEOMETRY AND NOISE INFORMATION ARE IN THE
+ FIRST RECORD OF  PRJFIL.
+
+ SEE SNARK MANUAL FOR MORE DETAILS.
+ *
+ *
+ *Modification date:  July 13, 2008
+ *Author: Joanna Klukowska (jk)
+ *Changes:  Added functionality for beam hardening correction.
+ *          If the user sets the options for correction in the input
+ *          file, rdproj() createas nergy temporary prjfil's with to 
+ *          pass to bh_correction::correction() for beam hardening correction
+ *          which is responsible for creation of the final prjfil
+ *          that is used in the remainder of the program.
+ *          The option of beam hardening correction is only appropriate 
+ *          when polychromatic data is provided.
+ *
+ */
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <errno.h>
+
+#include "blkdta.h"
+#include "creacm.h"
+#include "geom.h"
+#include "anglst.h"
+#include "spctrm.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "raylen.h"
+#include "posit.h"
+#include "DIGGauss.h"
+#include "creaer.h"
+#include "bldlst.h"
+#include "pseudo.h"
+#include "bh_correction.h"
+
+#include "recfile.h"
+#include "file11.h"
+#include "projfile.h"
+#include "infile.h"
+
+#include "rdproj.h"
+#include "bh_correction.h"
+
+#include <time.h>
+
+void rdproj()
+{
+
+       static const INTEGER proj_codes[4] =
+       { CHAR2INT('o', 'l', 'd', ' '), CHAR2INT('r', 'e', 'a', 'l'), CHAR2INT('p',
+                       's', 'e', 'u'), CHAR2INT('b', 'h', 'p', 's')    //jk 9/19/2008
+                       //used only for recursive runs of snark during the
+                       //beam hardening correction process
+                       //should not be listed as an option in the manual
+                       };
+
+       // jk 7/13/2008 added for beam hardening correction
+       static const INTEGER bhc_codes[1] =
+       { CHAR2INT('b', 'e', 'a', 'm') };
+
+       static BOOLEAN called = FALSE;
+
+       REAL dtor;
+       INTEGER nword;
+       INTEGER nr;
+       REAL umean;
+       REAL amean;
+       REAL totden;
+       REAL totlen;
+       REAL hfside;
+       INTEGER np;
+       REAL sinth;
+       REAL theta;
+       REAL costh;
+       REAL ang;
+       REAL the;
+       REAL angle;
+       INTEGER numb;
+       REAL snorm;
+
+       INTEGER* lbase = NULL;
+       REAL* wbase = NULL; //wei 3/2005
+
+       int i, j, k;
+
+       BOOLEAN eol;
+       REAL ax, ay, mx, my;
+
+       // jk 7/13/2008 added for beam hardening correction
+
+       INTEGER bhcword; //BHC keyword read from the input file
+       SnarkPrjFile * BHC_PrjFile = NULL; //temporary prjfil's
+       char filename[256];
+       char command[256];
+       bh_correction bh_cor;
+
+       ///////////////////////////////////////////////////////////
+
+       // CHECK FOR MULTIPLE CALLS
+
+       if (called)
+               creaer(1);
+
+       called = TRUE;
+       dtor = (REAL) (Consts.pi / 180.0);
+
+       // CHECK THAT RDPICT HAS BEEN PERFORMED BEFORE THIS
+
+       if (GeoPar.nelem <= 0)
+               creaer(23);
+
+       // DETERMINE THE PROJECTION MODIFIER AND THE INPUT FILE
+
+       // changed last parameter from "4" to "3". lajos, Nov 18, 2004
+       nword = InFile.getwrd(FALSE, &eol, proj_codes, 4);
+
+       // IF OLD  IS OPTED JUST READ HEADER & QUIT
+
+       if (nword == proj_codes[0]) // OLD
+       {
+               // OPEN PROJECTION FILE FOR PROJECTION OLD CASE
+
+               if (ProjFile.Open((char *) "prjfil") != 0)
+               {
+                       fprintf(output, "\n **** unable to open prjfil");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               ProjFile.ReadHeader(Creacm.name, &NoisePar, &Spctrm, &Anglst);
+
+               // compute average density - fixes bug 232 of snark05
+               double *projdata = new double[GeoPar.nrays];
+               totden = 0.0;
+               totlen = 0.0;
+               hfside = (REAL) 0.5 * GeoPar.nelem * GeoPar.pixsiz;
+               for (np = 0; np < GeoPar.prjnum; ++np)
+               {
+                       ProjFile.ReadProj(np, projdata, GeoPar.nrays);
+                       for (nr = 0; nr < GeoPar.nrays; nr++)
+                       {
+                               if (GeoPar.strip)
+                               {
+                                       if (GeoPar.vri)
+                                       {
+                                               totden +=
+                                                               (REAL) (projdata[nr]
+                                                                               / (GeoPar.pinc
+                                                                                               * MAX0(fabs(sinth), fabs(costh))));
+                                       }
+                                       else
+                                       {
+                                               totden += projdata[nr] / GeoPar.pinc;
+                                       }
+                               }
+                               else
+                               {
+                                       totden += projdata[nr];
+                               }
+                               posit(np, nr, &ax, &ay, &mx, &my);
+                               totlen += raylen(SOT_rect, ax, ay, mx, my, 0.0, 0.0, hfside,
+                                               hfside, 1.0, 0.0);
+                       }
+               }
+               GeoPar.aveden = totden / totlen;
+               fprintf(output, "\n         estimate of totlen = %16.6f", totlen);
+               fprintf(output, "\n         estimate of totden = %16.6f", totden);
+               fprintf(output, "\n         estimate of average density = %10.4f",
+                               GeoPar.aveden);
+               delete[] projdata;
+       }
+
+       else
+       {
+               // READ PREFACE TO PROJECTION DATA
+
+               if (nword == proj_codes[2] || nword == proj_codes[3]) // PSEUDO
+               {
+                       NoisePar.resetNoise(); // jklukowska, bug 263, in case the noise was set
+                                                                  // previously, we need to reset it to initial values
+                       InFile.CreaInProj();
+               }
+               else
+               {
+                       if (nword == proj_codes[1]) // REAL
+                       {
+                               if (!File11.isOpen)
+                               {
+                                       if (File11.Open(FALSE) != 0)
+                                       {
+                                               fprintf(output,
+                                                               "\n **** unable to open file11 for reading");
+                                               fprintf(output, "\n **** program aborted\n");
+                                               exit(-1);
+                                       };
+                                       File11.isOpen = TRUE;
+                               };
+
+                               File11.CreaInProj();
+                       }
+                       else
+                       {
+                               fprintf(output,
+                                               "\n **** OLD, REAL or PSEUDO must be specified");
+                               fprintf(output, "\n **** program aborted\n");
+                               exit(-1);
+                       }
+               };
+
+               if (Creacm.erflag)
+                       exit(555);
+
+               // jk 7/13/2008 added for beam hardening correction
+               //check if bh_correction flag is set
+               bhcword = InFile.getwrd(FALSE, &eol, bhc_codes, 1);
+               if (bhcword == bhc_codes[0])
+               {        //beam hardening correction flag set
+                       bh_cor.bhc = TRUE;
+                       //check if data is polychromatic
+                       if (Spctrm.nergy == 1) //bhc cannot be performed
+                       {
+                               fprintf(output,
+                                               "\n **** Beam hardening correction is not appropriate\n"
+                                                               "for monochromatic data (nergy = 1).\n"
+                                                               "Program will continue ignoring BHC command.\n\n");
+                               bh_cor.bhc = FALSE;
+                       }
+                       else
+                       {
+
+                               //read in the parameters for beam hardening correction
+                               bh_cor.readInputFilePoly();
+
+                               //allocate temporary prjfil's
+                               BHC_PrjFile = new SnarkPrjFile[1];
+
+                               time_t t;
+                               time(&t);   //get the current time
+                               //create temporary directory
+                               sprintf(bh_cor.tempDir, "bhc%i", (int) t);
+                               sprintf(command, "mkdir %s", bh_cor.tempDir);
+                               if (system(command) != 0)
+                               {
+                                       fprintf(stdout, "\nERROR creating temporary directory %s\n",
+                                                       filename);
+                                       exit(1);
+                               }
+                       }
+               }
+
+               if (ProjFile.Open((char*) "prjfil", GeoPar.usrays, GeoPar.prjnum) != 0)
+               {
+                       fprintf(output, "\n **** unable to open prjfil");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               // jk 7/13/2008 added for beam hardening correction
+               //open temporary prjfil's
+               if (bh_cor.bhc)
+               {
+                       for (i = 0; i < 1; i++)
+                       {
+                               sprintf(filename, "%s/q_p0", bh_cor.tempDir);
+                               if (BHC_PrjFile[i].Open(filename, GeoPar.usrays, GeoPar.prjnum)
+                                               != 0)
+                               {
+                                       fprintf(output, "\n **** unable to open temporary prjfil");
+                                       fprintf(output, "\n **** program aborted\n");
+                                       exit(-1);
+                               }
+                       }
+               }
+
+               ProjFile.WriteHeader(Creacm.name, &GeoPar, &NoisePar, &Spctrm);
+
+               ProjFile.WriteAngles(Anglst.bth);
+
+               // jk 7/13/2008 added for beam hardening correction
+               // write header info to temporary prjfil's
+               if (bh_cor.bhc)
+               {
+                       for (i = 0; i < 1; i++)
+                       {
+                               BHC_PrjFile[i].WriteHeader(Creacm.name, &GeoPar, &NoisePar,
+                                               &Spctrm);
+                               BHC_PrjFile[i].WriteAngles(Anglst.bth);
+                       }
+               }
+
+               // ALLOCATE SPACE FOR ARRAYS LIST,WEIGHT,SPHI,CPHI,PBASE
+
+               bldlst(&lbase, &wbase);
+
+               if (GeoPar.div)
+               {
+                       Anglst.genphi();
+               }
+
+               Anglst.pbase = new REAL[GeoPar.nrays];
+
+               for (nr = GeoPar.fusray; nr <= GeoPar.lusray; nr++)
+               {
+                       Anglst.pbase[nr] = 0.0;
+               }
+
+               // IF PROJECTION DATA ARE NOISY WITH BIAS DUE TO SPECIFICATION OF
+               // SKEWED DISTRIBUTIONS PREPARE HERE TO REMOVE BIAS
+
+               umean = 1.0;
+
+               if (NoisePar.ultnmn != 0.0)
+               {
+                       umean = (REAL) 1.0 / NoisePar.ultnmn;
+               }
+
+               amean = 0.0;
+
+               if (NoisePar.addnfl)
+               {
+                       amean = NoisePar.addnmn;
+               }
+
+               // INITIALIZE FOR COMPUTATION OF AVERAGE DENSITY
+
+               totden = 0.0;
+               totlen = 0.0;
+               hfside = (REAL) 0.5 * GeoPar.nelem * GeoPar.pixsiz;
+
+               // CHECK TO SEE IF PHANTOM IS PRESENT WHEN PSEUDO IS OPTED
+
+               if ((nword == proj_codes[2] || nword == proj_codes[3])
+                               && (Creacm.test == NULL))
+               {
+                       creaer(24);
+               }
+
+               // SELECT PROJECTION BY PROJECTION AND PREPARE  PRJFIL
+
+               for (np = 0; np < GeoPar.prjnum; np++)
+               {
+                       if (nword == proj_codes[1])
+                       {
+
+                               if (!File11.ReadProjection(&theta, Anglst.pbase + GeoPar.fusray,
+                                               GeoPar.lusray - GeoPar.fusray + 1))
+                               {
+                                       fprintf(output,
+                                                       "\n **** end of file encountered on file11");
+                                       fprintf(output, "\n **** program aborted\n");
+                                       if (lbase != NULL)
+                                               delete[] lbase;
+                                       if (wbase != NULL)
+                                               delete[] wbase; //wei 3/2005
+                                       exit(-1);
+                               }
+
+                               sinth = (REAL) sin(theta);
+                               costh = (REAL) cos(theta);
+                               ang = theta / dtor;
+
+                               the = *(Anglst.bth + np);
+
+                               angle = the / dtor;
+                               if ((REAL) fabs(theta - the) > (REAL) 0.001)
+                               {
+                                       fprintf(output, "\n **** angles specified for projection "
+                                                       "%4i do not match", np);
+                                       fprintf(output, "\n      angle given in header is %10.4f "
+                                                       "degrees = %10.4f radians", angle, the);
+                                       fprintf(output, "\n      angle given in data   is %10.4f "
+                                                       "degrees = %10.4f radians", ang, theta);
+                                       fprintf(output, "\n **** program aborted\n");
+                                       if (lbase != NULL)
+                                               delete[] lbase;
+                                       if (wbase != NULL)
+                                               delete[] wbase; //wei 3/2005
+                                       exit(-1);
+                               }
+                       }
+                       else
+                       {
+                               // PROJECTION  PSEUDO or BHPSEUDO  OPTION
+
+                               theta = Creacm.pang[np];
+
+                               sinth = (REAL) sin(theta);
+                               costh = (REAL) cos(theta);
+
+                               // bug221 start - swr - 03/03/07
+                               for (nr = 0; nr < GeoPar.nrays; nr++)
+                                       Anglst.pbase[nr] = 0.0;
+
+                               for (nr = GeoPar.fusray; nr <= GeoPar.lusray; nr++)
+                               {
+                                       REAL temp;
+                                       if (nword == proj_codes[3])
+                                       {
+                                               //BHPSEUDO option
+                                               //jk 07/20/2008 modyfying how pseudo projections are
+                                               // computed - they need to be polychromatic for
+                                               //beam hardening correction
+                                               temp = 0.0;
+                                               for (j = 0; j < Spctrm.nergy; j++)
+                                               {
+                                                       temp += Spctrm.engwt[j]
+                                                                       * NoisePar.raysum(
+                                                                                       pseudo(phantom_poly_array[j], np,
+                                                                                                       nr, lbase, wbase, &numb,
+                                                                                                       &snorm, GeoPar.line,
+                                                                                                       FALSE));
+                                               }
+                                       }
+                                       else
+                                       {
+                                               //PSEUDO option
+                                               temp = NoisePar.raysum(
+                                                               pseudo(Creacm.test, np, nr, lbase, wbase, &numb,
+                                                                               &snorm, GeoPar.line, FALSE));
+                                       }
+                                       if (NoisePar.quanin > 0 && NoisePar.quanin != 4)
+                                               temp *= NoisePar.quanmn;
+                                       Anglst.pbase[nr] = NoisePar.applyQuantumNoise(np, nr, temp);
+                               }
+
+                               // TAKE CARE OF NOISE
+
+                               NoisePar.scatterNoise(Anglst.pbase);
+
+                               for (nr = GeoPar.fusray; nr <= GeoPar.lusray; nr++)
+                               {
+                                       REAL temp = NoisePar.computeAttenuation(np, nr,
+                                                       Anglst.pbase[nr]);
+                                       temp = NoisePar.multiplicativeNoise(temp);
+                                       Anglst.pbase[nr] = NoisePar.additiveNoise(temp);
+                               }
+                               // bug221 end - swr - 03/03/07
+                       }
+                       // REMOVE BIAS IN PROJECTION DATA POSSIBLY INTRODUCED BY A SKEWED
+                       // NOISE DISTRIBUTION
+
+                       if (NoisePar.ultnfl || NoisePar.addnfl)
+                       {
+                               for (i = GeoPar.fusray; i <= GeoPar.lusray; i++)
+                               {
+                                       Anglst.pbase[i] = (Anglst.pbase[i] - amean) * umean;
+                               }
+                       }
+
+                       // ADD UP FOR ESTIMATION OF AVERAGE DENSITY FROM RAYSUMS
+
+                       for (nr = GeoPar.fusray; nr <= GeoPar.lusray; nr++)
+                       {
+                               // Changed here for SNARK89 Version 1.01 7/13/90 to conform to manual
+                               if (GeoPar.strip)
+                               {
+                                       if (GeoPar.vri)
+                                       {
+                                               totden +=
+                                                               (REAL) (Anglst.pbase[nr]
+                                                                               / (GeoPar.pinc
+                                                                                               * MAX0(fabs(sinth), fabs(costh))));
+                                       }
+                                       else
+                                       {
+                                               totden += Anglst.pbase[nr] / GeoPar.pinc;
+                                       }
+                               }
+                               else
+                               {
+                                       totden += Anglst.pbase[nr];
+                               }
+
+                               posit(np, nr, &ax, &ay, &mx, &my);
+
+                               totlen += raylen(SOT_rect, ax, ay, mx, my, 0.0, 0.0, hfside,
+                                               hfside, 1.0, 0.0);
+
+                       }
+
+                       // jk 7/13/2008 added for beam hardening correction
+                       // write data to temporary prjfil's if bhc is set
+                       if (bh_cor.bhc)
+                       {
+                               for (i = 0; i < 1; i++)
+                               {
+
+                                       //iterate over values of Anglst.pbase and multiply by
+                                       //coefficients of the correction polynomial
+                                       //for (nr = GeoPar.fusray; nr <= GeoPar.lusray; nr++)
+                                       INTEGER NoOfRays = GeoPar.lusray - GeoPar.fusray + 1;
+                                       REAL t, tt;
+                                       REAL * temp = new REAL[NoOfRays];
+                                       for (k = 0; k < NoOfRays; k++)
+                                               temp[k] = 0;
+                                       for (nr = 0; nr < NoOfRays; nr++)
+                                       {
+                                               t = Anglst.pbase[nr + GeoPar.fusray];
+                                               tt = 1;
+                                               for (j = 0; j <= bh_cor.noDegree; j++)
+                                               {
+                                                       temp[nr] += bh_cor.a[j] * tt;
+                                                       tt = tt * t;
+                                               }
+
+                                       }
+                                       BHC_PrjFile[i].WriteProj(np, temp); //&(Anglst.pbase[GeoPar.fusray]));
+                                       delete[] temp;
+                               }
+                       }
+                       else //write data to the final prjfil
+                       {
+
+                               // WRITE ON PRJFIL.
+                               ProjFile.WriteProj(np, &(Anglst.pbase[GeoPar.fusray]));
+                       }
+               }
+               if (!bh_cor.bhc)
+               {
+                       GeoPar.aveden = totden / totlen;
+                       fprintf(output, "\n\n         estimate of totlen = %16.6f", totlen);
+
+                       fprintf(output, "\n         estimate of totden = %16.6f", totden);
+
+                       fprintf(output, "\n         estimate of average density = %10.4f",
+                                       GeoPar.aveden);
+               }
+               // WRITE UPDATED HEADER ON PRJFIL
+
+               // jk 7/13/2008 added for beam hardening correction
+               // write header to temporary prjfil's if bhc is set
+               if (bh_cor.bhc)
+               {
+                       for (i = 0; i < 1; i++)
+                       {
+                               BHC_PrjFile[i].WriteHeader(Creacm.name, &GeoPar, &NoisePar,
+                                               &Spctrm);
+                       }
+               }
+               else //write header to the final prjfil
+               {
+
+                       ProjFile.WriteHeader(Creacm.name, &GeoPar, &NoisePar, &Spctrm);
+               }
+
+               // PREPARE TO EXIT FROM ROUTINE
+
+               //free(Anglst.bth); deleted now in the destructor
+       }
+
+       // CLOSE THE PRJFIL
+
+       // jk 7/13/2008 added for beam hardening correction
+       if (bh_cor.bhc)
+       {
+               for (i = 0; i < 1; i++)
+               {
+                       BHC_PrjFile[i].Close();
+               }
+       }
+       else
+       {
+
+               ProjFile.Close();
+       }
+
+       // jk 7/13/2008 added for beam hardening correction
+       // CALL BEAM HARDENING CORRECTION ROUTINES
+       if (bh_cor.bhc)
+       {
+               ProjFile.Close();
+               bh_cor.correction(BHC_PrjFile);
+
+               // OPEN PROJECTION FILE JUST CORRECTED FOR BEAM HARDENING
+
+               if (ProjFile.Open((char*) "prjfil") != 0)
+               {
+                       fprintf(output,
+                                       "\n **** unable to open prjfil after beam hardening");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(-1);
+               };
+
+               ProjFile.ReadHeader(Creacm.name, &NoisePar, &Spctrm, &Anglst);
+
+               // compute average density
+               double *projdata = new double[GeoPar.nrays];
+               totden = 0.0;
+               totlen = 0.0;
+               hfside = (REAL) 0.5 * GeoPar.nelem * GeoPar.pixsiz;
+               for (np = 0; np < GeoPar.prjnum; ++np)
+               {
+                       ProjFile.ReadProj(np, projdata, GeoPar.nrays);
+                       for (nr = 0; nr < GeoPar.nrays; nr++)
+                       {
+                               if (GeoPar.strip)
+                               {
+                                       if (GeoPar.vri)
+                                       {
+                                               totden +=
+                                                               (REAL) (projdata[nr]
+                                                                               / (GeoPar.pinc
+                                                                                               * MAX0(fabs(sinth), fabs(costh))));
+                                       }
+                                       else
+                                       {
+                                               totden += projdata[nr] / GeoPar.pinc;
+                                       }
+                               }
+                               else
+                               {
+                                       totden += projdata[nr];
+                               }
+                               posit(np, nr, &ax, &ay, &mx, &my);
+                               totlen += raylen(SOT_rect, ax, ay, mx, my, 0.0, 0.0, hfside,
+                                               hfside, 1.0, 0.0);
+                       }
+               }
+               GeoPar.aveden = totden / totlen;
+               fprintf(output, "\n         estimate of totlen = %16.6f", totlen);
+               fprintf(output, "\n         estimate of totden = %16.6f", totden);
+               fprintf(output, "\n         estimate of average density = %10.4f",
+                               GeoPar.aveden);
+               delete[] projdata;
+
+               ProjFile.Close();
+       }
+       if (!bh_cor.bhc)
+       {
+               fprintf(output, "\n         projection data read");
+               fprintf(output, "\n         %s", Creacm.name);
+       }
+       // WRITE PROJECTION HEADER INTO RECORD nelem + 3 OF
+       // RECONSTRUCTION FILE
+
+       RecFile.SetProjName(Creacm.name);
+
+       //delete the created directory bhc
+       if (bh_cor.bhc)
+       {
+               sprintf(command, "rm -rf %s", bh_cor.tempDir);
+               if (system(command) != 0)
+               {
+                       fprintf(stdout, "\n\n****ERROR deleting temporary directory %s\n\n",
+                                       bh_cor.tempDir);
+               }
+       }
+
+       if (lbase != NULL)
+               delete[] lbase;
+       if (wbase != NULL)
+               delete[] wbase; //wei 3/2005
+       if (BHC_PrjFile != NULL)
+               delete[] BHC_PrjFile;
+
+       for (i = 6; i >= 0; i--)
+       {
+               if (phantom_poly_array[i] != NULL)
+                       delete[] phantom_poly_array[i];
+       }
+
+       return;
+}
diff --git a/src/snark/rdproj.h b/src/snark/rdproj.h
new file mode 100644 (file)
index 0000000..47446cd
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/rdproj.h $
+ $LastChangedRevision: 91 $
+ $Date: 2014-07-02 17:34:27 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef RDPROJ_H
+#define RDPROJ_H
+
+void rdproj();
+
+#endif
diff --git a/src/snark/read_eval_phantom1.c b/src/snark/read_eval_phantom1.c
new file mode 100644 (file)
index 0000000..2abeaaf
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_phantom1.c $
+ $LastChangedRevision: 92 $
+ $Date: 2014-07-02 17:46:48 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+/* ------------------------- read_eval_phantom1.c -------------------------
+
+ This function reads from the eval file the abnormality index for all
+ the structures in the phantom.
+
+ INPUTS: None.
+
+ OUTPUTS:
+ numstr - number of structures in phantom.
+ phantom - array of length numstr containing the average pixel values (i.e the
+ abnormality index) for each structure in the phantom.
+ regions - array of length numstr containing the structure numbers
+ strarea - array of length numstr containing the area (i.e number of pixels)
+ for each structure.
+ */
+
+#include <malloc.h>
+#include "experimenter.h"
+#include "errorc.h"
+#include "read_eval_phantom1.h"
+
+void read_eval_phantom1(int** regions, int* numstr, double** phantom, int** strarea)
+{
+       int reg, area, count = 0;
+       double average;
+       char string[MAXLINESIZE];
+       FILE *evalfile;
+
+       if ((evalfile = fopen("eval", "r")) == NULL)
+       {
+               errorc("in read_eval_phantom1.c: error in opening file ", "eval");
+       }
+
+       while (1)
+       { /* Read eval file until first line of numbers is reached
+        then break from while loop */
+
+               fgets(string, sizeof(string), evalfile);
+               if (sscanf(string, "%d %d %lf", &reg, &area, &average) == 3)
+                       break;
+               else
+                       ;
+       }
+       /* Allocate memory for the arrays phantom, strarea and
+        regions. Store abnormality index, area and structure
+        number for the first line (from previous while loop).
+        Count is a counter for the number of structures read
+        in. */
+
+       *phantom = (double *) malloc(sizeof(double));
+       *regions = (int *) malloc(sizeof(int));
+       *strarea = (int *) malloc(sizeof(int));
+       if ((*phantom == NULL) || (*regions == NULL))
+               errorc("memory allocation failed in ", "read_eval_phantom.c");
+       (*phantom)[count] = average;
+       (*strarea)[count] = area;
+       (*regions)[count] = reg;
+       count++;
+
+       while (1)
+       { /* Read in abnormality indexes, areas and structure numbers
+        and allocate more memory for the new values. Break from
+        the while loop when finished */
+
+               fgets(string, sizeof(string), evalfile);
+               if (sscanf(string, "%d %d %lf", &reg, &area, &average) == 3)
+               {
+
+                       *phantom = (double *) realloc(*phantom, (count + 1) * sizeof(double));
+                       *strarea = (int *) realloc(*strarea, (count + 1) * sizeof(int));
+                       *regions = (int *) realloc(*regions, (count + 1) * sizeof(int));
+                       if (((*phantom) == NULL) || ((*regions) == NULL) || ((*strarea) == NULL))
+                       {
+                               errorc("memory reallocation failed in ", "read_eval_phantom.c");
+                       }
+
+                       (*phantom)[count] = average;
+                       (*strarea)[count] = area;
+                       (*regions)[count] = reg;
+                       count++;
+               }
+               else
+               {
+                       break;
+               }
+       }
+       *numstr = count;
+
+       fclose(evalfile);
+}
diff --git a/src/snark/read_eval_phantom1.h b/src/snark/read_eval_phantom1.h
new file mode 100644 (file)
index 0000000..4fccfc2
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_phantom1.h $
+ $LastChangedRevision: 92 $
+ $Date: 2014-07-02 17:46:48 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef READ_EVAL_PHANTOM1_H
+#define READ_EVAL_PHANTOM1_H
+
+void read_eval_phantom1(int** regions, int* numstr, double** phantom,
+               int** strarea);
+
+#endif
diff --git a/src/snark/read_eval_recon1.c b/src/snark/read_eval_recon1.c
new file mode 100644 (file)
index 0000000..4b2e945
--- /dev/null
@@ -0,0 +1,208 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_recon1.c $
+ $LastChangedRevision: 92 $
+ $Date: 2014-07-02 17:46:48 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <string.h>
+#include <strings.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "read_eval_recon1.h"
+
+/* ----------------------------- read_eval_recon1.c ----------------------
+
+ This function reads from the eval file the abnormality index for
+ all the structures in a reconstruction. The abnormality index for a
+ structure is defined to be the average pixel value for those pixels
+ whose centers are within that structure.
+
+ INPUTS:
+ iter - iteration number
+ keywrd - keyword which defines the algorithm whose reconstruction is
+ to be read in.
+ numstr - number of structures in reconstruction.
+
+ OUTPUT:
+ recon - array of length numstr containing the abnormality index for each
+ structure in the reconstruction.
+ */
+
+void read_eval_recon1(int* iter, char* keywrd, int numstr, double* recon)
+{
+       int reg, area, i, tmp_iter;
+       double average;
+       char string[MAXLINESIZE], iter_text[MAXLINESIZE], test[MAXLINESIZE];
+       char * tmp_iter_ptr;
+       FILE *evalfile;
+
+       if (*iter == 0)
+       {
+               /* this means we want the LAST iteration of the given algorithm;
+                * first we need to figure out the number of this iteration though;
+                *
+                * 1) scan the eval file until the like containing the keywrd for the
+                * algorithm is found
+                * 2) keep scanning until the last iteration is found
+                */
+
+               if ((evalfile = fopen("eval", "r")) == NULL)
+               {
+                       errorc("in read_eval_recon1.c: error in opening file ", "eval");
+               }
+
+               while (1)
+               {
+                       /* Read eval file until a line which contains the string
+                        'execution name' is reached. If this line contains the
+                        keyword break out of the while loop. If end of file is
+                        reached then keyword was not found so terminate program. */
+
+                       fgets(string, sizeof(string), evalfile);
+                       if (strstr(string, "execution name") != NULL)
+                       {
+                               sscanf(string, "%*s%*s %s", test);
+                               if (strncasecmp(test, keywrd, 4) == 0)
+                               {
+                                       break;
+                               }
+                       }
+                       if (feof(evalfile))
+                       {
+                               sprintf(string, "Error in read_eval_recon1.c: keyword %s not "
+                                               "found in file", keywrd);
+                               errorc(string, " eval");
+                       }
+               }
+
+               while (1)
+               {
+                       /* Continue reading eval file until a line which contains
+                        the string 'Metrics for algorithm' is reached. If this
+                        line contains the string 'iteration' and the required
+                        iteration number break out of the while loop. If end
+                        of file is reached then the appropriate string was
+                        not found so print error message and exit */
+
+                       fgets(string, sizeof(string), evalfile);
+                       if ((strstr(string, "metrics for algorithm") != NULL) && // changed "m" in "metrics for algorithm" to lowercase. Lajos, Dec 16, 2004
+                                       ((tmp_iter_ptr = strstr(string, "iteration")) != NULL))
+                       {
+                               //grab the iteration number from this line
+                               tmp_iter_ptr = tmp_iter_ptr + 9;
+                               if (0 == sscanf(tmp_iter_ptr, "%d", &tmp_iter))
+                                       sprintf(string,
+                                                       "Error in read_eval_recon1.c: iteration number missing");
+                       }
+
+                       if ((strstr(string, "execution name") != NULL) || (strstr(string, "execution name") != NULL))
+                       {
+                               //we got to the next algorithm section, so better save the
+                               //number of last iteration and break
+                               *iter = tmp_iter;
+                               break;
+                       }
+
+               }
+               fclose(evalfile); /* close eval file */
+       }
+
+       /* convert iteration number to a string */
+
+       sprintf(iter_text, "%d", *iter);
+
+       if ((evalfile = fopen("eval", "r")) == NULL)
+       {
+               errorc("in read_eval_recon1.c: error in opening file ", "eval");
+       }
+
+       while (1)
+       {
+               /* Read eval file until a line which contains the string
+                'execution name' is reached. If this line contains the
+                keyword break out of the while loop. If end of file is
+                reached then keyword was not found so terminate program.  */
+
+               fgets(string, sizeof(string), evalfile);
+               if (strstr(string, "execution name") != NULL)
+               {
+                       sscanf(string, "%*s%*s %s", test);
+                       if (strncasecmp(test, keywrd, 4) == 0)
+                       {
+                               break;
+                       }
+               }
+               if (feof(evalfile))
+               {
+                       sprintf(string, "Error in read_eval_recon1.c: keyword %s not found in file", keywrd);
+                       errorc(string, " eval");
+               }
+       }
+
+       while (1)
+       {
+               /* Continue reading eval file until a line which contains
+                the string 'Metrics for algorithm' is reached. If this
+                line contains the string 'iteration' and the required
+                iteration number break out of the while loop. If end
+                of file is reached then the appropriate string was
+                not found so print error message and exit */
+
+               fgets(string, sizeof(string), evalfile);
+               if ((strstr(string, "metrics for algorithm") != NULL)
+                               && // changed "m" in "metrics for algorithm" to lowercase. Lajos, Dec 16, 2004
+                               (strstr(string, iter_text) != NULL)
+                               && (strstr(string, "iteration") != NULL))
+               {
+                       break;
+               }
+
+               if (feof(evalfile))
+               {
+                       sprintf(string, "Error in read_eval_recon1.c: %s ---> iteration %d not found in", keywrd, *iter);
+                       errorc(string, " eval");
+               }
+       }
+
+       while (1)
+       {
+               /* Continue reading eval file until a line of numbers is
+                reached then break out of while loop. Terminate program
+                if end of file is reached */
+
+               fgets(string, sizeof(string), evalfile);
+               if (sscanf(string, "%d %d %lf", &reg, &area, &average) == 3)
+               {
+                       break;
+               }
+       }
+
+       if (feof(evalfile))
+       {
+               errorc("Error in read_eval_recon1.c: end of file reached in file ",
+                               "eval");
+       }
+       /* this is the abnormality index of the first structure
+        in the reconstruction */
+
+       recon[0] = average;
+
+       /* now read in the abnormality index for the remaining
+        structures */
+
+       for (i = 1; i < numstr; i++)
+       {
+               fgets(string, sizeof(string), evalfile);
+               sscanf(string, "%d %d %lf", &reg, &area, &average);
+               recon[i] = average;
+       }
+
+       fclose(evalfile); /* close eval file */
+}
diff --git a/src/snark/read_eval_recon1.h b/src/snark/read_eval_recon1.h
new file mode 100644 (file)
index 0000000..4a52670
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_recon1.h $
+ $LastChangedRevision: 92 $
+ $Date: 2014-07-02 17:46:48 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef READ_EVAL_RECON1_H
+#define READ_EVAL_RECON1_H
+
+void read_eval_recon1(int * iter, char* keywrd, int numstr, double* recon);
+
+#endif
diff --git a/src/snark/read_eval_recon2.c b/src/snark/read_eval_recon2.c
new file mode 100644 (file)
index 0000000..59f4338
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_recon2.c $
+ $LastChangedRevision: 92 $
+ $Date: 2014-07-02 17:46:48 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <string.h>
+#include <strings.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "read_eval_recon2.h"
+
+/* ----------------------------- read_eval_recon2.c ----------------------
+
+ This function reads from the eval file the normalized root mean
+ square distance between a reconstruction and the phantom
+
+ INPUTS:
+ mode - number of MODEs read in so far by analyze.c.
+ iteration - iteration number
+ keywrd - keyword which defines the algorithm whose reconstruction is
+ to be read in.
+
+ OUTPUT:
+ recon - double precision variable which stores the normalized root mean
+ square distance between the (clipped) reconstruction and the
+ (clipped) phantom.
+ */
+
+void read_eval_recon2(int mode, int iteration, char* keywrd, double* recon)
+{
+       int area, global = 0, iter;
+       double average, distance;
+       char string[MAXLINESIZE], test[MAXLINESIZE];
+       FILE *evalfile;
+
+       if ((evalfile = fopen("eval", "r")) == NULL)
+               errorc("in read_eval_recon2.c: error in opening file ", "eval");
+
+       /* read eval until the (mode+1)th occurrence of 'global' is reached. */
+       while (global != (mode + 1))
+       {
+
+               fgets(string, sizeof(string), evalfile);
+               if (strstr(string, "global") != NULL)
+               {
+                       global++;
+               }
+               if (feof(evalfile))
+               {
+                       errorc( "Error in read_eval_recon2.c: number of MODEs in comparison file exceeds number of globals in file", " eval");
+               }
+       }
+
+       while (1)
+       {
+               /* Read eval file until a line which contains the string
+                'execution name' is reached. If this line contains the
+                keyword, break out of the while loop. If end of file is
+                reached then keyword was not found so terminate program. */
+
+               fgets(string, sizeof(string), evalfile);
+
+               if (strstr(string, "execution name") != NULL)
+               {
+
+                       sscanf(string, "%*s%*s %s", test);
+                       if (strncasecmp(test, keywrd, 4) == 0)
+                       {
+                               break;
+                       }
+               }
+
+               if (feof(evalfile))
+               {
+                       sprintf(string,
+                                       "Error in read_eval_recon2.c: keyword %s not found in file",
+                                       keywrd);
+                       errorc(string, " eval");
+               }
+       }
+
+       while (1)
+       {
+               /* Continue reading eval file until a line of numbers is
+                reached then break out of while loop. If end of file
+                is encountered then terminate program. */
+
+               fgets(string, sizeof(string), evalfile);
+               if (sscanf(string, "%d %d %lf %lf", &iter, &area, &average, &distance) == 4)
+               {
+                       break;
+               }
+               if (feof(evalfile))
+               {
+                       errorc("Error in read_eval_recon2.c: end of file reached in file ", "eval");
+               }
+       }
+
+       /* If necessary search the remaining lines of numbers until
+        the appropriate iteration number is found. Then save the
+        distance and break out of while loop. If approriate
+        iteration number is not found then terminate program. */
+
+       if (iteration != 0)
+       {
+
+               /* if this first line of numbers has correct iteration
+                number save the distance and return*/
+
+               if (iter == iteration)
+               {
+                       *recon = distance;
+                       fclose(evalfile);
+                       return;
+               }
+
+               while (1)
+               {
+
+                       fgets(string, sizeof(string), evalfile);
+                       sscanf(string, "%d %d %lf %lf", &iter, &area, &average, &distance);
+                       if (iter == iteration)
+                       {
+                               *recon = distance;
+                               break;
+                       }
+                       if (feof(evalfile))
+                       {
+                               sprintf(string, "Error in read_eval_recon2.c: %s --> iteration %d not found in file", keywrd, iteration);
+                               errorc(string, " eval");
+                       }
+               }
+       }
+
+       // special case iteration == 0
+       // the last iteration should be processed instead of a literal interpretation of 0
+       // olangthaler, 03/14/14
+       else
+       {
+               char prev[MAXLINESIZE];
+
+               while (1)
+               {
+                       strcpy(prev, string);
+                       fgets(string, sizeof(string), evalfile);
+                       if (strlen(string) < 3)
+                       {
+                               break;
+                       }
+                       if (feof(evalfile))
+                       {
+                               sprintf(string, "Error in read_eval_recon2.c: %s --> iteration %d not found in file", keywrd, iteration);
+                               errorc(string, " eval");
+                       }
+               }
+
+               sscanf(prev, "%d %d %lf %lf", &iter, &area, &average, &distance);
+               *recon = distance;
+       }
+
+       fclose(evalfile); /* close eval file */
+}
diff --git a/src/snark/read_eval_recon2.h b/src/snark/read_eval_recon2.h
new file mode 100644 (file)
index 0000000..d5cfd6a
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_recon2.h $
+ $LastChangedRevision: 92 $
+ $Date: 2014-07-02 17:46:48 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef READ_EVAL_RECON2_H
+#define READ_EVAL_RECON2_H
+
+void read_eval_recon2(int mode, int iteration, char* keywrd, double* recon);
+
+#endif
diff --git a/src/snark/read_eval_recon3.c b/src/snark/read_eval_recon3.c
new file mode 100644 (file)
index 0000000..7703192
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_recon3.c $
+ $LastChangedRevision: 92 $
+ $Date: 2014-07-02 17:46:48 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <string.h>
+#include <strings.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "read_eval_recon3.h"
+
+/* ----------------------------- read_eval_recon1.c ----------------------
+
+ This function reads from the eval file the variance for
+ all the structures in a reconstruction.
+
+ INPUTS:
+ iter - iteration number
+ keywrd - keyword which defines the algorithm whose reconstruction is
+ to be read in.
+ numstr - number of structures in reconstruction.
+
+ OUTPUT:
+ recon - array of length numstr containing the variance for each
+ structure in the reconstruction.
+ */
+
+void read_eval_recon3(int iter, char* keywrd, int numstr, double* recon)
+{
+       int reg, area, i;
+       double average, dist, rel_err, variance;
+       char string[MAXLINESIZE], iter_text[MAXLINESIZE], test[MAXLINESIZE];
+       FILE *evalfile;
+
+       /* convert iteration number to a string */
+       sprintf(iter_text, "%d", iter);
+
+       if ((evalfile = fopen("eval", "r")) == NULL)
+       {
+               errorc("in read_eval_recon1.c: error in opening file ", "eval");
+       }
+
+       while (1)
+       {
+               /* Read eval file until a line which contains the string
+                'execution name' is reached. If this line contains the
+                keyword break out of the while loop. If end of file is
+                reached then keyword was not found so terminate program.  */
+
+               fgets(string, sizeof(string), evalfile);
+               if (strstr(string, "execution name") != NULL)
+               {
+                       sscanf(string, "%*s%*s %s", test);
+                       if (strncasecmp(test, keywrd, 4) == 0)
+                       {
+                               break;
+                       }
+               }
+               if (feof(evalfile))
+               {
+                       sprintf(string, "Error in read_eval_recon1.c: keyword %s not found in file", keywrd);
+                       errorc(string, " eval");
+               }
+       }
+
+       while (1)
+       {
+               /* Continue reading eval file until a line which contains
+                the string 'Metrics for algorithm' is reached. If this
+                line contains the string 'iteration' and the required
+                iteration number break out of the while loop. If end
+                of file is reached then the appropriate string was
+                not found so print error message and exit */
+
+               fgets(string, sizeof(string), evalfile);
+               if ((strstr(string, "metrics for algorithm") != NULL)
+                               && // changed "m" in "metrics for algorithm" to lowercase. Lajos, Dec 16, 2004
+                               (strstr(string, iter_text) != NULL)
+                               && (strstr(string, "iteration") != NULL))
+               {
+                       break;
+               }
+
+               if (feof(evalfile))
+               {
+                       sprintf(string, "Error in read_eval_recon1.c: %s ---> iteration %d not found in", keywrd, iter);
+                       errorc(string, " eval");
+               }
+       }
+
+       while (1)
+       {
+               /* Continue reading eval file until a line of numbers is
+                reached then break out of while loop. Terminate program
+                if end of file is reached */
+
+               fgets(string, sizeof(string), evalfile);
+               if (sscanf(string, "%d %d %lf %lf %lf %lf", &reg, &area, &average, &dist, &rel_err, &variance) == 6)
+               {
+                       break;
+               }
+       }
+
+       if (feof(evalfile))
+       {
+               errorc("Error in read_eval_recon1.c: end of file reached in file ", "eval");
+       }
+
+       /* this is the variance of the first structure
+        in the reconstruction */
+       recon[0] = variance;
+
+       /* now read in the abnormality index for the remaining
+        structures */
+
+       for (i = 1; i < numstr; i++)
+       {
+               fgets(string, sizeof(string), evalfile);
+               sscanf(string, "%d %d %lf %lf %lf %lf", &reg, &area, &average, &dist, &rel_err, &variance);
+               recon[i] = variance;
+       }
+
+       fclose(evalfile); /* close eval file */
+}
diff --git a/src/snark/read_eval_recon3.h b/src/snark/read_eval_recon3.h
new file mode 100644 (file)
index 0000000..0f9c25e
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_recon3.h $
+ $LastChangedRevision: 92 $
+ $Date: 2014-07-02 17:46:48 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef READ_EVAL_RECON3_H
+#define READ_EVAL_RECON3_H
+
+void read_eval_recon3(int iter, char* keywrd, int numstr, double* recon);
+
+#endif
diff --git a/src/snark/read_eval_recon4.c b/src/snark/read_eval_recon4.c
new file mode 100644 (file)
index 0000000..2fbd98c
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_recon4.c $
+$LastChangedRevision: 137 $
+$Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+$Author: bprommegger $
+***********************************************************
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <strings.h>
+#include "experimenter.h"
+#include "errorc.h"
+#include "read_eval_recon4.h"
+
+/*
+ this function reads from the eval file the kullback-leibler distance
+
+ INPUTS:
+ iteration - iteration number
+ keywrd - keyword which defines the algorithm whose reconstruction is to be read in.
+
+ OUTPUT:
+ recon - double precision variable which stores the normalized root mean
+ square distance between the (clipped) reconstruction and the
+ (clipped) phantom.
+*/
+
+void read_eval_recon4(int iteration, char* keywrd, double* klds, double* wsqd)
+{
+       int area = 0;
+       int global = 0;
+       int iter = 0;
+       double average = 0;
+       double distance = 0;
+       double relerr = 0;
+       double variance = 0;
+       double stddev = 0;
+       double residual = 0;
+       double kld = 0;
+       double local_wsqd = 0;
+       char string[MAXLINESIZE];
+       char test[MAXLINESIZE];
+       FILE *evalfile;
+
+       if ((evalfile = fopen("eval", "r")) == NULL) errorc("in read_eval_recon4.c: error in opening file ", "eval");
+
+       while (1)
+       {
+               /* Read eval file until a line which contains the string
+                'experimenter evaluation 2' is reached. If end of file is
+                reached then keyword was not found so terminate program. */
+
+               fgets(string, sizeof(string), evalfile);
+
+               if (strstr(string, "experimenter evaluation 2") != NULL)
+               {
+                       break;
+               }
+
+               if (feof(evalfile))
+               {
+                       fflush(stdout);
+                       sprintf(string,"Error in read_eval_recon4.c: keyword %s not found in file ","experimenter evaluation 2");
+                       errorc(string, "eval");
+               }
+       }
+
+       while (1)
+       {
+               /* Read eval file until a line which contains the string
+                'execution name' is reached. If this line contains the
+                keyword, break out of the while loop. If end of file is
+                reached then keyword was not found so terminate program. */
+
+               fgets(string, sizeof(string), evalfile);
+
+               if (strstr(string, "execution name") != NULL)
+               {
+                       sscanf(string, "%*s%*s %s", test);
+                       if (strncasecmp(test, keywrd, 4) == 0)
+                       {
+                               break;
+                       }
+               }
+
+               if (feof(evalfile))
+               {
+                       fflush(stdout);
+                       sprintf(string,"Error in read_eval_recon4.c: keyword %s not found in file ",keywrd);
+                       errorc(string, "eval");
+               }
+       }
+
+       while (1)
+       {
+               /* Continue reading eval file until a line of numbers is
+                reached, then break out of while loop. If end of file
+                is encountered then terminate program. */
+               fgets(string, sizeof(string), evalfile);
+               if (sscanf(string, "%d %d %lf %lf %lf %lf %lf %lf %lf %lf", &iter, &area, &average, &distance, &relerr, &variance, &stddev, &residual, &kld, &local_wsqd) == 10)
+               {
+                       break;
+               }
+               if (feof(evalfile))
+               {
+                       errorc("Error in read_eval_recon4.c: end of file reached in file eval. Hint: Have the iteration flags been set to 3?","");
+               }
+       }
+
+       /* If necessary, search the remaining lines of numbers until
+        the appropriate iteration number is found. Then save the
+        distance and break out of while loop. If approriate
+        iteration number is not found then terminate program. */
+       if (iteration != 0)
+       {
+               /* if this first line of numbers has correct iteration number, return*/
+               if (iter == iteration)
+               {
+                       *klds = kld;
+                       *wsqd = local_wsqd;
+                       fclose(evalfile);
+                       return;
+               }
+
+               while (1)
+               {
+                       fgets(string, sizeof(string), evalfile);
+                       sscanf(string, "%d %d %lf %lf %lf %lf %lf %lf %lf %lf", &iter, &area, &average, &distance, &relerr, &variance, &stddev, &residual, &kld, &local_wsqd);
+                       if (iter == iteration)
+                       {
+                               *klds = kld;
+                               *wsqd = local_wsqd;
+                               break;
+                       }
+                       if (feof(evalfile))
+                       {
+                               sprintf(string,"Error in read_eval_recon4.c: %s --> iteration %d not found in file", keywrd, iteration);
+                               errorc(string, " eval");
+                       }
+               }
+       }
+
+       // iteration == 0: the last iteration should be processed instead of a literal interpretation of 0
+       else
+       {
+               char prev[MAXLINESIZE];
+
+               while (1)
+               {
+                       strcpy(prev, string);
+                       fgets(string, sizeof(string), evalfile);
+                       if (strlen(string) < 3)
+                       {
+                               break;
+                       }
+                       if (feof(evalfile))
+                       {
+                               sprintf(string, "Error in read_eval_recon4.c: %s --> iteration %d not found in file",keywrd, iteration);
+                               errorc(string, " eval");
+                       }
+               }
+
+               sscanf(prev, "%d %d %lf %lf %lf %lf %lf %lf %lf %lf", &iter, &area, &average, &distance, &relerr, &variance, &stddev, &residual, &kld, &local_wsqd);
+               *klds = kld;
+               *wsqd = local_wsqd;
+       }
+
+       fclose(evalfile);
+}
diff --git a/src/snark/read_eval_recon4.h b/src/snark/read_eval_recon4.h
new file mode 100644 (file)
index 0000000..4f3c59d
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+***********************************************************
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_eval_recon4.h $
+$LastChangedRevision: 137 $
+$Date: 2014-07-15 16:38:33 -0400 (Tue, 15 Jul 2014) $
+$Author: bprommegger $
+***********************************************************
+*/
+
+#ifndef READ_EVAL_RECON4_H
+#define READ_EVAL_RECON4_H
+
+void read_eval_recon4(int iteration, char* keywrd, double* klds, double* wsqd);
+
+#endif
diff --git a/src/snark/read_fomfile.c b/src/snark/read_fomfile.c
new file mode 100644 (file)
index 0000000..269c302
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_fomfile.c $
+ $LastChangedRevision: 94 $
+ $Date: 2014-07-02 18:53:30 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of SuperSNARK
+ */
+
+#include <string.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "read_fomfile.h"
+
+/* ----------------------------- read_fomfile.c -------------------------
+
+ This function reads the fom values stored in fomfile.
+
+ INPUTS:
+ iexp - experiment number
+ irun - run number
+ compare - counter for the number of COMPAREs read in so far
+ niters - number of iterations to be compared
+ fom - character string denoting the figure of merit
+
+ OUTPUTS:
+ fom1 - array of length niters containing the fom for the first algorithm.
+ fom2 - array of length niters containing the fom for the second algorithm.
+
+ */
+
+void read_fomfile(int iexp, int irun, int compare, int niters, char* fom, double* fom1, double* fom2)
+{
+       int itr_a, itr_b, rexp, rrun, rcompare, i;
+       double fom_a, fom_b;
+       char string[MAXLINESIZE];
+       FILE *fomfile;
+
+       strcpy(string, "fomfil");
+       sprintf(string, "%s.%d", string, iexp);
+
+       if ((fomfile = fopen(string, "r")) == NULL)
+       {
+               errorc("in read_fomfile.c: error in opening file ", string);
+       }
+
+       while (1)
+       {
+               /* Read fomfil until a line which contains the strings
+                'run','experiment', and 'compare' is reached. If this
+                line contains the correct combination of iexp, irun
+                and compare break out of while loop  */
+
+               fgets(string, sizeof(string), fomfile);
+               if (strstr(string, "experiment") != NULL)
+               {
+                       sscanf(string, "%*s %d %*s %d %*s %d", &rexp, &rrun, &rcompare);
+                       if ((rexp == iexp) && (rrun == irun) && (rcompare == compare))
+                       {
+                               break;
+                       }
+               }
+       }
+       while (1)
+       {
+               /* Continue reading fomfil until a line which contains
+                either the string '*****' or the fom is reached
+                then break out of while loop */
+
+               fgets(string, sizeof(string), fomfile);
+               if (strstr(string, fom) != NULL)
+               {
+                       break;
+               }
+
+               if (strstr(string, "*****") != NULL)
+               {
+                       /* the string '*****' means no paired structures */
+                       for (i = 0; i < niters; i++)
+                       {
+                               fom1[i] = 0.0;
+                               fom2[i] = 0.0;
+                       }
+                       fclose(fomfile);
+                       return;
+               }
+       }
+
+       /* now read in the iteration numbers and the foms */
+
+       for (i = 0; i < niters; i++)
+       {
+               fgets(string, sizeof(string), fomfile);
+               sscanf(string, "%d %lf %d %lf", &itr_a, &fom_a, &itr_b, &fom_b);
+               fom1[i] = fom_a;
+               fom2[i] = fom_b;
+       }
+
+       fclose(fomfile);
+}
diff --git a/src/snark/read_fomfile.h b/src/snark/read_fomfile.h
new file mode 100644 (file)
index 0000000..07a6bb6
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/read_fomfile.h $
+ $LastChangedRevision: 94 $
+ $Date: 2014-07-02 18:53:30 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef READ_FROMFILE_H
+#define READ_FROMFILE_H
+
+void read_fomfile(int iexp, int irun, int compare, int niters, char* fom, double* fom1, double* fom2);
+
+#endif
+
diff --git a/src/snark/recfile.cpp b/src/snark/recfile.cpp
new file mode 100644 (file)
index 0000000..619f2da
--- /dev/null
@@ -0,0 +1,405 @@
+/*\r
+ ***********************************************************\r
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $\r
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/recfile.cpp $\r
+ $LastChangedRevision: 118 $\r
+ $Date: 2014-07-09 14:22:29 -0400 (Wed, 09 Jul 2014) $\r
+ $Author: agulati $\r
+ ***********************************************************\r
+ */\r
+\r
+#include <cstring>\r
+#include <cstdlib>       \r
+#include <cstdio>\r
+#include <cctype>\r
+\r
+#include "int2str.h"\r
+#include "DIGFile.h"\r
+#include "modefl.h"\r
+#include "recfile.h"\r
+\r
+SnarkRecFile RecFile;\r
+\r
+void SnarkRecFile::FlipImage(REAL* Dst, REAL* Src)\r
+{\r
+       unsigned INTEGER i;\r
+       REAL* SrcPtr = Src;  // first row\r
+       REAL* DstPtr = Dst + NumberOfElements * (NumberOfElements - 1); // last row\r
+\r
+       for (i = 0; i < NumberOfElements; i++)\r
+       {\r
+\r
+               // copy row of data\r
+               memcpy(DstPtr, SrcPtr, NumberOfElements * sizeof(REAL));\r
+\r
+               DstPtr -= NumberOfElements; // set to previous row\r
+               SrcPtr += NumberOfElements; // set to next row\r
+       }\r
+}\r
+\r
+INTEGER SnarkRecFile::Open(const CHAR* FileName, INTEGER nelem, REAL pixsiz)\r
+{\r
+       // opens a file for writing\r
+       // and sets main header values\r
+\r
+       NumberOfElements = nelem;\r
+\r
+       // allocate data buffer\r
+       DataBuffer = new REAL[NumberOfElements * NumberOfElements];\r
+\r
+       PixelSize = pixsiz;\r
+\r
+       if (DIGFileSnarkRec::Open(FileName, "Proj Name", nelem, pixsiz, "This reconstruction file has been created by snark14") != 0)\r
+       {\r
+               return 1;\r
+       }\r
+       return 0;\r
+}\r
+\r
+INTEGER SnarkRecFile::Open(const CHAR* FileName)\r
+{\r
+       // opens a file for reading\r
+\r
+       if (DIGFileSnarkRec::Open(FileName) != 0)\r
+       {\r
+               return 1;\r
+       }\r
+\r
+       if (GetSampling(&PixelSize) != 0)\r
+       {\r
+               return 2;\r
+       }\r
+\r
+       if (GetDimensions(&NumberOfElements) != 0)\r
+       {\r
+               return 3;\r
+       }\r
+\r
+       DataBuffer = new REAL[NumberOfElements * NumberOfElements];\r
+\r
+       RecNum = 0;\r
+       RecSetNum = 0;\r
+\r
+       return 0;\r
+}\r
+\r
+INTEGER SnarkRecFile::GetNelem(INTEGER* nelem)\r
+{\r
+\r
+       // returns the value of nelem\r
+\r
+       *nelem = NumberOfElements;\r
+\r
+       return 0;\r
+}\r
+\r
+INTEGER SnarkRecFile::GetPixSize(REAL* pixsize)\r
+{\r
+\r
+       // returns the value of nelem\r
+\r
+       *pixsize = PixelSize;\r
+       return 0;\r
+}\r
+\r
+INTEGER SnarkRecFile::GetProjName(CHAR pProjName[81])\r
+{\r
+       // returns the projection name\r
+\r
+       const CHAR* ProjName;\r
+\r
+       if (DIGFileSnarkRec::GetProjName(&ProjName) != 0)\r
+       {\r
+               return -1;\r
+       }\r
+\r
+       strncpy(pProjName, ProjName, 80);\r
+\r
+       pProjName[80] = 0;\r
+\r
+       return 0;\r
+}\r
+\r
+INTEGER SnarkRecFile::SetProjName(CHAR* pProjName)\r
+{\r
+       // changes the projection name (already set when opening file for writing)\r
+       return DIGFileSnarkRec::SetProjName(pProjName);\r
+}\r
+\r
+INTEGER SnarkRecFile::WritePhan(CHAR* pPhanName, REAL* pData)\r
+{\r
+       // flip image to DIGFile order\r
+       FlipImage(DataBuffer, pData);\r
+\r
+       // append to DIGFile\r
+       return AppendPhantom(pPhanName, "Phantom created by snark14", DataBuffer);\r
+}\r
+\r
+INTEGER SnarkRecFile::WriteRec(CHAR* pRecName, CHAR pAlgName[4],\r
+               unsigned INTEGER pCount, unsigned INTEGER pIter, REAL* pData)\r
+{\r
+\r
+       // writes a reconstruction array\r
+       // opens a new array set if necessary\r
+\r
+       // trim string for 3 letter algorithm names\r
+       if (pAlgName[3] == ' ')\r
+       {\r
+               pAlgName[3] = 0;\r
+       }\r
+\r
+       // convert to upper case\r
+       for (int i = 0; i < 4; i++)\r
+       {\r
+               pAlgName[i] = toupper(pAlgName[i]);\r
+       }\r
+\r
+       if (pCount == 1)\r
+       { // new  array set\r
+               if (AppendRecSet(pAlgName, pRecName, "") != 0)\r
+               {\r
+                       return 1;\r
+               }\r
+       }\r
+\r
+       // flip image to DIGFile order\r
+       FlipImage(DataBuffer, pData);\r
+\r
+       if (AppendRec(pCount, "Reconstruction created by snark14", DataBuffer) != 0)\r
+       {\r
+               return 2;\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
+INTEGER SnarkRecFile::ReadPhan(CHAR pPhantomName[81], REAL* pData)\r
+{\r
+       // reads a phatom array (first array set)\r
+       // if none exists, returns 2\r
+\r
+       const CHAR* PhantomName;\r
+\r
+       if (!PhantomPresent)\r
+       { // no phantom in file\r
+               return 2;\r
+       }\r
+\r
+       if (GetPhantomName(&PhantomName) != 0)\r
+       {\r
+               return 3;\r
+       }\r
+\r
+       strncpy(pPhantomName, PhantomName, 80);\r
+\r
+       pPhantomName[80] = 0;\r
+\r
+       if (GetPhantomData(DataBuffer) != 0)\r
+       {\r
+               return 5;\r
+       }\r
+\r
+       // flip image to Snark order\r
+       FlipImage(pData, DataBuffer);\r
+\r
+       unsigned int ArraySize;\r
+\r
+       GetArrayNoOfItems(&ArraySize);\r
+\r
+       ApplyLimits(ArraySize, pData);\r
+\r
+       return 0;\r
+}\r
+\r
+INTEGER SnarkRecFile::ApplyLimits(unsigned int pArraySize, REAL* pData)\r
+{\r
+       unsigned int i;\r
+\r
+       if (Modefl.lofl)\r
+       {\r
+               if (Modefl.upfl)\r
+               {\r
+                       for (i = 0; i < pArraySize; i++)\r
+                       {\r
+                               if (pData[i] < Modefl.lower)\r
+                                       pData[i] = Modefl.lower;\r
+                               if (pData[i] > Modefl.upper)\r
+                                       pData[i] = Modefl.upper;\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       for (i = 0; i < pArraySize; i++)\r
+                       {\r
+                               if (pData[i] < Modefl.lower)\r
+                                       pData[i] = Modefl.lower;\r
+                       }\r
+               }\r
+       }\r
+       else\r
+       {\r
+               if (Modefl.upfl)\r
+               {\r
+                       for (i = 0; i < pArraySize; i++)\r
+                       {\r
+                               if (pData[i] > Modefl.upper)\r
+                                       pData[i] = Modefl.upper;\r
+                       }\r
+               }\r
+       };\r
+\r
+       return 0;\r
+}\r
+\r
+INTEGER SnarkRecFile::ReadRec(CHAR pRecName[81], CHAR pAlgName[4],\r
+               unsigned INTEGER* pCount, unsigned INTEGER* pIter, REAL* pData)\r
+{\r
+       // reads the next reconstruction array\r
+\r
+       const char* AlgName;\r
+       const char* RecName;\r
+       unsigned INTEGER NoOfRecs;\r
+\r
+       // Reconstruction set\r
+       if (SelectRecSet(RecSetNum) != 0)\r
+       {\r
+               return 7;\r
+       }\r
+\r
+       // Reconstruction set header\r
+       if (GetRecSetName(&RecName) != 0)\r
+       {\r
+               return 1;\r
+       }\r
+\r
+       strncpy(pRecName, RecName, 80);\r
+\r
+       pRecName[80] = 0;\r
+\r
+       // Reconstruction set header\r
+       if (GetRecSetAlgName(&AlgName) != 0)\r
+       {\r
+               return 3;\r
+       }\r
+\r
+       pAlgName[0] = 0;\r
+\r
+       strncat(pAlgName, AlgName, 4);\r
+\r
+       // get number of recs in rec set\r
+       if (GetNoOfRecs(&NoOfRecs))\r
+       {\r
+               return 5;\r
+       }\r
+\r
+       // select reconstruction within reconstruction set\r
+       if (DIGFileSnarkRec::SelectRec(RecNum) != 0)\r
+       {\r
+               return 8;\r
+       }\r
+\r
+       /*\r
+        if(GetRecCount(pCount) != 0) {\r
+        return 4;\r
+        }\r
+        */\r
+       *pCount = RecNum + 1;\r
+\r
+       if (*pCount == NoOfRecs)\r
+       {\r
+               *pIter = 1;\r
+       }\r
+       else\r
+       {\r
+               *pIter = (*pCount - 1) % 50 + 2;\r
+       }\r
+\r
+       if (GetRecData(DataBuffer) != 0)\r
+       {\r
+               return 6;\r
+       }\r
+\r
+       // flip image to Snark order\r
+       FlipImage(pData, DataBuffer);\r
+\r
+       unsigned int ArraySize;\r
+\r
+       GetArrayNoOfItems(&ArraySize);\r
+\r
+       ApplyLimits(ArraySize, pData);\r
+\r
+       if (RecNum == (NoOfRecs - 1))\r
+       {  // if - end of recnstruction set\r
+               RecSetNum++;\r
+               RecNum = 0;\r
+       }\r
+       else\r
+       {                          // not end of recnstruction set\r
+               RecNum++;\r
+       }\r
+       return 0;\r
+}\r
+\r
+// closes the file     \r
+INTEGER SnarkRecFile::Close()\r
+{\r
+       if (DataBuffer != NULL)\r
+               delete[] DataBuffer;\r
+\r
+       return DIGFile::Close();\r
+}\r
+\r
+INTEGER SnarkRecFile::SelectRec(unsigned INTEGER pRecNo)\r
+{\r
+       // selects a reconstruction\r
+       // input: array number in file\r
+       // output: will set the array set number and the array number\r
+       // first array is 0\r
+\r
+       unsigned INTEGER NoOfRecSets;\r
+       unsigned INTEGER NoOfRecs;\r
+       unsigned INTEGER RecSetNo;\r
+       unsigned INTEGER RecNo;\r
+\r
+       if (GetNoOfRecSets(&NoOfRecSets) != 0)\r
+       {\r
+               return -1; // error\r
+       }\r
+\r
+       RecNo = pRecNo;\r
+\r
+       for (RecSetNo = 0; RecSetNo < NoOfRecSets; RecSetNo++)\r
+       {\r
+\r
+               // select reconstruction set\r
+               if (SelectRecSet(RecSetNo) != 0)\r
+               {\r
+                       return -1; // error\r
+               }\r
+\r
+               // get number of reconstructions in set\r
+               if (GetNoOfRecs(&NoOfRecs) != 0)\r
+               {\r
+                       return -1; // error\r
+               }\r
+\r
+               // Check if reconstruction in current set\r
+               if (RecNo < NoOfRecs)\r
+               { // reconstruction in curent reconstrction set\r
+\r
+                       RecSetNum = RecSetNo;\r
+                       RecNum = pRecNo;\r
+\r
+                       // select reconstruction within reconstruction set\r
+                       if (DIGFileSnarkRec::SelectRec(RecNum) != 0)\r
+                       {\r
+                               return -1;\r
+                       }\r
+                       return 0;\r
+               }\r
+\r
+               RecNum -= NoOfRecs;\r
+       }\r
+\r
+       return -1; // requested reconstruction number is too high\r
+}\r
diff --git a/src/snark/recfile.h b/src/snark/recfile.h
new file mode 100644 (file)
index 0000000..a6084f7
--- /dev/null
@@ -0,0 +1,60 @@
+/* \r
+ ***********************************************************\r
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $\r
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/recfile.h $\r
+ $LastChangedRevision: 94 $\r
+ $Date: 2014-07-02 18:53:30 -0400 (Wed, 02 Jul 2014) $\r
+ $Author: agulati $\r
+ ***********************************************************\r
+ */\r
+\r
+#ifndef RECFILE_H\r
+#define RECFILE_H\r
+\r
+#include <cstdio>\r
+\r
+#include "DIGFileSnarkRec.h"\r
+#include "blkdta.h"\r
+\r
+// these are the methods associated with the reconstruction file class\r
+\r
+extern class SnarkRecFile: private DIGFileSnarkRec\r
+{\r
+\r
+protected:\r
+\r
+       unsigned INTEGER NumberOfElements;\r
+       REAL PixelSize;\r
+       unsigned INTEGER RecSetNum;\r
+       unsigned INTEGER RecNum;\r
+\r
+       REAL* DataBuffer;\r
+\r
+       void FlipImage(REAL* Dst, REAL* Src);\r
+\r
+public:\r
+\r
+       INTEGER Open(const CHAR *FileName, INTEGER nelem, REAL pixsiz);\r
+       INTEGER Open(const CHAR *FileName);\r
+\r
+       INTEGER GetNelem(INTEGER *nelem);\r
+       INTEGER GetPixSize(REAL *pixsize);\r
+       INTEGER GetProjName(CHAR prjname[81]);\r
+       INTEGER SetProjName(CHAR *prjname);\r
+\r
+       INTEGER WritePhan(CHAR *phnname, REAL *data);\r
+       INTEGER WriteRec(CHAR *recname, CHAR alg_name[4], unsigned INTEGER count, unsigned INTEGER iter, REAL *data);\r
+\r
+       INTEGER ReadPhan(CHAR phnname[81], REAL *data);\r
+       INTEGER ReadRec(CHAR recname[81], CHAR alg_name[4], unsigned INTEGER *count, unsigned INTEGER *iter, REAL *data);\r
+\r
+       INTEGER Close();\r
+\r
+       INTEGER SelectRec(unsigned INTEGER RecNum);\r
+\r
+private:\r
+       INTEGER ApplyLimits(unsigned int pArraySize, REAL* pData);\r
+\r
+} RecFile;\r
+\r
+#endif\r
diff --git a/src/snark/recon.c b/src/snark/recon.c
new file mode 100644 (file)
index 0000000..bc5d4e1
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/recon.c $
+ $LastChangedRevision: 94 $
+ $Date: 2014-07-02 18:53:30 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of :*/
+
+/*--------------------------------------------------------------------------
+ Super Snark V 1.0
+ Written by Jingsheng Zheng... November 1992
+
+ Modified by Jolyon Browne... June 1993
+ ----------------------------------------------------------------------------*/
+
+#include <string.h>
+#include <strings.h>
+#include <stdlib.h>
+
+#include "experimenter.h"
+#include "errorc.h"
+#include "recon.h"
+
+/*--------------------------------------------------------------------------
+
+ This function echos the information stored in the file specified on
+ line 4 of the SuperSNARK input sequence. This information is sent to the
+ SNARK input stream.
+
+ INPUTS:
+ rec_flname - file containing information about the algorithms to be
+ executed. This is the file specified on line 4 of the
+ SuperSNARK input sequence.
+ exp_num - experiment number.
+ run_num - run number
+
+ OUTPUTS:
+ none
+ ----------------------------------------------------------------------------*/
+
+void recon(char* rec_flname, int exp_num, int run_num)
+{
+       char string[MAXLINESIZE];
+       FILE *recfl;
+
+       if ((recfl = fopen(rec_flname, "r")) == NULL)
+       {
+               errorc("error in opening file", rec_flname);
+       }
+
+       while ((fgets(string, sizeof(string), recfl)) != NULL)
+       {
+               while (isSkip(string)) //it's a comment line,
+               {                    //echo it to output and read next line
+                       if (isComment(string))
+                               fprintf(pstream, "%s", string);
+                       if (fgets(string, sizeof(string), recfl) == NULL)
+                               break;
+               }
+               if (strncasecmp(string, "exec", 4) == 0)
+               {
+                       fprintf(pstream, "%s", string);
+                       if ((fgets(string, sizeof(string), recfl)) != NULL)
+                       {
+                               while (isSkip(string)) //it's a comment line,
+                               {                    //echo it to output and read next line
+                                       if (isComment(string))
+                                               fprintf(pstream, "%s", string);
+                                       if (fgets(string, sizeof(string), recfl) == NULL)
+                                               break;
+                               }
+                               string[strlen(string) - 1] = '\0';
+                       }
+                       fprintf(pstream, "%s experiment= %d run= %d\n", string, exp_num, run_num);
+               }
+               else
+               {
+                       fprintf(pstream, "%s", string);
+               }
+       }
+
+       fclose(recfl);
+}
diff --git a/src/snark/recon.h b/src/snark/recon.h
new file mode 100644 (file)
index 0000000..8548683
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/recon.h $
+ $LastChangedRevision: 94 $
+ $Date: 2014-07-02 18:53:30 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef RECON_H
+#define RECON_H
+
+void recon(char* rec_flname, int exp_num, int run_num);
+
+#endif
+
diff --git a/src/snark/region.cpp b/src/snark/region.cpp
new file mode 100644 (file)
index 0000000..fc59ffc
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/region.cpp $
+ $LastChangedRevision: 94 $
+ $Date: 2014-07-02 18:53:30 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "region.h"
+
+class region_class Region;
diff --git a/src/snark/region.h b/src/snark/region.h
new file mode 100644 (file)
index 0000000..0d987a6
--- /dev/null
@@ -0,0 +1,36 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/region.h $
+ $LastChangedRevision: 94 $
+ $Date: 2014-07-02 18:53:30 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef REGION_H
+#define REGION_H
+
+#include "blkdta.h"
+/*
+ common /region/ ix1,ix2,iy1,iy2,xd0,yd0,d1,d2,aplus,bplus,asq,bsq
+ */
+
+extern class region_class
+{
+public:
+       INTEGER ix1;
+       INTEGER ix2;
+       INTEGER iy1;
+       INTEGER iy2;
+       REAL xd0;
+       REAL yd0;
+       REAL d1;
+       REAL d2;
+       REAL aplus;
+       REAL bplus;
+       REAL asq;
+       REAL bsq;
+} Region;
+
+#endif
diff --git a/src/snark/rfl.cpp b/src/snark/rfl.cpp
new file mode 100644 (file)
index 0000000..4115d9e
--- /dev/null
@@ -0,0 +1,346 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/rfl.cpp $
+ $LastChangedRevision: 94 $
+ $Date: 2014-07-02 18:53:30 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ RHO-FILTERED LAYERGRAM RECONSTRUCTION METHOD
+ THE CONTROL CARD FOLLOWING THE EXECUTE CARD CONTAINS (IN THE
+ SNARK FREE FORMAT) THE FOLLOWING INFORMATION:
+ 1) THE DESIRED FILTER ("BAND", "SINC", "COSINE" OR "HAMMING")
+ 2) THE CUTOFF PARAMETER (OR THE VALUE OF ALPHA FOR HAMMING)
+ 3) THE INTERPOLATION METHOD DESIRED
+ 4) BACK PROJECTION REGION SIZE (OPTIONAL)
+ THE FILTERS ARE CIRCULARLY SYMMETRIC VERSIONS OF THE
+ CORRESPONDING FILTERS USED IN THE CONVOLUTION ALGORITHM.
+ THE BAND LIMITING FILTER CORRESPONDS TO THE FILTER USED BY
+ BRACEWELL + RIDDLE[1] AND RAMACHANDRAN + LAKSHMINARAYANAN[2].
+ THE SINC FILTER IS A GENERALIZATION OF THE FILTER USED BY SHEPP
+ + LOGAN[2].
+ THE COSINE FILTER IS A COMMON LOWPASS FILTER APPLIED TO THE
+ RECONSTRUCTION PROBLEM.
+ THE HAMMING FILTER IS THE GENERALIZED HAMMING FILTER, A SPECIAL
+ CASE OF WHICH WAS USED BY CHESLER + RIEDERER[4].
+ THE CUTOFF VALUE REPRESENTS THE FRACTION OF THE FOURIER SPACE
+ POWER RELATIVE TO THE RAY SPACING TO INCLUDE IN THE RECONSTRUCTION
+ A CUTOFF AT THE FOLDING FREQUENCY OF THE 2D FOURIER TRANSFORM
+ CORRESPONDS TO CUTOFF=PINC/PIXSIZ.  WHEN "CUTOFF" IS GIVEN AS 0.0,
+ IT IS SET TO 1.0.  WHEN "CUTOFF" IS NEGATIVE, IT IS SET TO
+ "2.0*PRJNUM*PINC/(PI*NELEM*PIXSIZ)".
+ THE BACK PROJECTION REGION SIZE MAY BE USER SPECIFIED AS
+ ANY EVEN NUMBER GREATER THAN NELEM (WITHIN REASON), OR IF NOT
+ GIVEN DEFAULTS TO NELEM+1.
+ EXAMPLE CONTROL CARD SEQUENCE
+ EXECUTE RFL
+ BAND LIMITING CUTOFF = -1.0 INTERPOLATION = 2
+ WARNING.....
+ THIS VERSION OF THE RFL METHOD WEIGHTS PROJECTION "NP"
+ BY "(THETA(NP+1)-THETA(NP-1))/2.0".  IN ORDER TO ACCOMPLISH THIS
+ IT IS ASSUMED THAT THE PROJECTIONS ARE ARRANGED IN INCREASING
+ ORDER ON THETA AND THAT THETA(PRJNUM)-THETA(1) IS LESS THAN
+ PI IN THE PARALLEL CASE OR TWOPI IN THE DIVERGENT CASE.
+ REFERENCES:
+ [1]  BRACEWELL + RIDDLE, INVERSION OF FAN-BEAM SCANS IN RADIO
+ ASTROMOMY, ASTROPHYS. J., V.150, PP.427-434 (1967).
+ [2]  RAMACHANDRAN + LAKSHMINARAYANAN, THREE-DIMENSIONAL
+ RECONSTRUCTION FROM RADIOGRAPHS AND ELECTRON MICROGRAPHS:
+ APPLICATION OF CONVOLUTIONS INSTEAD OF FOURIER TRANSFORMS,
+ PROC. NAT. ACAD. SCI. U.S., V.68, PP.2236-2240 (1971).
+ [3]  SHEPP + LOGAN, THE FOURIER RECONSTRUCTION OF A HEAD SECTION,
+ IEEE TRANS. NUCL. SCI., NS-21, PP.21-43 (1974).
+ [4]  CHESLER + RIEDERER, RIPPLE SUPPRESSION DURING RECONSTRUCTION
+ IN TRANSVERSE TOMOGRAPHY, PHYS. MED. BIOL., V.20, PP.632-636
+ (1975).
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "fourie.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "int2str.h"
+#include "rtfort.h"
+#include "bckprj.h"
+#include "qfilt.h"
+#include "anglst.h"
+
+#include "projfile.h"
+#include "infile.h"
+
+#include "rfl.h"
+
+BOOLEAN rfl_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       REAL* reco = NULL;   //wei, 3/2005
+       REAL* g;
+       INTEGER gnum;
+
+       INTEGER word;
+
+       REAL thmod;
+       REAL thfac;
+       INTEGER melen;
+       INTEGER narea;
+       INTEGER nn;
+       INTEGER ndelta;
+       REAL theta;
+       REAL sinth;
+       REAL costh;
+       REAL theta0;
+       INTEGER np;
+       REAL theta1;
+       INTEGER np2;
+       REAL theta2;
+       REAL sinth2;
+       REAL costh2;
+       REAL w;
+       INTEGER nr;
+       REAL topinc;
+       REAL scale;
+       INTEGER nrow;
+       INTEGER ncol;
+       INTEGER ind;
+       INTEGER i;
+       INTEGER ip;
+       INTEGER j;
+       INTEGER jp;
+       REAL r;
+       REAL factr;
+       REAL sum;
+       REAL diff;
+       INTEGER index;
+       INTEGER offset;
+
+       BOOLEAN eol;
+       INTEGER n[3], filter;
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 16, 2004
+       static const INTEGER fname[4] =
+       {
+                       CHAR2INT('b', 'a', 'n', 'd'), CHAR2INT('s', 'i', 'n', 'c'),
+                       CHAR2INT('c', 'o', 's', 'i'), CHAR2INT('h', 'a', 'm', 'm') };
+
+       // INITIALIZATION
+
+       ///xalg6=.false.
+       if (iter > 1)
+               return FALSE;
+       thmod = Consts.pi;
+       thfac = 2.0;
+       if (!GeoPar.par)
+       {
+               thmod = Consts.twopi;
+               thfac = 4.0;
+       }
+       word = InFile.getwrd(TRUE, &eol, fname, 4);
+
+       for (filter = 0; filter < 4; filter++)
+       {
+               if (word == fname[filter])
+                       goto L30;
+       }
+
+       fprintf(output, "\n***** %4s is not a valid filter name", int2str(word));
+       return TRUE;
+
+       L30: Fourie.cutoff = InFile.getnum(FALSE, &eol);
+       Fourie.interp = InFile.getint(FALSE, &eol);
+
+       if (eol)
+       {
+               fprintf(output, "\n *** not enough parameters");
+               return TRUE;
+       }
+
+       melen = InFile.getint(FALSE, &eol);
+       if (Fourie.cutoff < 0.0)
+               Fourie.cutoff = (REAL) 2.0 * GeoPar.prjnum * GeoPar.pinc / ((REAL) Consts.pi * GeoPar.nelem * GeoPar.pixsiz);
+       if (Fourie.cutoff <= Consts.zero)
+               Fourie.cutoff = 1.0;
+       if (Fourie.cutoff > 1.0)
+               Fourie.cutoff = 1.0;
+       fprintf(output, "\n           rho-filtered layergram reconstruction algorithm");
+       fprintf(output, "\n           using filter %4s", int2str(word));
+       fprintf(output, "\n           cutoff (or alpha) = %9.4f", Fourie.cutoff);
+
+       if ((Fourie.interp < -1) || (Fourie.interp > 6))
+       {
+               fprintf(output, "\n invalid interpolation %4i", Fourie.interp);
+               return TRUE;
+       }
+
+       if (Fourie.interp > 0)
+       {
+               fprintf(output, "\n         %2i point lagrange interpolation", Fourie.interp);
+       }
+       if (Fourie.interp < 0)
+       {
+               fprintf(output, "\n           cubic spline interpolation");
+       }
+       if (Fourie.interp == 0)
+       {
+               fprintf(output, "\n           band limiting (sinc) interpolation");
+       }
+       if (!(melen > 0))
+       {
+               melen = GeoPar.nelem + 1;
+       }
+
+       if (melen < GeoPar.nelem)
+       {
+               fprintf(output, "\n***** melen is less than nelem, melen= %4i", melen);
+               return TRUE;
+       }
+
+       fprintf(output, "\n           backprojection is performed on a %5i x %5i region", melen, melen);
+
+       n[0] = melen;
+       n[1] = melen / 2;
+       n[2] = 1;
+
+       if ((2 * n[1]) != melen)
+       {
+               fprintf(output, "\n***** melen must be even, melen= %4i", melen);
+               return TRUE;
+       }
+
+       narea = (melen + 2) * melen;
+
+       reco = new REAL[narea];
+
+       for (nn = 0; nn < narea; nn++)
+       {
+               reco[nn] = 0.0;
+       }
+
+       // G IS THE BASE OF PROJECTION DATA
+
+       ndelta = 2 * Fourie.interp;
+       if (Fourie.interp < 0)
+               ndelta = 6;
+       gnum = GeoPar.numray(melen, GeoPar.pixsiz) + ndelta;
+
+       g = new REAL[gnum];
+
+       // BEGIN THE RECONSTRUCTION
+
+       Anglst.getang(GeoPar.prjnum - 1, &theta, &sinth, &costh);
+
+       theta0 = theta - thmod;
+
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+
+               ProjFile.ReadProj(np, g, gnum);
+
+               Anglst.getang(np, &theta1, &sinth, &costh);
+
+               // COMPUTE THE WEIGHT FOR THE PROJECTION
+
+               np2 = np + 1;
+
+               if (np == (GeoPar.prjnum - 1))
+                       np2 = 0;
+
+               Anglst.getang(np2, &theta2, &sinth2, &costh2);
+
+               if (np == (GeoPar.prjnum - 1))
+                       theta2 += thmod;
+
+               w = (theta2 - theta0) / thfac;
+
+               if (w <= 0.0)
+               {
+                       fprintf(output, "\n *** angles are not in increasing order");
+                       if (reco != NULL)
+                               delete[] reco;   //wei 3/2005
+                       return TRUE;
+               }
+
+               Fourie.rinc = GeoPar.pinc;
+               if (GeoPar.div)
+                       Fourie.rinc *= GeoPar.radius / GeoPar.stod;
+               if (GeoPar.vri)
+                       Fourie.rinc = (REAL) (Fourie.rinc * MAX0(fabs(sinth), fabs(costh)));
+               if (GeoPar.strip)
+                       w /= Fourie.rinc;
+               theta0 = theta1;
+
+               for (nr = 0; nr < gnum; nr++)
+               {
+                       g[nr] *= w;
+               }
+               // BACK PROJECT THE DATA
+               bckprj(reco, melen, g, gnum, sinth, costh, GeoPar.pixsiz / Fourie.rinc, Fourie.interp);
+
+       }
+
+       // COMPUTE 2-D FOURIER TRANSFORM
+       delete[] g;  // bug 92 - Lajos - 03/02/2005
+
+       rtfort(reco, n, 1);
+
+       // MULTIPLY BY FILTER
+       topinc = (REAL) (2.0 * GeoPar.pinc);
+
+       scale = topinc / (melen * GeoPar.pixsiz);
+
+       nrow = melen / 2 + 1;
+       ncol = melen;
+       ind = -2;
+
+       for (i = 0; i < ncol; i++)
+       {
+               ip = MIN0(i, melen - i);
+               for (j = 0; j < nrow; j++)
+               {
+                       jp = j;
+                       ind += 2;
+                       r = (REAL) (sqrt(((REAL) (ip * ip + jp * jp))) * scale);
+                       factr = qfilt(r, Fourie.cutoff, filter) / topinc;
+
+                       reco[ind] *= factr;
+                       reco[ind + 1] *= factr;
+               }
+       }
+
+       // INVERSE FOURIER TRANSFORM
+       rtfort(reco, n, -1);
+
+       // SCALE TO ESTIMATED AVERAGE DENSITY
+       sum = 0.0;
+       offset = (melen - 1 - GeoPar.nelem) / 2;
+
+       ind = 0;
+       for (i = 0; i < GeoPar.nelem; i++)
+       {
+               index = (i + offset) * melen + offset;
+               for (j = 0; j < GeoPar.nelem; j++)
+               {
+                       recon[ind] = reco[index];
+                       sum += reco[index];
+                       ind++;
+                       index++;
+               }
+       }
+
+       diff = GeoPar.aveden - sum / GeoPar.area;
+
+       for (i = 0; i < GeoPar.area; i++)
+       {
+               recon[i] += diff;
+       }
+
+       if (reco != NULL)
+               delete[] reco;   //wei,3/2005
+               return FALSE;
+}
+
diff --git a/src/snark/rfl.h b/src/snark/rfl.h
new file mode 100644 (file)
index 0000000..4b6a088
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/rfl.h $
+ $LastChangedRevision: 94 $
+ $Date: 2014-07-02 18:53:30 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef RFL_H
+#define RFL_H      
+
+#include "alg.h"
+
+class rfl_class: public alg_class
+{
+private:
+
+public:
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+
+};
+
+#endif // RFL_H   
diff --git a/src/snark/rtfort.cpp b/src/snark/rtfort.cpp
new file mode 100644 (file)
index 0000000..c6b7f30
--- /dev/null
@@ -0,0 +1,280 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/rtfort.cpp $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ ************************************************************
+
+ SUBROUTINE RTFORT(X, N, INVDIR)
+
+ PURPOSE
+ RTFORT COMPUTES THE HERMITIAN FOURIER SPECTRUM OF A ONE OR TWO
+ DIMENSIONAL ARRAY OF REAL DATA (IF INVDIR=1), OR  THE REAL DATA
+ CORRESPONDING TO THIS SPECTRUM (IF INVDIR=-1).
+
+ USAGE
+ TO COMPUTE DIRECT FOURIER TRANSFORM OF REAL ARRAY X (INVDIR=1)
+ CALL RTFORT( X, N, INVDIR )
+ HALF OF THE CONJUGATE-SYMMETRIC (HERMITIAN) SPECTRUM
+ IS NOW STORED IN X AS COMPLEX FOURIER COEFFICIENTS.
+ TO COMPUTE INVERSE TRANSFORM OF SEMI-SPECTRUM (INVDIR = -1)
+ CALL RTFORT(X, N, INVDIR)
+ ARRAY X NOW CONTAINS REAL DATA.
+
+ PARAMETERS
+ X
+ ONE DIMENSIONAL, N(1)=1 : X CONTAINS 2*N(2) REAL NUMBERS IN
+ CONSECUTIVE LOCATIONS AS INPUT TO DIRECT TRANSFORM OR AS RESULT
+ OF INVERSE TRANSFORM.  THE SEMI-SPECTRUM CONSISTS OF ( N(2) + 1
+ COMPLEX COEFFICIENTS STORED IN 2*N(2) + 2 LOCATIONS OF X.
+
+ TWO DIMENSIONAL : X IS A REAL ARRAY OF (FAST*SLOW) DIMENSIONS
+ 2N(2) * N(1) AS INPUT TO DIRECT TRANSFORM OR AS RESULT OF
+ INVERSE TRANSFORM.  THE SEMI-SPECTRUM CONSISTS OF
+ ( N(2) + 1 ) * N(1)  (FAST*SLOW) COMPLEX FOURIER COEFFICIENTS
+ STORED IN ( 2*N(2) + 2 ) * N(1) LOCATIONS OF X.
+
+ N.B.  X MUST BE DIMENSIONED TO ACCOMODATE THE SEMI-SPECTRUM,
+ WHICH REQUIRES MORE STORAGE THAN ITS CORRESPONDING REAL ARRAY.
+
+ N
+ A 3-ELEMENT VECTOR, N(1)= SLOW DIMENSION OF X ARRAY
+ 2*N(2) = FAST DIMENSION OF REAL X ARRAY (AN EVEN NUMBER)
+ N(3) = 1 (ONLY 2-DIMENSIONAL ARRAYS ALLOWED)
+ THE VALUES OF N(1) AND N(2) MUST BE COMPATIBLE WITH THE
+ PARTICULAR COMPLEX FFT ROUTINE USED (E.G. SNFFT, HARM).
+
+ INVDIR = 1   FOR DIRECT (FORWARD) TRANSFORM
+ = -1  FOR INVERSE TRANSFORM
+
+ SUBROUTINE CALLED:  TRANSM
+
+ BASED ON R2FORT SUBROUTINE WRITTEN BY T.M.PETERS, JUNE 1971,
+ FOR USE WITH RADIX TWO FFT.  RTFORT EXTENDS CAPABILITY TO
+ RADIX ODD TRANSFORMS.        R.M. LEWITT, SEPT 1977.
+
+ **************************************************************
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "snfft.h"
+#include "transm.h"
+#include "consts.h"
+
+#include "rtfort.h"
+
+void rtfort(REAL* x, INTEGER* nin, INTEGER invdir)
+{
+
+       INTEGER n[3];
+
+       INTEGER m;
+       INTEGER ns;
+       INTEGER m1;
+       INTEGER mm;
+       INTEGER mm2;
+       REAL sd;
+       REAL cd;
+       REAL sn;
+       REAL cn;
+       INTEGER if_1;
+       INTEGER ib;
+       REAL ct;
+       REAL ca;
+       INTEGER mtype;
+       INTEGER index;
+       INTEGER k;
+       INTEGER ishift;
+       INTEGER i;
+       INTEGER igap;
+       INTEGER jt;
+       INTEGER i1;
+       INTEGER j1;
+       INTEGER j2;
+       INTEGER k1;
+       INTEGER nl;
+
+       n[0] = nin[0];
+       n[1] = nin[1];
+       n[2] = 1;
+
+       if (invdir == 1)
+       {
+               snfft(x, n, invdir);
+       }
+
+       m = n[1];
+       ns = n[0];
+       m1 = m + 1;
+       mm = m + m;
+       mm2 = mm + 2;
+
+       // INITIALISE PARAMETERS FOR RECURSIVE GENERATION OF SINES
+       // AND COSINES
+       sd = Consts.pid2 / m;
+       cd = ((REAL) 2.0) * SQR((REAL) sin(sd));
+
+       sd = (REAL) -sin(sd + sd);
+
+       // ASSUMING THE DIRECT FOURIER TRANSFORM HAS EXP(-I...)
+       // IF DIRECT FT ROUTINE HAS EXP(+I...) FACTOR, THEN
+       // REPLACE ABOVE STATEMENT BY
+       // SD=SIN(SD+SD)
+
+       sn = 0.;
+       if (!(ns > 1))
+       {
+
+               // ONE DIMENSIONAL CASE
+               if (!(invdir < 0))
+               {
+
+                       // FORWARD TRANSFORM
+                       cn = 1.;
+
+                       // REPEAT FIRST TWO REAL NUMBERS AT ARRAY END FOR PERIODICITY.
+                       x[mm + 0] = x[0];
+                       x[mm + 1] = x[1];
+               }
+               else
+               {
+
+                       // INVERSE TRANSFORM
+                       cn = -1.;
+                       sd = -sd;
+               }
+
+               // APPLY TRANSFORM SYMMETRY RELATIONS
+               for (if_1 = 0; if_1 < m1; if_1 += 2)
+               {
+                       ib = mm - if_1;
+                       transm(x, if_1, ib, sn, cn);
+                       ct = cn - (cd * cn + sd * sn);
+                       sn = sn + (sd * cn - cd * sn);
+                       ca = ((REAL) 0.5) / (SQR(ct) + SQR(sn)) + ((REAL) 0.5);
+                       sn = ca * sn;
+                       cn = ca * ct;
+               }
+
+               if (!(invdir > 0))
+               {
+
+                       // FOR INVERSE TRANSFORM, ZERO LAST TWO ARRAY ELEMENTS
+                       x[mm + 0] = 0.;
+                       x[mm + 1] = 0.;
+               }
+       }
+       else
+       {
+               // TWO DIMENSIONAL CASE
+               // MTYPE = 0 (1)  FOR  M ODD (EVEN)
+               mtype = (m / 2) * 2 - m + 1;
+               if (!(invdir < 0))
+               {
+                       cn = 1.;
+
+                       // FORWARD TRANSFORM. EXPAND ARRAY TO TRANSFORM FORMAT
+                       index = ns * mm;
+                       for (k = 1; k <= ns; k++)
+                       {
+                               ishift = (ns - k) * 2;
+                               for (i = 0; i < mm; i++)
+                               {
+                                       index--;
+                                       x[index + ishift] = x[index];
+                               }
+                               igap = index + ishift + mm;
+                               x[igap] = x[index];
+                               x[igap + 1] = x[index + 1];
+                       }
+               }
+               else
+               {
+
+                       // INVERSE TRANSFORM
+                       cn = -1.;
+                       sd = -sd;
+               }
+
+               jt = (ns + 1) * mm2;
+               for (i1 = 0; i1 < m; i1 += 2)
+               {
+                       // K=0 CASE SEPARATELY
+                       j1 = i1;
+                       j2 = mm - i1;
+                       transm(x, j1, j2, sn, cn);
+
+                       index = 0;
+                       for (k1 = 1; k1 < ns; k1++)
+                       {
+                               index += mm2;
+                               j1 = index + i1;
+                               j2 = jt - j1 - 2;
+                               transm(x, j1, j2, sn, cn);
+                       }
+
+                       ct = cn - (cd * cn + sd * sn);
+                       sn = sn + (sd * cn - cd * sn);
+                       ca = ((REAL) 0.5) / (SQR(ct) + SQR(sn)) + ((REAL) 0.5);
+                       sn = ca * sn;
+                       cn = ca * ct;
+               }
+
+               if (!(mtype == 0))
+               {
+
+                       // M EVEN, TAKE I1=M1 AS SPECIAL CASE
+                       m1 -= 1;             // decrement m1 - swr 11/25/04
+                       i1 = m1;
+                       transm(x, m1, m1, sn, cn);
+                       nl = ns / 2 + 1;
+                       index = 0;
+                       for (k1 = 2; k1 <= nl; k1++)
+                       {   // k => k1 - swr 11/25/04
+                               index += mm2;
+                               j1 = index + m1;
+                               j2 = jt - j1 - 2;  // decrement by 2 - swr 11/25/04
+                               transm(x, j1, j2, sn, cn);
+                       }
+               }
+
+               if (!(invdir > 0))
+               {
+
+                       // INVERSE TRANSFORM, REVERT TO ORIGINAL FORMAT
+                       index = mm;
+                       for (k = 1; k < ns; k++)
+                       {
+                               ishift = k * 2;
+                               for (i = 1; i <= mm; i++)
+                               {
+                                       //index++;
+                                       x[index] = x[index + ishift];
+                                       index++;
+                               }
+                       }
+
+                       // ZERO REMAINDER OF REAL ARRAY
+                       j1 = index;
+                       j2 = ns * mm2;
+                       for (i = j1; i < j2; i++)
+                       {
+                               x[i] = 0.;
+                       }
+               }
+       }
+
+       if (invdir == -1)
+       {
+               snfft(x, n, invdir);
+       }
+
+       return;
+}
diff --git a/src/snark/rtfort.h b/src/snark/rtfort.h
new file mode 100644 (file)
index 0000000..d7db59a
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/rtfort.h $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef RTFORT_H
+#define RTFORT_H      
+
+void rtfort(REAL* x, INTEGER* nin, INTEGER invdir);
+
+#endif      
diff --git a/src/snark/sart.cpp b/src/snark/sart.cpp
new file mode 100644 (file)
index 0000000..e5a8ce0
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sart.cpp $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdio>
+#include <iostream>
+#include "sart.h"
+#include "anglst.h"
+#include "pseudo.h"
+#include "GeometricBehaviour.h"
+#include "SARTConfig.h"
+
+using namespace std;
+
+sart::~sart() {
+       this->Reset();
+}
+
+GeometricBehaviour* sart::geometricBehaviour = NULL;
+REAL sart::relaxationParameter = 1.0;
+REAL sart::zeroThreshold = 0.0;
+
+INTEGER sart::Init() {
+       this->geometricBehaviour = GeometricBehaviour::getInstance();
+       return 0;
+}
+
+INTEGER sart::Reset() {
+       if (this->geometricBehaviour != NULL) {
+               delete this->geometricBehaviour;
+               this->geometricBehaviour = NULL;
+       }
+
+       this->relaxationParameter = 1.0;
+       this->zeroThreshold = 0.0;
+
+       return 0;
+}
+
+BOOLEAN sart::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter) {
+
+       // read configuration on first iteration
+       if (iter == 1) {
+               SARTConfig::readSARTConfiguration();
+               this->relaxationParameter = SARTConfig::relaxiation;
+               this->zeroThreshold = SARTConfig::zeroThreshold;
+       }
+
+       INTEGER numberOfPixels;
+       REAL snorm = 0;
+
+       REAL raySumMeasured;
+
+       REAL currentRaySum;
+
+       REAL rayWeightSum;
+       REAL* pixelRayWeight = new REAL[this->geometricBehaviour->getArea()];
+       REAL* pixelRayWeightSum = new REAL[this->geometricBehaviour->getArea()];
+
+       REAL* correction = new REAL[this->geometricBehaviour->getArea()];
+
+       // initialize values which are calculated once per iteration
+       for (int i = 0; i < this->geometricBehaviour->getArea(); i++) {
+               pixelRayWeight[i] = 0.0;
+               pixelRayWeightSum[i] = 0.0;
+               correction[i] = 0.0;
+       }
+
+       // loop through all rays
+       for (int projectionNr = 0; projectionNr < GeoPar.prjnum; projectionNr++) {
+               for (int rayNr = 0; rayNr < GeoPar.nrays; rayNr++) {
+
+                       raySumMeasured = Anglst.prdta(projectionNr, rayNr);
+
+                       this->geometricBehaviour->getRayTrace(projectionNr, rayNr, list,
+                                       weight, &numberOfPixels, &snorm);
+
+                       // calculate current raysum
+                       currentRaySum = 0.0;
+                       rayWeightSum = 0.0;
+
+                       for (int i = 0; i < numberOfPixels; i++) {
+                               currentRaySum += recon[list[i]] * weight[i];
+                               rayWeightSum += weight[i];
+                               pixelRayWeight[list[i]] = weight[i];
+                               pixelRayWeightSum[list[i]] += weight[i];
+                       }
+
+                       if (rayWeightSum < this->zeroThreshold) {
+                               continue;
+                       }
+
+                       for (int i = 0; i < numberOfPixels; i++) {
+                               correction[list[i]] += pixelRayWeight[list[i]]
+                                               * (raySumMeasured - currentRaySum) / rayWeightSum;
+                               pixelRayWeight[list[i]] = 0.0;
+                       }
+               }
+       }
+
+       // update pixel
+       for (int i = 0; i < this->geometricBehaviour->getArea(); i++) {
+
+               if (pixelRayWeightSum[i] < this->zeroThreshold) {
+                       continue;
+               }
+
+               REAL oldRecon = recon[i];
+               recon[i] += this->relaxationParameter / pixelRayWeightSum[i]
+                               * correction[i];
+               if (recon[i] < 0.0) {
+                       recon[i] = 0.0;
+               }
+       }
+
+       delete[] pixelRayWeight;
+       delete[] pixelRayWeightSum;
+       delete[] correction;
+
+       return false;
+}
diff --git a/src/snark/sart.h b/src/snark/sart.h
new file mode 100644 (file)
index 0000000..bf626fb
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sart.h $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SART_H
+#define SART_H
+
+#include "alg.h"
+#include "GeometricBehaviour.h"
+
+class sart: public alg_class
+{
+
+private:
+       static GeometricBehaviour* geometricBehaviour;
+       static REAL relaxationParameter; // the relaxation parameter
+       static REAL zeroThreshold; // the threshold when a value is set to zero
+
+public:
+       virtual INTEGER Init();
+       virtual BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+       virtual INTEGER Reset();
+
+       virtual ~sart();
+};
+
+#endif
diff --git a/src/snark/sec_cri.cpp b/src/snark/sec_cri.cpp
new file mode 100644 (file)
index 0000000..98411cf
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri.cpp $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "sec_cri.h"
+
+void sec_cri_class::Init()
+{
+}
+REAL sec_cri_class::Run(REAL* image)
+{
+       return -1;
+}
diff --git a/src/snark/sec_cri.h b/src/snark/sec_cri.h
new file mode 100644 (file)
index 0000000..e7d6511
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri.h $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SEC_CRI_H
+#define SEC_CRI_H
+
+#include "blkdta.h"
+
+class sec_cri_class
+{
+public:
+       virtual void Init();
+       virtual REAL Run(REAL* image);
+};
+
+#endif
diff --git a/src/snark/sec_cri1.cpp b/src/snark/sec_cri1.cpp
new file mode 100644 (file)
index 0000000..c41e0dd
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri1.cpp $
+ $LastChangedRevision: 107 $
+ $Date: 2014-07-07 12:06:15 -0400 (Mon, 07 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+ */
+
+#include "sec_cri1.h"
+#include "math.h"
+#include "anglst.h"
+#include "blob.h"
+
+using namespace std;
+
+REAL sec_cri1_class::Run(REAL* image)
+{
+       INTEGER dimensions = GeoPar.nelem;
+       // pixels over which to iterate (skip last line and new bottom right pixel)
+       INTEGER pixelcount = GeoPar.area - dimensions - 2;
+
+       REAL tau = 0;
+       for (INTEGER i = 1; i < pixelcount; i++)
+       {
+               // skip right-most column
+               if (i % (dimensions) == 0) continue;
+
+               tau += sqrt(pow(image[i - 1] - image[i - 1 + dimensions], 2) + pow(image[i - 1] - image[i], 2));
+       }
+
+       return tau;
+}
diff --git a/src/snark/sec_cri1.h b/src/snark/sec_cri1.h
new file mode 100644 (file)
index 0000000..5aff902
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri1.h $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SEC_CRI1_H
+#define SEC_CRI1_H
+
+#include "sec_cri.h"
+
+class sec_cri1_class: public sec_cri_class
+{
+       REAL Run(REAL* image);
+};
+
+#endif
diff --git a/src/snark/sec_cri2.cpp b/src/snark/sec_cri2.cpp
new file mode 100644 (file)
index 0000000..7acf7b6
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri2.cpp $
+ $LastChangedRevision: 107 $
+ $Date: 2014-07-07 12:06:15 -0400 (Mon, 07 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+ */
+
+#include "sec_cri2.h"
+#include "math.h"
+#include "anglst.h"
+#include "blob.h"
+
+using namespace std;
+
+REAL sec_cri2_class::Run(REAL* image)
+{
+       INTEGER dimensions = GeoPar.nelem;
+       // pixels over which to iterate (skip last line and new bottom right pixel)
+       INTEGER pixelcount = GeoPar.area - dimensions - 2;
+
+       REAL psi = 0;
+       for (INTEGER i = dimensions + 2; i < pixelcount; i++)
+       {
+               // skip right-most column
+               if (i % (dimensions) == 0) continue;
+               // skip left column
+               if (i % (dimensions) == 1) continue;
+
+               psi += pow(image[i - 1] - ((image[i - 1 - dimensions - 1] + image[i - 1 - dimensions] + image[i - dimensions] + image[i - 2] + image[i] + image[i - 1 + dimensions - 1] + image[i - 1 + dimensions] + image[i + dimensions]) / 8), 2);
+       }
+
+       return psi;
+}
diff --git a/src/snark/sec_cri2.h b/src/snark/sec_cri2.h
new file mode 100644 (file)
index 0000000..1c85228
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri2.h $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SEC_CRI2_H
+#define SEC_CRI2_H
+
+#include "sec_cri.h"
+
+class sec_cri2_class: public sec_cri_class
+{
+       REAL Run(REAL* image);
+};
+
+#endif
diff --git a/src/snark/sec_cri3.cpp b/src/snark/sec_cri3.cpp
new file mode 100644 (file)
index 0000000..de2b443
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri3.cpp $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "sec_cri3.h"
+
+using namespace std;
+
+REAL sec_cri3_class::Run(REAL* image)
+{
+       return -1;
+}
diff --git a/src/snark/sec_cri3.h b/src/snark/sec_cri3.h
new file mode 100644 (file)
index 0000000..612feda
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri3.h $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SEC_CRI3_H
+#define SEC_CRI3_H
+
+#include "sec_cri.h"
+
+class sec_cri3_class: public sec_cri_class
+{
+       REAL Run(REAL* image);
+};
+
+#endif
diff --git a/src/snark/sec_cri4.cpp b/src/snark/sec_cri4.cpp
new file mode 100644 (file)
index 0000000..7612985
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri4.cpp $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "sec_cri4.h"
+
+using namespace std;
+
+REAL sec_cri4_class::Run(REAL* image)
+{
+       return -1;
+}
diff --git a/src/snark/sec_cri4.h b/src/snark/sec_cri4.h
new file mode 100644 (file)
index 0000000..59496ff
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri4.h $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SEC_CRI4_H
+#define SEC_CRI4_H
+
+#include "sec_cri.h"
+
+class sec_cri4_class: public sec_cri_class
+{
+       REAL Run(REAL* image);
+};
+
+#endif
diff --git a/src/snark/sec_cri5.cpp b/src/snark/sec_cri5.cpp
new file mode 100644 (file)
index 0000000..f3c8b3c
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri5.cpp $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include "sec_cri5.h"
+
+using namespace std;
+
+REAL sec_cri5_class::Run(REAL* image)
+{
+       return -1;
+}
diff --git a/src/snark/sec_cri5.h b/src/snark/sec_cri5.h
new file mode 100644 (file)
index 0000000..4180a70
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sec_cri5.h $
+ $LastChangedRevision: 95 $
+ $Date: 2014-07-02 19:43:36 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SEC_CRI5_H
+#define SEC_CRI5_H
+
+#include "sec_cri.h"
+
+class sec_cri5_class: public sec_cri_class
+{
+       REAL Run(REAL* image);
+};
+
+#endif
diff --git a/src/snark/second.cpp b/src/snark/second.cpp
new file mode 100644 (file)
index 0000000..bd4009a
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/second.cpp $
+ $LastChangedRevision: 96 $
+ $Date: 2014-07-02 20:06:42 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ THIS SUBROUTINE IS PECULIAR TO THE BURROUGH'S B1700 SERIES.
+ THE SUBROUTINE IS STANDARD ON THE CDC 6000 AND CYBER SERIES.
+ ON OTHER MACHINES IT MUST BE MODIFIED TO CONFORM TO THE
+ OPERATING SYSTEMS CONVENTIONS OF RETURNING THE ELAPSED CPU TIME
+ SINCE THE BEGINNING OF THE JOB.
+
+ CALLS FORTRAN INTRINSIC FUNCTION 'TIME'; INTEGER FUNCTION
+ WITH INTEGER ARGUMENTS ; TIME IN TENTHS OF SECONDS
+
+ FOR VM-CMS ON A VMX THERE IS NO TIME ROUTINE
+ */
+
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <unistd.h>
+
+#include "blkdta.h"
+#include "second.h"
+
+void second(REAL* ctime)
+{
+       struct rusage usage;
+
+       getrusage(RUSAGE_SELF, &usage);
+       *ctime = usage.ru_utime.tv_sec + usage.ru_utime.tv_usec * 0.000001;
+}
+
diff --git a/src/snark/second.h b/src/snark/second.h
new file mode 100644 (file)
index 0000000..88e0c1b
--- /dev/null
@@ -0,0 +1,17 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/second.h $
+ $LastChangedRevision: 96 $
+ $Date: 2014-07-02 20:06:42 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SECOND_H
+#define SECOND_H
+
+void second(REAL* ctime);
+
+#endif
+
diff --git a/src/snark/select.cpp b/src/snark/select.cpp
new file mode 100644 (file)
index 0000000..72384c6
--- /dev/null
@@ -0,0 +1,283 @@
+/*      
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/select.cpp $
+ $LastChangedRevision: 96 $
+ $Date: 2014-07-02 20:06:42 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ PROCESS THE SELECT COMMAND AND SET THE VARIABLES IN /RAYSEL/ FOR
+ USE BY PICK
+ */
+
+#include <cstdlib>
+#include <cstdio>
+
+#include "blkdta.h"
+#include "raysel.h"
+#include "uiod.h"
+
+#include "geom.h" 
+#include "effpick.h" 
+#include "int2str.h"
+#include "infile.h"
+
+#include "select.h"
+
+void select(BOOLEAN isdefault)                    //add isdefault option, by wei
+{
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 16, 2004
+       static const INTEGER sel_type[] =
+       {
+                       CHAR2INT('r', 'a', 'y', 's'), CHAR2INT('p', 'r', 'o', 'j'),
+                       CHAR2INT('r', 'a', 'n', 'd'), CHAR2INT('e', 'f', 'f', 'i') // adding efficient mode
+       };
+
+       static const INTEGER user = CHAR2INT('u', 's', 'e', 'r');
+       static const INTEGER snark = CHAR2INT('s', 'n', 'a', 'r');
+
+       // modified calls to getwrd() to use the 4-parameter version. Lajos, Dec 16, 2004
+       static const INTEGER select_codes[3] =
+       { CHAR2INT('u', 's', 'e', 'r'), CHAR2INT('s', 'n', 'a', 'r'), CHAR2INT('s', 't', 'e', 'p') };
+
+//  static const INTEGER step = 35;  // commented out since it is unused. Lajos, Jan 13, 2005
+
+       int i;
+       int NumRay;  //for efficient mode
+       INTEGER word;
+       BOOLEAN eol;
+
+       if (isdefault)
+               goto L40;
+       //default select efficient, by wei
+
+       word = InFile.getwrd(FALSE, &eol, select_codes, 2);
+       if ((word != user) && (word != snark))
+       {
+               fprintf(output, "\n **** select must be followed by either USER or SNARK");
+               fprintf(output, "\n **** program aborted\n");
+               exit(666);
+       }
+
+       RaySel.useray = (word == user);
+       word = InFile.getwrd(FALSE, &eol, sel_type, 4);
+       for (i = 0; i < 3; i++)
+       {
+               if (word == sel_type[i])
+                       goto L20;
+       }
+
+       if (word == sel_type[3])
+       { //efficient way
+
+               word = InFile.getwrd(FALSE, &eol, sel_type, 4);
+               if (eol)
+               {
+                       RaySel.stype = 7;
+                       goto L40;
+               }
+               else
+               {
+                       fprintf(output, "\n **** unknown selection type %s", int2str(word));
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(666);
+               }
+       }
+
+       if (!eol)
+       {
+// ERROR
+               fprintf(output, "\n **** unknown selection type %s", int2str(word));
+               fprintf(output, "\n **** program aborted\n");
+               exit(666);
+       }
+
+//RaySel.stype = 0;
+       RaySel.stype = 7;
+       goto L40;                       // efficient mode by default wei 1/2005
+
+       L20: RaySel.stype = i;
+       word = InFile.getint(FALSE, &eol);
+       if (eol)
+               goto L30;
+       if (word < 0)
+       {
+               fprintf(output, "\n **** illegal selection : %s %s, the number after a selection type must be greater than zero", int2str(sel_type[RaySel.stype]), int2str(word));
+               fprintf(output, "\n **** program aborted\n");
+               exit(666);
+       }
+
+       RaySel.rn1 = word;
+       word = InFile.getwrd(FALSE, &eol, sel_type, 3);
+       if (eol)
+       {
+               // ERROR
+               fprintf(output, "\n **** illegal selection : %s, %i", int2str(sel_type[RaySel.stype]), RaySel.rn1);
+               fprintf(output, "\n **** program aborted\n");
+               exit(666);
+       }
+
+       for (i = 0; i < 3; i++)
+       {
+               if (word == sel_type[i])
+                       goto L25;
+       }
+// ERROR
+       fprintf(output, "\n **** unknown selection type %s", int2str(word));
+       fprintf(output, "\n **** program aborted\n");
+       exit(666);
+
+       L25: if ((RaySel.stype == 0) && (i == 2))
+               RaySel.stype = 5;
+       if ((RaySel.stype == 1) && (i == 2))
+               RaySel.stype = 6;
+       if ((RaySel.stype == 2) && (i == 0))
+               RaySel.stype = 3;
+       if ((RaySel.stype == 2) && (i == 1))
+               RaySel.stype = 4;
+
+       if (!((RaySel.stype != 0) && (RaySel.stype != 1) && (RaySel.stype != 2)))
+       {
+
+               // ERROR
+               fprintf(output, "\n **** illegal select combination : %s, %s", int2str(sel_type[RaySel.stype]), int2str(sel_type[i]));
+               fprintf(output, "\n **** program aborted\n");
+               exit(666);
+       }
+
+       word = InFile.getint(FALSE, &eol);
+       if ((!eol) && (word <= 0))
+       {
+               fprintf(output, "\n **** illegal selection : %s %s, the number after a selection type must be greater than zero", int2str(sel_type[RaySel.stype]), int2str(word));
+               fprintf(output, "\n **** program aborted\n");
+               exit(666);
+       }
+
+       RaySel.rn2 = word;
+
+       L30: if (RaySel.stype != 2)
+       {
+
+               ///if(getwrd(input, &eol) != keywd[step]) {
+               if (InFile.getwrd(TRUE, &eol, &(select_codes[2]), 1) != CHAR2INT('s','t','e','p'))
+               {
+                       fprintf(output, "\n **** keyword STEP missing");
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(666);
+               }
+
+               RaySel.prjinc = InFile.getint(FALSE, &eol);
+               RaySel.rayinc = InFile.getint(FALSE, &eol);
+               if ((RaySel.prjinc <= 0) || (RaySel.rayinc <= 0))
+               {
+                       fprintf(output, "\n **** both mod1 and mod2 must be positive.");
+                       fprintf(output, "\n      mod1 = %5i, mod2 = %5i", RaySel.prjinc, RaySel.rayinc);
+                       fprintf(output, "\n **** program aborted\n");
+                       exit(666);
+               }
+
+       }
+
+       // ECHO INPUT
+
+       if (RaySel.stype == 3 && eol)
+       {
+               fprintf(output, "\n         a fixed number of %5i rays at random, followed by sequential ray selection", RaySel.rn1);
+               fprintf(output, "\n         with ray-step %5i and projection-step %5i", RaySel.rayinc, RaySel.prjinc);
+               return;
+       }
+
+       if (RaySel.stype == 4 && eol)
+       {
+               fprintf(output, "\n         a fixed number of %5i rays at random followed by sequential projection selection", RaySel.rn1);
+               fprintf(output, "\n         with projection-step %5i and ray-step %5i", RaySel.prjinc, RaySel.rayinc);
+               return;
+       }
+
+       if (RaySel.stype == 5 && eol)
+       {
+               fprintf(output, "\n         a fixed number of, %5i sequential rays, with ray-step, %5i and projection-step %5i", RaySel.rn1, RaySel.rayinc, RaySel.prjinc);
+               fprintf(output, "\n         followed by random selection of rays and projections");
+               return;
+       }
+
+       if (RaySel.stype == 6 && eol)
+       {
+               fprintf(output, "\n         a fixed number of, %5i sequential rays, with ray-step, %5i and projection-step %5i", RaySel.rn1, RaySel.prjinc, RaySel.rayinc);
+               fprintf(output, "\n         followed by random selection of rays and projections");
+               return;
+       }
+
+       L40: switch (RaySel.stype)
+       {
+       case 0:
+               fprintf(output, "\n         sequential ray selection with ray-step %5i and projection-step %5i", RaySel.rayinc, RaySel.prjinc);
+               return;
+
+       case 1:
+               fprintf(output, "\n         sequential projection selection with projection-step %5i and ray-step %5i", RaySel.prjinc, RaySel.rayinc);
+               return;
+
+       case 2:
+               fprintf(output, "\n         random selection of rays and projections");
+               return;
+
+       case 3:
+               fprintf(output, "\n         cycles of %5i rays at random", RaySel.rn1);
+               fprintf(output, "\n         followed by a fixed number of %5i sequential rays with ray-step %5i and projection-step %5i", RaySel.rn2, RaySel.rayinc, RaySel.prjinc);
+               return;
+
+       case 4:
+               fprintf(output, "\n         cycles of %5i rays at random", RaySel.rn1);
+               fprintf(output, "\n         followed by a fixed number of %5i sequential projection selection with projection-step %5i and ray-step %5i", RaySel.rn2, RaySel.prjinc, RaySel.rayinc);
+               return;
+
+       case 5:
+               fprintf(output, "\n         cycles of %5i sequential rays with ray-step %5i and projection-step %5i", RaySel.rn1, RaySel.rayinc, RaySel.prjinc);
+               fprintf(output, "\n         followed by %5i rays at random", RaySel.rn2);
+               return;
+
+       case 6:
+               fprintf(output, "\n         cycles of %5i sequential projection selection with projection-step %5i and ray-step %5i", RaySel.rn1, RaySel.prjinc, RaySel.rayinc);
+               fprintf(output, "\n         followed by %5i rays at random", RaySel.rn2);
+
+               return;
+
+       case 7:
+               if (!isdefault)
+                       fprintf(output, "\n         efficient data access");
+
+               if (!RaySel.useray)
+                       NumRay = GeoPar.snrays;
+               else
+                       NumRay = GeoPar.usrays;
+
+               factorization(GeoPar.prjnum, &RaySel.decompprj, &RaySel.num_digprj);
+               factorization(NumRay, &RaySel.decompray, &RaySel.num_digray);
+               //factorization(30, &RaySel.decompray, &RaySel.num_digray);
+
+               get_base(RaySel.decompprj, RaySel.num_digprj, &RaySel.baseprj);
+               get_base(RaySel.decompray, RaySel.num_digray, &RaySel.baseray);
+
+               if (RaySel.old_numray != NULL)
+                       delete[] RaySel.old_numray;
+               if (RaySel.old_numprj != NULL)
+                       delete[] RaySel.old_numprj;
+               if (RaySel.new_numray != NULL)
+                       delete[] RaySel.new_numray;
+               if (RaySel.new_numprj != NULL)
+                       delete[] RaySel.new_numprj; //added to avoid memory leak, by wei 1/2005
+
+               RaySel.old_numray = new INTEGER[RaySel.num_digray];
+               RaySel.old_numprj = new INTEGER[RaySel.num_digprj];
+               RaySel.new_numray = new INTEGER[RaySel.num_digray];
+               RaySel.new_numprj = new INTEGER[RaySel.num_digprj];
+
+               RaySel.old_numprj[0] = -1;
+
+               return;
+       }
+
+}
diff --git a/src/snark/select.h b/src/snark/select.h
new file mode 100644 (file)
index 0000000..87ec17f
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/select.h $
+ $LastChangedRevision: 97 $
+ $Date: 2014-07-02 20:07:41 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SELSECT_H
+#define SELSECT_H
+
+void select(BOOLEAN isdefault);    //add isdefault option for main() use, by wei
+
+#endif
diff --git a/src/snark/settra.cpp b/src/snark/settra.cpp
new file mode 100644 (file)
index 0000000..9fd6c74
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/settra.cpp $
+ $LastChangedRevision: 96 $
+ $Date: 2014-07-02 20:06:42 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#include <cstdlib>       
+#include <cstdio>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "infile.h"
+
+#include "settra.h"
+
+void settra()
+{
+       BOOLEAN eol;
+
+       // GET THE TRACE LEVEL
+
+       trace = InFile.getint(FALSE, &eol);
+       fprintf(output, "\n         trace level = %5i\n", trace);
+}
diff --git a/src/snark/settra.h b/src/snark/settra.h
new file mode 100644 (file)
index 0000000..66fd98c
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/settra.h $
+ $LastChangedRevision: 96 $
+ $Date: 2014-07-02 20:06:42 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SETTRA_H
+#define SETTRA_H
+
+void settra();
+
+#endif
diff --git a/src/snark/signif1.c b/src/snark/signif1.c
new file mode 100644 (file)
index 0000000..d44d607
--- /dev/null
@@ -0,0 +1,154 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/signif1.c $
+ $LastChangedRevision: 90 $
+ $Date: 2014-07-02 17:31:12 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+
+ This function computes and stores the significance levels
+
+ INPUTS:
+ iexp - experiment number.
+ nrun - number of runs in the current experiment.
+ tot_PAIRS - number of phantoms with PAIRed structures used for a given experiment.
+ compare - counter for the number of COMPAREs read in so far.
+ niters - number of iterations to be compared.
+ itr1 - array of length niters containing the iteration numbers for the first algorithm.
+ itr2 - array of length niters containing the iteration numbers for the second algorithm.
+ sigfl - file pointer to the file which stores the significance levels.
+ fom - character string denoting the figure of merit.
+ keywrd1 - string containing the keyword which defines the first algorithm.
+ keywrd2 - string containing the keyword which defines the second algorithm.
+ lowden - low clip value for pointwise accuracy calculation.
+ highden - high clip value for pointwise accuracy calculation.
+ */
+
+#include <malloc.h>
+#include <string.h>
+#include <math.h>
+#include <stdio.h>
+#include "experimenter.h"
+#include "read_fomfile.h"
+#include "signif1.h"
+
+void signif(int iexp, int nrun, int tot_PAIRS, int compare, int niters, int* itr1, int* itr2, FILE* sigfl, char* fom, char* keywrd1, char* keywrd2, float lowden, float highden)
+{
+       int i, j;
+       double *fom1, *fom2, fom_diff, *sum_diff, *var, *sum_fom1, *sum_fom2;
+
+       //  go here only if, for hit-ratio, there are no PAIRed structures
+       if (strstr(fom, "Hit-ratio") != NULL)
+       {
+               if (tot_PAIRS == 0)
+               {
+                       fprintf(sigfl, "\n \t \t FIGURE OF MERIT: %s\n", fom);
+                       fprintf(sigfl, "%s \t %s \t Significance Level\n", keywrd1,
+                                       keywrd2);
+
+                       for (i = 0; i < niters; i++)
+                               fprintf(sigfl,
+                                               "%d \t %d \t No paired structures in this experiment\n",
+                                               itr1[i], itr2[i]);
+                       return;
+               }
+       }
+
+       // allocate memory for various arrays
+
+       // array to store figures of merit for algorithm 1
+       fom1 = (double *) malloc(niters * sizeof(double));
+
+       //  array to store figures of merit for algorithm 2
+       fom2 = (double *) malloc(niters * sizeof(double));
+
+       // array to store sum of the differences between the foms for the two algorithms
+       sum_diff = (double *) malloc(niters * sizeof(double));
+
+       // array to store sum of the squares of this difference
+       var = (double *) malloc(niters * sizeof(double));
+
+       // array to store sum of foms for algorithm 1
+       sum_fom1 = (double *) malloc(niters * sizeof(double));
+
+       // array to store sum of foms for algorithm 2
+       sum_fom2 = (double *) malloc(niters * sizeof(double));
+
+       for (j = 0; j < niters; j++) // initialize arrays
+       {
+               sum_diff[j] = 0.0;
+               var[j] = 0.0;
+               sum_fom1[j] = 0.0;
+               sum_fom2[j] = 0.0;
+       }
+
+       for (i = 0; i < nrun; i++)
+       {
+               // read in foms and iteration numbers for both algorithms
+               read_fomfile(iexp, i + 1, compare, niters, fom, fom1, fom2);
+               for (j = 0; j < niters; j++)
+               {
+                       /*
+                        a) compute difference between foms of the two algorithms
+                        b) sum these differences
+                        c) sum the squares of these differences
+                        d) sum the foms for algorithms 1 and 2
+                       */
+
+                       fom_diff = fom1[j] - fom2[j];
+                       sum_diff[j] = sum_diff[j] + fom_diff;
+                       var[j] = var[j] + (fom_diff * fom_diff);
+                       sum_fom1[j] = sum_fom1[j] + fom1[j];
+                       sum_fom2[j] = sum_fom2[j] + fom2[j];
+               }
+       }
+
+       // For hit-ratio, number of phantoms = tot_PAIRS. While for other foms number of phantoms = nrun
+
+       if (strstr(fom, "Hit-ratio") != NULL)
+       {
+               nrun = tot_PAIRS;
+       }
+
+       for (j = 0; j < niters; j++)
+       {
+               // compute the average fom for algorithms 1 and 2
+               sum_fom1[j] = sum_fom1[j] / nrun;
+               sum_fom2[j] = sum_fom2[j] / nrun;
+
+               if (var[j] == 0.0)
+                       sum_diff[j] = 0.5;
+               else
+               {
+                       // calculate significance levels. Note that if var[j]=0.0, the significance level for than iteration is 0.5.
+                       sum_diff[j] = sum_diff[j] / sqrt(var[j]);
+                       sum_diff[j] = 0.5 * erf(sum_diff[j] / sqrt(2.0));
+                       sum_diff[j] = 0.5 - dabs(sum_diff[j]);
+               }
+       }
+
+       // print results and free memory
+       if (strstr(fom, "Pointwise Accuracy") != NULL)
+       {
+               if (lowden == 0.0 && highden == 0.0) fprintf(sigfl, "\n \t FIGURE OF MERIT: %s.  NO CLIPPING\n", fom);
+               else fprintf(sigfl, "\n \t FIGURE OF MERIT: %s.  CLIP VALUES ARE %.3f AND %.3f\n", fom, lowden, highden);
+       }
+       else fprintf(sigfl, "\n \t \t FIGURE OF MERIT: %s\n", fom);
+
+       fprintf(sigfl, "%s \tmean\t\t\t%s\tmean\t\t\tsignificance level\n", keywrd1, keywrd2);
+       for (i = 0; i < niters; i++) fprintf(sigfl, "%d\t%.20f  %d\t%.20f  %.20f\n", itr1[i], sum_fom1[i], itr2[i], sum_fom2[i], sum_diff[i]);
+
+       free(fom1);
+       free(fom2);
+       free(sum_diff);
+       free(var);
+       free(sum_fom1);
+       free(sum_fom2);
+}
+
+// function to return the absolute value
+double dabs(double x)
+{
+       return x < 0 ? -x : x;
+}
diff --git a/src/snark/signif1.h b/src/snark/signif1.h
new file mode 100644 (file)
index 0000000..f78585f
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/signif1.h $
+ $LastChangedRevision: 90 $
+ $Date: 2014-07-02 17:31:12 -0400 (Wed, 02 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+*/
+
+#ifndef SIGNIF_H
+#define SIGNIF_H
+
+double dabs(double x);
+void signif(int iexp, int nrun, int tot_PAIRS, int compare, int niters, int* itr1, int* itr2, FILE* sigfl, char* fom, char* keywrd1, char* keywrd2, float lowden, float highden);
+
+#endif
+
diff --git a/src/snark/sinc.cpp b/src/snark/sinc.cpp
new file mode 100644 (file)
index 0000000..4318e09
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sinc.cpp $
+ $LastChangedRevision: 97 $
+ $Date: 2014-07-02 20:07:41 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ SINC(X)=SIN(PI*X)/(PI*X)
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "consts.h"
+
+#include "sinc.h"
+
+REAL sinc(REAL x)
+{
+       if (fabs(x) < Consts.zero)
+       {
+               return 1.0;
+       }
+
+       return (REAL) sin(Consts.pi * x) / (Consts.pi * x);
+}
diff --git a/src/snark/sinc.h b/src/snark/sinc.h
new file mode 100644 (file)
index 0000000..35a9df6
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sinc.h $
+ $LastChangedRevision: 97 $
+ $Date: 2014-07-02 20:07:41 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SINC_H
+#define SINC_H
+
+REAL sinc(REAL x);
+
+#endif
diff --git a/src/snark/sirt.cpp b/src/snark/sirt.cpp
new file mode 100644 (file)
index 0000000..009f874
--- /dev/null
@@ -0,0 +1,769 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sirt.cpp $
+ $LastChangedRevision: 97 $
+ $Date: 2014-07-02 20:07:41 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ IMPLEMENTATION OF THE SIRT ALGORITHM OF PETER GILBERT
+ TOGETHER WITH EXTENSIONS AND MODIFICATIONS BY
+ LAKSHMINARAYANAN AND LENT OF SUNY BUFFALO
+ MAY, 1977;  REVISED JANUARY, 1978.
+ SEE TECHNICAL REPORT 95 OF DEPT OF COMPUTER SCIENCE
+ PROGRAMMED IN ANSI FORTRAN FOR PORTABILITY
+ USES AUXILIARY FILES USER1 AND USER2 TO REDUCE CORE
+
+ METHOD...CONTROLS ALGORITHM SELECTION
+ IF 'GSIRT' USE LAK-LENT GENERALIZATION OF GILBERT SIRT
+ SEE EQUATION (20) OF REPORT 95
+ RHO(Q+1) = RHO(Q) + 1.0/SIGMA *(B-(DN)**-1 * PTRANS * P *
+ RHO(Q)
+ WHERE
+ B = (DL)**-1 * P TRANS * R
+ DN = P TRANS * P * U, U A VECTOR OF ONES
+ DL IS A WEIGHTED SUM OF RAY LENGTHS
+ R IS VECTOR OF PROJECTION DATA
+
+ FOR 'LSIRT', MODIFIED SIRT ALGORITHMS OF LAK AND LENT
+ ARE SELECTED
+ GENERAL FORM OF MODIFIED SIRT IS (SEE EQUATION (23) )
+ RHO(Q+1) = RHO(Q) + 1.0/SIGMA * (B - DV**-1 * PTRANS *
+ Z * V**2 * P * RHO(Q))
+ DEFINITIONS FOLLOW
+ N(J) = NUMBER OF PIXELS IN RAY J
+ L(J) = LENGTH OF RAY J
+ W(J) = WIDTH OF RAY J
+ FOR THE LSIRT ALGORITHMS, (Z * V**2)(J) TAKES THE FOLLOWING FORM
+ N(J)**POWER2
+ DV(I) TAKES THE FOLLOWING FORM
+ SUM OVER ALL RAYS J PASSING THROUGH PIXEL I OF N(J)**POWER1
+ *** DV IS DESIGNATED THROUGHOUT THIS PROGRAM BY THE SYMBOL DN ***
+ B (IN THE TECHNICAL REPORT) HAS THE FOLLOWING FORM
+ DV**-1 * PTRANS * Z * V * R
+ FOR EACH RAY J
+ (Z * V * R)(J) = R(J)/(L(J)*W(J)) * N(J)**POWER1
+ VALUES OF LSIRT MODIFIER
+ LSIRT = 1       POWER1=1            POWER2=0
+ LSIRT = 2       POWER1 = 0          POWER2 = -1
+ LSIRT = 3       POWER1 = -1         POWER2 = -2
+ TO GET CONSTRAINED SIRT, USE THE SNARK MODE CARD
+
+ ***INPUT SEQUENCE
+
+ THE FOLLOWING SEQUENCE OF KEYWORDS IS AVAILABLE TO THE USER
+
+ METHOD
+ THIS KEYWORD MUST BE PRESENT
+ IT MAY BE FOLLOWED BY EITHER 'GSIRT' OR 'LSIRT TYPE'.
+ TYPE IS AN INTEGER MODIFIER WHICH MUST TAKE ON VALUES
+ 1, 2, OR 3.
+
+ RELAX
+ IF THIS IS PRESENT, IT MUST BE FOLLOWED BY THE FLOATING-
+ POINT VALUE OF THE RELAXATION PARAMETER;
+ SIGMA
+ IF THIS IS PRESENT, IT MUST BE FOLLOWED BY THE FLOATING-
+ POINT VALUE OF SIGMA;
+ RELAXATION FACTOR = 1.0/SIGMA
+
+ *****  RELAX AND SIGMA MUST NOT BOTH BE USED  *****
+
+ IF NEITHER RELAX OR SIGMA IS USED, RELAXATION FACTOR =
+ SIGMA = 1.0
+
+ START
+ MAY BE FOLLOWED BY 'BACKPROJECTED'
+ THIS CAUSES A BACKPROJECTED IMAGE TO BE USED AS THE
+ INITIAL GUESS
+ IF START IS NOT PRESENT, THE EXEC COMMAND OPTION IS USED
+
+ NORMAL
+ THIS CAUSES ALL RECONSTRUCTIONS (OTHER THAN THE INITIAL GUESS)
+ TO BE NORMALIZED TO AVEDEN.  THIS STEP IS OMITTED IF
+ AVEDEN IS TOO SMALL OR IF THE TOTAL DENSITY OF THE
+ ESTIMATED IMAGE IS LOW
+
+ EXAMPLE INPUT SEQUENCES FOLLOW
+
+ METHOD GSIRT SIGMA = .5 START NORMAL
+ METHOD LSIRT 1 RELAX = 3.
+
+ **** THIS SIRT IS FOR STRIP PROJECTION DATA ONLY  ****
+
+ ADDED FORMAT 1090 FOR WRITING INTO USER1 BAND USER2..7/21/88.SADA
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "spctrm.h"
+#include "fourie.h"
+#include "raysel.h"
+#include "modefl.h"
+#include "consts.h"
+#include "uiod.h"
+#include "raylen.h"
+#include "posit.h"
+#include "anglst.h"
+#include "ray.h"
+#include "projfile.h"
+#include "infile.h"
+#include "blob.h"
+
+#include "sirt.h"
+
+#define  nrdis(rinc) MIN0(((INTEGER)(size * (fabs(costh) + fabs(sinth))/(rinc) - 0.001)), limit)
+
+INTEGER sirt_class::Init()
+{
+
+       hmeth = CHAR2INT('m', 'e', 't', 'h');
+       hgsir = CHAR2INT('g', 's', 'i', 'r');
+       hlsir = CHAR2INT('l', 's', 'i', 'r');
+       hstar = CHAR2INT('s', 't', 'a', 'r');
+       hnorm = CHAR2INT('n', 'o', 'r', 'm');
+       hrela = CHAR2INT('r', 'e', 'l', 'a');
+       hsigm = CHAR2INT('s', 'i', 'g', 'm');
+       hback = CHAR2INT('b', 'a', 'c', 'k');
+
+       w1 = NULL;
+       w2 = NULL;
+       w3 = NULL;
+       gen_inv_dn = NULL;
+       vector_b = NULL;
+       pbase = NULL;
+       sbase = NULL;             //wei, 3/2005
+
+       return 0;
+}
+
+INTEGER sirt_class::Reset()
+{
+       if (w1 != NULL)
+               delete[] w1;
+       if (w2 != NULL)
+               delete[] w2;
+       if (w3 != NULL)
+               delete[] w3;
+       if (gen_inv_dn != NULL)
+               delete[] gen_inv_dn;
+       if (vector_b != NULL)
+               delete[] vector_b;
+       if (pbase != NULL)
+               delete[] pbase;
+       if (sbase != NULL)
+               delete[] sbase;               //wei, 3/2005
+
+       return 0;
+}
+
+BOOLEAN sirt_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+
+       static REAL totden;
+       REAL size;
+       INTEGER i;
+       INTEGER np;
+       REAL theta;
+       REAL sinth;
+       REAL costh;
+       INTEGER nr;
+       INTEGER numb;
+       REAL snorm;
+       REAL ax;
+       REAL ay;
+       REAL cth;
+       REAL sth;
+       REAL wl;
+       REAL raynar;
+       REAL raylar;
+       REAL dl;
+       INTEGER nb;
+       INTEGER k;
+       REAL raysum;
+       REAL w;
+       REAL psum;
+       REAL ronew;
+       REAL ratio;
+
+       static BOOLEAN normal;
+       BOOLEAN bkstrt, gsirt, sirt, eol;
+
+       INTEGER limit, first, last;
+       INTEGER word;
+       static INTEGER lsirt; // set static hstau
+       REAL relax;
+       static REAL sigma;
+
+       INTEGER area;
+
+       if (Blob.pix_basis)
+       {
+               area = GeoPar.area;
+       }
+       else
+       {
+               area = Blob.area;
+       }
+
+       // STATEMENT FUNCTION ENABLING TO DISCARD RAYS THAT DONT
+       // INTERSECT THE RECONSTRUCTION REGION IN THE SUMMATIONS
+       // DESCRIBED IN THE PREFACE
+
+       if (iter <= 1)
+       {
+
+               //major changes in the input reading sequence, using new getwrd funcion. hstau 1/2004
+               lsirt = 0;
+               //for stripe mode only!
+               if (GeoPar.line)
+               {
+                       fprintf(output, "\n *** this sirt algorithm is for strip data only, try quad algorithm for line data**");
+                       return TRUE;
+               }
+
+               // SELECT THE SNARK OR USER SET OF RAYS
+               limit = GeoPar.lusray - GeoPar.midray;
+
+               if (GeoPar.snrays != GeoPar.usrays)
+               {
+
+                       //  CHECK FOR SNARK OR USER
+                       if (!RaySel.useray)
+                       {
+
+                               // SNARK OPTION IN EFFECT
+
+                               fprintf(output, "\n          snark rays selected");
+
+                               limit = GeoPar.lsnray - GeoPar.midray;
+                       }
+                       else
+                       {
+                               // USER OPTION IN EFFECT
+                               fprintf(output, "\n          user rays selected");
+                       }
+               }
+
+               //input phase
+               INTEGER exp0[1] =
+               { hmeth };
+               word = InFile.getwrd(TRUE, &eol, exp0, 1);
+
+               if (eol)
+               {
+                       fprintf(output, "\n          **** error - keyword method is missing***");
+                       return TRUE;
+               }
+
+               INTEGER exp1[2] =
+               { hgsir, hlsir };
+               word = InFile.getwrd(FALSE, &eol, exp1, 2);
+
+               if (eol)
+               {
+                       fprintf(output, "\n          **** error - one and only one of the following methods must be specified: gsirt or lsirt***");
+                       return TRUE;
+               }
+
+               gsirt = word == hgsir;
+               sirt = word == hlsir;
+
+               if (word == hgsir)
+               {
+                       fprintf(output, "\n          gsirt method");
+               }
+               else
+               {  //hlsir
+                       lsirt = InFile.getint(FALSE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output, "\n          **** error - must specify lsirt type ***");
+                               return TRUE;
+                       }
+                       if (!(lsirt > 0 && lsirt < 4))
+                       {
+                               return TRUE;
+                       }
+                       fprintf(output, "\n          lsirt method");
+               }
+
+               //default values
+               sigma = 1.0;
+               relax = 1.0;
+               bkstrt = FALSE;
+               normal = FALSE;
+
+               // optional inputs
+               INTEGER exp2[4] =
+               { hrela, hsigm, hstar, hnorm };
+               word = InFile.getwrd(FALSE, &eol, exp2, 4);
+
+               if (eol)
+                       goto L30;
+               // finished reading input
+
+               if (word == hrela)
+               {
+                       relax = InFile.getnum(FALSE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output, "\n          **** error - must specify relax ***");
+                               return TRUE;
+                       }
+                       if (relax < Consts.zero)
+                       {
+                               fprintf(output, "\n          **** error - relax too small or negative ***");
+                               return TRUE;
+                       }
+                       sigma = (REAL) 1.0 / relax;
+
+                       INTEGER exp2a[2] =
+                       { hstar, hnorm };
+                       word = InFile.getwrd(FALSE, &eol, exp2a, 2);
+                       if (word == hstar)
+                               goto L10;
+                       else if (word == hnorm)
+                               goto L20;
+                       else
+                               goto L30;
+                       // eol: finished
+               }
+               else if (word == hsigm)
+               {
+                       sigma = InFile.getnum(FALSE, &eol);
+                       if (eol)
+                       {
+                               fprintf(output, "\n          **** error - must specify sigma ***");
+                               return TRUE;
+                       }
+                       if (sigma < Consts.zero)
+                       {
+                               fprintf(output, "\n          **** error - sigma too small or negative ***");
+                               return TRUE;
+                       }
+                       INTEGER exp2b[2] =
+                       { hstar, hnorm };
+                       word = InFile.getwrd(FALSE, &eol, exp2b, 2);
+                       if (word == hstar)
+                               goto L10;
+                       else if (word == hnorm)
+                               goto L20;
+                       else
+                               goto L30;
+                       // eol: finished
+               }
+
+               else if (word == hstar)
+               {
+                       L10: bkstrt = TRUE;
+                       INTEGER exp3[2] =
+                       { hback, hnorm };
+                       word = InFile.getwrd(FALSE, &eol, exp3, 2);
+                       if (eol || word == hback)
+                               goto L30;
+                       else
+                               goto L20;
+                       //normal
+               }
+               else
+               {
+                       L20: normal = TRUE;
+               }
+
+               L30:
+               // ECHOING INPUT
+
+               fprintf(output, "\n          sigma = inverse of relaxation = %10.4f\n",
+                               sigma);
+               // removed from the echoing hstau.2003
+
+               // NONCONVERGENCE WARNING ON SIGMA
+               if (sigma < .4999)
+               {
+                       fprintf(output, "\n ***small sigma value.  probable divergence.***"); //hstau
+               }
+
+               if (Modefl.lofl || Modefl.upfl)
+               {
+                       fprintf(output, "\n          this run is constrained sirt");
+               }
+               else
+               {
+                       fprintf(output, "\n          this run is unconstrained sirt");
+               }
+
+               if (normal)
+               {
+                       fprintf(output, "\n          this run is normalized sirt");
+               }
+               else
+               {
+                       fprintf(output, "\n          this run is unnormalized sirt");
+               }
+
+               // CHECK ON SMALL TOTAL DENSITY AND ISSUE WARNING
+               totden = ((REAL) (GeoPar.area)) * GeoPar.aveden;
+
+               if (fabs(totden) <= Consts.zero)
+               {
+                       normal = FALSE;
+                       fprintf(output, "\n ***average density too small; no normalization***"); //hstau
+               }
+
+               if (bkstrt)
+               {
+                       fprintf(output, "\n          starting picture is back-projected density \n");
+               }
+               else
+               {
+                       fprintf(output, "\n          starting picture is as in execute command");
+               }
+
+               // END INPUT CHECK AND ECHO
+               //
+               // *       START WORK
+               //
+
+               w1 = new REAL[area];
+               w2 = new REAL[area];
+               w3 = new REAL[area];
+               gen_inv_dn = new REAL[area];
+               vector_b = new REAL[area];
+
+               pbase = new REAL[GeoPar.nrays];
+
+               sbase = new INTEGER[GeoPar.prjnum];
+
+               size = GeoPar.nelem * GeoPar.pixsiz / (REAL) 2.0;
+               Fourie.rinc = GeoPar.pinc;
+
+               // GET DN AND B ON USER1
+               // GENERATE DN AND DL
+               // IF 'LSIRT' DONT GENERATE DL,
+               // GET P TRANSPOSE N*R/L DIRECTLY
+               // WRITTEN FOR VARIABLE RAY WIDTH
+
+               for (i = 0; i < area; i++)
+               {
+                       w2[i] = 0.0;
+                       w1[i] = 0.0;
+               }
+
+               for (np = 0; np < GeoPar.prjnum; np++)
+               {
+                       Anglst.getang(np, &theta, &sinth, &costh);
+                       if (sirt)
+                       {
+                               ProjFile.ReadProj(np, pbase, GeoPar.nrays);
+                       }
+
+                       if (GeoPar.vri)
+                               Fourie.rinc = GeoPar.pinc
+                                               * (REAL) MAX0(fabs(costh), fabs(sinth));
+
+                       first = GeoPar.midray - nrdis(Fourie.rinc);
+
+                       sbase[np] = first;
+                       //last = GeoPar.nrays + 1 - first;
+                       last = GeoPar.nrays - 1 - first; //should be 2 less. hstau
+
+                       for (nr = first; nr <= last; nr++)
+                       {
+                               if (Blob.pix_basis)
+                               {
+                                       ray(np, nr, list, weight, &numb, &snorm);
+                               }
+                               else
+                               {
+                                       Blob.bray(np, nr, list, weight, &numb, &snorm);
+                               }
+                               if (numb != 0)
+                               {
+                                       posit(np, nr, &ax, &ay, &cth, &sth);
+                                       wl = Fourie.rinc
+                                                       * raylen(SOT_rect, ax, ay, cth, sth, 0., 0., size,
+                                                                       size, 1., 0.);
+                                       if (!sirt)
+                                       {
+                                               raynar = (REAL) (numb);
+                                               raylar = wl;
+                                       }
+                                       else
+                                       {
+                                               dl = pbase[nr] / wl;
+                                               switch (lsirt)
+                                               {
+                                               case 1:
+                                                       raynar = float(numb);
+                                                       raylar = dl * raynar;
+                                                       break;
+
+                                               case 2:
+                                                       raynar = 1.0;
+                                                       raylar = dl;
+                                                       break;
+
+                                               case 3:
+                                                       raynar = ((REAL) 1.0) / numb;
+                                                       raylar = dl * raynar;
+                                                       break;
+                                               }
+                                       }
+
+                                       for (nb = 0; nb < numb; nb++)
+                                       {
+                                               k = list[nb];
+                                               w2[k] += raynar;
+                                               w1[k] += raylar;
+                                       }
+                               }
+                       }
+
+               }
+
+               if (!sirt)
+               {
+
+                       // GSIRT
+                       // TRYING FOR COMPATIBILITY IN CASE SOME PIXELS DO NOT
+                       // CONTRIBUTE TO THE PROJECTION DATA
+
+                       for (i = 0; i < area; i++)
+                       {
+                               if (w1[i] == 0.0)
+                                       w2[i] = 0.0;
+                               if (w2[i] > Consts.zero)
+                                       w2[i] = ((REAL) 1.0) / w2[i];
+                               if (w2[i] == 0.0)
+                                       w1[i] = 0.0;
+                       }
+
+                       // W2 NOW HOLDS GENERALIZED INVERSE OF DN
+                       // WORK HOLDS DL
+
+                       for (i = 0; i < area; i++)
+                       {
+                               gen_inv_dn[i] = w2[i];
+                       }
+
+                       // GET P TRANSPOSE R
+
+                       for (i = 0; i < area; i++)
+                       {
+                               w2[i] = 0.0;
+                       }
+
+                       for (np = 0; np < GeoPar.prjnum; np++)
+                       {
+                               ProjFile.ReadProj(np, pbase, GeoPar.nrays);
+
+                               first = sbase[np];
+                               last = GeoPar.nrays - 1 - first;  //should be 2 less. hstau
+
+
+                               for (nr = first; nr <= last; nr++)
+                               {
+                                       raysum = pbase[nr];
+                                       if (Blob.pix_basis)
+                                       {
+                                               ray(np, nr, list, weight, &numb, &snorm);
+                                       }
+                                       else
+                                       {
+                                               Blob.bray(np, nr, list, weight, &numb, &snorm);
+                                       }
+                                       if (numb != 0)
+                                       {
+                                               for (nb = 0; nb < numb; nb++)
+                                               {
+                                                       k = list[nb];
+                                                       w2[k] += raysum;
+                                               }
+                                       }
+                               }
+
+                       }
+
+                       for (i = 0; i < area; i++)
+                       {
+                               w = w1[i];
+                               if (w == 0.0)
+                                       w2[i] = 0.0;
+                               if (w > Consts.zero)
+                                       w2[i] /= w;
+                       }
+               }
+               else
+               {
+
+                       // LSIRT OPTIONS
+
+                       // WORK HOLDS PART OF B; GET GENERALIZED INVERSE IN w2
+
+                       for (i = 0; i < area; i++)
+                       {
+                               if (w2[i] > Consts.zero)
+                                       w2[i] = ((REAL) 1.0) / w2[i];
+                       }
+
+                       for (i = 0; i < area; i++)
+                       {
+                               gen_inv_dn[i] = w2[i];
+                       }
+
+                       // SET UP B VECTOR FOR 'LSIRT'
+
+                       for (i = 0; i < area; i++)
+                       {
+                               w2[i] = w1[i] * w2[i];
+                       }
+               }
+
+               for (i = 0; i < area; i++)
+               {
+                       vector_b[i] = w2[i];
+               }
+
+               if (bkstrt)
+               {
+                       for (i = 0; i < area; i++)
+                               recon[i] = w2[i];
+               }
+
+               // ITERATIONS BEGIN HERE
+       }
+
+       for (i = 0; i < area; i++)
+       {
+               w1[i] = vector_b[i];
+       }
+
+       // WORK HOLDS B
+
+       for (i = 0; i < area; i++)
+       {
+               w1[i] = recon[i] + w1[i] / sigma;
+       }
+
+       for (i = 0; i < area; i++)
+       {
+               w3[i] = w1[i];
+       }
+
+       // GOING TO GENERATE P TRANSPOSE P RHO IN WORK
+
+       for (i = 0; i < area; i++)
+       {
+               w1[i] = 0.0;
+       }
+
+       for (np = 0; np < GeoPar.prjnum; np++)
+       {
+               first = sbase[np];
+               last = GeoPar.nrays - 1 - first;    // should be 2 less. hstau
+
+
+               for (nr = first; nr <= last; nr++)
+               {
+
+                       if (Blob.pix_basis)
+                       {
+                               ray(np, nr, list, weight, &numb, &snorm);
+                       }
+                       else
+                       {
+                               Blob.bray(np, nr, list, weight, &numb, &snorm);
+                       }
+
+                       if (numb != 0)
+                       {
+                               psum = 0.;
+                               for (nb = 0; nb < numb; nb++)
+                               {
+                                       k = list[nb];
+                                       psum += recon[k];
+                               }
+
+                               if (lsirt == 2)
+                                       psum /= float(numb);
+                               if (lsirt == 3)
+                                       psum /= float(numb * numb);
+
+                               for (nb = 0; nb < numb; nb++)
+                               {
+                                       w1[list[nb]] += psum;
+                               }
+                       }
+               }
+       }
+
+       for (i = 0; i < area; i++)
+       {
+               recon[i] = gen_inv_dn[i];
+       }
+
+
+       // RECON HOLDS GENERALIZED INVERSE OF DN
+       // WORK HOLDS PTRANSPOSE P RHO
+
+       for (i = 0; i < area; i++)
+       {
+               w1[i] *= recon[i];
+       }
+
+       for (i = 0; i < area; i++)
+       {
+               recon[i] = w3[i];
+       }
+
+       psum = 0.;
+       for (i = 0; i < area; i++)
+       {
+               ronew = recon[i] - w1[i] / sigma;
+               if (Modefl.lofl)
+                       ronew = MAX0(ronew, Modefl.lower);
+               if (Modefl.upfl)
+                       ronew = MIN0(ronew, Modefl.upper);
+               recon[i] = ronew;
+
+               if (!Blob.pix_basis)
+               {  //if blobs
+                       if (i % 2 == Blob.pr)
+                       {
+                               psum += ronew;
+                       }
+               }
+               else
+               {
+                       psum += ronew;
+               }
+       }
+
+       if (!normal)
+       {
+
+               return FALSE;
+       }
+
+       if (fabs(psum) > Consts.zero)
+       {
+               ratio = totden / psum;
+
+               for (i = 0; i < area; i++)
+               {
+                       recon[i] *= ratio;
+               }
+
+               return FALSE;
+       }
+
+       fprintf(output,
+                       "\n ***current total density too small; no normalization for this iteration***"); //hstau
+
+       return FALSE;
+}
diff --git a/src/snark/sirt.h b/src/snark/sirt.h
new file mode 100644 (file)
index 0000000..e5e9748
--- /dev/null
@@ -0,0 +1,30 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/sirt.h $
+ $LastChangedRevision: 97 $
+ $Date: 2014-07-02 20:07:41 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SIRT_H
+#define SIRT_H      
+
+#include "alg.h"
+
+class sirt_class: public alg_class
+{
+private:
+       FILE* Xalg3User1;
+       FILE* Xalg3User2;
+
+       INTEGER hmeth;INTEGER hgsir;INTEGER hlsir;INTEGER hstar;INTEGER hnorm;INTEGER hrela;INTEGER hsigm;INTEGER hback;
+
+       REAL* w1;REAL* w2;REAL* w3;REAL* gen_inv_dn;REAL* vector_b;REAL* pbase;INTEGER* sbase;
+
+public:
+       INTEGER Init();BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);INTEGER Reset();
+};
+
+#endif // SIRT_H
diff --git a/src/snark/smooth.cpp b/src/snark/smooth.cpp
new file mode 100644 (file)
index 0000000..92f3f82
--- /dev/null
@@ -0,0 +1,174 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/smooth.cpp $
+ $LastChangedRevision: 97 $
+ $Date: 2014-07-02 20:07:41 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ A NINE-POINT WEIGHTED, NON-LINEAR SMOOTHING PROCEDURE.
+ FOR DETAILS, SEE THE SNARK MANUAL.
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "consts.h"
+#include "uiod.h"
+
+#include "smooth.h"
+
+void smooth(
+REAL* a, // image
+               INTEGER m, // number of rows
+               INTEGER n, // number of columns
+               REAL thresh, // treshold
+               REAL w1, // weight of center
+               REAL w2, // weight of horizontal and vertical neighbous
+               REAL w3 // weight of diagonal neighbous
+               )
+{
+       REAL* row1 = new REAL[n]; // row buffer 1
+       REAL* row2 = new REAL[n]; // row buffer 2
+       REAL* pres = row2; // current row before smooth
+       REAL* prev = row1; // previous row before smooth
+
+       BOOLEAN once = TRUE; // message flag
+
+       INTEGER l = 0; // curent pixel index
+       REAL centre; // curent pixel value
+
+       REAL smuth; // weighted sum of neighbours
+       REAL divide; // sum of weights
+       REAL value; // neighbour value
+
+       for (int i = 0; i < m; i++)
+       { // for every row
+
+               REAL* itemp = prev; // swap the buffers
+               prev = pres;
+               pres = itemp;
+
+               for (int j = 0; j < n; j++)
+               { // for every column
+
+                       centre = a[l];
+                       pres[j] = centre;
+                       smuth = w1 * centre;
+                       divide = w1;
+
+                       if (i != 0)
+                       { // if not first row
+                               if (j != 0)
+                               { // if not first column
+                                       value = prev[j - 1]; // prev row prev column
+
+                                       if ((REAL) fabs(value - centre) <= thresh)
+                                       {
+                                               smuth += w3 * value;
+                                               divide += w3;
+                                       }
+                               }
+
+                               value = prev[j]; // prev row same column
+
+                               if ((REAL) fabs(value - centre) <= thresh)
+                               {
+                                       smuth += w2 * value;
+                                       divide += w2;
+                               }
+
+                               if (j != (n - 1))
+                               { // if not last column
+                                       value = prev[j + 1]; // prev row next column
+
+                                       if ((REAL) fabs(value - centre) <= thresh)
+                                       {
+                                               smuth += w3 * value;
+                                               divide += w3;
+                                       }
+                               }
+                       }
+
+                       if (j != 0)
+                       { // if not first column
+                               value = pres[j - 1]; // same row prev column
+
+                               if ((REAL) fabs(value - centre) <= thresh)
+                               {
+                                       smuth += w2 * value;
+                                       divide += w2;
+                               }
+                       }
+
+                       if (j != (n - 1))
+                       { // if not last column
+                               value = a[l + 1]; // same row next column
+
+                               if ((REAL) fabs(value - centre) <= thresh)
+                               {
+                                       smuth += w2 * value;
+                                       divide += w2;
+                               }
+                       }
+
+                       if (i != (m - 1))
+                       { // if not last row
+                               if (j != 0)
+                               { // if not first column
+                                       value = a[l + n - 1]; // next row prev column
+
+                                       if ((REAL) fabs(value - centre) <= thresh)
+                                       {
+                                               smuth += w3 * value;
+                                               divide += w3;
+                                       }
+                               }
+
+                               value = a[l + n]; // next row same column
+
+                               if ((REAL) fabs(value - centre) <= thresh)
+                               {
+                                       smuth += w2 * value;
+                                       divide += w2;
+                               }
+
+                               if (j != (n - 1))
+                               { // if not last column
+                                       value = a[l + n + 1]; // next row next column
+
+                                       if ((REAL) fabs(value - centre) <= thresh)
+                                       {
+                                               smuth += w3 * value;
+                                               divide += w3;
+                                       }
+                               }
+                       }
+
+                       if ((REAL) fabs(divide) > Consts.zero)
+                       {
+                               a[l] = smuth / divide;
+                       }
+                       else
+                       {
+                               if (once)
+                               {
+                                       fprintf(output, "\n **** warning - sum of weights = zero");
+                                       once = FALSE;
+                               }
+
+//pragma message( "to check!" )
+                               a[l] = ((smuth - Consts.infin) > 0) ? (REAL) 1.0 : (smuth == Consts.infin) ? (REAL) 0.0 : (REAL) -1.0;
+                       }
+
+                       l++;
+               }
+       }
+
+       delete[] row1; // bug 92 - Lajos - 03/02/2005
+       delete[] row2; // bug 92 - Lajos - 03/02/2005
+
+       return;
+}
diff --git a/src/snark/smooth.h b/src/snark/smooth.h
new file mode 100644 (file)
index 0000000..f0ca5b0
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/smooth.h $
+ $LastChangedRevision: 97 $
+ $Date: 2014-07-02 20:07:41 -0400 (Wed, 02 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef SMOOTH_H
+#define SMOOTH_H
+
+void smooth(REAL* a, INTEGER m, INTEGER n, REAL thresh, REAL w1, REAL w2, REAL w3);
+
+#endif
diff --git a/src/snark/snark.cpp b/src/snark/snark.cpp
new file mode 100644 (file)
index 0000000..08e1fec
--- /dev/null
@@ -0,0 +1,495 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/snark.cpp $
+ $LastChangedRevision: 177 $
+ $Date: 2015-08-03 16:44:07 -0400 (Mon, 03 Aug 2015) $
+ $Author: zye $
+ ***********************************************************
+
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                               *
+ *                         S N A R K   9 3                       *
+ *                                                               *
+ *                A PICTURE RECONSTRUCTION PROGRAM               *
+ *                                                               *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+             WRITTEN- DECEMBER 1974
+             STUART W. ROWLAND
+             ROGER W. PERETTI
+             DEPT. OF COMPUTER SCIENCE
+             S.U.N.Y. AT BUFFALO
+             4226 RIDGE LEA ROAD
+             AMHERST, NEW YORK     14226
+             TEL. (716) 831-1351
+
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+             REVISED BY-  G. T. HERMAN
+                          K.J. CHEN
+             SUMMER 1975
+
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+   SNARK76 - PRELIMINARY VERSION - SPRING 1976
+THIS VERSION OF SNARK INCORPORATES A NUMBER OF IMPROVEMENTS TO
+THE SNARK75 PROGRAM.  THE MOST SIGNIFICANT OF WHICH ARE-
+   1) THE ABILITY TO GENERATE PROJECTION DATA SIMULATING A
+      POLYCHROMATIC X-RAY SOURCE.
+   2) THE INTRODUCTION OF AN OVERLAY STRUCTURE GREATLY REDUCING
+      THE MEMORY REQUIREMENTS OF SNARK.  ALSO, CREATR AND SKUNK
+      HAVE BEEN MODIFIED SO THAT THEY ARE CONSIDERABLY SMALLER.
+   3) COMMENTS AND MESSAGES HAVE BEEN MODIFIED SO THAT THEY ARE
+      MORE UNDERSTANDABLE.
+   4) NON-STANDARD SUBSCRIPTING HAS BEEN REMOVED.
+   5) ONLY THE RECONSTRUCTION FILE (RECFIL) NEED BE PRESENT DURING
+      POST-PROCESSING FOR MOST OPERATIONS.  THE EXCEPTION IS THE
+      DISTANCE COMMAND WHICH REQUIRES THE PROJECTION FILE (PRJFIL)
+      TO COMPUTE THE RESIDUAL.
+   6) THE ABILITY TO SPECIFY THE RANDOM NUMBER GENERATOR SEED HAS
+      BEEN ADDED TO CREATE.
+   7) A SIMPLE PHOTON SCATTERING MODEL HAS BEEN ADDED TO CREATE.
+THESE CHANGES HAVE BEEN IMPLEMENTED BY-
+S. W. ROWLAND AND G. T. HERMAN.
+
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+   SNARK77 - AUTUMN 1977
+THIS MODIFICATION OF SNARK76 PROVIDES A SIMPLER AND MORE POWERFUL
+COMMAND LANGUAGE STRUCTURE.  THE MAJOR MODIFICATIONS ARE:
+   1) THE ADDITION OF THE ROUTINES GETINT AND GETNUM TO EXPAND THE
+      CAPABILITIES OF THE COMMAND LANGUAGE.  GETINT REPLACES THE
+      INTEGER OPTION WHICH WAS PART OF THE OLD GETWRD.  GETNUM
+      PROVIDES A FREE FORM FLOATING POINT INPUT FACILITY TO
+      SNARK77.
+   2) THE CREATE (AND THEREFORE PICTURE AND PROJECTION) INPUT
+      SEQUENCE HAS BEEN MODIFIED SO THAT IT IS MORE UNDERSTANDABLE
+      WITHOUT REFERENCING THE SNARK MANUAL.  ALL OF THE INFORMATIO
+      USED TO CREATE A PHANTOM OR PROJECTION DATA IS RETAINED IN
+      THE GENERATED DATA SET HEADERS SO THAT THIS INFORMATION WILL
+      NOT BE LOST TO FUTURE USERS OF THE DATA SET.
+   3) A NAME NOW MUST BE ASSIGNED TO EACH ALGORITHM EXECUTION.
+      THIS NAME IS PRINTED ON ALL POST-PROCESSING OUTPUT TO IDENTI
+      THE PARTICULAR RECONSTRUCTION BEING USED.  IT IS SUGGESTED
+      THAT THIS CARD INCLUDE AN INDICATION OF THE PARAMETERS USED
+      BY THE ALGORITHM.
+   4) ALMOST ALL OF THE SNARK CONTROL CARD FORMATS HAVE CHANGED.
+   5) A CAPABILITY TO GENERATE A PARALLEL PROJECTION DATA SET FROM
+      A DIVERGENT PROJECTION DATA SET VIA THE REBINNING FACILITY
+      OF RDPROJ HAS BEEN ADDED.
+   6) THE LINES COMMAND HAS BEEN EXTENDED TO GENERATE THE OUTPUT
+      ON A DIGITAL PLOTTER.
+
+   THE OVERLAY STATEMENTS FROM THE CDC3500 VERSION OF SNARK76 HAVE
+BEEN REMOVED FOR THIS BURROUGHS B1700 VERSION.  SINCE THE SIZE OF
+THE PROGRAM HAS INCREASED TREMENDOUSLY, OVERLAYING WILL HAVE TO BE
+INSTALLED ON NON-PAGING COMPUTERS.  THE FOLLOWING TWO-LEVEL
+STRUCTURE IS SUGGESTED:
+   (0,0)- THE MAIN PROGRAM AND COMMON SUBROUTINES.
+   (1,0)- THE CREATER SUBSYSTEM.
+   (2,0)- RDPICT AND RDPROJ.
+   (3,0)- EXALG.
+   (3,N)- EACH OF THE RECONSTRUCTION ALGORITHMS.
+   (4,0)- THE POST-PROCESSING ROUTINES.
+EVEN WITH THIS STRUCTURE, IT MAY BE THAT SOME OF THE LARGER
+ALGORITHMS (QUAD, FOR EXAMPLE) MAY NOT FIT IN YOUR LIMITED
+MEMORY AND SHOULD THEREFORE BE DELETED FROM THE SYSTEM.
+
+THESE CHANGES HAVE BEEN IMPLEMENTED BY-
+S. W. ROWLAND AND THE MEDICAL IMAGE PROCESSING GROUP (MIPG).
+
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+   SNARK89 Version 1.01 - July 1990
+The calculation of totden and totlen in the STRIP case in rdproj.f
+has been changed to agree with the manual.  Checks of nelem and
+pixsiz have been inserted in rdpict.f.
+These changes were made by G.T. Herman and D. Odhner.
+
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+SNARK05
+
+The major advances that are incorporated into SNARK05 are:
+
+1. SNARK05 is implemented in C++;
+2. the file structures for holding projection data, phantoms and
+   reconstructions have been redesigned to include XML headers;
+3. all itertive algorithms are now capable of handling image 
+   representations that use "blobs" as well as "pixels";
+4. the efficient data access ordering is a standard feature;
+5. all artificial restrictions on sizes have been removed - the only
+   remaining restrictions are those imposed by the hardware, compiler
+   and operating system.
+
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+MAIN PROGRAM FOR SNARK SYSTEM
+THIS ROUTINE READS THE SNARK CONTROL CARDS, INTERPRETS THE MAJOR
+COMMAND ON THE CARD, AND INVOKES THAT ROUTINE.
+
+*/      
+
+#include <cstdio>
+#include <string>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "basis.h"   
+#include "second.h"
+#include "mode.h"
+#include "settra.h"
+#include "creatr.h"
+#include "rdpict.h"
+#include "rdproj.h"
+#include "select.h"
+#include "stopex.h"
+#include "exalg.h"
+#include "eval.h"
+#include "disply.h"
+#include "pnch.h"
+#include "doline.h"
+#include "halft.h"
+#include "settra.h"
+#include "infile.h" 
+#include "recfile.h"
+#include "file11.h"
+#include "int2str.h"
+#include "objects.h"
+#include "superior.h"
+
+/*
+  "JUST THE PLACE FOR A SNARK!' THE BELLMAN CRIED,
+       AS HE LANDED HIS CREW WITH CARE;
+  SUPPORTING EACH MAN ON THE TOP OF THE TIDE
+       BY A FINGER ENTWINED IN HIS HAIR.
+  "JUST THE PLACE FOR A SNARK!  I HAVE SAID IT TWICE:
+       THAT ALONE SHOULD ENCOURAGE THE CREW.
+  JUST THE PLACE FOR A SNARK!  I HAVE SAID IT THRICE:
+       WHAT I TELL YOU THREE TIMES IS TRUE."
+  FIT THE FIRST - THE LANDING
+  THE HUNTING OF THE SNARK (AN AGONY IN EIGHT FITS)
+  BY LEWIS CARROLL
+*/
+
+#define NUMBER_OF_COMMANDS 16
+
+enum SnarkCommands
+{
+  SNARK_COMMAND_MODE,
+  SNARK_COMMAND_TRACE,
+  SNARK_COMMAND_END,
+  SNARK_COMMAND_CREATE,
+  SNARK_COMMAND_PICTURE,
+  SNARK_COMMAND_PROJECTION,
+  SNARK_COMMAND_BASSIS,
+  SNARK_COMMAND_SELECT,
+  SNARK_COMMAND_STOP,
+  SNARK_COMMAND_EXECUTE,
+  SNARK_COMMAND_EVALUATE,
+  SNARK_COMMAND_DISPLAY,
+  SNARK_COMMAND_PUNCH,
+  SNARK_COMMAND_LINES,
+  SNARK_COMMAND_SKUNK,
+  SNARK_COMMAND_SUPERIORIZE
+};
+
+static const INTEGER main_codes[NUMBER_OF_COMMANDS] = 
+{
+  CHAR2INT('m','o','d','e'),
+  CHAR2INT('t','r','a','c'),
+  CHAR2INT('e','n','d',' '),
+  CHAR2INT('c','r','e','a'),
+  CHAR2INT('p','i','c','t'),
+  CHAR2INT('p','r','o','j'),
+  CHAR2INT('b','a','s','i'),  
+  CHAR2INT('s','e','l','e'),
+  CHAR2INT('s','t','o','p'),
+  CHAR2INT('e','x','e','c'),
+  CHAR2INT('e','v','a','l'),
+  CHAR2INT('d','i','s','p'),
+  CHAR2INT('p','u','n','c'),
+  CHAR2INT('l','i','n','e'),
+  CHAR2INT('s','k','u','n'),
+  CHAR2INT('s','u','p','e')
+};
+
+int FindKeywordCode(int word)
+{
+  for(int i = 0; i < NUMBER_OF_COMMANDS; i++) {       // find keyword code
+    if(word == main_codes[i]) {
+      return i;
+    }
+  }
+  return -1;
+}
+
+INTEGER GetCommandPhase(INTEGER code)
+{
+  static const INTEGER Phase[NUMBER_OF_COMMANDS] =
+  {
+//    0, // *     Comment
+    0, // mode  Mode
+    0, // trac  Trace 
+    0, // end   End
+    1, // crea  Create
+    2, // pict  Picture
+    2, // proj  Projection
+    3, // basi  Basis
+    3, // sele  Select
+    3, // stop  Stop
+    3, // exec  Execue
+    4, // eval  Evaluate
+    4, // disp  Display
+    4, // punc  Punch
+    4, // line  Lines
+    4, // skun  Skunk
+    3  // supe  Superiorize
+  };
+
+  if(code >= NUMBER_OF_COMMANDS) {
+    return 4;
+  }
+
+  return Phase[code];
+}
+
+
+int snark(int argc, char *argv[])
+{
+  ///static const INTEGER syst = CHAR2INT('a','y','s','t');
+  //static const INTEGER snar = CHAR2INT('s','n','a','r');
+  //static const INTEGER rand_1 = CHAR2INT('r','a','n','d');
+
+  INTEGER word;
+  BOOLEAN eol;
+  //BOOLEAN flag;
+  INTEGER lphase;  // last phase
+  INTEGER phase;   // current phase
+  BOOLEAN iptflg;   // picture command called
+  BOOLEAN iprflg;   // projection command called
+  
+  BOOLEAN islflg;   // select command called, by wei 1/05 
+
+  REAL begin;
+  REAL curr_time;
+  REAL dur;
+  int CommandCode;
+
+  // bug 179 - swr - 10/30/05
+#ifndef __CYGWIN__
+  // bug 167 - swr - 9/24/05
+  int lfp=open("snark.lock",O_RDWR|O_CREAT,0640);
+  if (lfp<0) {
+    fprintf(stderr, "can't create lock file in current directory - check directory permissions\n");
+    exit(1); /* can not open */
+  }
+  if (lockf(lfp,F_TLOCK,0)<0) {
+    fprintf(stderr, "multiple snark executions in the same directory are not allowed!\n");
+    exit(0); /* can not lock */
+  }
+  /* only first instance continues */
+  char str[10];
+  sprintf(str,"%d\n",getpid());
+  write(lfp,str,strlen(str)); /* record pid to lockfile */
+#endif
+
+  // bug 187 - allow input filename on command line - swr - 11/11/05
+  if (argc > 1) {
+    close(fileno(stdin));
+    if (open(argv[1], O_RDONLY) < 0) {
+      perror(argv[1]);
+      exit(1);
+    }
+  }
+
+  InFile.Open();
+
+  iptflg = FALSE;
+  iprflg = FALSE;
+  islflg = FALSE;     //initialization islflg, by wei 1/05
+  std::string progName = argv[0];    // bug89 - fix header - swr - 2/25/05
+  
+  progName = progName.substr(progName.find_last_of('/')+1);
+
+  fprintf(output, "   %s.s170710 - A PICTURE RECONSTRUCTION PROGRAM\n", progName.c_str());
+
+  lphase = 0;
+
+  second(&begin);
+
+  for(;;) {      
+
+    InFile.getnxt(TRUE);        // get next line of input  // changed "FALSE" to "TRUE. Lajos, Jan 25, 2005
+
+    word = InFile.getwrd(FALSE, &eol, main_codes, NUMBER_OF_COMMANDS);   // check for the keyword
+
+    // added echoing. Lajos, Jan 25, 2005
+    if(eol == TRUE) {
+      InFile.echoline(TRUE);
+      continue;   // got to next line if end of line
+    } else InFile.echoline(FALSE);
+    // find keyword code
+    if((CommandCode = FindKeywordCode(word)) < 0) {
+      // VALID COMMAND NOT FOUND
+      
+      fprintf(output, " **** command ignored");   // invalid command
+      continue;                          // goto next line 
+
+    }
+
+    // VALID COMMAND FOUND
+
+    phase = GetCommandPhase(CommandCode);
+
+    if(phase != 0) {                // check phase
+      if(phase < lphase) {
+
+        // INCORRECT CONTROL CARD SEQUENCE      
+        fprintf(output, "\n **** command sequence error");
+        fprintf(output, "\n **** program aborted\n");
+        return -1;
+      }
+
+      // if end of execs close recfile
+      // if changing phase to 4 or end encoutnered before phase 4
+      if((lphase < 4) && (phase == 4)) {
+        RecFile.Close();
+      }
+
+      lphase = phase;
+    }
+    else {
+      if((CommandCode == SNARK_COMMAND_END) && (lphase < 4)) {
+        RecFile.Close();
+      }
+    }
+      
+    // INSERT OVERLAY CALL BASED ON LPHASE HERE
+    // PASS I-LPHASE*5 TO THE OVERLAY TO CALL THE RIGHT FUNCTION
+    // DELETE THE COMPUTED GO TO AND ITS ASSOCIATED CALLS
+
+    switch(CommandCode) {
+
+//    case SNARK_COMMAND_COMENT: // comment
+//      break;
+
+    case SNARK_COMMAND_MODE: // ESTABLISH CONSTRAINT MODE
+      mode();
+      break;
+      
+    case SNARK_COMMAND_TRACE: // CHANGE THE TRACE SWITCH
+      settra();
+      break;
+      
+    case SNARK_COMMAND_END:
+      ///fprintf(output, "\n         %10i storage units needed", maxsp);
+      //fprintf(output, "\n         %10i storage units needed\n", 0);  // Obsolete
+
+      // free the dinamically allocated global array objects
+      if(MAX_NUMBER_OF_OBJECTS>0) delete[] objects;
+      
+      fprintf(output, "\n");
+      return 0;
+
+    case SNARK_COMMAND_CREATE: // CREATE TEST PATTERN AND/OR PROJECTION DATA
+      if(File11.Open(TRUE) != 0) {
+        fprintf(output, "\n **** unable to open file11 for wrting");
+        fprintf(output, "\n **** program aborted\n");
+             return -1;
+      }
+      creatr();
+      File11.Close();
+      break;
+
+    case SNARK_COMMAND_PICTURE: // SET PICT CALLED FLAG
+      File11.isOpen = FALSE;
+      rdpict(); //  READ TEST PATTERN
+      iptflg = TRUE;
+      break;
+
+    case SNARK_COMMAND_PROJECTION: // BE SURE THAT PICTURE CMD HAS BEEN ENCOUNTERED
+      // IF NOT  ERROR MSG  AND STOP
+      if(iptflg) {
+        rdproj(); // READ PROJECTION DATA
+          
+        if (File11.isOpen) File11.Close();
+        iprflg = TRUE;
+      }
+      else {            
+        ///write (output,1060)
+        fprintf(output, "\n **** command picture is required before projection");
+        fprintf(output, "\n **** program aborted\n");
+        return -1;
+      }
+      break;
+
+    case SNARK_COMMAND_BASSIS: // ESTABLISH THE BASIS 
+      basis();   
+      break;
+
+    case SNARK_COMMAND_SELECT: // RAY SELECTION CONDITIONS FOR PICK
+      select(FALSE);
+       islflg = TRUE;                             //user specified select, by wei 1/05
+      break;
+      
+    case SNARK_COMMAND_STOP: // ESTABLISH ALGORITHM TERMINATING CONDITIONS
+      stopex();
+      break;
+      
+    case SNARK_COMMAND_EXECUTE: // EXECUTE THE RECONSTRUCTION ALGORITHM
+      if(iprflg) {
+        if(!islflg) select(TRUE);        
+        islflg = TRUE;          //no select command, select default efficient , by wei 1/05 
+        exalg();
+      }
+      else {
+        fprintf(output, "\n **** command projection is required before execute");
+        fprintf(output, "\n **** program aborted\n");
+        return -1;
+      }
+      break;
+      
+    case SNARK_COMMAND_EVALUATE: // EVALUATION OF THE RECONSTRUCTIONS
+      Eval.eval_1();
+      break;
+      
+    case SNARK_COMMAND_DISPLAY: // DIGITAL DISPLAY OF THE RECONSTRUCTIONS
+      disply();
+      break;
+      
+    case SNARK_COMMAND_PUNCH: // PUNCH THE RECONSTRUCTIONS
+      pnch();
+      break;
+      
+    case SNARK_COMMAND_LINES: // LINES DISPLAY OF THE DIFFERENCE
+      doline();
+      break;
+      
+    case SNARK_COMMAND_SKUNK: // PSEUDO HALF TONE DISPLSY OF THE RECONSTRUCTIONS
+      halft();
+      break;
+
+    case SNARK_COMMAND_SUPERIORIZE: // ESTABLISH SUPERIORIZATION OPTIONS
+      initSuperiorization();
+      break;
+    }
+      
+    second(&curr_time);
+    dur = curr_time - begin;
+    begin = curr_time;
+    fprintf(output, "\n         %10.3f seconds used for processing command %s\n", dur, int2str(word)); // changed precision to three digits - swr 1/21/06
+  };
+
+  fprintf(output, "\n");
+  return 0;
+}
+
diff --git a/src/snark/snark.h b/src/snark/snark.h
new file mode 100644 (file)
index 0000000..b4bf8c9
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef SNARK_H_
+#define SNARK_H_
+
+
+int snark(int argc, char *argv[]);
+
+#endif /*SNARK_H_*/
diff --git a/src/snark/snfft.cpp b/src/snark/snfft.cpp
new file mode 100644 (file)
index 0000000..b891b3a
--- /dev/null
@@ -0,0 +1,238 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ snfft.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+
+    SUBROUTINE SNFFT
+    PURPOSE
+       PERFORMS DISCRETE COMPLEX FOURIER TRANSFORMS ON A COMPLEX
+       THREE-DIMENSIONAL ARRAY.
+    USAGE
+       CALL SNFFT(X,N,INVDIR)
+    DESCRIPTION
+       X     - AS INPUT, X CONTAINS THE COMPLEX THREE-DIMENSIONAL
+               ARRAY TO BE TRANSFORMED. THE REAL PART OF X(K,L,M)
+               IS STORED IN VECTOR FASHION IN A CELL WITH INDEX
+               2*(K*N(3)*N(2)+L*N(3)+M)+1, THE IMAGINARY PART IS
+               STORED IN THE CELL IMMEDIATELY FOLLOWING. NOTE THAT
+               THE SUBSCRIPT K INCREASES MOST RAPIDLY, AND M LEAST
+               RAPIDLY.
+               AS OUTPUT, X CONTAINS THE COMPLEX FOURIER TRANSFORM
+               OR THE INVERSE TRANSFORM, DEPENDING ON INVDIR.
+       N     - A THREE CELL VECTOR WHICH DETERMINES THE SIZE OF
+               THE THREE DIMENSIONS OF X.
+       INVDIR- INTEGER, WHICH SHOULD BE EITHER +1 OR -1, WHICH
+               DETERMINES WHETHER THE DIRECT OR INVERSE TRANSFORM
+               IS TO BE PERFORMED.
+    REMARKS
+       THIS SUBROUTINE CAN BE USED IN A SNARK-ENVIRONMENT ONLY]
+       THE WORKSPACE THIS SUBROUTINE REQUIRES IS ALLOCATED FROM
+       THE BLANK COMMON BLOCK, USING THE SNARK SUBROUTINE ALLOC.
+       THIS WORKSPACE IS RELEASED UPON EXIT OF SNFFT.
+       THE SUBROUTINE CAN BE USED FOR ANY VALUES OF THE VECTOR N.
+       IT IS POSSIBLE THAT THE SUBROUTINE CAUSES A HALT , DUE TO
+       THE FACT THAT NOT ENOUGH SPACE IN BLANK COMMON IS AVAILABLE.
+    SUBROUTINES REQUIRED
+       FFT2P, FTODD, UNKPS, FREE
+    FUNCTIONS REQUIRED
+       ALLOC, MAVIRT
+       INTEGER FUNCTION MAVIRT(I,J,Y)
+       INTEGER I,J
+       REAL Y(1)
+       THIS FUNCTION IS ONLY REQUIRED DURING LOADING,BUT IS NOT
+       CALLED DURING EXECUTION.
+    SOURCE
+       THE SUBROUTINES FFT2P, FTODD AND UNKPS ARE FROM
+          POLGE,R.J. AND BHAGAVAN,B.K.,EFFICIENT FAST FOURIER
+               TRANSFORM PROGRAMS FOR ARBITRARY FACTORS WITH
+               ONE STEP LOOP UNSCRAMBLING. IEEE TRANSACTIONS ON
+               COMPUTERS, MAY 1976, PP. 534-539.
+    METHOD
+       FOR INVDIR = +1 THE FORIER TRANSFORM OF COMPLEX ARRAY
+       X IS OBTAINED.
+
+           N(1)-1  N(2)-1  N(3)-1            -L1  -L2  -L3
+  X(K,L,M)=SUM     SUM     SUM     X(P,Q,R)*W1  *W2  *W3
+           P=0     Q=0     R=0
+
+       WHERE WI IS THE N(I)-TH ROOT OF UNITY AND L1=P*K,
+       L2=L*Q AND L3=R*M.
+       FOR INVDIR = -1 THE INVERSE TRANSFORM  OF COMPLEX ARRAY
+       X IS OBTAINED.
+
+ X(K,L,M) =
+
+    1      N(1)-1  N(2)-1  N(3)-1             L1   L2   L3
+   ---- *  SUM     SUM     SUM     X(P,Q,R)*W1  *W2  *W3
+   NORM    P=0     Q=0     R=0
+
+       WHERE NORM = N(1)*N(2)*N(3).
+ ..................................................................
+*/
+
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "primfc.h"
+#include "fft2p.h"
+#include "snfft.h"    
+
+
+void snfft(REAL* x, INTEGER* n, INTEGER invdir)
+{  
+  INTEGER i;
+  INTEGER nxtelt;
+  INTEGER upfac;
+  INTEGER ifft;
+  INTEGER dostep;
+  INTEGER uppbnd;
+  INTEGER* ipf;
+  INTEGER m;
+  INTEGER nipf;
+  INTEGER ipivot;
+  INTEGER ndftau;
+  INTEGER ipusiz;
+  INTEGER itsize;
+  //INTEGER* ind;
+  INTEGER ind1;
+  INTEGER ixsiz;
+  REAL* ivspt = NULL;
+  REAL* it = NULL;
+  INTEGER* ix = NULL;
+  INTEGER* ipu = NULL;
+  REAL* iftaux = NULL;    //wei 3/2005
+  INTEGER j;
+  INTEGER lhi;
+  REAL facnor;
+  INTEGER l;
+
+  if(abs(invdir) != 1)
+  {
+    fprintf(output, "\n **** parameter invdir of function snfft() should be +1 or -1");
+    fprintf(output, "\n **** program aborted\n");
+    exit(0);
+  }
+
+  for(i = 0; i < 3; i++) {
+    if(n[i] < 1)
+    {
+      fprintf(output, "\n **** parameter n[%d] of function snfft() should be positive", i);
+      fprintf(output, "\n **** program aborted\n");
+      exit(0);
+    }
+  }
+
+  nxtelt = 1;
+  upfac = n[0] * n[1] * n[2];
+  for(i = 0; i < 3; i++) {
+
+    ifft = n[2-i];
+
+    if(ifft != 1) {
+      upfac /= ifft;
+      dostep = nxtelt * ifft;
+      uppbnd = dostep * (upfac - 1) + 1;
+
+      ipf = new INTEGER[7];
+
+      primfc(ifft, &m, &nipf, ipf, 7);
+
+      ipivot = ifft / (1 << (2 * (m / 2)));
+
+      ndftau = 2 * nxtelt;
+
+      ipusiz = (3 * ipivot) / 2 + 2;
+
+      itsize = 2;
+
+      if(nipf != 0) {
+        ndftau = 2 * ipf[nipf - 1] * nxtelt;
+        itsize = 2 * ipf[nipf - 1];
+      }
+      ixsiz = MAX0(ipusiz, (1 << (m/2)));
+      ivspt = new REAL[itsize];
+      it = new REAL[itsize];
+      ix = new INTEGER[ixsiz];
+      ipu = new INTEGER[ipusiz];
+      iftaux = new REAL[ndftau];
+      for (j=0;j<itsize;j++) ivspt[j]=0;
+      for (j=0;j<itsize;j++) it[j]=0;
+      for (j=0;j<ixsiz;j++) ix[j]=0;
+      for (j=0;j<ipusiz;j++) ipu[j]=0;
+      for (j=0;j<ndftau;j++) iftaux[j]=0;
+
+      for(j = 0; j < uppbnd; j += dostep) {
+        ind1 = 2 * j;
+        fft2p(nxtelt, nxtelt, iftaux, x+ind1, m, -invdir, ix, nipf, ipf, ipu, ivspt, it, FALSE);
+
+        // test /////////////////////////////////////////
+        /*
+        fprintf(output,"\n snfft ivspt");
+        for(int xx = 0; xx < itsize; xx++) {
+          if((xx % 7) == 0) fprintf(output,"\n");
+          fprintf(output," %9.4f", ivspt[xx]);
+        }
+        */
+        /*
+        fprintf(output,"\n snfft it");
+        for(int xx = 0; xx < itsize; xx++) {
+          if((xx % 7) == 0) fprintf(output,"\n");
+          fprintf(output," %9.4f", it[xx]);
+        }
+        */
+
+        /*
+        fprintf(output,"\n snfft x");
+        for(int xx = 0; xx < 2 * n[0] * n[1] * n[2]; xx++) {
+          if((xx % 7) == 0) fprintf(output,"\n");
+          fprintf(output," %9.4f", x[xx]);
+        }
+        */
+        /////////////////////////////////////////////////
+      }
+
+      //////////////////////////////
+      /*
+        fprintf(output,"\n snfft x");
+        for(int xx = 0; xx < 2 * n[0] * n[1] * n[2]; xx++) {
+          if((xx % 7) == 0) fprintf(output,"\n");
+          fprintf(output," %9.4f", x[xx]);
+        }
+      */
+      /////////////////////////////////////////////////////
+
+      nxtelt *= ifft;
+
+      delete[] ipf;  // bug 92 - Lajos - 03/02/2005
+
+    }
+  }
+
+  if(invdir == -1) {
+
+    lhi = 2 * n[0] * n[1] * n[2];
+
+    facnor = ((REAL) 2.0) / ((REAL) lhi);
+
+    for(l = 0; l < lhi; l++) {
+      x[l] *= facnor;
+    }
+  }
+
+
+       if(ivspt != NULL)  delete[] ivspt;
+       if(it != NULL)  delete[] it;   
+       if(ix != NULL)  delete[] ix;
+       if(ipu != NULL)  delete[] ipu;
+       if(iftaux != NULL)  delete[] iftaux;       //wei 3/2005
+}      
diff --git a/src/snark/snfft.h b/src/snark/snfft.h
new file mode 100644 (file)
index 0000000..f44e441
--- /dev/null
@@ -0,0 +1,18 @@
+/* 
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ snfft.h,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+*/
+
+#ifndef SNFFT_H
+#define SNFFT_H
+    
+void snfft(REAL* x, INTEGER* n, INTEGER invdir);
+
+#endif      
diff --git a/src/snark/spctrm.cpp b/src/snark/spctrm.cpp
new file mode 100644 (file)
index 0000000..c81b32a
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ spctrm.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+
+*/
+
+#include "spctrm.h"
+
+spctrm_class Spctrm = {
+  0,
+  {0,0,0,0,0,0,0},
+  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
+  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}
+};
diff --git a/src/snark/spctrm.h b/src/snark/spctrm.h
new file mode 100644 (file)
index 0000000..22e15e0
--- /dev/null
@@ -0,0 +1,39 @@
+/* 
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ spctrm.h,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+*/
+
+#ifndef SPCTRM_H
+#define SPCTRM_H
+
+#include "blkdta.h"
+
+// common /spctrm/ nergy, energy(7), engwt(7), backgr(7)
+// integer nergy, energy
+// real engwt, backgr
+// data nergy, energy, engwt, backgr/ 8*0, 14*0.0/
+
+extern class spctrm_class 
+{
+  public:
+  INTEGER nergy; 
+  INTEGER energy[7];
+  REAL    engwt[7];
+  REAL    backgr[7];
+} Spctrm;
+
+/*
+extern INTEGER nergy; 
+extern INTEGER energy[7];
+extern REAL    engwt[7];
+extern REAL    backgr[7];
+*/
+
+#endif
diff --git a/src/snark/stopex.cpp b/src/snark/stopex.cpp
new file mode 100644 (file)
index 0000000..048fb2f
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ stopex.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+
+DETERMINE THE ALGORITHM STOPPING CRITERION.  SET TERM TO REFLECT
+IT.  FOR AN ITERATION COUNT, TERM IS THE NEGATIVE OF THAT NUMBER.
+FOR A TEST NAME, TERM CONTAINS THE INDEX.
+
+*/
+
+
+#include <cstdio>
+#include <cstdlib>
+#include "blkdta.h"
+#include "consts.h"
+#include "term.h"
+#include "trm1.h"
+#include "trm2.h"
+#include "trm3.h"
+#include "trm4.h"
+#include "trm5.h"
+#include "trm6.h"
+#include "trm_weighted_squared_distance.h"
+#include "uiod.h"
+#include "int2str.h"
+#include "infile.h"
+#include "stopex.h"
+
+trm1_class trm1;
+trm2_class trm2;
+trm3_class trm3;
+trm4_class trm4;
+trm5_class trm5;
+trm6_class trm6;
+trm_weighted_squared_distance trm_weighted_squared_distance_inst;
+
+termtest_class* TrmClasses[] =
+{
+  &trm1,
+  &trm2,
+  &trm3,
+  &trm4,
+  &trm5,
+  &trm6,
+  &trm_weighted_squared_distance_inst
+};
+
+void stopex()
+{
+  static const INTEGER code[] =
+  {
+    CHAR2INT('i','t','e','r'),
+    CHAR2INT('t','e','r','m')
+  };
+
+  static const INTEGER testn[] =
+  {
+    CHAR2INT('t','r','m','1'),
+    CHAR2INT('t','r','m','2'),
+    CHAR2INT('v','a','r','i'),
+    CHAR2INT('m','l','s','t'),
+    CHAR2INT('k','l','d','s'),
+    CHAR2INT('r','e','s','i'),
+    CHAR2INT('w','s','q','d')
+  }; 
+  INTEGER num_termination_criteria = 7;
+
+  INTEGER i;
+
+  INTEGER word;
+  BOOLEAN eol;
+
+  // GET THE TERMINATION CRITERION
+  word = InFile.getwrd(FALSE, &eol, code, 2);
+
+  switch(word)
+  {
+  case CHAR2INT('i','t','e','r'):
+
+    // GET THE NUMBER OF ITERATIONS
+    word = InFile.getint(FALSE, &eol);
+
+    if (word <= 0)
+    {
+      fprintf(output, "\n **** number of iterations must be greater than zero");
+      fprintf(output, "\n **** program aborted\n");
+      exit(-1);
+    }
+
+    Term.iterations = word;
+    Term.termInstance = NULL;
+    fprintf(output, "\n         %4i iterations", word);
+    return;
+
+  case CHAR2INT('t','e','r','m'):
+
+    // READ THE TEST NAME
+    word = InFile.getwrd(FALSE, &eol, testn, num_termination_criteria);
+
+    for(i = 0; i < num_termination_criteria; i++) {
+      if(word == testn[i]) {
+       fprintf(output, "\n         termination test %s", int2str(word));
+
+       Term.termInstance = TrmClasses[i];
+       Term.termInstance->Init();
+       Term.iterations = 0;
+        return;
+
+      }
+    }
+
+    fprintf(output, "\n **** unknown test %s", int2str(word));
+    fprintf(output, "\n **** program aborted\n");
+    exit(-1);
+
+    return;
+
+  default:
+    fprintf(output, "\n **** unknown command %s, ITER or TERM must be specified", int2str(word));
+    fprintf(output, "\n **** program aborted\n");
+    exit(-1);
+    return;
+  }
+}      
diff --git a/src/snark/stopex.h b/src/snark/stopex.h
new file mode 100644 (file)
index 0000000..547eb13
--- /dev/null
@@ -0,0 +1,18 @@
+/* 
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ stopex.h,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+*/
+
+#ifndef STOPEX_H
+#define STOPEX_H
+      
+void stopex();
+
+#endif
diff --git a/src/snark/stru_acc.c b/src/snark/stru_acc.c
new file mode 100644 (file)
index 0000000..bdccf75
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                               *
+ *                         S N A R K   1 4                       *
+ *                                                               *
+ *                A PICTURE RECONSTRUCTION PROGRAM               *
+ *                                                               *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+  stru_acc.c,v 1.4 2009/06/01 03:33:26 jklukowska Exp
+
+ Previously part of SuperSNARK
+ */
+
+#include "malloc.h"
+#include "experimenter.h"
+#include "stru_acc.h"
+#include "read_eval_recon1.h"
+#include "read_eval_phantom1.h"
+
+/* ----------------------------- stru_acc.c -------------------------------
+
+        This function computes the structural accuracy.
+
+INPUTS:
+  itr1 - array of length niters containing the iteration numbers for the
+         first algorithm.
+  itr2 - array of length niters containing the iteration numbers for the
+         second algorithm.
+  niters - number of iterations to be compared
+  keywrd1 - string containing the keyword which defines the first algorithm.
+  keywrd2 - string containing the keyword which defines the second algorithm.
+
+OUTPUTS:
+  str_acc1 - array of length niters containing the structural accuracy for 
+             the first algorithm.
+  str_acc2 - array of length niters containing the structural accuracy for
+             the second algorithm.
+
+ */
+
+void stru_acc(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* str_acc1, double* str_acc2)
+//int *itr1,*itr2,niters;
+//char *keywrd1,*keywrd2;
+//double *str_acc1,*str_acc2;
+{
+    double *phantom, *recon1, *recon2;
+    int *regions, numstr, i, j, *strarea;
+
+    /* read in abnormality index for phantom structures */
+
+    read_eval_phantom1(&regions, &numstr, &phantom, &strarea);
+
+    /* allocate memory to store abnormality indexes for
+       structures in the reconstructions*/
+
+    recon1 = (double *) malloc(numstr * sizeof (double));
+    recon2 = (double *) malloc(numstr * sizeof (double));
+
+    for (i = 0; i < niters; i++) { /* read in abnormality indexes for structures in
+                  the reconstructions. Initialize the arrays
+                  which will store the structural accuracy */
+
+        read_eval_recon1(&itr1[i], keywrd1, numstr, recon1);
+        read_eval_recon1(&itr2[i], keywrd2, numstr, recon2);
+        str_acc1[i] = 0.0;
+        str_acc2[i] = 0.0;
+        for (j = 0; j < numstr; j++) { /* compute structural accuracy for both algorithms */
+
+            str_acc1[i] = str_acc1[i] + fabs(recon1[j] - phantom[j]);
+            str_acc2[i] = str_acc2[i] + fabs(recon2[j] - phantom[j]);
+        }
+        str_acc1[i] = -str_acc1[i] / numstr; /* structural */
+        str_acc2[i] = -str_acc2[i] / numstr; /* accuracy */
+    }
+
+    free(phantom); /* free memory for next function call */
+    free(recon1);
+    free(recon2);
+    free(strarea);
+
+}
diff --git a/src/snark/stru_acc.h b/src/snark/stru_acc.h
new file mode 100644 (file)
index 0000000..9948b9d
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef STRU_ACC_H
+#define STRU_ACC_H
+
+void stru_acc(int*itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* str_acc1, double* str_acc2);
+//int *itr1,*itr2,niters;
+//char *keywrd1,*keywrd2;
+//double *str_acc1,*str_acc2;
+
+#endif
diff --git a/src/snark/subreg.cpp b/src/snark/subreg.cpp
new file mode 100644 (file)
index 0000000..6444ee3
--- /dev/null
@@ -0,0 +1,173 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ subreg.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+
+ Subroutine to compute rough boundary (a bounding rectangle) of 
+ the specified region to reduce the search area that requires
+ within region test.
+ Specified region is either a rectangle or an ellipse.
+ The bounding rectangle is the SMALLEST rectangle, with the same
+ orientation as the picture, that bounds the nominal rectangle defined
+ to have the same origin, axes and orientation as the specified region
+ If this bounding rectangle (AN ESTIMATION) is partially outside the 
+ picture area, a WARNING message is output and the bounding rectangle
+ is clipped to the picture boundary.
+ This bounding rectangle is then passed to the DIST routine where a 
+ rigorous within boundary test reduced to this area is performed.
+
+ Parameters are passed through COMMON /region/
+*/
+
+
+// parameter (MXNREG=40)
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "region.h"
+#include "uiod.h"
+#include "consts.h"
+
+#include "eval.h"
+void Eval_class::subreg(INTEGER ObjJ)
+{
+  REAL cx;
+  REAL cy;
+  REAL a;
+  REAL b;
+
+  REAL theta;
+  REAL cs;
+  REAL ss;
+
+  INTEGER ixw;
+  INTEGER iyw;
+  INTEGER ic;
+  INTEGER icx;
+  INTEGER icy;
+
+  REAL tx1;
+  REAL tx2;
+  REAL ty1;
+  REAL ty2;
+
+  REAL xw;
+  REAL yw;
+
+  REAL x0;
+  REAL y0;
+
+
+  REAL xs;
+  REAL ys;
+
+  static BOOLEAN flgout;
+  //  static BOOLEAN objdon[MXNREG];  moved to eval.h - bug112 - swr - 6/10/05
+
+  BOOLEAN idone;
+
+  // Set up parameters
+
+  cx = Obj[ObjJ].cx;
+  cy = Obj[ObjJ].cy;
+  a = Obj[ObjJ].u;
+  b = Obj[ObjJ].v;
+  Region.aplus = a + (REAL) 0.0001;
+  Region.bplus = b + (REAL) 0.0001;
+  theta = Obj[ObjJ].ang * (REAL) Consts.pi/180.0;
+  cs = (REAL) cos(theta);
+  ss = (REAL) sin(theta);
+
+  Region.d1 = GeoPar.pixsiz * cs;
+  Region.d2 = GeoPar.pixsiz * ss;
+  Region.asq = SQR(a);
+  Region.bsq = SQR(b);
+
+  // Estimate boundary of region
+
+  tx1 = (REAL) fabs(a * cs + b * ss);
+  tx2 = (REAL) fabs(a * cs - b * ss);
+  ty1 = (REAL) fabs(a * ss - b * cs);
+  ty2 = (REAL) fabs(a * ss + b * cs);
+  xw = MAX0(tx1, tx2);
+  yw = MAX0(ty1, ty2);
+  ixw = lround(xw / GeoPar.pixsiz);  // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+  iyw = lround(yw / GeoPar.pixsiz);  // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+  ic = GeoPar.nelem / 2;
+  icx = ic + lround(cx / GeoPar.pixsiz);  // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+  icy = ic - lround(cy / GeoPar.pixsiz);  // changed "(INTEGER)" to "lround" to match Fortran code. Lajos, Jan 20, 2005
+
+  Region.ix1 = icx - ixw;
+  Region.ix2 = icx + ixw;
+  Region.iy1 = icy - iyw;
+  Region.iy2 = icy + iyw;
+
+  // Ensure estimated boundary is within picture region
+
+  idone = objdon[ObjJ];
+  flgout = FALSE;
+  if(Region.ix1 < 0) {
+
+    if((!flgout) && (idone == 0)) {
+      fprintf(output, "\n         WARNING: Region %2i might not be entirely within picture", ObjJ);
+      fprintf(output, "\n         Rough estimate of object boundary:");
+      fprintf(output, "\n         ix1     ix2     iy1     iy2");
+      fprintf(output, "\n         %3i     %3i     %3i     %3i", Region.ix1, Region.ix2, Region.iy1, Region.iy2);
+    }
+
+    flgout = TRUE;
+    Region.ix1 = 0;
+  }
+
+  if(Region.ix2 > GeoPar.nelem - 1) {
+    if((!flgout) && (idone == 0)) {
+      fprintf(output, "\n         WARNING: Region %2i might not be entirely within picture", ObjJ);
+      fprintf(output, "\n         Rough estimate of object boundary:");
+      fprintf(output, "\n         ix1     ix2     iy1     iy2");
+      fprintf(output, "\n         %3i     %3i     %3i     %3i", Region.ix1, Region.ix2, Region.iy1, Region.iy2);
+    }
+    flgout = TRUE;
+    Region.ix2 = GeoPar.nelem - 1;
+  }
+
+  if(Region.iy1 < 0) {
+    if((!flgout) && (idone == 0)) {
+      fprintf(output, "\n         WARNING: Region %2i might not be entirely within picture", ObjJ);
+      fprintf(output, "\n         Rough estimate of object boundary:");
+      fprintf(output, "\n         ix1     ix2     iy1     iy2");
+      fprintf(output, "\n         %3i     %3i     %3i     %3i", Region.ix1, Region.ix2, Region.iy1, Region.iy2);
+    }
+    flgout = TRUE;
+    Region.iy1 = 0;
+  }
+
+  if(Region.iy2 > GeoPar.nelem - 1) {
+    if((!flgout) && (idone == 0)) {
+      fprintf(output, "\n         WARNING: Region %2i might not be entirely within picture", ObjJ);
+      fprintf(output, "\n         Rough estimate of object boundary:");
+      fprintf(output, "\n         ix1     ix2     iy1     iy2");
+      fprintf(output, "\n         %3i     %3i     %3i     %3i", Region.ix1, Region.ix2, Region.iy1, Region.iy2);
+    }
+    flgout = TRUE;
+    Region.iy2 = GeoPar.nelem - 1;
+  }
+
+  objdon[ObjJ] = true;
+
+  x0 = (Region.ix1 - ic) * GeoPar.pixsiz;
+  y0 = (ic - Region.iy1) * GeoPar.pixsiz;
+  xs = x0 - cx;
+  ys = y0 - cy;
+  Region.xd0 = xs * cs + ys * ss;
+  Region.yd0 = -xs * ss + ys * cs;
+}
diff --git a/src/snark/superior.cpp b/src/snark/superior.cpp
new file mode 100644 (file)
index 0000000..6056bf5
--- /dev/null
@@ -0,0 +1,425 @@
+/*
+$SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+$HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/superior.cpp $
+$LastChangedRevision: 158 $
+$Date: 2014-07-30 16:59:01 -0400 (Wed, 30 Jul 2014) $
+$Author: olangthaler $
+*/
+
+#include <cstdlib>
+#include <iostream>
+#include <cmath>
+#include <math.h>
+#include <stdlib.h>
+#include "superior.h"
+#include "nav.h"
+#include "nav1.h"
+#include "nav2.h"
+#include "nav3.h"
+#include "nav4.h"
+#include "nav5.h"
+#include "sec_cri.h"
+#include "sec_cri1.h"
+#include "sec_cri2.h"
+#include "sec_cri3.h"
+#include "sec_cri4.h"
+#include "sec_cri5.h"
+#include "uiod.h"
+#include "int2str.h"
+#include "infile.h"
+#include "geom.h"
+#include "projfile.h"
+#include "blob.h"
+#include "DIGRand.h"
+
+using namespace std;
+
+sec_cri1_class sc1;
+sec_cri2_class sc2;
+sec_cri3_class sc3;
+sec_cri4_class sc4;
+sec_cri5_class sc5;
+
+sec_cri_class* scClasses[] =
+{
+       &sc1,
+       &sc2,
+       &sc3,
+       &sc4,
+       &sc5
+};
+
+nav1_class nav1;
+nav2_class nav2;
+nav3_class nav3;
+nav4_class nav4;
+nav5_class nav5;
+
+nav_class* navClasses[] =
+{
+       &nav1,
+       &nav2,
+       &nav3,
+       &nav4,
+       &nav5
+};
+
+class superior_class SuperSet =
+{
+       FALSE,
+       0,
+       0,
+       0,
+       NULL,
+       NULL,
+       FALSE,
+       0
+};
+
+void initSuperiorization()
+{
+       INTEGER word;
+       REAL number;
+       BOOLEAN eol;
+
+       // enable superiorization
+       SuperSet.superiorizationEnabled = TRUE;
+       cout << "\n         Superiorization is enabled";
+
+       // read N
+       word = InFile.getint(FALSE, &eol);
+
+       if (word <= 0)
+       {
+               cout << "\n **** N must be greater than zero";
+               cout << "\n **** program aborted\n";
+               exit(-1);
+       }
+       SuperSet.N = word;
+       cout << "\n         N = " << SuperSet.N;
+
+       // read a
+       number = InFile.getnum(FALSE, &eol);
+
+       if (number <= 0)
+       {
+               cout << "\n **** a must be greater than zero";
+               cout << "\n **** program aborted\n";
+               exit(-1);
+       }
+       if (number >= 1)
+       {
+               cout << "\n **** a must be less than one";
+               cout << "\n **** program aborted\n";
+               exit(-1);
+       }
+       SuperSet.a = number;
+       cout << "\n         a = " << SuperSet.a;
+
+       // read b
+       number = InFile.getnum(FALSE, &eol);
+
+       if (number <= 0)
+       {
+               cout << "\n **** b must be greater than zero";
+               cout << "\n **** program aborted\n";
+               exit(-1);
+       }
+       SuperSet.b = number;
+       cout << "\n         b = " << SuperSet.b;
+
+       // read secondary criterion
+       static const INTEGER criterion[] =
+       {
+               CHAR2INT('t', 'v', 'a', 'r'),
+               CHAR2INT('s', 'm', 'o', 'o'),
+               CHAR2INT('s', 'c', 'r', '3'),
+               CHAR2INT('s', 'c', 'r', '4'),
+               CHAR2INT('s', 'c', 'r', '5')
+       };
+
+       word = InFile.getwrd(FALSE, &eol, criterion, 5);
+
+       for (INTEGER i = 0; i < 5; i++)
+       {
+               if (word == criterion[i])
+               {
+                       cout << "\n         secondary criterion: " << int2str(criterion[i]);
+
+                       SuperSet.secondaryCriterion = scClasses[i];
+                       SuperSet.secondaryCriterion->Init();
+
+                       // set the default non-ascending vector for the selected secondary criterion
+                       SuperSet.nonascendingVector = navClasses[i];
+                       SuperSet.nonascendingVector->Init();
+
+                       break;
+               }
+       }
+
+       if (SuperSet.secondaryCriterion == NULL)
+       {
+               cout << "\n **** unknown secondary criterion ", int2str(word);
+               cout << "\n **** program aborted\n";
+               exit(-1);
+       }
+
+       // set default values of the optional commands
+       SuperSet.report = false;
+       SuperSet.alternativel=0;
+       SuperSet.positivity = false;
+
+       // read remaining optional commands: posi, altl (alternative l) or rprt
+       static const INTEGER optionsf[] =
+       {
+               CHAR2INT('a', 't', 'l', '1'),
+               CHAR2INT('a', 't', 'l', '2'),
+               CHAR2INT('r', 'p', 'r', 't'),
+               CHAR2INT('p', 'o', 's', 'i')
+       };
+
+       word = InFile.getwrd(FALSE, &eol, optionsf, 4);
+
+       for (INTEGER i = 0; i < 4; i++)
+       {
+               if (word == optionsf[i])
+               {
+                       if (i==0)
+                       {
+                               SuperSet.alternativel=1;
+                               cout << "\n         alternative l handling 1 is enabled";
+                       }
+                       else if (i==1)
+                       {
+                               SuperSet.alternativel=2;
+                               cout << "\n         alternative l handling 2 is enabled";
+                       }
+                       else if (i==2)
+                       {
+                               SuperSet.report = true;
+                               cout << "\n         reporting is enabled";
+                               cout << "\n         reporting file: RPRTsuperiorization";
+
+                               SuperSet.skips = InFile.getnum(FALSE, &eol);
+                               if (SuperSet.skips>0)
+                               {
+                                       cout << "\n         report skip factor " << SuperSet.skips;
+                               }
+                               else
+                               {
+                                       cout << "\n         reporting on every iteration";
+                               }
+                       }
+                       else if (i==3)
+                       {
+                               SuperSet.positivity=true;
+                               cout << "\n         positivity constraint is enabled";
+                       }
+               }
+       }
+
+       // read remaining optional commands: altl (alternative l) or rprt
+       static const INTEGER options[] =
+       {
+               CHAR2INT('a', 't', 'l', '1'),
+               CHAR2INT('a', 't', 'l', '2'),
+               CHAR2INT('r', 'p', 'r', 't')
+       };
+
+       word = InFile.getwrd(FALSE, &eol, options, 3);
+
+       for (INTEGER i = 0; i < 3; i++)
+       {
+               if (word == options[i])
+               {
+                       if (i==0)
+                       {
+                               SuperSet.alternativel=1;
+                               cout << "\n         alternative l handling 1 is enabled";
+                       }
+                       else if (i==1)
+                       {
+                               SuperSet.alternativel=2;
+                               cout << "\n         alternative l handling 2 is enabled";
+                       }
+                       else if (i==2)
+                       {
+                               SuperSet.report = true;
+                               cout << "\n         reporting is enabled";
+                               cout << "\n         reporting file: RPRTsuperiorization";
+
+                               SuperSet.skips = InFile.getnum(FALSE, &eol);
+                               if (SuperSet.skips>0)
+                               {
+                                       cout << "\n         report skip factor " << SuperSet.skips;
+                               }
+                               else
+                               {
+                                       cout << "\n         reporting on every iteration";
+                               }
+                       }
+               }
+       }
+
+       // read last possible command (rprt)
+       INTEGER rprt = CHAR2INT('r','p','r','t');
+       if (InFile.getwrd(FALSE, &eol, &rprt, 1) == rprt)
+       {
+               SuperSet.report = true;
+               cout << "\n         reporting is enabled";
+               cout << "\n         reporting file: RPRTsuperiorization";
+
+               SuperSet.skips = InFile.getnum(FALSE, &eol);
+               if (SuperSet.skips>0)
+               {
+                       cout << "\n         report skip factor " << SuperSet.skips;
+               }
+               else
+               {
+                       cout << "\n         reporting on every iteration";
+               }
+       }
+
+       // "set l = -1"
+       SuperSet.l = -1;
+}
+
+BOOLEAN executeSuperiorization(REAL* recon, INTEGER* list, REAL* weight, INTEGER count, alg_class* algorithm)
+{
+       double min = pow(10,-15);
+       int pixelcount = 0;
+
+       if(Blob.pix_basis)
+       {
+               pixelcount = GeoPar.area;
+       }
+       else
+       {
+               cout << "\nError: Superiorization does currently not support blobs, skipping Superiorization.";
+
+               // execute one iteration of the selected algorithm
+               return algorithm->Run(recon, list, weight, count);
+       }
+
+       // user defined superiorization parameters
+       INTEGER N = SuperSet.N;
+       REAL a = SuperSet.a;
+       REAL b = SuperSet.b;
+       sec_cri_class* secCrit = SuperSet.secondaryCriterion;
+       nav_class* naV = SuperSet.nonascendingVector;
+
+       // xkn, vkn and z are declared here so that memory is only allocated once
+       REAL* xkn = new REAL[pixelcount];
+       REAL* vkn = new REAL[pixelcount];
+       REAL* z = new REAL[pixelcount];
+
+       // things that should only be done on the first iteration
+       // "set k = 0"
+       // taken care of by loop in exalg
+       // "set xk = xdash"
+       // not necessary (accessing recon directly)
+       // "set l = -1"
+       INTEGER l;
+       if (SuperSet.alternativel==1)
+       {
+               l = count-2;
+       }
+       else if (SuperSet.alternativel==2 && count>1)
+       {
+               l = (int)round(Rand()*(SuperSet.l-count)) + count - 1;
+       }
+       else if (count==1)
+       {
+               SuperSet.l = l = -1;
+       }
+       else
+       {
+               l = SuperSet.l;
+       }
+
+       // "repeat"
+       // taken care of by loop in exalg
+       // "set n = 0"
+       INTEGER n = 0;
+       // "set xkn = xk"
+       memcpy(xkn, recon, pixelcount * sizeof(REAL));
+       // "while n < N"
+       REAL phixk=secCrit->Run(recon); // only needs to be processed once
+       while (n < N)
+       {
+               // "set vkn to be a nonascending vector for phi at xkn"
+               naV->Run(xkn, vkn);
+
+               // "set loop = true"
+               // "while (loop)"
+
+               while (true)
+               {
+                       // "set l = l+1"
+                       l++;
+                       // "set betakn = mul"
+                       REAL betakn = b*pow(a, l);
+                       if (betakn<min) betakn=0;
+                       // "set z = xkn + betakn*vkn"
+                       for (INTEGER i = 0; i < pixelcount; i++) z[i] = xkn[i] + (betakn * vkn[i]);
+                       // "if z e delta and phi(z) <= phi(xk) then"
+                       BOOLEAN inDelta = true;
+                       if (SuperSet.positivity)
+                       {
+                               for (INTEGER i = 0; i < pixelcount; i++) if (z[i] < 0) inDelta=false;
+                       }
+                       if (inDelta && secCrit->Run(z) <= phixk)
+                       {
+                               // "set n = n+1"
+                               n++;
+                               // "set xkn = z"
+                               memcpy(xkn, z, pixelcount * sizeof(REAL));
+                               // "set loop = false"
+                               break;
+                       }
+               }
+       }
+       // "set xk+1 = B*xkN"
+       memcpy(recon, xkn, pixelcount * sizeof(REAL));
+
+       delete[] (xkn);
+       delete[] (vkn);
+       delete[] (z);
+
+       // save value of l for next iteration (checking if this is necessary will take as long as saving it)
+       SuperSet.l = l;
+
+       // reporting output
+       if (SuperSet.report && (count==1 || SuperSet.skips==0 || (count%(INTEGER)SuperSet.skips)==0))
+       {
+               REAL preAlgo = secCrit->Run(recon);
+               BOOLEAN error = algorithm->Run(recon, list, weight, count);
+               cout << "\n              value of l: " << l;
+               cout << "\n              value of phi before algorithm operator: " << preAlgo;
+               REAL postAlgo = secCrit->Run(recon);
+               cout << "\n              value of phi after algorithm operator:  " << postAlgo;
+
+               FILE* RPRTfile;
+               if (count==1)
+               {
+                       RPRTfile = fopen("RPRTsuperiorization", "w");
+                       fprintf(RPRTfile,"superiorization reporting output");
+                       fprintf(RPRTfile,"\n    iter         l     phi pre-algorithm      phi post-algorithm");
+                       fprintf(RPRTfile,"\n %5i  %10i  %20.9f  %20.9f", count, l, preAlgo, postAlgo);
+               }
+               else
+               {
+                       RPRTfile = fopen("RPRTsuperiorization", "a");
+                       fprintf(RPRTfile,"\n %5i  %10i  %20.9f  %20.9f", count, l, preAlgo, postAlgo);
+               }
+               fclose(RPRTfile);
+
+               return error;
+       }
+
+       // execute one iteration of the selected algorithm
+       return algorithm->Run(recon, list, weight, count);
+
+       // "set k = k+1"
+       // taken care of by loop in exalg
+}
diff --git a/src/snark/superior.h b/src/snark/superior.h
new file mode 100644 (file)
index 0000000..d1d384b
--- /dev/null
@@ -0,0 +1,27 @@
+#ifndef SUPERIOR_H_
+#define SUPERIOR_H_
+
+#include "sec_cri.h"
+#include "nav.h"
+#include "bdhk.h"
+
+void initSuperiorization();
+bool executeSuperiorization(REAL* recon, INTEGER* list, REAL* weight, INTEGER count, alg_class* algorithm);
+
+extern class superior_class
+{
+       public:
+       BOOLEAN superiorizationEnabled;
+       INTEGER N;
+       REAL a;
+       REAL b;
+       sec_cri_class* secondaryCriterion;
+       nav_class* nonascendingVector;
+       BOOLEAN report;
+       REAL skips;
+       INTEGER l;
+       INTEGER alternativel;
+       BOOLEAN positivity;
+} SuperSet;
+
+#endif
diff --git a/src/snark/supersnk.c b/src/snark/supersnk.c
new file mode 100644 (file)
index 0000000..bc96151
--- /dev/null
@@ -0,0 +1,267 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                               *
+ *                         S N A R K   1 4                       *
+ *                                                               *
+ *                A PICTURE RECONSTRUCTION PROGRAM               *
+ *                                                               *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+  supersnk.c,v 1.16 2011/02/21 00:45:48 jklukowska Exp
+
+ Previously part of SuperSNARK*/
+
+//#define SS_DEBUG  //bug 269, Joanna Klukowska, converted to a variable below
+
+#include <stdio.h>
+#include <time.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "experimenter.h"
+
+#include "get_phantom.h"
+#include "create_phantom.h"
+#include "projection.h"
+#include "recon.h"
+#include "analysis.h"
+#include "errorc.h"
+#include "analyze.h"
+#include "analyze2.h"
+#include "get_iter_flag.h"
+//#include "get_seed.h"
+#include "check_if_iroi.h"
+#include "snark.h"
+
+/* --------------------------- supersnk.c -------------------------------
+ *
+ * This function is the driver program to SNARK. It controls phantom
+ * selection and feeds SNARK the necessary commands to generate the phantoms
+ * plus their projection data, to implement the desired reconstruciton
+ * algorithms on these data, and to evaluate the reconstructed images.
+ * This function also calls the necessary routines to compute the
+ * desired figures of merit and their statistical significance.
+ *
+ * INPUTS:
+ * nexp - number of experiments.
+ * expflg - controls the phantom-file set used in each experiment as
+ * follows: if expflg=0 the same set of phantom files is available
+ * for use in both experiments. If expflg=1 the phantom files used
+ * in the first experiment are excluded in the second experiment.
+ * navel, nelem,pixsz - modifiers described by Set 4 of the SNARK CREATE
+ * input sequence (see the SNARK manual for details).
+ * nphan - two-element array: nphan[i-1]= number of phantom files used for
+ * experiment i (i=1,2).
+ * nrun - two-element array: nrun[i-1]= number of runs for experiment i
+ * (i=1,2).
+ * ensflname - name of ensemble data file.
+ * projflname - name of file containing information about the projection
+ * data.
+ * recflname - name of file containing information about the reconstruction
+ * algorithms to be implemented.
+ * anaflname - name of file containing information about the algorithms
+ * being compared.
+ *
+ * OUTPUTS:
+ * none
+ * -------------------------------------------------------------------- */
+
+
+void supersnk(
+        int nexp,
+        int expflg,
+        int nelem,
+        float pixsz,
+        int navel,
+        int* nphan,
+        int* nrun,
+        char* ensflname,
+        char* projflname,
+        char* recflname,
+        char* anaflname,
+        char* progName,
+        long seed
+        )
+//int nexp,expflg,nelem,navel,*nphan,*nrun;
+//float pixsz;
+//char *ensflname,*projflname,*recflname,*anaflname;
+{
+
+    //jk 01/01/08
+    //changed pairsarray[MAXNSTR] to *pairsarray
+    //changed structure[MAXNSTR][MAXLINESIZE] to **structure
+    //to allow unlimited number of structures
+    //the file will need to be scanned firest to
+    //allocate the array of right size
+    int *pairsarray;
+    char **structure;
+    int i, j, run, szens, nstr, npairs, tot_PAIRS;
+    int iroi_used; //set to 0 or 1 by check_if_iroi
+    //it is used by create_phantom() to verify that density of one out
+    //of each paired  structures is zero
+    char namelst[MAXENSEMSIZE][MAXLINESIZE],
+            phanflname[MAXLINESIZE],
+            currentlst[MAXENSEMSIZE][MAXLINESIZE], fomflname[MAXLINESIZE],
+            iter_flag[51], ifname[64], ofname[64], recfilname[64], enums[8], rnums[8], command[256],pipcommand[256];
+
+    FILE *fomfl;
+
+    char * mode;
+    int SS_DEBUG = 0;
+    mode = getenv("SNARK_EXP");
+    if (mode != NULL && strcasecmp(mode, "DEBUG") == 0)
+    {
+        SS_DEBUG = 1;
+        printf("Running in DEBUG mode: extra files will be saved.\n");
+    }
+
+    /* get list of phantom filenames and iteration flag for EVALUATE command */
+    read_ensemble(ensflname, namelst, &szens);
+    strncpy(iter_flag, "10000000000000000000000000000000000000000000000000\0",51);
+    getiterflag(anaflname, iter_flag);
+
+    strcat(pipcommand,"tee snark_e.in | (");
+    strcat(pipcommand,progName);
+    strcat(pipcommand," > snark_e.out)"); 
+    for (i = 0; i < nexp; i++) {
+        fprintf(stdout, "experiment %d\n", i + 1); // bug 187 - progress indicator - swr - 11/11/05
+        /* sprintf(fomflname,"%s.%d",fomflname,i+1); */ /* bug: concats. exp.# onto prev. name ('fomfil.1.2.3....') */
+        sprintf(fomflname, "fomfil.%d", i + 1); /* fix: concats. exp.# onto 'fomfil' only (JD 8/8/05) */
+        tot_PAIRS = 0; /* number of phantoms with PAIRed structures */
+       
+        for (run = 0; run < nrun[i]; run++) {
+            fprintf(stdout, "run %d\n", run + 1); // bug 187 - progress indicator - swr - 11/11/05
+            /* beginning of inner for loop */
+
+
+            if(SS_DEBUG) {
+            //fprintf(stdout, "------------------------------");
+
+                enums[0] = 0;
+                sprintf(enums, "%02d", i);
+
+                rnums[0] = 0;
+                sprintf(rnums, "%02d", run);
+
+                ifname[0] = 0;
+                //strcat(ifname, "snark_e");
+                //strcat(ifname, ".in");
+                sprintf(ifname, "snark_e%d.in", run);
+
+                ofname[0] = 0;
+                //strcat(ofname, "snark_e");
+                //strcat(ofname, ".out");
+                sprintf(ofname, "snark_e%d.out", run);
+
+                recfilname[0] = '\0';
+                sprintf(recfilname, "recfil%d", run);
+
+                if ((pstream = fopen(ifname, "w")) == NULL) {
+                    errorc("Could not open", ifname);
+                }
+            } else {
+                // bug 170 - swr - 10/01/05
+                if (system("test -x ./bin/snark14UserDefined") || // file exists and executable
+                        system("test -s ./bin/snark14UserDefined") || // exists and has non-zero size
+                        system("test -f ./bin/snark14UserDefined")) { // exists and is regular (not a directory
+               // bug 298 - Ze Ye 08/13/15
+                      if ((pstream = popen("tee snark_e.in | (./bin/snark14 > snark_e.out)", "w")) == NULL) {
+                        errorc("Could not run", "snark");
+                    }
+                } 
+                       else {
+                  if ((pstream = popen("tee snark_e.in | (./bin/snark14UserDefined> snark_e.out )", "w")) == NULL) {
+                        errorc("Could not run", "snark");
+                    }
+
+                }
+            }
+
+            get_phantom(i, run, expflg, nphan, &szens, namelst, currentlst,
+                    phanflname);
+
+            check_if_iroi(anaflname, &iroi_used);
+
+            create_phantom(phanflname, seed, navel, nelem, pixsz, &structure,
+                    &nstr, &npairs, &pairsarray, iroi_used);
+            
+            projection(projflname, seed);
+
+            recon(recflname, i + 1, run + 1);
+
+            evaluate(anaflname, &structure, nstr, iter_flag);
+
+            fprintf(pstream, "END \n");
+               
+            if (SS_DEBUG) {
+                fclose(pstream);
+
+                command[0] = 0;
+                //strcat(command, "snark14 ");
+                strcat(command, progName);
+                strcat(command, " ");
+                strcat(command, ifname);
+                strcat(command, " > ");
+                strcat(command, ofname);
+
+                if (system(command) != 0) {
+                    fprintf(stdout, "\nERROR running: %s\n", command);
+                    exit(1);
+                }
+                else
+                    rename ("recfil", recfilname);
+
+                
+            } else {
+                pclose(pstream);
+            }
+
+            /*    keep count of the number of phantoms */
+            if (npairs != 0) {
+                tot_PAIRS += 1; /* with PAIRed structures */
+            }
+
+            if (run == 0) {
+                if ((fomfl = fopen(fomflname, "w")) == NULL) {
+                    errorc("in supersnk.c: error opening file ", fomflname);
+                }
+            } else {
+                if ((fomfl = fopen(fomflname, "a")) == NULL) {
+                    errorc("in supersnk.c: error opening file ", fomflname);
+                }
+            }
+
+
+            analyze(i + 1, run + 1, npairs, pairsarray, anaflname, fomfl);
+            fclose(fomfl);
+
+            /* remove snark.out after every run except the very last run */
+
+            if( !SS_DEBUG) {
+                if (nexp == 1) {
+                    if (run != nrun[0] - 1) {
+                        if (remove("snark_e.out") != 0) {
+                            errorc("in supersnk: error deleting file ", "snark.out");
+                        }
+                    }
+                } else {
+                    if ((i == 0) || ((i == 1) && (run != nrun[1] - 1))) {
+                        if (remove("snark_e.out") != 0) {
+                            errorc("in supersnk: error deleting file ", "snark_e.out");
+                        }
+                    }
+                }
+            }
+
+        } /*    end of inner for loop */
+
+        //jk 01/01/08 free memory
+        free(pairsarray);
+        for (j = nstr - 1; j >= 0; j--) {
+            free((void*) (structure[j]));
+        }
+
+        analyze2(i + 1, nrun[i], tot_PAIRS, anaflname);
+
+    } /* end of outer for loop */
+}
diff --git a/src/snark/supersnk.h b/src/snark/supersnk.h
new file mode 100644 (file)
index 0000000..610d85f
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef SUPERSNK_H
+#define SUPERSNK_H
+
+void supersnk(
+  int nexp,
+  int expflg,
+  int nelem,
+  float pixsz,
+  int navel,
+  int* nphan,
+  int* nrun,
+  char* ensflname,
+  char* projflname,
+  char* recflname,
+  char* anaflname,
+  char* progName,
+  long seed
+);
+
+#endif
diff --git a/src/snark/term.cpp b/src/snark/term.cpp
new file mode 100644 (file)
index 0000000..8d833a9
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ term.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+
+*/
+
+#include <stdio.h>
+
+#include "term.h"
+
+class term_class Term = {
+// bug220 - allow user args for termination tests - swr - 1/30/07
+  NULL,
+  0
+};
+
+
+
diff --git a/src/snark/term.h b/src/snark/term.h
new file mode 100644 (file)
index 0000000..104bbd4
--- /dev/null
@@ -0,0 +1,27 @@
+/* 
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ term.h,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+*/
+
+#ifndef TERM_H
+#define TERM_H
+
+#include "blkdta.h"
+#include "termtest.h"
+
+extern class term_class
+{
+public:
+// bug220 - allow user args for termination tests - swr - 1/30/07
+  termtest_class* termInstance;
+  INTEGER iterations;
+} Term;
+
+#endif
diff --git a/src/snark/termtest.cpp b/src/snark/termtest.cpp
new file mode 100644 (file)
index 0000000..5445f62
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ termtest.cpp,v 1.3 2008/08/25 16:17:01 jklukowska Exp
+*/
+
+#include "termtest.h"
+#include "blkdta.h"
+
+void termtest_class::Init() {}
+BOOLEAN termtest_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter) { return TRUE; }
+
diff --git a/src/snark/termtest.h b/src/snark/termtest.h
new file mode 100644 (file)
index 0000000..75d07c2
--- /dev/null
@@ -0,0 +1,27 @@
+/* 
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ termtest.h,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+*/
+
+// bug220 - allow user args for termination tests - swr - 1/30/07
+
+#ifndef TERMTEST_H
+#define TERMTEST_H
+
+#include "blkdta.h"
+
+class termtest_class
+{
+public:
+  virtual void Init();
+  virtual BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+};
+
+#endif
diff --git a/src/snark/transm.cpp b/src/snark/transm.cpp
new file mode 100644 (file)
index 0000000..4ac7bc6
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ transm.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+
+ SUBROUTINE CALLED BY RTFORT & NOT USEFUL INDEPENDENTLY.
+ APPLIES TRANSFORM SYMMETRY RELATIONS
+ J1:  INDEX OF REAL PART OF ( I, K ) COEFFICIENT
+ J2:  INDEX OF REAL PART OF ( M-I, N-K )   "
+*/
+
+#include <cstdio>
+
+
+#include "blkdta.h"
+
+
+#include "transm.h"
+
+void transm(REAL* x, INTEGER j1, INTEGER j2, REAL sn, REAL cn)        
+{
+  REAL aa;
+  REAL ab;
+  REAL ba;
+  REAL bb;
+  REAL real;
+  REAL amag;
+
+  aa = x[j1] + x[j2];
+  ab = x[j1] - x[j2];
+  ba = x[j1 + 1] + x[j2 + 1];
+  bb = x[j1 + 1] - x[j2 + 1];
+  real = cn * ba + sn * ab;
+  amag = sn * ba - cn * ab;
+  x[j1] = (aa + real) * (REAL) 0.5;
+  x[j2] = (aa - real) * (REAL) 0.5;
+  x[j1 + 1] = (amag + bb) * (REAL) 0.5;
+  x[j2 + 1] = (amag - bb) * (REAL) 0.5;
+}        
diff --git a/src/snark/transm.h b/src/snark/transm.h
new file mode 100644 (file)
index 0000000..a96fce5
--- /dev/null
@@ -0,0 +1,18 @@
+/* 
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ *                                                                           *
+ *                              S N A R K   1 4                              *
+ *                                                                           *
+ *                     A PICTURE RECONSTRUCTION PROGRAM                      *
+ *                                                                           *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+ transm.h,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+*/
+
+#ifndef TRANSM_H
+#define TRANSM_H
+      
+void transm (REAL* x, INTEGER j1, INTEGER j2, REAL sn, REAL cn);
+
+#endif       
diff --git a/src/snark/trm1.cpp b/src/snark/trm1.cpp
new file mode 100644 (file)
index 0000000..5576d62
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm1.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ trm1.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+
+ DUMMY TERMINATION TEST - TO BE REPLACED BY USER
+
+ */
+
+#include <cstdio>
+#include <cstdlib>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "trm1.h"
+
+// bug220 - allow user args for termination tests - swr - 1/30/07
+
+BOOLEAN trm1_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n **** This algorithm is trying to decide if it should");
+       fprintf(output, "\n **** terminate based on the dummy version of TRM1.");
+       fprintf(output, "\n **** If you wish to use this routine, then you");
+       fprintf(output, "\n **** should replace it by your own version of it.");
+       fprintf(output, "\n **** program aborted\n");
+       exit(-1);
+
+       return TRUE;
+}
+
diff --git a/src/snark/trm1.h b/src/snark/trm1.h
new file mode 100644 (file)
index 0000000..b53ecd5
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm1.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ trm1.h,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+ */
+
+#ifndef TRM1_H
+#define TRM1_H      
+
+// bug220 - allow user args for termination tests - swr - 1/30/07
+
+#include "termtest.h"
+
+class trm1_class: public termtest_class
+{
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+};
+
+#endif      
diff --git a/src/snark/trm2.cpp b/src/snark/trm2.cpp
new file mode 100644 (file)
index 0000000..900944c
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm2.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ trm2.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+
+ DUMMY TERMINATION TEST - TO BE REPLACED BY USER
+
+ */
+
+#include <cstdio>
+#include <cstdlib>
+
+#include "blkdta.h"
+#include "uiod.h"
+
+#include "trm2.h"
+
+// bug220 - allow user args for termination tests - swr - 1/30/07
+
+BOOLEAN trm2_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       fprintf(output, "\n **** This algorithm is trying to decide if it should");
+       fprintf(output, "\n **** terminate based on the dummy version of TRM2.");
+       fprintf(output, "\n **** If you wish to use this routine, then you");
+       fprintf(output, "\n **** should replace it by your own version of it.");
+       fprintf(output, "\n **** program aborted\n");
+       exit(-1);
+
+       return TRUE;
+}
diff --git a/src/snark/trm2.h b/src/snark/trm2.h
new file mode 100644 (file)
index 0000000..589b2e6
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm2.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ trm2.h,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+ */
+
+#ifndef TRM2_H
+#define TRM2_H
+
+// bug220 - allow user args for termination tests - swr - 1/30/07
+
+#include "termtest.h"
+
+class trm2_class: public termtest_class
+{
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+};
+
+#endif
diff --git a/src/snark/trm3.cpp b/src/snark/trm3.cpp
new file mode 100644 (file)
index 0000000..e3d51a8
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm3.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ trm3.cpp,v 1.5 2009/06/01 03:33:26 jklukowska Exp
+
+ */
+
+#include <math.h>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "uiod.h"
+#include "consts.h"  // added. hstau
+#include "trm3.h"
+#include "blob.h"   //wei, 9/05
+
+// bug220 - allow user args for termination tests - swr - 1/30/07
+
+void trm3_class::Init()
+{
+       BOOLEAN eol;
+
+       epsiln = InFile.getnum(FALSE, &eol);
+       // bug 128 - added check for epsilon - swr - 7/6/05
+       if (epsiln <= Consts_class::zero)
+       {
+               fprintf(output, "\n **** epsilon must be specified and greater than ZERO");
+               fprintf(output, "\n **** program aborted\n");
+               exit(-1);
+       }
+       fprintf(output, "\n         epsilon = %10.6f", epsiln);
+}
+
+BOOLEAN trm3_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+
+       static REAL mean;
+       static REAL var1;
+       static REAL var2;
+       static REAL chgvar;
+       REAL area;                       //wei, 9/05
+
+       int i;
+
+       REAL sum = 0.0;
+       REAL sqsum = 0.0;
+
+       INTEGER lhf, lhl, lmf, lml, h, m, h1, m1, ind;    //wei, 9/05
+
+       if (!Blob.pix_basis)
+       {
+
+               lhf = (INTEGER) (-1 * (INTEGER) (Blob.H / 2));
+               lhl = (INTEGER) ((Blob.H - 1) / 2);
+
+               lmf = -1 * (INTEGER) (Blob.M / 2);
+               lml = (INTEGER) ((Blob.M - 1) / 2);
+
+               area = Blob.area / 2;
+
+               for (h = lhl; h >= lhf; h--)
+               {
+                       for (m = lmf; m <= lml; m++)
+                       { // m and h must have the same parity!!
+                               if ((m + h) % 2 == 0)
+                               {
+                                       m1 = m + Blob.M2;
+                                       h1 = h + Blob.H2;
+                                       ind = h1 * Blob.M + m1;
+                                       sum += recon[ind];
+                                       sqsum += recon[ind] * recon[ind];
+                               }
+                       }
+               }
+
+       } //wei, 9/05
+
+       else
+       {
+               area = GeoPar.area;
+
+               for (i = 0; i < area; i++)
+               {
+                       sum += recon[i];
+                       sqsum += recon[i] * recon[i];
+               }
+       }     //wei, 9/05
+
+       mean = sum / area;
+       var2 = sqsum / area - mean * mean;   //wei, 9/05
+
+       if (!(iter == 1))
+       {
+               if (fabs(var1) < Consts.zero)
+               {  // added for robustness. hstau
+                       fprintf(output,
+                                       "\n          the variance in the previous iteration is less than ZERO");
+                       return TRUE;
+               }
+               else
+               {             //added for robustness. hsta
+                       chgvar = ((REAL) fabs(var2 - var1)) / var1;
+                       if (chgvar < epsiln)
+                       {
+                               fprintf(output,
+                                               "\n          iterative process stops at iteration %5i",
+                                               iter);
+                               fprintf(output,
+                                               "\n          the change in variance is less than %10.6f of the variance",
+                                               chgvar);
+                               return TRUE;
+                       }
+               }
+       }
+       var1 = var2;
+
+       return FALSE;
+}
diff --git a/src/snark/trm3.h b/src/snark/trm3.h
new file mode 100644 (file)
index 0000000..73dbb57
--- /dev/null
@@ -0,0 +1,34 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm3.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ trm3.h,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+*/
+
+#ifndef TRM3_H
+#define TRM3_H
+      
+#include <cstdio>
+#include <cstdlib>
+
+#include "infile.h"
+
+// bug220 - allow user args for termination tests - swr - 1/30/07
+
+#include "termtest.h"
+
+class trm3_class: public termtest_class
+{
+ private:
+  REAL epsiln;
+ public:
+  void Init();
+  BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+};
+     
+#endif
diff --git a/src/snark/trm4.cpp b/src/snark/trm4.cpp
new file mode 100644 (file)
index 0000000..a89ac2b
--- /dev/null
@@ -0,0 +1,204 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm4.cpp $
+ $LastChangedRevision: 131 $
+ $Date: 2014-07-14 19:49:33 -0400 (Mon, 14 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+
+ Implementation of the indicator function I(x) used for MLEM-STOP
+
+*/
+
+#include <cstdio>
+#include <cstdlib>
+#include <iostream>
+#include "blkdta.h"
+#include "uiod.h"
+#include "trm4.h"
+#include "anglst.h"
+#include "wray.h"
+#include "math.h"
+#include "projfile.h"
+#include "blob.h"
+#include "infile.h"
+
+using namespace std;
+
+void trm4_class::Init()
+{
+       BOOLEAN eol;
+       // read reporting command (disabled by default)
+       INTEGER rprt = CHAR2INT('r','p','r','t');
+       if (InFile.getwrd(FALSE, &eol, &rprt, 1) == rprt)
+       {
+               report = true;
+               cout << "\n         reporting is enabled";
+               cout << "\n         reporting file: RPRTmlst";
+
+               skips = InFile.getnum(FALSE, &eol);
+               if (skips>0)
+               {
+                       cout << "\n         report skip factor " << skips;
+               }
+               else
+               {
+                       cout << "\n         reporting on every iteration";
+               }
+       }
+       else
+       {
+               report = false;
+               cout << "\n         reporting is disabled";
+       }
+}
+
+BOOLEAN trm4_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       // numerator and denominator of the formula
+       REAL numerator = 0;
+       REAL denominator = 0;
+       // temporary variables needed during calculation
+       REAL sumaijxj = 0;
+       // # projections
+       static INTEGER prjnum;
+       // # the bigger value of usrays or snrays
+       static INTEGER nrays;
+       // array for projection data
+       static REAL* prjdata;
+       // temporary variable for the count of near-simultaneous arrivals of photon pairs for the ith LOR
+       REAL bi = 0;
+       // variables for geometry data
+       static INTEGER*** pixelnumbers;
+       static REAL*** weights;
+       static INTEGER** numpixels;
+       REAL snorm = 0;
+
+       // gather data which only needs to be gathered during the first iteration
+       if (iter == 1)
+       {
+               prjnum = GeoPar.prjnum;
+               nrays = GeoPar.nrays;
+
+               // max # pixels that may be intersected by a ray
+               INTEGER pixelcount = GeoPar.nelem * 2;
+
+               prjdata = new REAL[prjnum * nrays];
+               for (INTEGER i = 0; i < prjnum; i++)
+               {
+                       ProjFile.ReadProj(i, &prjdata[i * nrays], nrays);
+               }
+
+               // allocate memory and read list of aij for each ray
+               numpixels = new INTEGER*[prjnum];
+               pixelnumbers = new INTEGER**[prjnum];
+               weights = new REAL**[prjnum];
+               for (INTEGER i = 0; i < prjnum; i++)
+               {
+                       numpixels[i] = new INTEGER[nrays];
+                       pixelnumbers[i] = new INTEGER*[nrays];
+                       weights[i] = new REAL*[nrays];
+                       for (INTEGER j = 0; j < nrays; j++)
+                       {
+                               pixelnumbers[i][j] = new INTEGER[pixelcount];
+                               weights[i][j] = new REAL[pixelcount];
+
+                           if(Blob.pix_basis)
+                           {
+                               wray(i, j, pixelnumbers[i][j], weights[i][j], &numpixels[i][j], &snorm);
+                           }
+                           else
+                           {
+                               Blob.bwray(i, j, pixelnumbers[i][j], weights[i][j], &numpixels[i][j], &snorm);
+                           }
+                       }
+               }
+       }
+
+       // calculate numerator and denominator
+       for (INTEGER i = 0; i < prjnum; i++)
+       {
+               for (INTEGER j = 0; j < nrays; j++)
+               {
+                       sumaijxj = 0;
+                       for (INTEGER k = 0; k < numpixels[i][j]; k++)
+                       {
+                               sumaijxj += (weights[i][j][k]) * recon[pixelnumbers[i][j][k]];
+                       }
+                       denominator += sumaijxj;
+
+                       bi = prjdata[i * nrays + j];
+                       numerator += pow(bi - sumaijxj, 2);
+               }
+       }
+
+       // calculate I(x) and check if <=1
+       if (numerator / denominator <= 1)
+       {
+               // free all allocated memory
+               delete[] (prjdata);
+               for (INTEGER i = 0; i < prjnum; i++)
+               {
+                       for (INTEGER j = 0; j < nrays; j++)
+                       {
+                               delete[] (pixelnumbers[i][j]);
+                               delete[] (weights[i][j]);
+                       }
+                       delete[] (numpixels[i]);
+                       delete[] (pixelnumbers[i]);
+                       delete[] (weights[i]);
+               }
+               delete[] (numpixels);
+               delete[] (pixelnumbers);
+               delete[] (weights);
+
+               // additional output
+               if (report)
+               {
+                       cout << "\n         MLEM-STOP indicator function I(x)=" << numerator/denominator;
+
+                       FILE* RPRTfile;
+                       if (iter==1)
+                       {
+                               RPRTfile = fopen("RPRTmlst", "w");
+                               fprintf(RPRTfile,"MLEM-STOP indicator function I(x) reporting output");
+                               fprintf(RPRTfile,"\n    iter         I(x)");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, numerator/denominator);
+                       }
+                       else
+                       {
+                               RPRTfile = fopen("RPRTmlst", "a");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, numerator/denominator);
+                       }
+                       fclose(RPRTfile);
+               }
+
+               return TRUE;
+       }
+       else
+       {
+               // additional output
+               if (report && (iter==1 || skips==0 || (iter%(INTEGER)skips)==0))
+               {
+                       cout << "\n         MLEM-STOP indicator function I(x)=" << numerator/denominator;
+
+                       FILE* RPRTfile;
+                       if (iter==1)
+                       {
+                               RPRTfile = fopen("RPRTmlst", "w");
+                               fprintf(RPRTfile,"MLEM-STOP indicator function I(x) reporting output");
+                               fprintf(RPRTfile,"\n    iter         I(x)");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, numerator/denominator);
+                       }
+                       else
+                       {
+                               RPRTfile = fopen("RPRTmlst", "a");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, numerator/denominator);
+                       }
+                       fclose(RPRTfile);
+               }
+
+               return FALSE;
+       }
+}
diff --git a/src/snark/trm4.h b/src/snark/trm4.h
new file mode 100644 (file)
index 0000000..02e4f6a
--- /dev/null
@@ -0,0 +1,28 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm4.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Implementation of the indicator function I(x) used for MLEM-STOP
+
+ */
+
+#ifndef TRM4_H
+#define TRM4_H
+
+#include "termtest.h"
+
+class trm4_class: public termtest_class
+{
+private:
+       BOOLEAN report;REAL skips;
+public:
+       void Init();
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+};
+
+#endif      
diff --git a/src/snark/trm5.cpp b/src/snark/trm5.cpp
new file mode 100644 (file)
index 0000000..25f2395
--- /dev/null
@@ -0,0 +1,188 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm5.cpp $
+ $LastChangedRevision: 154 $
+ $Date: 2014-07-28 11:32:36 -0400 (Mon, 28 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+
+ Kullback-Leibler value based stopping criterion
+
+ */
+
+#include <cstdio>
+#include <cstdlib>
+#include <iostream>
+#include <math.h>
+#include <limits>
+#include "trm5.h"
+#include "anglst.h"
+#include "projfile.h"
+#include "pseudo.h"
+#include "consts.h"
+#include "infile.h"
+#include "blob.h"
+
+using namespace std;
+
+void trm5_class::Init()
+{
+       // read desired epsilon from command
+       BOOLEAN eol;
+       epsilon = InFile.getnum(FALSE, &eol);
+
+       if (epsilon <= Consts_class::zero)
+       {
+               cout << "\n **** epsilon must be specified and greater than ZERO";
+               cout << "\n **** program aborted\n";
+               exit(-1);
+       }
+
+       // read reporting command (disabled by default)
+       INTEGER rprt = CHAR2INT('r', 'p', 'r', 't');
+       if (InFile.getwrd(FALSE, &eol, &rprt, 1) == rprt)
+       {
+               report = true;
+               cout << "\n         reporting is enabled";
+               cout << "\n         reporting file: RPRTklds";
+
+               skips = InFile.getnum(FALSE, &eol);
+               if (skips > 0)
+               {
+                       cout << "\n         report skip factor " << skips;
+               }
+               else
+               {
+                       cout << "\n         reporting on every iteration";
+               }
+       }
+       else
+       {
+               report = false;
+               cout << "\n         reporting is disabled";
+       }
+
+       cout << "\n         epsilon = " << epsilon;
+}
+
+BOOLEAN trm5_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       REAL* reconp = recon;
+       // if currently blob, pixelize it
+       if (!Blob.pix_basis)
+       {
+               reconp = new REAL[GeoPar.area];
+               Blob.blob2pix(recon, reconp);
+       }
+
+       // variables needed during computation of the current epsilon
+       INTEGER numb;
+       REAL snorm;
+       REAL raysum;
+       REAL psum;
+       BOOLEAN continu=true;
+
+       // compute current KL distance
+       REAL currentEpsilon = 0;
+       for (INTEGER i = 0; i < GeoPar.prjnum && continu; i++)
+       {
+               for (INTEGER j = GeoPar.fusray; j <= GeoPar.lusray; j++)
+               {
+                       raysum = Anglst.prdta(i, j);
+                       psum = pseudo(reconp, i, j, list, weight, &numb, &snorm, TRUE, TRUE);
+
+                       if (numb != 0)
+                       {
+                               if (raysum<0)
+                               {
+                                       // report on non-applicability and abort
+                                       std::cout << "\n****Error: Negative raysum in prjfil detected, KLDS is not applicable! Terminating algorithm execution.";
+                                       return true;
+                               }
+                               else if (!isnan(currentEpsilon) && currentEpsilon!=std::numeric_limits<double>::infinity() && currentEpsilon!=std::numeric_limits<double>::max())
+                               {
+                                       if (raysum<=Consts.zero && psum<=Consts.zero)
+                                       {
+                                               // do nothing
+                                       }
+                                       else if (raysum<=Consts.zero)
+                                       {
+                                               currentEpsilon += psum;
+                                       }
+                                       else if (psum<=Consts.zero)
+                                       {
+                                               // set to infinity and terminate
+                                               if (std::numeric_limits<double>::has_infinity) currentEpsilon = std::numeric_limits<double>::infinity();
+                                               else currentEpsilon = std::numeric_limits<double>::max();
+
+                                               continu=false;
+                                               break;
+                                       }
+                                       else
+                                       {
+                                               if ((raysum / psum) > Consts.zero) currentEpsilon += (raysum * log(raysum / psum));
+                                               else currentEpsilon += (raysum * log(Consts.zero));
+
+                                               currentEpsilon += psum - raysum;
+                                       }
+                               }
+                       }
+               }
+       }
+       if (!Blob.pix_basis)
+       {
+               delete[] reconp;
+       }
+
+       if (currentEpsilon <= epsilon)
+       {
+               // additional output
+               if (report)
+               {
+                       cout << "\n         current epsilon (KL distance) = " << currentEpsilon;
+
+                       FILE* RPRTfile;
+                       if (iter==1)
+                       {
+                               RPRTfile = fopen("RPRTklds", "w");
+                               fprintf(RPRTfile,"Kullback-Leibler distance stopping criterion reporting output");
+                               fprintf(RPRTfile,"\n    iter      Kullback-Leibler distance");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, currentEpsilon);
+                       }
+                       else
+                       {
+                               RPRTfile = fopen("RPRTklds", "a");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, currentEpsilon);
+                       }
+                       fclose(RPRTfile);
+               }
+
+               return true;
+       }
+       else
+       {
+               // additional output
+               if (report && (iter == 1 || skips == 0 || (iter % (INTEGER) skips) == 0))
+               {
+                       cout << "\n         current epsilon (KL distance) = " << currentEpsilon;
+
+                       FILE* RPRTfile;
+                       if (iter==1)
+                       {
+                               RPRTfile = fopen("RPRTklds", "w");
+                               fprintf(RPRTfile,"Kullback-Leibler distance stopping criterion reporting output");
+                               fprintf(RPRTfile,"\n    iter    Kullback-Leibler distance");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, currentEpsilon);
+                       }
+                       else
+                       {
+                               RPRTfile = fopen("RPRTklds", "a");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, currentEpsilon);
+                       }
+                       fclose(RPRTfile);
+               }
+
+               return false;
+       }
+}
diff --git a/src/snark/trm5.h b/src/snark/trm5.h
new file mode 100644 (file)
index 0000000..68d417f
--- /dev/null
@@ -0,0 +1,29 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm5.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Kullback-Leibler value based stopping criterion
+
+ */
+
+#ifndef TRM5_H
+#define TRM5_H
+
+#include "termtest.h"
+#include "blkdta.h"
+
+class trm5_class: public termtest_class
+{
+private:
+       REAL epsilon;BOOLEAN report;REAL skips;
+public:
+       void Init();
+       BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter);
+};
+
+#endif
diff --git a/src/snark/trm6.cpp b/src/snark/trm6.cpp
new file mode 100644 (file)
index 0000000..2aa2fc8
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.cpp $
+ $LastChangedRevision: 145 $
+ $Date: 2014-07-17 19:49:25 -0400 (Thu, 17 Jul 2014) $
+ $Author: olangthaler $
+ ***********************************************************
+
+ Residual based stopping criterion
+
+ */
+
+#include <cstdio>
+#include <cstdlib>
+#include <iostream>
+#include <math.h>
+#include "trm6.h"
+#include "anglst.h"
+#include "projfile.h"
+#include "pseudo.h"
+#include "consts.h"
+#include "infile.h"
+#include "blob.h"
+
+using namespace std;
+
+void trm6_class::Init()
+{
+       // read desired epsilon from command
+       BOOLEAN eol;
+       epsilon = InFile.getnum(FALSE, &eol);
+
+       if (epsilon < Consts_class::zero)
+       {
+               cout << "\n **** epsilon must be specified and >= ZERO";
+               cout << "\n **** program aborted\n";
+               exit(-1);
+       }
+
+       // read reporting command (disabled by default)
+       INTEGER rprt = CHAR2INT('r', 'p', 'r', 't');
+       if (InFile.getwrd(FALSE, &eol, &rprt, 1) == rprt)
+       {
+               report = true;
+               cout << "\n         reporting is enabled";
+               cout << "\n         reporting file: RPRTresi";
+
+               skips = InFile.getnum(FALSE, &eol);
+               if (skips > 0)
+               {
+                       cout << "\n         report skip factor " << skips;
+               }
+               else
+               {
+                       cout << "\n         reporting on every iteration";
+               }
+       }
+       else
+       {
+               report = false;
+               cout << "\n         reporting is disabled";
+       }
+
+       cout << "\n         epsilon = " << epsilon;
+}
+
+BOOLEAN trm6_class::Run(REAL* recon, INTEGER* list, REAL* weight, INTEGER iter)
+{
+       REAL* reconp = recon;
+       // if currently blob, pixelize it
+       if (!Blob.pix_basis)
+       {
+               reconp = new REAL[GeoPar.area];
+               Blob.blob2pix(recon, reconp);
+       }
+
+       // variables needed during computation of the current residual
+       INTEGER numb = 0;
+       REAL snorm = 0;
+       REAL raysum = 0;
+       REAL psum = 0;
+       REAL rdis = 0;
+       REAL theta = 0;
+       REAL sinth = 0;
+       REAL costh = 0;
+       BOOLEAN linef = true;
+
+       // compute current residual
+       for (int i = 0; i < GeoPar.prjnum; i++)
+       {
+               REAL rinc = GeoPar.pinc;
+               Anglst.getang(i, &theta, &sinth, &costh);
+
+               if (GeoPar.vri)
+               {
+                       rinc = GeoPar.pinc * MAX0(fabs(sinth), fabs(costh));
+               }
+
+               for (int j = GeoPar.fusray; j <= GeoPar.lusray; j++)
+               {
+                       raysum = Anglst.prdta(i, j);
+                       psum = pseudo(reconp, i, j, list, weight, &numb, &snorm, linef,
+                                       TRUE);
+
+                       if (numb != 0)
+                       {
+                               if (linef && !GeoPar.line)
+                                       raysum /= rinc;
+                               if (!linef && GeoPar.line)
+                                       raysum *= rinc;
+                               rdis += pow((psum - raysum), 2);
+                       }
+               }
+       }
+       REAL currentEpsilon = sqrt(rdis);
+       if (!Blob.pix_basis)
+       {
+               delete[] reconp;
+       }
+
+       if (currentEpsilon <= epsilon)
+       {
+               // additional output
+               if (report)
+               {
+                       cout << "\n         current epsilon (residual) = " << currentEpsilon;
+
+                       FILE* RPRTfile;
+                       if (iter==1)
+                       {
+                               RPRTfile = fopen("RPRTresi", "w");
+                               fprintf(RPRTfile,"Residual based stopping criterion reporting output");
+                               fprintf(RPRTfile,"\n    iter    Residual");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, currentEpsilon);
+                       }
+                       else
+                       {
+                               RPRTfile = fopen("RPRTresi", "a");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, currentEpsilon);
+                       }
+                       fclose(RPRTfile);
+               }
+
+               return true;
+       }
+       else
+       {
+               // additional output
+               if (report && (iter == 1 || skips == 0 || (iter % (INTEGER) skips) == 0))
+               {
+                       cout << "\n         current epsilon (residual) = " << currentEpsilon;
+
+                       FILE* RPRTfile;
+                       if (iter==1)
+                       {
+                               RPRTfile = fopen("RPRTresi", "w");
+                               fprintf(RPRTfile,"Residual based stopping criterion reporting output");
+                               fprintf(RPRTfile,"\n    iter      Residual");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, currentEpsilon);
+                       }
+                       else
+                       {
+                               RPRTfile = fopen("RPRTresi", "a");
+                               fprintf(RPRTfile,"\n %5i  %20.9f", iter, currentEpsilon);
+                       }
+                       fclose(RPRTfile);
+               }
+
+               return false;
+       }
+}
diff --git a/src/snark/trm6.h b/src/snark/trm6.h
new file mode 100644 (file)
index 0000000..56a5dd7
--- /dev/null
@@ -0,0 +1,29 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Residual based stopping criterion
+
+ */
+
+#ifndef TRM6_H
+#define TRM6_H
+
+#include "termtest.h"
+#include "blkdta.h"
+
+class trm6_class: public termtest_class
+{
+private:
+       REAL epsilon;BOOLEAN report;REAL skips;
+public:
+       void Init();BOOLEAN Run(REAL* recon, INTEGER* list, REAL* weight,
+                       INTEGER iter);
+};
+
+#endif
diff --git a/src/snark/trm_weighted_squared_distance.cpp b/src/snark/trm_weighted_squared_distance.cpp
new file mode 100644 (file)
index 0000000..d6a205a
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Residual based stopping criterion
+
+ */
+
+#include "trm_weighted_squared_distance.h"
+#include "DistanceMeasureWSQD.h"
+
+using namespace std;
+
+trm_weighted_squared_distance::trm_weighted_squared_distance() :
+               TerminationCriterion(new DistanceMeasureWSQD, "RPRTwsqd") {
+}
+
+trm_weighted_squared_distance::~trm_weighted_squared_distance() {
+}
diff --git a/src/snark/trm_weighted_squared_distance.h b/src/snark/trm_weighted_squared_distance.h
new file mode 100644 (file)
index 0000000..3140ada
--- /dev/null
@@ -0,0 +1,31 @@
+/* 
+ ***********************************************************
+ $SNARK_Header$
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/trm6.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Residual based stopping criterion
+
+ */
+
+#ifndef TRM_WEIGHTED_SQUARED_DISTANCE_H
+#define TRM_WEIGHTED_SQUARED_DISTANCE_H
+
+#include "blkdta.h"
+#include "TerminationCriterion.h"
+
+class trm_weighted_squared_distance: public TerminationCriterion {
+
+// attributes
+
+// methods
+public:
+       trm_weighted_squared_distance();
+
+       ~trm_weighted_squared_distance();
+};
+
+#endif
diff --git a/src/snark/uiod.cpp b/src/snark/uiod.cpp
new file mode 100644 (file)
index 0000000..0830874
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/uiod.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ */
+
+#include "uiod.h"
+
+FILE* output = stdout;
+
diff --git a/src/snark/uiod.h b/src/snark/uiod.h
new file mode 100644 (file)
index 0000000..567c916
--- /dev/null
@@ -0,0 +1,19 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/uiod.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef UIOD_H
+#define UIOD_H
+
+#include <cstdio>
+#include "blkdta.h"
+extern FILE* output;
+
+#endif
+
diff --git a/src/snark/unkps.cpp b/src/snark/unkps.cpp
new file mode 100644 (file)
index 0000000..94a0795
--- /dev/null
@@ -0,0 +1,324 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/unkps.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+
+#include "unkps.h"
+
+
+void unkps( INTEGER imax, INTEGER istep, REAL* xs, REAL* x, INTEGER m, INTEGER nipf, INTEGER krad, INTEGER mc, INTEGER ir, INTEGER n, INTEGER* ix, INTEGER* ipu, INTEGER nfixp, INTEGER k4m4, BOOLEAN virt)
+{
+       BOOLEAN dovirt;
+
+       REAL md4;
+       REAL kradm;
+       INTEGER k4mx;
+       INTEGER k4mxm;
+       INTEGER k4minc;
+       INTEGER jlim;
+       INTEGER i;
+       INTEGER j;
+       INTEGER js;
+       INTEGER inc;
+       INTEGER jl;
+       INTEGER nn;
+       INTEGER kp;
+       INTEGER kp1;
+       INTEGER ju;
+       INTEGER jus;
+       INTEGER kx;
+       INTEGER ia;
+       INTEGER l;
+       INTEGER ind;
+       INTEGER inx;
+       INTEGER ib;
+       INTEGER ind2;
+       INTEGER kumx;
+       INTEGER ku;
+       INTEGER kvmn;
+       INTEGER kv;
+       INTEGER kp2;
+       INTEGER k4mxm1;
+       INTEGER kp1x;
+       INTEGER kp2x;
+       INTEGER kp1xx;
+       INTEGER kp2xx;
+       INTEGER kpl;
+       INTEGER kount;
+
+       dovirt = virt && (istep > 1);
+       md4 = m / krad;
+       if ((md4 == 0) && (nipf < 2))
+               return;
+       kradm = krad - 1;
+       k4mx = k4m4 * ir;
+       k4mxm = k4mx - k4m4;
+       k4minc = k4m4;
+       ix[0] = 0;
+       jlim = 1;
+
+       for (i = 0; i < md4; i++)
+       {
+               for (j = 1; j <= jlim; j++)
+               {
+                       js = j - 1;
+                       inc = 0;
+                       ix[j - 1] *= krad;
+                       for (jl = 0; jl < kradm; jl++)
+                       {
+                               js += jlim;
+                               inc += k4mx;
+                               ix[js] = ix[j - 1] + inc;
+                       }
+               }
+               jlim *= krad;
+       }
+
+       nn = n / (1 << m);
+
+       if (!(nipf < 2))
+       {
+               k4minc = k4mxm;
+
+               for (kp = 0; kp < k4m4; kp++)
+               {
+                       kp1 = ix[kp] + kp;
+                       ju = nfixp;
+
+                       do
+                       {
+                               jus = ju;
+                               kx = kp1 + ipu[ju];
+                               ia = kx * istep;
+
+
+                               for (l = 0; l < imax; l++)
+                               {
+                                       ind = l + ia;
+                                       CA(xs, 0, l)= CA(x, 0, ind);
+                                       CA(xs, 1, l)= CA(x, 1, ind);
+                               }
+
+                               ju++;
+
+                               do
+                               {
+                                       inx = kp1 + ipu[ju];
+                                       ia = kx * istep;
+
+                                       ib = inx * istep;
+
+                                       for (l = 0; l < imax; l++)
+                                       {
+                                               ind = l + ia;
+                                               ind2 = l + ib;
+                                               CA(x, 0, ind)= CA(x, 0, ind2);
+                                               CA(x, 1, ind)= CA(x, 1, ind2);
+                                       }
+
+                                       ju++;
+
+                                       kx = inx;
+
+                               } while (ipu[ju] != 0);
+
+                               ia = kx * istep;
+
+                               for (l = 0; l < imax; l++)
+                               {
+                                       ind = l + ia;
+                                       CA(x, 0, ind)= CA(xs, 0, l);
+                                       CA(x, 1, ind)= CA(xs, 1, l);
+                               }
+
+                               ju++;
+
+                       } while (ipu[ju] < n);
+               }
+       }
+
+       if (md4 < 1)
+               return;
+
+       kumx = k4m4 - 1;
+
+       for (ku = 0; ku < kumx; ku++)
+       {
+               kvmn = ku + 1;
+               for (kv = kvmn; kv < k4m4; kv++)
+               {
+
+                       kp1 = ix[ku] + kv;
+                       kp2 = ix[kv] + ku;
+
+                       k4mxm1 = k4mxm + 1;
+
+                       for (inc = 0; inc < k4mxm1; inc += k4minc)
+                       {
+
+                               kp1x = kp1 + inc;
+                               kp2x = kp2 + inc;
+
+                               ia = kp1x * istep;
+
+                               ib = kp2x * istep;
+
+
+                               for (l = 0; l < imax; l++)
+                               {
+                                       kp1xx = l + ia;
+                                       kp2xx = l + ib;
+
+                                       CA(xs, 0, l)= CA(x, 0, kp1xx);
+                                       CA(xs, 1, l)= CA(x, 1, kp1xx);
+
+                                       CA(x, 0, kp1xx)= CA(x, 0, kp2xx);
+                                       CA(x, 1, kp1xx)= CA(x, 1, kp2xx);
+
+                                       CA(x, 0, kp2xx)= CA(xs, 0, l);
+                                       CA(x, 1, kp2xx)= CA(xs, 1, l);
+                               }
+                       }
+
+                       // code below is not tested !!! mk
+                       // after some correction it seems to work - Laszlo
+
+                       if (!(nipf < 2))
+                       {
+
+                               if (!(nfixp == 0))
+                               {
+
+                                       for (ju = 0; ju < nfixp; ju++)
+                                       {
+
+                                               ind = kp1 + ipu[ju];
+                                               ia = (ind) * istep;
+
+
+                                               ind = kp2 + ipu[ju];
+                                               ib = (ind) * istep;
+
+
+                                               for (l = 0; l < imax; l++)
+                                               {
+                                                       kp1x = l + ia;
+                                                       kp2x = l + ib;
+
+                                                       CA(xs, 0, l)= CA(x, 0, kp1x);
+                                                       CA(xs, 1, l)= CA(x, 1, kp1x);
+
+
+                                                       CA(x, 0, kp1x)= CA(x, 0, kp2x);
+                                                       CA(x, 1, kp1x)= CA(x, 1, kp2x);
+
+                                                       CA(x, 0, kp2x)= CA(xs, 0, l);
+                                                       CA(x, 1, kp2x)= CA(xs, 1, l);
+                                               }
+                                       }
+                               }
+
+                               ju = nfixp;
+                               do
+                               {
+                                       kount = 1;
+                                       jus = ju;
+                                       kpl = 0;
+                                       kx = kp1 + ipu[ju];
+
+                                       for(;;)
+                                       {
+                                               ia = (kx) * istep;
+
+                                               for(l = 0; l < imax; l++)
+                                               {
+                                                       ind = l + ia;
+                                                       CA(xs, 0, l) = CA(x, 0, ind);
+                                                       CA(xs, 1, l) = CA(x, 1, ind);
+                                               }
+
+                                               ju++;
+
+                                               do
+                                               {
+                                                       do
+                                                       {
+                                                               kpl = 1 - kpl;
+
+                                                               if(kpl == 1) inx = kp2 + ipu[ju];
+                                                               if(kpl == 0) inx = kp1 + ipu[ju];
+
+                                                               ia = (kx) * istep;
+
+
+                                                               ib = (inx) * istep;
+
+
+                                                               for(l = 0; l < imax; l++)
+                                                               {
+
+                                                                       ind = l + ia;
+                                                                       ind2 = l + ib;
+
+                                                                       CA(x, 0, ind) = CA(x, 0, ind2);
+                                                                       CA(x, 1, ind) = CA(x, 1, ind2);
+
+                                                               }
+
+                                                               ju++;
+                                                               kx = inx;
+
+                                                       }while(ipu[ju] != 0);
+
+                                                       if(kount == 2) goto L12;
+
+                                                       kount = 2;
+                                                       ju = jus;
+
+                                               }while(kpl == 0);
+
+                                               ia = (kx) * istep;
+
+
+                                               for(l = 0; l < imax; l++)
+                                               {
+                                                       ind = l + ia;
+
+                                                       CA(x, 0, ind) = CA(xs, 0, l);
+                                                       CA(x, 1, ind) = CA(xs, 1, l);
+                                               }
+
+                                               kx = kp2 + ipu[ju];
+                                       }
+
+                                       L12:
+
+                                       ia = (kx) * istep;
+
+                                       for(l = 0; l < imax; l++)
+                                       {
+                                               ind = l + ia;
+
+                                               CA(x, 0, ind) = CA(xs, 0, l);
+                                               CA(x, 1, ind) = CA(xs, 1, l);
+                                       }
+
+                                       ju++;
+
+                               }while(ipu[ju] < n);
+                       }
+               }
+       }
+       return;
+}
diff --git a/src/snark/unkps.h b/src/snark/unkps.h
new file mode 100644 (file)
index 0000000..8cef7bc
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/unkps.h $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef UNKPS_H    
+#define UNKPS_H 
+
+void unkps(INTEGER imax, INTEGER istep, REAL* xs, REAL* x, INTEGER m, INTEGER nipf, INTEGER krad, INTEGER mc, INTEGER ir, INTEGER n, INTEGER* ix, INTEGER* ipu, INTEGER nfixp, INTEGER k4m4, BOOLEAN virt);
+
+#endif
diff --git a/src/snark/user_fom1.c b/src/snark/user_fom1.c
new file mode 100644 (file)
index 0000000..9717c76
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom1.c $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of :*/
+
+/* ----------------------------- user_fom1.c -------------------------------
+
+ This function computes a user-defined figure of merit.
+
+ INPUTS:
+ itr1 - array of length niters containing the iteration numbers for the
+ first algorithm.
+ itr2 - array of length niters containing the iteration numbers for the
+ second algorithm.
+ niters - number of iterations to be compared
+ keywrd1 - string containing the keyword which defines the first algorithm.
+ keywrd2 - string containing the keyword which defines the second algorithm.
+
+ OUTPUTS:
+ user1 - array of length niters containing the structural accuracy for
+ the first algorithm.
+ user2 - array of length niters containing the structural accuracy for
+ the second algorithm.
+
+ */
+
+#include "experimenter.h"
+#include "user_fom1.h"
+
+void user_fom1(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2)
+{
+       int i;
+
+       for (i = 0; i < niters; i++)
+       {/* this section is to be replaced */
+               /* by the function to compute a */
+               user1[i] = 0.0; /* user-defined figure of merit */
+               user2[i] = 0.0;
+       }
+}
diff --git a/src/snark/user_fom1.h b/src/snark/user_fom1.h
new file mode 100644 (file)
index 0000000..4cbd202
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom1.h $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+
+#ifndef USER_FOM_H
+#define USER_FOM_H
+
+void user_fom1(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2);
+
+#endif
diff --git a/src/snark/user_fom2.c b/src/snark/user_fom2.c
new file mode 100644 (file)
index 0000000..b14eb2e
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom2.c $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of :*/
+
+/* ----------------------------- user_fom2.c -------------------------------
+
+ This function computes a user-defined figure of merit.
+
+ INPUTS:
+ itr1 - array of length niters containing the iteration numbers for the
+ first algorithm.
+ itr2 - array of length niters containing the iteration numbers for the
+ second algorithm.
+ niters - number of iterations to be compared
+ keywrd1 - string containing the keyword which defines the first algorithm.
+ keywrd2 - string containing the keyword which defines the second algorithm.
+
+ OUTPUTS:
+ user1 - array of length niters containing the structural accuracy for
+ the first algorithm.
+ user2 - array of length niters containing the structural accuracy for
+ the second algorithm.
+
+ */
+
+#include "experimenter.h"
+#include "user_fom2.h"
+
+void user_fom2(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2)
+{
+       int i;
+
+       for (i = 0; i < niters; i++)
+       {/* this section is to be replaced */
+               /* by the function to compute a */
+               user1[i] = 0.0; /* user-defined figure of merit */
+               user2[i] = 0.0;
+       }
+}
diff --git a/src/snark/user_fom2.h b/src/snark/user_fom2.h
new file mode 100644 (file)
index 0000000..7424c83
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom2.h $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+
+#ifndef USER_FOM_H
+#define USER_FOM_H
+
+void user_fom2(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2);
+
+#endif
diff --git a/src/snark/user_fom3.c b/src/snark/user_fom3.c
new file mode 100644 (file)
index 0000000..93ed990
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom3.c $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of :*/
+
+/* ----------------------------- user_fom3.c -------------------------------
+
+ This function computes a user-defined figure of merit.
+
+ INPUTS:
+ itr1 - array of length niters containing the iteration numbers for the
+ first algorithm.
+ itr2 - array of length niters containing the iteration numbers for the
+ second algorithm.
+ niters - number of iterations to be compared
+ keywrd1 - string containing the keyword which defines the first algorithm.
+ keywrd2 - string containing the keyword which defines the second algorithm.
+
+ OUTPUTS:
+ user1 - array of length niters containing the structural accuracy for
+ the first algorithm.
+ user2 - array of length niters containing the structural accuracy for
+ the second algorithm.
+
+ */
+
+#include "experimenter.h"
+#include "user_fom3.h"
+
+void user_fom3(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2)
+{
+       int i;
+
+       for (i = 0; i < niters; i++)
+       {/* this section is to be replaced */
+               /* by the function to compute a */
+               user1[i] = 0.0; /* user-defined figure of merit */
+               user2[i] = 0.0;
+       }
+}
diff --git a/src/snark/user_fom3.h b/src/snark/user_fom3.h
new file mode 100644 (file)
index 0000000..652534d
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom3.h $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+
+#ifndef USER_FOM_H
+#define USER_FOM_H
+
+void user_fom3(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2);
+
+#endif
diff --git a/src/snark/user_fom4.c b/src/snark/user_fom4.c
new file mode 100644 (file)
index 0000000..27acd14
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom4.c $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of :*/
+
+/* ----------------------------- user_fom4.c -------------------------------
+
+ This function computes a user-defined figure of merit.
+
+ INPUTS:
+ itr1 - array of length niters containing the iteration numbers for the
+ first algorithm.
+ itr2 - array of length niters containing the iteration numbers for the
+ second algorithm.
+ niters - number of iterations to be compared
+ keywrd1 - string containing the keyword which defines the first algorithm.
+ keywrd2 - string containing the keyword which defines the second algorithm.
+
+ OUTPUTS:
+ user1 - array of length niters containing the structural accuracy for
+ the first algorithm.
+ user2 - array of length niters containing the structural accuracy for
+ the second algorithm.
+
+ */
+
+#include "experimenter.h"
+#include "user_fom4.h"
+
+void user_fom4(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2)
+{
+       int i;
+
+       for (i = 0; i < niters; i++)
+       {/* this section is to be replaced */
+               /* by the function to compute a */
+               user1[i] = 0.0; /* user-defined figure of merit */
+               user2[i] = 0.0;
+       }
+}
diff --git a/src/snark/user_fom4.h b/src/snark/user_fom4.h
new file mode 100644 (file)
index 0000000..0ae2197
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom4.h $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+
+#ifndef USER_FOM_H
+#define USER_FOM_H
+
+void user_fom4(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2);
+
+#endif
diff --git a/src/snark/user_fom5.c b/src/snark/user_fom5.c
new file mode 100644 (file)
index 0000000..23e7d83
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom5.c $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ Previously part of :*/
+
+/* ----------------------------- user_fom5.c -------------------------------
+
+ This function computes a user-defined figure of merit.
+
+ INPUTS:
+ itr1 - array of length niters containing the iteration numbers for the
+ first algorithm.
+ itr2 - array of length niters containing the iteration numbers for the
+ second algorithm.
+ niters - number of iterations to be compared
+ keywrd1 - string containing the keyword which defines the first algorithm.
+ keywrd2 - string containing the keyword which defines the second algorithm.
+
+ OUTPUTS:
+ user1 - array of length niters containing the structural accuracy for
+ the first algorithm.
+ user2 - array of length niters containing the structural accuracy for
+ the second algorithm.
+
+ */
+
+#include "experimenter.h"
+#include "user_fom5.h"
+
+void user_fom5(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2)
+{
+       int i;
+
+       for (i = 0; i < niters; i++)
+       {/* this section is to be replaced */
+               /* by the function to compute a */
+               user1[i] = 0.0; /* user-defined figure of merit */
+               user2[i] = 0.0;
+       }
+}
diff --git a/src/snark/user_fom5.h b/src/snark/user_fom5.h
new file mode 100644 (file)
index 0000000..836db2b
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/user_fom5.h $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef USER_FOM_H
+#define USER_FOM_H
+
+void user_fom5(int* itr1, int* itr2, int niters, char* keywrd1, char* keywrd2, double* user1, double* user2);
+
+#endif
diff --git a/src/snark/wray.cpp b/src/snark/wray.cpp
new file mode 100644 (file)
index 0000000..b9aebfe
--- /dev/null
@@ -0,0 +1,411 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/wray.cpp $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ DEFINITION OF VARIABLES
+ NUMB      THE NUMBER OF PIXELS A RAY PASSES THROUGH
+ SNORM     SUM OF SQUARES OF WEIGHTS
+ WEIGHT    THE LENGTH OF A RAY IN A PIXEL (CORRESPONDING TO
+ ENTRY IN THE ARRAY  LIST)
+ THETA     THE ANGLE IN RADIANS OF THE SOURCE OF THE RAY
+ WITH RESPECT TO THE PICTURE AREA
+ SORSTOC   THE DISTANCE FROM THE SOURCE TO THE CENTER OF THE BOD
+ THE SELECTED PIXELS
+ D         THE DISTANCE (ON THE TARGET )  FROM THE PERPENDICULAR
+ THROUGH THE SOURCE TO THE PLACE AT WHICH THE
+ DENSITY VALUE WAS MEASURED
+ LIST      THE LIST OF INDECIES INTO THE ARRAY PICT THAT CORRESP
+ TO THE SILECTED PIXELS
+
+ 05/21/2008      jk      added 4 default parameters
+ this allows to pass sorx, sory, cf and sf and avoid
+ a call to posit() - used when taking projections
+ of phantoms with variability when the call to posit()
+ is made right before the call wray()
+ */
+
+#include <cstdio>
+#include <cmath>
+
+#include "blkdta.h"
+#include "geom.h"
+#include "uiod.h"
+
+#include "posit.h"
+
+#include "wray.h"
+
+void wray(INTEGER np, INTEGER nr, INTEGER* list, REAL* weight, INTEGER* numb, REAL* snorm, REAL * _sorx, REAL * _sory, REAL * _cf, REAL * _sf)
+//_sorx, _sory, _cf and _sf are default parametes with values set to REAL * _sorx=0, REAL * _sory=0, REAL * _cf=0, REAL * _sf=0
+{
+       INTEGER flip;
+
+       REAL scale;
+       REAL elem;
+       REAL sorx;
+       REAL sory;
+       REAL cf;
+       REAL sf;
+       REAL hx;
+       REAL hy;
+       REAL tanphi;
+       REAL rtnphi;
+       REAL hxhx;
+       REAL hyhy;
+       REAL c;
+       INTEGER ix;
+       INTEGER iy;
+       REAL fp;
+       INTEGER incx;
+       REAL w;
+       REAL yc;
+       REAL xc;
+       INTEGER index;
+
+       int next;
+
+       scale = GeoPar.pixsiz;
+       elem = (REAL) GeoPar.nelem;
+       *numb = 0;
+       *snorm = 0;
+
+       //jk  5/21/2008
+       //if the values for _sorx and _sory are provided, do not call posit()
+       if (_sorx != 0 && _sory != 0 && _cf != 0 && _sf != 0)
+       {
+               sorx = *_sorx;
+               sory = *_sory;
+               cf = *_cf;
+               sf = *_sf;
+       }
+       else
+               posit(np, nr, &sorx, &sory, &cf, &sf);
+
+       sorx /= GeoPar.pixsiz;
+       sory /= GeoPar.pixsiz;
+
+       if (sf < 0.0)
+       {
+               sf = -sf;
+               cf = -cf;
+       }
+
+       flip = 0;
+       if (sf * cf < 0.0)
+       {
+               flip = 1;
+               cf = -cf;
+       }
+
+       /*
+        IF SIN(PHI) IS TOO CLOSE TO ZERO SET TO SOME SMALL VALUE
+        WITH PROPER SIGN
+        LIKEWISE WITH COS(PHI)  THIS AVOIDS TROUBLES WITH DIVISION
+        AND INFINITE SLOPES
+        */
+
+       if (fabs(sf) <= 0.0000001)
+       {
+               if (sf < 0)
+               {
+                       sf = (REAL) -0.0000001;
+               }
+               else
+               {
+                       sf = (REAL) 0.0000001;
+               }
+       }
+
+       hx = ((REAL) 1.0) / sf;
+
+       if (((REAL) fabs(cf)) <= (REAL) 0.0000001)
+       {
+               if (cf < 0)
+               {
+                       cf = (REAL) -0.0000001;
+               }
+               else
+               {
+                       cf = (REAL) 0.0000001;
+               }
+       }
+
+
+       hy = ((REAL) 1.0) / cf;
+       tanphi = sf / cf;
+       rtnphi = cf / sf;
+       hx *= scale;
+       hxhx = hx * hx;
+       hy *= scale;
+       hyhy = hy * hy;
+
+       // CALCULATE THE INTERSECTION OF REFERANCE LINE AND THE RAY IN QUESTI
+
+       sory += elem / ((REAL) 2.0);
+
+       if (flip > 0)
+       {
+               // REFLECT IN Y=0 IF NEEDED
+               sorx = -sorx;
+       }
+
+       sorx += elem / ((REAL) 2.0);
+       c = sory - sorx * tanphi;
+
+       // FLIP LINE 180 DEGREES
+
+       c = (((REAL) 1.0) - tanphi) * elem - c;
+
+       // EQUATION OF RAY IS NOW Y=X*TANPHI+C
+       // C IS THE Y INTERCEPT
+       // IF INTERCEPT IS ABOVE (N) THEN THE RAY HAS MISSED ALL PIXELS
+
+       if ((c - elem) < 0)
+       {
+               if (c < 0)
+               {
+
+                       // IF Y INTERCEPT IS NEGATIVE THEN TAKE X INTERCEPT (WHICH MUST
+                       // BE POSITIVE SINCE SLOPE IS ALWAYS POSITIVE
+
+                       //  RAY ENTERS FROM BOTTOM
+
+                       c = -c * rtnphi;
+
+                       // RECALCULATE C SO THAT EQUATION OF LINE IS NOW
+                       // X=RTANPHI*Y+C
+                       // IF X INTERCEPT IS GREATER TNAN N THE RAY HAS MISSED THE RECONSTRUC
+                       // AREA
+
+                       if ((c - elem) >= 0)
+                               goto L360;
+
+                       // INITIAL GRID (IX,IY) COORDINATE IS NOW CALCULATED
+
+                       ix = (INTEGER) c;
+                       iy = 0;
+
+                       // FP IS ACTUAL DISPLACEMENT OF INTERCEPT FROM THE NEXT GREATER
+                       // GRID LINE
+
+                       fp = ((REAL) (ix + 1)) - c;
+
+                       // START AT LOW X VALUES AND INCREMENT ACROSS PICTURE UNLESS
+                       // SLOPE IS NEGATIVE
+
+                       incx = 1;
+
+                       // FLIP INDICATOR IS EXACTLY WRONG FOR HERMANS MATRIX STORAGE
+
+                       if (flip <= 0)
+                       {
+
+                               // START AT HIGH X VALUES AND DECREMENT (FROM RIGHT TO LEFT)
+
+                               ix = GeoPar.nelem - ix - 1;
+                               incx = -1;
+                       }
+
+                       // SET INITIAL VALUES OF THE LENGTH OF THE RAY IN CURRENT CELL
+
+                       w = hy * fp;
+                       yc = fp * tanphi;
+                       xc = -fp;
+
+                       // INDEX IS THE LINEAR ARRAY SUBSCRIPT OF THE  PICTURE ARRAY
+                       // INDEX INTO FORTRAN TYPE ARRAY
+
+                       index = iy * GeoPar.nelem + ix + 1;
+
+                       // INITIAL CONDITIONS SET FOR ENTRANCE TO LOOPS WE HAVE ENTERED
+                       // THE PICTURE AREA FROM THE BOTTOM
+
+                       next = 3;
+               }
+               else
+               {
+
+                       // ENTER PICTURE FROM SIDE (LEFT)
+                       // CALCULATE INITIAL GRID COORDINATES (IX,IY)
+
+                       ix = 0;
+                       incx = 1;
+
+                       // START WITH LOW X VALUES AND GO UP UNLESS THE FLIP INDICATOR
+                       // IS SET
+                       // FLIP INDICATOR IS EXACTLY WRONG FOR HERMANS MATRIX STORAGE
+
+                       if (flip <= 0)
+                       {
+                               // START WITH HIGH X VALUES AND DECREMENT
+
+                               ix = GeoPar.nelem - 1;
+                               incx = -1;
+                       }
+
+                       iy = (INTEGER) c;
+
+                       // FP IS DISTANCE FROM Y INTERCEPT TO NEXT GREATER GRID LINE
+
+                       fp = ((REAL) (iy + 1)) - c;
+
+                       // CALCULATE ARRAY SUBSCRIPT IN PICTURE AREA OF INITIAL CELL
+                       // INDEX INTO FORTRAN TYPE ARRAY
+
+                       index = iy * GeoPar.nelem + ix + 1;
+
+                       // CALCULATE INITIAL DESCRIPTION OF RAY IN FIRST CELL FOR LOOP
+
+                       yc = -fp;
+                       w = hx * fp;
+                       xc = fp * rtnphi;
+
+                       // RAY ENTERS FROM LEFT SIDE
+
+                       next = 1;
+               }
+
+               for (;;)
+               {
+                       switch (next)
+                       {
+                       case 1:
+                               //  MAKE ROOM FOR NEW PICTURE ELEMENT
+                               (*numb)++;
+                               list[(*numb) - 1] = index - 1;
+
+                               // STEP ONE IN X DIRECTION AND CORRESPONDING STEP IN Y DIRECTION
+
+                               xc -= (REAL) 1.0;
+                               yc += tanphi;
+
+                               // IF XC IS NEGATIVE THE Y GRID LINE HAS BEEN CROSSED THE RAY
+                               // HAS LEFT THROUGHTHE TOP
+
+                               if (xc > (REAL) 0.0)
+                               {
+                                       // ENTERED SIDE,LEFT THROUGH SIDE --ASSIGN MAXIMUM Y-TYPE WEIGHT
+                                       weight[(*numb) - 1] = hy;
+                                       (*snorm) += hyhy;
+                                       w -= hy;
+                                       next = 4;
+                               }
+                               else
+                               {
+                                       weight[(*numb) - 1] = w;
+                                       (*snorm) += w * w;
+
+                                       if ((w - (REAL) 0.0000001) < 0)
+                                       {
+                                               w = hy;
+                                               (*numb)--;
+                                       }
+                                       else
+                                       {
+                                               w = hy - w;
+                                       }
+
+                                       next = 2;
+                               }
+                               break;
+                               //////////////////////////////////////////////////////////////
+                       case 2:
+                               iy++;
+
+                               // RAY ENTERS FROM BOTTOM
+                               // STEP ONE CELL IN Y DIRECTION  AND TEST FOR COMPLETION
+
+                               if ((iy - GeoPar.nelem) >= 0)
+                                       goto L360;
+
+                               index += GeoPar.nelem;
+
+                               next = 3;
+                               break;
+
+                               //////////////////////////////////////////////////////////////
+
+                               // NEW LIST ELEMENT MEANS ANOTHER PIXEL SELECTED
+                       case 3:
+                               (*numb)++;
+                               list[(*numb) - 1] = index - 1;
+
+                               // STEP ONE IN Y DIRECTION AND CORRESPONDING X INCREMENT
+
+                               yc -= 1.0;
+                               xc += rtnphi;
+
+                               // IF YC IS NEGATIVE WH HAVE CROSSED A X-GRID LINE AND THAT
+                               // WE LEAVE THROUGE THE SIDE
+
+                               if (yc > (REAL) 0.0)
+                               {
+                                       w -= hx;
+
+                                       // ENTERED BOTTOM LEFT TOP ASSIGN MAXIMUM X-TYPE WEIGHT
+
+                                       weight[(*numb) - 1] = hx;
+                                       (*snorm) += hxhx;
+                                       next = 2;
+                               }
+                               else
+                               {
+                                       weight[(*numb) - 1] = w;
+                                       (*snorm) += w * w;
+
+                                       // IF THE WEIGHT SO CALCULATED IS TOO SMALL DELETE THIS PIXEL
+                                       // THIS CAUSED BY CROSSING GRID LINES AT A CORNER
+
+                                       if ((w - (REAL) 0.000001) <= 0.0)
+                                       {
+                                               w = hx;
+                                               (*numb)--;
+                                       }
+                                       else
+                                       {
+                                               w = hx - w;
+                                       }
+                                       next = 4;
+                               }
+                               break;
+
+                               /////////////////////////////////////////////////////////////
+                       case 4:
+                               // ENTER PIXEL FROM SIDE
+                               ix += incx;
+
+                               // STEP ONE IN X DIRECTION
+                               // AND TEST FOR TERMINATION
+
+                               if (ix < 0)
+                                       goto L360;
+
+                               if ((ix - GeoPar.nelem) >= 0)
+                                       goto L360;
+                               index += incx;
+
+                               next = 1;
+                               break;
+                       }
+               }
+       }
+
+       L360:
+
+       if (trace > 6)
+       {
+               fprintf(output, "\n          wray    np = %5i  nr = %5i  numb = %5i  snorm = %9.4f", np, nr, *numb, *snorm);
+       }
+       if ((*numb > 0) && (trace > 9))
+       {
+               for (int i = 0; i < *numb; i++)
+               {
+                       fprintf(output, "\n                  %5i     %9.4f", list[i], weight[i]);
+               }
+       }
+}
diff --git a/src/snark/wray.h b/src/snark/wray.h
new file mode 100644 (file)
index 0000000..19aec63
--- /dev/null
@@ -0,0 +1,16 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/wray.h $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef WRAY_H
+#define WRAY_H
+     
+void wray(INTEGER np, INTEGER nr,INTEGER* list, REAL* weight, INTEGER* numb, REAL* snorm, REAL * _sorx=0, REAL * _sory=0, REAL * _cf=0, REAL * _sf=0);
+
+#endif
diff --git a/src/snark/wrdpack.cpp b/src/snark/wrdpack.cpp
new file mode 100644 (file)
index 0000000..da0288f
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/wrdpack.cpp $
+ $LastChangedRevision: 122 $
+ $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+
+ wrdpack.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
+
+ THE PURPOSE OF THIS ROUTINE IS TO PACK FOUR CHARACTERS (STORED ONE
+ PER WORD STARTING WITH indata(ptr)) INTO A SINGLE WORD word SO THAT
+ SIMPLE INTEGER COMPARISONS CAN BE MADE.
+
+ ON RETURN, THE POINTER ptr POINTS TO THE NEXT CHARACTER FOLLOWING THE 
+ LAST ONE PACKED.
+ IF THE NEXT CHARACTER IS BLANK, THEN wrdpack IS SET TO .true. . IF
+ THE NEXT CHARACTER IS NON BLANK, THEN wrdpack IS SET TO .false. 
+
+*/
+
+#include <cstdio>
+      
+#include "blkdta.h"
+#include <ctype.h>  // added by lajos, Nov 18, 2004
+
+#include "wrdpack.h"
+      
+BOOLEAN wrdpack(CHAR* indata, INTEGER* ptr, INTEGER* word)
+{
+      
+  CHAR list[4];
+  CHAR blank = ' ';
+
+  int i;
+
+  for(i = 1; i < 4; i++) 
+  {
+    list[i] = blank;
+  }
+
+  for(i = 0; i < 4; i++) 
+  {
+    list[i] = tolower(indata[*ptr]);  // changed "tolowr" to "tolower". lajos, Nov 18, 2004
+    if(list[i] == blank) break;
+    (*ptr)++;
+  }
+  
+  *word = CHAR2INT((*list), *(list+1), *(list+2), *(list+3));
+
+  if(indata[*ptr] == blank) return TRUE;
+  return FALSE;
+}
diff --git a/src/snark/wrdpack.h b/src/snark/wrdpack.h
new file mode 100644 (file)
index 0000000..93f2b92
--- /dev/null
@@ -0,0 +1,17 @@
+/* 
+ ***********************************************************
+ $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
+ $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/wrdpack.h $
+ $LastChangedRevision: 121 $
+ $Date: 2014-07-09 17:52:58 -0400 (Wed, 09 Jul 2014) $
+ $Author: agulati $
+ ***********************************************************
+ */
+
+#ifndef WRDPACK_H
+#define WRDPACK_H
+
+BOOLEAN wrdpack(CHAR* indata, INTEGER* ptr, INTEGER* word);
+// CHAR tolowr(CHAR letter);  // commented out by lajos, Nov 18, 2004
+
+#endif
diff --git a/tools/Display/Makefile b/tools/Display/Makefile
new file mode 100755 (executable)
index 0000000..6195ed7
--- /dev/null
@@ -0,0 +1,492 @@
+#############################################################################
+# Makefile for building snark14Display (previously SnarkDisplay)
+# Generated by tmake at 13:46, 2002/12/19 
+#   fidgeted by Deniz 2004-2006
+#     Project: snark14Display
+#    Template: app
+#############################################################################
+
+####### Compiler, tools and options
+
+# turned off optimization because eval_helper was putting g++ in 'infinite loop'
+CC     =       gcc
+CXX    =       g++
+# CFLAGS       =       -g -pipe -Wno-deprecated -Wall -W
+CFLAGS =       -pipe -Wno-deprecated -O2 -DNO_DEBUG
+# CXXFLAGS=    -g -pipe -Wno-deprecated -Wall -W -O2 -std=c++98
+CXXFLAGS=      -pipe -Wno-deprecated -O2 -DNO_DEBUG -std=c++98
+
+SNARK14ROOT = ../..
+SNARK14LIB = $(SNARK14ROOT)/lib
+SNARK14INC = $(SNARK14ROOT)/include
+
+XERCES = /usr/local/snark14
+XERCESLIBDIR= $(XERCES)/lib
+XERCESLIB = xerces-c
+XERCESINCLUDE = $(XERCES)/include/xercesc
+
+DIGLIBDIR = $(SNARK14LIB)
+
+DIGFILELIB = DIGFile
+DIGFILEINCLUDE = $(SNARK14INC)/DIGFile
+
+DIGFILESNARKLIB = DIGFileSnark
+DIGFILESNARKINCLUDE = $(SNARK14INC)/DIGFileSnark
+
+INCPATH        =       -I$(QTDIR)/include -I$(XERCESINCLUDE)/.. -I$(DIGFILEINCLUDE) -I$(DIGFILESNARKINCLUDE)
+LINK   =       $(CXX) -std=c++98
+LFLAGS =       
+LIBS   =       $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -L$(XERCESLIBDIR) -L$(DIGLIBDIR) -lqt-mt -lm -l$(XERCESLIB) -l$(DIGFILELIB) -l$(DIGFILESNARKLIB)
+MOC    =       $(QTDIR)/bin/moc
+UIC    =       $(QTDIR)/bin/uic
+TAR    =       tar -cf
+GZIP   =       gzip -9f
+
+####### Files
+
+HEADERS =      chooseRanges.hpp \
+               chooseYVar.hpp \
+               displaywindow.hpp \
+               displaylines.hpp \
+               displayprojection.hpp \
+               displaywidget.hpp \
+               eval_helper.hpp \
+               image.hpp \
+               linesimages.hpp \
+               sd_line_t.hpp \
+               line_real_t.hpp \
+               line_real_set_t.hpp \
+               line_window_t.hpp \
+               line_window_onevar_t.hpp \
+               plot_t.hpp \
+               lines.hpp \
+               openimages.hpp \
+               proj.hpp \
+               range.hpp \
+               selectEvalExecutions.hpp \
+               selectimages.hpp \
+               SnarkDisplay.hpp \
+               variables.hpp 
+SOURCES =      SnarkDisplay.cpp \
+               chooseRanges.cpp \
+               chooseYVar.cpp \
+               displaywindow.cpp \
+               displayprojection.cpp \
+               displaylines.cpp \
+               displaywidget.cpp \
+               eval_helper.cpp \
+               image.cpp \
+               linesimages.cpp \
+               lines.cpp \
+               proj.cpp \
+               openimages.cpp \
+               range.cpp \
+               sd_line_t.cpp \
+               line_real_t.cpp \
+               line_real_set_t.cpp \
+               line_window_t.cpp \
+               line_window_onevar_t.cpp \
+               plot_t.cpp \
+               selectEvalExecutions.cpp \
+               selectimages.cpp
+OBJECTS =      chooseRanges.o \
+               chooseYVar.o \
+               displaywindow.o \
+               displaylines.o \
+               displayprojection.o \
+               displaywidget.o \
+               eval_helper.o \
+               image.o \
+               linesimages.o \
+               lines.o \
+               openimages.o \
+               proj.o \
+               range.o \
+               sd_line_t.o \
+               line_real_t.o \
+               line_real_set_t.o \
+               line_window_t.o \
+               line_window_onevar_t.o \
+               plot_t.o \
+               selectEvalExecutions.o \
+               selectimages.o \
+               SnarkDisplay.o 
+SRCMOC =       moc_chooseRanges.cpp \
+               moc_chooseYVar.cpp \
+               moc_displaywindow.cpp \
+               moc_displaylines.cpp \
+               moc_displayprojection.cpp \
+               moc_displaywidget.cpp \
+               moc_linesimages.cpp \
+               moc_lines.cpp \
+               moc_openimages.cpp \
+               moc_range.cpp \
+               moc_selectEvalExecutions.cpp \
+               moc_selectimages.cpp \
+               moc_SnarkDisplay.cpp 
+OBJMOC =       moc_chooseRanges.o \
+               moc_chooseYVar.o \
+               moc_displaywindow.o \
+               moc_displaylines.o \
+               moc_displayprojection.o \
+               moc_displaywidget.o \
+               moc_linesimages.o \
+               moc_lines.o \
+               moc_openimages.o \
+               moc_range.o \
+               moc_selectEvalExecutions.o \
+               moc_selectimages.o \
+               moc_SnarkDisplay.o 
+DIST   =       
+TARGET =       $(SNARK14ROOT)/bin/snark14Display
+INTERFACE_DECL_PATH = .
+
+####### Implicit rules
+
+.SUFFIXES: .cpp .cxx .cpp .C .c
+
+.cpp.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+.cxx.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+.cc.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+.C.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+.c.o:
+       $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
+
+####### Build rules
+
+
+all: $(TARGET)
+
+$(TARGET): $(OBJECTS) $(OBJMOC) 
+       $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
+
+moc: $(SRCMOC)
+
+clean:
+       @rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(TARGET)
+       @rm -f *~ core*
+
+####### Sub-libraries
+
+
+###### Combined headers
+
+
+####### Compile
+
+chooseRanges.o:        chooseRanges.cpp \
+               chooseRanges.hpp \
+               displaylines.hpp \
+               SnarkDisplay.hpp \
+               plot_t.hpp \
+               line_real_set_t.hpp \
+               line_real_t.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp \
+               displaywidget.hpp
+
+chooseYVar.o:  chooseYVar.cpp \
+               chooseYVar.hpp \
+               displaylines.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp \
+               displaywidget.hpp
+
+displaywindow.o: displaywindow.cpp \
+               displaywindow.hpp \
+               displaywidget.hpp \
+               verbosity.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp \
+               lines.hpp \
+               line_real_t.hpp \
+               plot_t.hpp \
+               SnarkDisplay.hpp
+
+displaylines.o: displaylines.cpp \
+               displaylines.hpp \
+               verbosity.hpp \
+               sd_line_t.hpp
+
+displayprojection.o: displayprojection.cpp \
+               displayprojection.hpp \
+               displaywidget.hpp \
+               verbosity.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp \
+               lines.hpp \
+               line_real_t.hpp \
+               plot_t.hpp \
+               displaylines.hpp \
+               SnarkDisplay.hpp
+
+displaywidget.o: displaywidget.cpp \
+               displaywidget.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+eval_helper.o: eval_helper.cpp \
+               sd_line_t.hpp \
+               verbosity.hpp \
+               eval_helper.hpp \
+               displaylines.hpp \
+               chooseRanges.hpp \
+               line_real_t.hpp \
+               line_real_set_t.hpp \
+               plot_t.hpp
+
+image.o: image.cpp \
+               image.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+linesimages.o: linesimages.cpp \
+               linesimages.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+lines.o: lines.cpp \
+               lines.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+line_real_t.o: line_real_t.cpp \
+               line_real_t.hpp \
+               sd_line_t.hpp \
+               line_real_set_t.hpp
+
+line_real_set_t.o: line_real_set_t.cpp \
+               line_real_set_t.hpp \
+               line_real_t.hpp \
+               sd_line_t.hpp \
+               verbosity.hpp
+
+line_window_t.o: line_window_t.cpp \
+               line_window_t.hpp \
+               sd_line_t.hpp
+
+line_window_onevar_t.o: line_window_onevar_t.cpp \
+               line_window_onevar_t.hpp \
+               sd_line_t.hpp \
+               verbosity.hpp \
+               line_real_t.hpp
+
+plot_t.o: plot_t.cpp \
+               plot_t.hpp \
+               sd_line_t.hpp \
+               verbosity.hpp \
+               line_window_onevar_t.hpp \
+               line_real_set_t.hpp \
+               line_real_t.hpp
+
+openimages.o: openimages.cpp \
+               openimages.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+proj.o: proj.cpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+range.o: range.cpp \
+               range.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+sd_line_t.o: sd_line_t.cpp \
+               sd_line_t.hpp
+
+selectEvalExecutions.o: selectEvalExecutions.cpp \
+                       selectEvalExecutions.hpp \
+                       chooseYVar.hpp \
+                       variables.hpp \
+                       image.hpp \
+                       proj.hpp \
+                       SnarkDisplay.hpp
+
+selectimages.o: selectimages.cpp \
+               selectimages.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+SnarkDisplay.o: SnarkDisplay.cpp \
+               SnarkDisplay.hpp \
+               displaylines.hpp \
+               displayprojection.hpp \
+               displaywindow.hpp \
+               image.hpp \
+               lines.hpp \
+               linesimages.hpp \
+               openimages.hpp \
+               proj.hpp \
+               range.hpp \
+               variables.hpp 
+
+
+moc_chooseRanges.o: moc_chooseRanges.cpp \
+               chooseRanges.hpp \
+               sd_line_t.hpp \
+               displaylines.hpp \
+               SnarkDisplay.hpp \
+               plot_t.hpp \
+               line_real_set_t.hpp \
+               line_real_t.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp \
+               displaywidget.hpp
+
+moc_chooseYVar.o: moc_chooseYVar.cpp \
+               chooseYVar.hpp \
+               displaylines.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp \
+               displaywidget.hpp
+
+moc_displaywindow.o: moc_displaywindow.cpp \
+               displaywindow.hpp \
+               displaywidget.hpp \
+               verbosity.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp \
+               lines.hpp \
+               line_real_t.hpp \
+               plot_t.hpp \
+               SnarkDisplay.hpp
+
+moc_displaylines.o: moc_displaylines.cpp \
+               displaylines.hpp \
+               verbosity.hpp \
+               sd_line_t.hpp
+
+moc_displayprojection.o: moc_displayprojection.cpp \
+               displayprojection.hpp \
+               displaywidget.hpp \
+               verbosity.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp \
+               lines.hpp \
+               line_real_t.hpp \
+               plot_t.hpp \
+               displaylines.hpp \
+               SnarkDisplay.hpp
+
+moc_displaywidget.o: moc_displaywidget.cpp \
+               sd_line_t.hpp \
+               displaywidget.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+moc_linesimages.o: moc_linesimages.cpp \
+               linesimages.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+moc_lines.o: moc_lines.cpp \
+               lines.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+moc_openimages.o: moc_openimages.cpp \
+               openimages.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+moc_range.o: moc_range.cpp \
+               range.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+moc_selectEvalExecutions.o: moc_selectEvalExecutions.cpp \
+               selectEvalExecutions.hpp \
+               chooseYVar.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp \
+               SnarkDisplay.hpp
+
+moc_selectimages.o: moc_selectimages.cpp \
+               selectimages.hpp \
+               variables.hpp \
+               image.hpp \
+               proj.hpp
+
+moc_SnarkDisplay.o: moc_SnarkDisplay.cpp \
+               SnarkDisplay.hpp \
+               displaylines.hpp \
+               displayprojection.hpp \
+               displaywindow.hpp \
+               image.hpp \
+               lines.hpp \
+               linesimages.hpp \
+               openimages.hpp \
+               proj.hpp \
+               range.hpp \
+               variables.hpp
+
+moc_chooseRanges.cpp: chooseRanges.hpp
+       $(MOC) chooseRanges.hpp -o moc_chooseRanges.cpp
+
+moc_chooseYVar.cpp: chooseYVar.hpp
+       $(MOC) chooseYVar.hpp -o moc_chooseYVar.cpp
+
+moc_displaywindow.cpp: displaywindow.hpp
+       $(MOC) displaywindow.hpp -o moc_displaywindow.cpp
+
+moc_displaylines.cpp: displaylines.hpp
+       $(MOC) displaylines.hpp -o moc_displaylines.cpp
+
+moc_displayprojection.cpp: displayprojection.hpp
+       $(MOC) displayprojection.hpp -o moc_displayprojection.cpp
+
+moc_displaywidget.cpp: displaywidget.hpp
+       $(MOC) displaywidget.hpp -o moc_displaywidget.cpp
+
+moc_linesimages.cpp: linesimages.hpp
+       $(MOC) linesimages.hpp -o moc_linesimages.cpp
+
+moc_lines.cpp: lines.hpp
+       $(MOC) lines.hpp -o moc_lines.cpp
+
+moc_openimages.cpp: openimages.hpp
+       $(MOC) openimages.hpp -o moc_openimages.cpp
+
+moc_range.cpp: range.hpp
+       $(MOC) range.hpp -o moc_range.cpp
+
+moc_selectEvalExecutions.cpp: selectEvalExecutions.hpp
+       $(MOC) selectEvalExecutions.hpp -o moc_selectEvalExecutions.cpp
+
+moc_selectimages.cpp: selectimages.hpp
+       $(MOC) selectimages.hpp -o moc_selectimages.cpp
+
+moc_SnarkDisplay.cpp: SnarkDisplay.hpp
+       $(MOC) SnarkDisplay.hpp -o moc_SnarkDisplay.cpp
diff --git a/tools/Display/QPL b/tools/Display/QPL
new file mode 100755 (executable)
index 0000000..233674c
--- /dev/null
@@ -0,0 +1,53 @@
+[ from http://www.trolltech.com/licenses/qpl.html as viewed on 2005/01/22 ]
+
+Q Public License v1.0   
+
+Copyright Â© 1999 Trolltech AS, Norway.
+
+Everyone is permitted to copy and distribute this license document.
+
+The intent of this license is to establish freedom to share and change the software regulated by this license under the open source model.
+
+This license applies to any software containing a notice placed by the copyright holder saying that it may be distributed under the terms of the Q Public License version 1.0. Such software is herein referred to as the Software. This license covers modification and distribution of the Software, use of third-party application programs based on the Software, and development of free software which uses the Software.
+Granted Rights
+
+1. You are granted the non-exclusive rights set forth in this license provided you agree to and comply with any and all conditions in this license. Whole or partial distribution of the Software, or software items that link with the Software, in any form signifies acceptance of this license.
+
+2. You may copy and distribute the Software in unmodified form provided that the entire package, including - but not restricted to - copyright, trademark notices and disclaimers, as released by the initial developer of the Software, is distributed.
+
+3. You may make modifications to the Software and distribute your modifications, in a form that is separate from the Software, such as patches. The following restrictions apply to modifications:
+
+a. Modifications must not alter or remove any copyright notices in the Software.
+
+b. When modifications to the Software are released under this license, a non-exclusive royalty-free right is granted to the initial developer of the Software to distribute your modification in future versions of the Software provided such versions remain available under these terms in addition to any other license(s) of the initial developer.
+
+4. You may distribute machine-executable forms of the Software or machine-executable forms of modified versions of the Software, provided that you meet these restrictions:
+
+a. You must include this license document in the distribution.
+
+b. You must ensure that all recipients of the machine-executable forms are also able to receive the complete machine-readable source code to the distributed Software, including all modifications, without any charge beyond the costs of data transfer, and place prominent notices in the distribution explaining this.
+
+c. You must ensure that all modifications included in the machine-executable forms are available under the terms of this license.
+
+5. You may use the original or modified versions of the Software to compile, link and run application programs legally developed by you or by others.
+
+6. You may develop application programs, reusable components and other software items that link with the original or modified versions of the Software. These items, when distributed, are subject to the following requirements:
+
+a. You must ensure that all recipients of machine-executable forms of these items are also able to receive and use the complete machine-readable source code to the items without any charge beyond the costs of data transfer.
+
+b. You must explicitly license all recipients of your items to use and re-distribute original and modified versions of the items in both machine-executable and source code forms. The recipients must be able to do so without any charges whatsoever, and they must be able to re-distribute to anyone they choose.
+
+c. If the items are not available to the general public, and the initial developer of the Software requests a copy of the items, then you must supply one.
+Limitations of Liability
+
+In no event shall the initial developers or copyright holders be liable for any damages whatsoever, including - but not restricted to - lost revenue or profits or other direct, indirect, special, incidental or consequential damages, even if they have been advised of the possibility of such damages, except to the extent invariable law, if any, provides otherwise.
+No Warranty
+
+The Software and this license document are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+Choice of Law
+
+This license is governed by the Laws of Norway. Disputes shall be settled by Oslo City Court.
+
+
+       
+
diff --git a/tools/Display/SnarkDisplay.cpp b/tools/Display/SnarkDisplay.cpp
new file mode 100755 (executable)
index 0000000..2962ce9
--- /dev/null
@@ -0,0 +1,873 @@
+/** @file SnarkDisplay.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+    
+    modification: Joanna Klukowska 1/13/2009
+           added choice of grayScale display for plot
+           in addition to color display
+// 
+ */
+
+// sd headers
+#include "SnarkDisplay.hpp"
+#include "displaylines.hpp"
+#include "displayprojection.hpp"
+#include "eval_helper.hpp"
+#include "lines.hpp"
+#include "line_real_t.hpp"
+#include "plot_t.hpp"
+#include "linesimages.hpp"
+#include "proj.hpp"
+#include "displaywindow.hpp"
+#include "selectEvalExecutions.hpp"
+#include "variables.hpp"
+#include "range.hpp"
+#include "openimages.hpp"
+
+// C++ headers
+#include <iostream>
+
+// C-like headers
+#include <cstdio>
+#include <ctype.h>
+#include <malloc.h>
+
+// Qt headers
+#include <qapplication.h>
+#include <qdialog.h>
+#include <qfiledialog.h>
+#include <qframe.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qpainter.h>
+#include <qpen.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+#include <qregexp.h> 
+
+char *myTag = "sd140707";
+
+/* 
+ *  Constructs a SnarkDisplay which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'fl'
+ */
+SnarkDisplay::SnarkDisplay(QWidget* parent, const char* name, WFlags fl)
+: QWidget(parent, name, fl) {
+    std::cout << "Executing snark14Display - " << myTag << std::endl;
+    numimages = 0;
+    desk = QApplication::desktop();
+    maxSizex = desk->size().width();
+    maxSizey = desk->size().height();
+    if (!name)
+        setName("snark14Display");
+    resize(250, 400);
+    setSizePolicy(QSizePolicy((QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth()));
+    setMinimumSize(QSize(250, 400));
+    setMaximumSize(QSize(250, 400));
+    setCaption(tr("snark14Display"));
+
+    recfilbutton = new QPushButton(this, "recfilbutton");
+    recfilbutton->setGeometry(QRect(40, 25, 170, 40));
+    recfilbutton->setText(tr("Open Recfil File"));
+    QObject::connect(recfilbutton, SIGNAL(clicked()), this, SLOT(openRecfilFile()));
+
+    imagesbutton = new QPushButton(this, "imagesbutton");
+    imagesbutton->setGeometry(QRect(40, 75, 170, 40));
+    imagesbutton->setText(tr("Open Images"));
+    QObject::connect(imagesbutton, SIGNAL(clicked()), this, SLOT(callOpenImages()));
+
+    rangebutton = new QPushButton(this, "rangebutton");
+    rangebutton->setGeometry(QRect(40, 125, 170, 40));
+    rangebutton->setText(tr("Set Global Features"));
+    QObject::connect(rangebutton, SIGNAL(clicked()), this, SLOT(callRange()));
+
+    linesbutton = new QPushButton(this, "linesbutton");
+    linesbutton->setGeometry(QRect(40, 175, 170, 40));
+    linesbutton->setText(tr("Display Lines"));
+    QObject::connect(linesbutton, SIGNAL(clicked()), this, SLOT(callLines()));
+
+    projfilbutton = new QPushButton(this, "projfilbutton");
+    projfilbutton->setGeometry(QRect(40, 225, 170, 40));
+    projfilbutton->setText(tr("Open Prjfil File"));
+    QObject::connect(projfilbutton, SIGNAL(clicked()), this, SLOT(openPrjfilFile()));
+
+    evalbutton = new QPushButton(this, "evalbutton");
+    evalbutton->setGeometry(QRect(40, 275, 170, 40));
+    evalbutton->setText(tr("Open Eval File"));
+    QObject::connect(evalbutton, SIGNAL(clicked()), this, SLOT(openEvalFile()));
+
+    Line1 = new QFrame(this, "Line1");
+    Line1->setGeometry(QRect(0, 325, 260, 16));
+    Line1->setFrameStyle(QFrame::HLine | QFrame::Sunken);
+
+    quitbutton = new QPushButton(this, "quitbutton");
+    quitbutton->setGeometry(QRect(10, 350, 100, 40));
+    quitbutton->setText(tr("Quit"));
+    QObject::connect(quitbutton, SIGNAL(clicked()), qApp, SLOT(quit()));
+
+    helpbutton = new QPushButton(this, "helpbutton");
+    helpbutton->setGeometry(QRect(140, 350, 100, 40));
+    helpbutton->setText(tr("About"));
+    QObject::connect(helpbutton, SIGNAL(clicked()), this, SLOT(about()));
+
+    allocSnarkimages(numimages);
+    //  allocDisplaywindows(numimages);
+    displaywindowset = 0;
+    displaywindowactive = 0;
+    myRangeWinP = 0;
+    myOpenImagesWinP = 0;
+} // --SnarkDisplay ctor
+
+/** Destroys the object and frees any allocated resources
+ */
+SnarkDisplay::~SnarkDisplay() {
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Calls file dialog and opens recfil file
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkDisplay::openRecfilFile() {
+    unsigned int asn, an;
+    int i, j, ni, widthproj, widthexec;
+    char name[256], oldname[256], nameexecution[13], namephantom[41];
+    char namealg[5], nameprojection[13];
+    const char *na;
+    const DIGDimensions* Dimensions;
+    QString itname, recfilfilename, s;
+    QFileDialog fd(QString::null, "Recfil files (*recfil*)\n All files (*)", this, "Open Recfil File", true);
+    fd.setCaption("Open Recfil File");
+    fd.setSelection(QDir::currentDirPath());
+    if (fd.exec() == QDialog::Accepted)
+        recfilfilename = fd.selectedFile();
+    else
+        recfilfilename = "";
+    if (openrecfil) {
+        digrecfil.Close();
+        free(settitles);
+        for (i = 0; i < numimages; i++) {
+            if (imageindexes[i]) {
+                free(imageindexes[i]);
+                imageindexes[i] = 0;
+            }
+            imagetitles[i] = 0;
+        }
+        if (myRangeWinP) {
+            myRangeWinP->closeWindow();
+            myRangeWinP = 0;
+        }
+        if (myOpenImagesWinP) {
+            delete myOpenImagesWinP;
+            myOpenImagesWinP = 0;
+        }
+        free(imageindexes);
+        freeSnarkimages(numimages);
+        freeDisplaywindows(numimages);
+    }
+    if (!recfilfilename.isEmpty()) {
+        sprintf(name, "%s", recfilfilename.latin1());
+        if (digrecfil.Open(name) != 0) {
+            s.sprintf("Error!\nUnable to open file:\n%s\n", recfilfilename.latin1());
+            QMessageBox::information(this, "SnarkDisplay", s);
+            digrecfil.Close();
+            return;
+        } else {
+            sprintf(oldname, "%s", name);
+            phantomexists = false;
+            if (digrecfil.GetDimensions(&Dimensions) != 0) {
+                s.sprintf("%s is not a snark14 recfil\n", recfilfilename.latin1());
+                QMessageBox::information(this, "SnarkDisplay", s);
+                return;
+            }
+            if ((Dimensions->x != 1) && (Dimensions->y != 1) && (Dimensions->z != 1)) {
+                s.sprintf("%s is not a snark14 recfil\n", recfilfilename.latin1());
+                QMessageBox::information(this, "SnarkDisplay", s);
+                return;
+            }
+            if (Dimensions->z == 1) {
+                Sizex = Dimensions->x;
+                Sizey = Dimensions->y;
+            } else {
+                if (Dimensions->y == 1) {
+                    Sizex = Dimensions->x;
+                    Sizey = Dimensions->z;
+                } else {
+                    Sizex = Dimensions->y;
+                    Sizey = Dimensions->z;
+                }
+            }
+            digrecfil.GetDataFormat(&dataformat);
+            nameproj = (const char *) malloc(sizeof (const char) *81);
+            digrecfil.GetTitle(&nameproj);
+            strncpy(nameprojection, nameproj, 12);
+            nameprojection[12] = 0;
+            widthproj = 12;
+            for (j = 11; j >= 0; j--) {
+                if (nameprojection[j] == ' ' || nameprojection[j] == 0 || nameprojection[j] == 10) {
+                    nameprojection[j] = 0;
+                    widthproj--;
+                } else
+                    break;
+            }
+            digrecfil.GetNoOfArraySets(&asn);
+            settitles = (const char **) malloc(sizeof (const char *) * asn);
+            numimages = 0;
+            for (i = 0; i < (static_cast<int> (asn)); i++) {
+                digrecfil.SelectArraySet(i);
+                digrecfil.GetArraySetTitle(&settitles[i]);
+                digrecfil.GetNoOfArrays(&an);
+                numimages += an;
+            }
+            imagetitles = (char **) malloc(sizeof (char *) * numimages);
+            for (i = 0; i < numimages; i++) {
+                imagetitles[i] = (char *) malloc(sizeof (char) *41);
+            }
+            imageindexes = (unsigned int **) malloc(sizeof (unsigned int *) * numimages);
+            for (i = 0; i < numimages; i++) {
+                imageindexes[i] = (unsigned int *) malloc(sizeof (unsigned int *) *2);
+            }
+            ni = 0;
+            for (i = 0; i < (static_cast<int> (asn)); i++) {
+                widthexec = 12;
+                digrecfil.SelectArraySet(i);
+                digrecfil.GetNoOfArrays(&an);
+                digrecfil.GetArraySetType(&na);
+                strncpy(namealg, na, 4);
+                namealg[4] = 0;
+                for (j = 0; j < 4; j++)
+                    namealg[j] = toupper(namealg[j]);
+                if (!strcmp(namealg, "PHAN")) {
+                    phantomexists = true;
+                    strncpy(namephantom, settitles[i], 40);
+                    namephantom[40] = 0;
+                    if (!strcmp(namephantom, ""))
+                        itname.sprintf("_");
+                    else
+                        itname.sprintf("%-40s", namephantom);
+                    sprintf(imagetitles[ni], "%s", itname.latin1());
+                    imageindexes[ni][0] = i;
+                    imageindexes[ni][1] = 0;
+                    ni++;
+                } else {
+                    strncpy(nameexecution, settitles[i], 12);
+                    nameexecution[12] = 0;
+                    widthexec = 12;
+                    for (j = 11; j >= 0; j--) {
+                        if (nameexecution[j] == ' ' || nameexecution[j] == 0) {
+                            nameexecution[j] = 0;
+                            widthexec--;
+                        } else
+                            break;
+                    }
+                    for (j = 0; j < (static_cast<int> (an)); j++) {
+                        if (strcmp(nameprojection, ""))
+                            itname.sprintf("%-*s_%-*s_%s_%04d_r_a", widthproj, nameprojection, widthexec, nameexecution, namealg, j + 1);
+                        else
+                            itname.sprintf("__%-*s_%4s_%04d_r_a", widthexec, nameexecution, namealg, j + 1);
+                        sprintf(imagetitles[ni], "%s", itname.latin1());
+                        imageindexes[ni][0] = i;
+                        imageindexes[ni][1] = j;
+                        ni++;
+                    }
+                }
+            } // --for on asn
+            allocSnarkimages(numimages);
+            allocDisplaywindows(numimages);
+            if (openrecfil) {
+                if (myOpenImagesWinP) {
+                    myOpenImagesWinP->setImagesNames();
+                }
+            } else
+                openrecfil = true;
+        }
+    }
+} //--SnarkDisplay::openRecfilFile()
+
+/** Starts a window for selecting images to be shown
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkDisplay::callOpenImages() {
+    QPoint topleft;
+    topleft = this->pos();
+    if (!openrecfil) {
+        QMessageBox::information(this, "SnarkDisplay", "Error!\n"
+                "No recfil file is open.");
+    } else {
+        //  noiw=new openimageswindow(desk,"Open Images",false,0,topleft.x()+30,topleft.y()+30);
+        if (!myOpenImagesWinP) {
+            myOpenImagesWinP = new openimageswindow(displaywindowset, desk, "Open Images", false, 0, topleft.x() + 30, topleft.y() + 30);
+            //      myOpenImagesWinP = new openimageswindow(displaywindowset,this,"Open Images",false,0,topleft.x()+30,topleft.y()+30);
+        }
+        myOpenImagesWinP->hide(); // hack to give focus, setFocus() didn't work
+        myOpenImagesWinP->show();
+    }
+} // --SnarkDisplay::callOpenImages()
+
+/** Starts a lines window
+@param void
+@author Bruno M. Carvalho, deniz
+@version 1.4
+@comments majorly shortened due to new (Deniz'04) classes
+ */
+void SnarkDisplay::callLines() {
+    if (std::verbose >= 2) {
+        std::cout << "++SnarkDisplay::callLines()" << std::endl;
+    }
+    int l[4];
+    int linetype, c, i, j, k, minx, maxx;
+    int *siarray;
+    int topleftx, toplefty;
+    double **img;
+    double miny, maxy;
+    QString title, xaxis, yaxis, temp;
+    QFont f;
+    QPoint topleft;
+    if (!openrecfil)
+        QMessageBox::information(this, "SnarkDisplay", "Error!\n"
+            "No recfil file is open.");
+    else {
+        if (!imageset[0]->isLoaded())
+            imageset[0]->readImage(0, dataformat);
+        linesimageswindow* nw = new linesimageswindow(this, "Multiple Images' Lines", true);
+        c = nw->exec();
+        if (c == QDialog::Accepted) {
+            linetype = nw->getLinetype(); // row or column.  0 for row, 1 for column.
+            l[0] = nw->getLine1();
+            l[1] = nw->getLine2();
+            l[2] = nw->getLine3();
+            l[3] = nw->getLine4();
+            title = ((nw->getTitle()).simplifyWhiteSpace());
+            xaxis = nw->getXAxis();
+            yaxis = nw->getYAxis();
+            minx = nw->getMinX();
+            maxx = nw->getMaxX();
+            miny = nw->getMinY();
+            maxy = nw->getMaxY();
+            topleft = this->pos();
+            topleftx = topleft.x();
+            toplefty = topleft.y();
+            siarray = nw->getSelectedImages();
+            // (linetype==0) ==> show for suchandsuch row(s) all column values based on xrange
+            // (linetype==1) ==> show for suchandsuch col(s) all row    values based on xrange
+            QString rowOrColumn = ((linetype) ? ("Column ") : ("Row "));
+            QString vs = ((linetype) ? ("Rows") : ("Columns"));
+            for (k = 1; k <= siarray[0]; k++) {
+                if (!imageset[siarray[k]]->isLoaded())
+                    imageset[siarray[k]]->readImage(k, DIGDataFormat_ASCII);
+            }
+            // j is index for user-selected (keyed in) rows or columns
+            for (j = 0; j < 4; j++) {
+                // l[j] is the user-selected (keyed in) row or column "at position j"
+                if (l[j] >= 0 && l[j] < Sizex) { // plot only if within range.
+                    line_real_set_t myLRS(minx, maxx, miny, maxy); // create a brand new LRS for brand new plot
+                    myLRS.clear(); // and be sure of it!
+                    QString whichRowOrCol;
+                    whichRowOrCol.setNum(l[j]);
+                    QString plotName = title.simplifyWhiteSpace();
+//                    plotName += " ::multiple images':: ";
+                    plotName += " :: ";
+                    plotName += (rowOrColumn + whichRowOrCol);
+                    topleftx += 30;
+                    toplefty += 30;
+                    QPainter picasso;
+                    QPixmap* pmp = new QPixmap(sd_line_t::WIDTH, sd_line_t::HEIGHT);
+                    pmp->fill(Qt::white);
+                    picasso.begin(pmp);
+                    picasso.setBackgroundColor(Qt::white);
+                    for (k = 1; k <= siarray[0]; k++) { // k is array index for the image within recfil
+                        QString LRName = imagetitles[siarray[k]]; // something like "brainscan_ART_iter_5"
+                        line_real_t myLR(LRName);
+                        if (!(imageset[siarray[k]]->isLoaded())) {
+                            imageset[siarray[k]]->readImage(k, DIGDataFormat_ASCII);
+                        }
+                        img = imageset[siarray[k]]->getImage();
+                        int& row = ((linetype) ? (i) : (l[j])); // not assignment, but rather, unification.
+                        int& col = ((linetype) ? (l[j]) : (i)); // (linetype==1) means l[j] is col, else l[j] is row
+                        for (i = 0; i < Sizey; i++) { // recfils are Sizey by Sizey
+                            myLR.add(i, img[row][col]); // x is independent i, y is dependent img[row][col]
+                        }
+                        myLRS.add(myLR); // add my LineReal due to selected row/col in this (k) image to my LRS
+                    } // --for each image k (plot all of them on the same thing.)
+                    plot_t myPlot(myLRS); // plot myLRS due to single selection of row/col (up to 4)
+                    myPlot.setName(plotName);
+                    myPlot.setXAxisName(xaxis);
+                    myPlot.setYAxisName(yaxis);
+                    // jk 1/13/2009 adding grayScale option for graphs
+                    if (nw->isGrayScaleChecked()) { // picasso paints on QPixmap pointed to by pmp
+                        myPlot.plotGray(picasso);
+                    } else {
+                        myPlot.plot(picasso);
+                    }
+
+                    if (toplefty > (maxSizey - 100))
+                        toplefty = 30;
+                    // spawn a display for each row/col plot, each plot potentially due to many images
+                    displaylineswindow* nieuwDLWp = new displaylineswindow(desk, plotName, pmp, false, 0, topleftx, toplefty);
+                    nieuwDLWp->show();
+                } // --if of chosen row or column being within the appropriate range (i think)
+            } // --for each chosen row or column (max. 4 of them)
+        } // --"if" of Accepted QDialog
+    } // --"else" of "no recfil is open"
+} // --SnarkDisplay::callLines()
+
+/** Starts a range window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkDisplay::callRange() {
+    bool imageopened = false;
+    int i;
+    if (!openrecfil)
+        QMessageBox::information(desk, "SnarkDisplay", "Error!\n"
+            "No recfil file is open.");
+    else {
+        for (i = 0; i < numimages; i++) {
+            if (displaywindowactive[i]) {
+                imageopened = true;
+            }
+        }
+        if (imageopened) {
+            //      rangewindow* nw=new rangewindow(this,"Set Range",false,Qt::WType_TopLevel);
+            if (myRangeWinP) {
+                myRangeWinP->closeWindow();
+                myRangeWinP = 0;
+            }
+            myRangeWinP = new rangewindow(this, "Set Range", false, Qt::WType_TopLevel);
+            myRangeWinP->show();
+        } else
+            QMessageBox::information(desk, "SnarkDisplay", "Error!\n"
+                "No image is open.");
+    }
+} // --SnarkDisplay::callRange()
+
+/** Calls file dialog and opens PROJECTION file
+    @param void
+    @author Bruno M. Carvalho
+    @version 1.0 */
+void SnarkDisplay::openPrjfilFile() {
+    QString projfilfilename, s;
+    QPoint topleft;
+    //  const DIGDimensions* Dimensions;
+    char name[256];
+
+    QFileDialog fd(QString::null, "Projfil files (*prjfil*)\n All files (*)", this, "Open Prjfil File", TRUE);
+    fd.setCaption("Open Projfil File");
+    fd.setSelection(QDir::currentDirPath());
+    if (fd.exec() == QDialog::Accepted) {
+        projfilfilename = fd.selectedFile();
+        sprintf(name, "%s", projfilfilename.latin1());
+        if (openprojfil) //*(JD 1/28/04)
+            digprojfil.Close(); //(JD 1/28/04)
+        if (digprojfil.Open(name) != 0) {
+            s.sprintf("Error!\nUnable to open file:\n%s\nMaybe it is not a snark14 prjfil file!", projfilfilename.latin1());
+            QMessageBox::information(this, "SnarkDisplay", s);
+        } else {
+            //      digprojfil.GetDataFormat(&projformat);
+            projname = (const char *) malloc(sizeof (const char) *81);
+            digprojfil.GetTitle(&projname);
+            //      digprojfil.GetNoOfArraySets(&prjnum);
+            digprojfil.GetNoOfProjs(&prjnum);
+            //      digprojfil.GetDimensions(&Dimensions);
+            //      usrays = Dimensions->x;
+            digprojfil.GetDimensions(&usrays);
+            projfil = new Snarkproj();
+            // open prjfil in displaywindow
+            topleft = this->pos();
+            projwin = new displayprojection(desk, projname, false, 0, topleft.x(), topleft.y());
+            projwin->show();
+            projwin->resetscroll();
+        }
+        digprojfil.Open(name);
+        openprojfil = true; //*(JD 1/28/04)
+    }
+}
+
+/** Calls file dialog and opens eval file, throwing all information into global myEES
+@param void
+@author Bruno M. Carvalho for version 1.0, Deniz Sarioz after
+@version 2.0 */
+void SnarkDisplay::openEvalFile() {
+    // myEES stands for "my eval_execution_set" defined in variables.h
+    // eval_execution_set is defined in eval_helper.hpp and fleshed out in eval_helper.cpp
+    myEES.clear(); // just in case
+    // opening new eval file: get rid of ALL previous eval-related information
+    QString evalfilename, s;
+    FILE *fp;
+    const unsigned maxlinelength = 512;
+    const unsigned maxnamelength = 512;
+    char line[maxlinelength]; // buffer for reading in lines
+    char name[maxnamelength]; // buffer for reading in name
+    memset(&(line[0]), 0, maxlinelength); // init line with null terminator
+    memset(&(name[0]), 0, maxnamelength); // init name with null terminator
+    int tmpint; // complete dummy
+    QFileDialog fd(QString::null, "Eval files (*eval*)\n All files (*)", this, "Open Eval File", TRUE);
+    fd.setCaption("Open Eval File");
+    fd.setSelection(QDir::currentDirPath());
+    if (fd.exec() == QDialog::Accepted) {
+        evalfilename = fd.selectedFile();
+        sprintf(name, "%s", evalfilename.latin1());
+        if (std::verbose >= 2) printf("\nname of eval file is:\n%s\n", name);
+        if ((fp = fopen(name, "r")) == NULL) {
+            s.sprintf("Error!\nUnable to open file:\n%s\n", evalfilename.latin1());
+            QMessageBox::information(this, "SnarkDisplay", s);
+        } else {
+
+            enum status_t {
+                JUSTBEGAN, NEWEVALUATE, GLOBAL, POINT
+            };
+            status_t status = JUSTBEGAN;
+
+            /* if end in JUSTBEGAN or NEWEVALUATE, raise red flag
+             *  graph of possible status transitions
+             *                             ____________
+             *                            /            \
+             *                            |            |
+             *                            V            |
+             * JUSTBEGAN ---------> NEWEVALUATE ---> POINT
+             *                      |  ^               ^
+             *                      |  |               |
+             *                      V  |               |
+             *                      GLOBAL-------------/
+             */
+            enum global_status_t {
+                GLOBEGAN, TOREADPHAN, TOREADGLOB
+            };
+            // this is assigned based on the string parsed
+            global_status_t globalstatus = GLOBEGAN;
+            bool ADD_POINTMEAS = false;
+            typedef char* inputline_t;
+            inputline_t myline;
+            measline_t mymeasline;
+            execname_t myexecname;
+            bool ignoredonce = false;
+            myline = (&(line[0])); // myline permanently points to line[0]
+            mymeasline = (&(line[0]));
+            myexecname = (&(line[0]));
+            while (fgets(line, maxlinelength, fp)) {
+                ////   if(isspace(mymeasline)) continue;
+                char *p;
+                p = myline;
+                while ((' ' == *p) || ('\t' == *p)) p++;
+                if (('\n' == *p) || ('\r' == *p) || ('\0' == *p)) continue;
+                switch (status) {
+                    case JUSTBEGAN:
+                        // first line does not have to start with evaluation name: allow comments
+                        if (strstr(myline, "evaluation name:")) {
+                            status = NEWEVALUATE;
+                            try {
+                                myEES.new_exec(myexecname); // READ IN evaluation name!
+                            } catch (std::exception &e) {
+                                std::cerr << "This badness happened:" << std::endl << e.what() << std::endl;
+                            }
+                        } else {
+                            if (!ignoredonce) {
+                                std::cout << "stuff in eval file before first 'evaluation name:' ignored!!!" << std::endl;
+                                ignoredonce = true;
+                            }
+                        }
+                        break; // the switch, not the while
+                    case NEWEVALUATE:
+                        if (strstr(myline, "global resolution measures")) {
+                            status = GLOBAL;
+                        } else {
+                            if (strstr(myline, "point by point resolution measures")) {
+                                status = POINT;
+                            }
+                        }
+                        break; // out of switch
+                    case GLOBAL:
+                        if (strstr(myline, "evaluation name:")) { // can happen at any time
+                            globalstatus = GLOBEGAN;
+                            status = NEWEVALUATE;
+                            try {
+                                myEES.new_exec(myexecname); // READ IN evaluation name!
+                            } catch (std::exception &e) {
+                                std::cerr << "This badness happened:" << std::endl << e.what() << std::endl;
+                            }
+                        } else {
+                            switch (globalstatus) {
+                                case GLOBEGAN:
+                                    if (strstr(myline, "hantom name")) {
+                                        // read the name of phantom! (necessary?)
+                                    } else if (strstr(myline, "etrics for test phantom")) {
+                                        globalstatus = TOREADPHAN;
+                                    }
+                                    break; // out of inner switch
+                                case TOREADPHAN: // read exactly one line of phantom data
+                                    if (sscanf(myline, "%d", &tmpint) == 1) { // if line starts with an integer
+                                        try {
+                                            myEES.set_phantomeas(mymeasline);
+                                        } catch (std::exception &e) {
+                                            std::cerr << "This badness happened:" << std::endl << e.what() << std::endl;
+                                        }
+                                        globalstatus = TOREADGLOB; // next, should try to read an execution
+                                    }
+                                    break; // out of inner switch
+                                case TOREADGLOB:
+                                    if (sscanf(myline, "%d", &tmpint) == 1) {
+                                        try {
+                                            myEES.add_to_globmeaset(mymeasline);
+                                        } catch (std::exception &e) {
+                                            std::cerr << "This badness happened:" << std::endl << e.what() << std::endl;
+                                        }
+                                    } else if (strstr(myline, "execution name")) {
+                                        // parse in execution name (necessary?)
+                                        try {
+                                            myEES.new_globmeaset(myexecname);
+                                        } catch (std::exception &e) {
+                                            std::cerr << "This badness happened:" << std::endl << e.what() << std::endl;
+                                        }
+                                    } else if (strstr(myline, "etrics for algorithm")) {
+                                        // parse in ALGO name! (maybe?)
+                                    } else if (strstr(myline, "point by point resolution measures")) {
+                                        globalstatus = GLOBEGAN;
+                                        status = POINT;
+                                    }
+                                    break; // out of inner switch (optional here, defensive)
+                            }
+                        } // else
+                        break; // out of switch
+                    case POINT:
+                        if (strstr(myline, "evaluation name")) {
+                            // parse evaluation name!
+                            ADD_POINTMEAS = false;
+                            status = NEWEVALUATE;
+                            try {
+                                myEES.new_exec(myexecname); // READ IN evaluation name!
+                            } catch (std::exception &e) {
+                                std::cerr << "This badness happened:" << std::endl << e.what() << std::endl;
+                            }
+                        } else if (strstr(myline, "execution name")) {
+                            ADD_POINTMEAS = false;
+                            try {
+                                myEES.new_PBPmeaset(myexecname); // name gets assigned as we go along, but still parse in name
+                            } catch (std::exception &e) {
+                                std::cerr << "This badness happened:" << std::endl << e.what() << std::endl;
+                            }
+                        } else if (strstr(myline, "algn")) { // need a line with this
+                            ADD_POINTMEAS = true;
+                        } else if (ADD_POINTMEAS) {
+                            // NOW we can go ahead with this, since whitespace-lines are skipped
+                            try {
+                                myEES.add_to_PBPmeaset(mymeasline);
+                            } catch (std::exception &e) {
+                                std::cerr << "This badness happened:" << std::endl << e.what() << std::endl;
+                            }
+                        }
+                        break; // out of switch (optional here, defensive)
+                } // status switch
+                memset(myline, 0, maxlinelength); // reinit line to null terminator
+            } // while can keep reading lines
+            if ((status == JUSTBEGAN) || (status == NEWEVALUATE)) {
+                //maybe        throw std::runtime_error("malformed eval file: no measurements");
+                std::cerr << "malformed eval file: no measurements... please open a valid eval file." << std::endl;
+                myEES.clear();
+                return;
+            }
+            try {
+                myEES.complete();
+            } catch (std::exception &e) {
+                std::cerr << "This badness happened:" << std::endl << e.what() << std::endl;
+                myEES.clear();
+                return;
+            }
+            /// Call Eval Window
+            //   new version: first, user should select executions!
+            QPoint topleft;
+            topleft = this->pos();
+            selectEvalExecutionsWindow* selectEvalExecsWin;
+            selectEvalExecsWin = new selectEvalExecutionsWindow(desk, "Open Evaluate Executions", false, 0, topleft.x() + 30, topleft.y() + 30);
+            selectEvalExecsWin->show();
+        } // --if was able to open the file ("else" of failure, failure already handled)
+    } // --if QDialog accepted
+    // else?
+} // --SnarkDisplay::openEvalFile()
+
+/** Updates low and high thresholds for image windows having the button Global Thresholds checked
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkDisplay::updateGlobalThreshs() {
+    // the new way: do it for all of them!
+    for (int i = 0; i < numimages; i++)
+        if (imageset[i]->isLoaded() && displaywindowset[i]) {
+            displaywindowset[i]->setGlobalthreshs();
+        }
+}
+
+/** tells all windows to be activated by the global thresholds
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkDisplay::signalAllGlobals(bool on) {
+    allglobal = on;
+    if (myRangeWinP) {
+        myRangeWinP->signalAllGlobals(allglobal);
+    }
+    for (int i = 0; i < numimages; i++) {
+        if (alldifference && (i == 0)) continue;
+        if (imageset[i]->isLoaded() && displaywindowset[i]) {
+            displaywindowset[i]->setGlobal(on);
+        }
+    }
+    updateGlobalThreshs(); // refresh immediately
+}
+
+void SnarkDisplay::signalAllDifference(bool on) {
+    alldifference = on;
+    if (myRangeWinP) {
+        myRangeWinP->signalAllDifference(alldifference);
+    }
+    if (allglobal) {
+        if (imageset[0]->isLoaded() && displaywindowset[0]) {
+            if (alldifference) {
+                displaywindowset[0]->setGlobal(false);
+            } else {
+                displaywindowset[0]->setGlobal(true);
+            }
+        }
+    }
+    for (int i = 1; i < numimages; i++) {
+        if (imageset[i]->isLoaded() && displaywindowset[i]) {
+            displaywindowset[i]->setDifference(on);
+        }
+    }
+}
+
+void SnarkDisplay::signalAllIntensity(bool on) {
+    for (int i = 0; i < numimages; i++) {
+        if (displaywindowset[i]) {
+            displaywindowset[i]->setIntensity(on);
+        }
+    }
+}
+
+/** Calls about window
+@param void
+@author Bruno M. Carvalho & Deniz Sarioz
+@version 2.0 */
+void SnarkDisplay::about() {
+    QMessageBox::information(this, "snark14Display",
+            "snark14Display was developed by\n"
+            "Bruno M. Carvalho and Deniz Sarioz\n"
+            "2003--2008\n"
+            "copyright (QPL) by CUNY-GC-CS-DIG\n"
+            "http://www.dig.cs.gc.cuny.edu");
+}
+
+/** Allocates space for a vector of Snarkimages
+@param ni number of images
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkDisplay::allocSnarkimages(int ni) {
+    int i;
+    imageset = (Snarkimage **) malloc((unsigned) (ni) * sizeof (Snarkimage*));
+    if (!imageset) {
+        QMessageBox::information(this, "SnarkDisplay", "Error!\n"
+                "Allocation failure in allocSnarkimages()\n");
+    } else {
+        for (i = 0; i < ni; i++) {
+            imageset[i] = new Snarkimage();
+            if (!imageset[i]) {
+                QMessageBox::information(this, "SnarkDisplay", "Error!\n"
+                        "Allocation failure in allocSnarkimages()\n");
+            }
+        }
+    }
+}
+
+/** Allocates space for a vector of displaywindow POINTERS
+@param ni number of images
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkDisplay::allocDisplaywindows(int ni) {
+    allglobal = false;
+    alldifference = false;
+    globalmax = globaldiffmax = -100000;
+    globalmin = globaldiffmin = 100000;
+    // forget everything we did before!
+    if (ni == 0) return;
+    //  displaywindowset = (displaywindow **) malloc((unsigned) (ni)*sizeof(displaywindow*));
+    displaywindowset = new displaywindow* [ni];
+    if (!displaywindowset) {
+        QMessageBox::information(this, "SnarkDisplay", "Error!\n"
+                "Allocation failure in allocDisplaywindows()\n");
+    }
+    displaywindowactive = (bool *) malloc((unsigned) (ni) * sizeof (bool));
+    for (int i = 0; i < ni; i++) {
+        displaywindowactive[i] = false;
+        displaywindowset[i] = 0; // NULL
+    }
+}
+
+/** Frees space of a vector of Snarkimages
+@param ni number of images
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkDisplay::freeSnarkimages(int ni) {
+    int i;
+
+    if (imageset) {
+        for (i = 0; i < ni; i++) {
+            if (imageset[i]) {
+                imageset[i]->~Snarkimage();
+                imageset[i] = 0;
+            }
+        }
+        free(imageset);
+    }
+} // --SnarkDisplay::freeSnarkimages()
+
+/** Frees space of a vector of Displaywindows
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkDisplay::freeDisplaywindows(int ni) {
+    int i;
+    if (displaywindowset) {
+        for (i = 0; i < ni; i++) {
+            if (displaywindowset[i]) {
+                delete displaywindowset[i];
+            }
+        }
+        delete [] displaywindowset;
+    }
+} // --SnarkDisplay::freeDisplaywindows()
+
+/** Starts the application
+@param void
+@author Bruno M. Carvalho, parametrized by deniz
+@version 1.2 */
+int main(int argc, char* argv[]) {
+    QApplication snarkapp(argc, argv);
+
+    if (argc == 3) {
+        int wid = atoi(argv[1]);
+        int hei = atoi(argv[2]);
+        int minwid = 3 * sd_line_t::XWINPAD;
+        int minhei = 3 * sd_line_t::YWINPAD;
+        if ((wid >= minwid) && (hei >= minhei)) {
+            std::cout << "For plots, accepted window WIDTH=" << wid << ", HEIGHT=" << hei << std::endl;
+            sd_line_t::WIDTH = wid;
+            sd_line_t::HEIGHT = hei;
+        } else {
+            std::cout << "Minimum width: " << minwid << ", minimum height: " << minhei << std::endl;
+            std::cout << "Aborting " << argv[0] << std::endl;
+            return 1;
+        }
+    }
+    //  SnarkDisplay* mw=new SnarkDisplay();
+    SnarkDisplay mw;
+    //  snarkapp.setMainWidget(mw);
+    snarkapp.setMainWidget(&mw);
+    //  mw->show();
+    mw.show();
+
+    return snarkapp.exec();
+} // --main()
diff --git a/tools/Display/SnarkDisplay.hpp b/tools/Display/SnarkDisplay.hpp
new file mode 100755 (executable)
index 0000000..92e1ee7
--- /dev/null
@@ -0,0 +1,65 @@
+/** @file SnarkDisplay.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef SNARKDISPLAY_H
+#define SNARKDISPLAY_H
+
+// #include <qvariant.h>
+#include <qwidget.h>
+
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QFrame;
+class QPushButton;
+class rangewindow;
+class openimageswindow;
+class displaywindow;
+class displayprojection;
+
+class SnarkDisplay : public QWidget
+{ 
+    Q_OBJECT
+
+public:
+    SnarkDisplay( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+    ~SnarkDisplay();
+    void allocSnarkimages(int ni);
+    void freeSnarkimages(int ni);
+    void allocDisplaywindows(int ni);
+    void freeDisplaywindows(int ni);
+    QFrame* Line1;
+    QPushButton* linesbutton;
+    QPushButton* imagesbutton;
+    QPushButton* recfilbutton;
+    QPushButton* rangebutton;
+    QPushButton* projfilbutton;
+    QPushButton* evalbutton;
+    QPushButton* quitbutton;
+    QPushButton* helpbutton;
+private:
+    rangewindow* myRangeWinP;
+    openimageswindow* myOpenImagesWinP;
+    displaywindow** displaywindowset;
+    displayprojection* projwin;
+
+public slots:
+    void signalAllGlobals(bool on);
+    void signalAllDifference(bool on);
+    void signalAllIntensity(bool on);
+    void updateGlobalThreshs();
+private slots: 
+    void callLines();
+    void callOpenImages();
+    void openRecfilFile(); 
+    void callRange();
+    void openPrjfilFile(); 
+    void openEvalFile();
+    void about();
+};
+
+#endif // SNARKDISPLAY_H
diff --git a/tools/Display/chooseRanges.cpp b/tools/Display/chooseRanges.cpp
new file mode 100755 (executable)
index 0000000..3f235b6
--- /dev/null
@@ -0,0 +1,195 @@
+/** @file chooseRanges.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/** chooseRanges.cpp
+    @author deniz 
+
+*/
+#include "chooseRanges.hpp"
+#include "displaylines.hpp"
+#include "SnarkDisplay.hpp"
+
+#include "plot_t.hpp"
+#include "line_real_set_t.hpp"
+#include "line_real_t.hpp"
+
+#define EPSILON 0.00000001
+
+/** 
+ *  Constructs a chooseRangesDialog which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'fl', initial topleft position to (x,y)
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+chooseRangesDialog::chooseRangesDialog( QWidget* parent, const char* name, bool modal, WFlags fl , int x, int y,
+                           unsigned ee_index, bool forPBP, unsigned PBPYVar, globalYVar_t GlobalYVar,                              int minX, int maxX, double minY, double maxY)  : QDialog( parent, name, modal, fl )
+{
+  this->ee_index = ee_index;
+  this->forPBP   = forPBP;
+  this->PBPYVar  = PBPYVar;
+  this->GlobalYVar = GlobalYVar;
+
+  QPoint topleft;
+  if(forPBP) {
+    YVarName = tr("e(%1)").arg(PBPYVar);
+  } else {
+    switch(GlobalYVar) {
+    case AVERAGE:   YVarName = "Average";  break;
+    case DISTANCE:  YVarName = "Distance"; break;
+    case RELERR:    YVarName = "Relative Error";   break;
+    case VARIANCE:  YVarName = "Variance"; break;
+    case STDDEV:    YVarName = "Standard Deviation";   break;
+    case RESIDUAL:  YVarName = "Residual"; break;
+    case KULLBACK:  YVarName = "Kullback-Leibler Distance"; break;
+    default: std::cerr << "Invalid GlobalYVar in chooseRangesDialog ctor!" << std::endl;
+    }
+  }
+
+  if ( !name )
+    setName( "chooseRangesDialogWindow" );
+
+  fullname = tr("%1 :: %2").arg(name).arg(YVarName); // weird QT syntax, don't sweat it
+
+  setCaption( fullname );
+  topleft.setX(x);
+  topleft.setY(y);
+  this->move(topleft);
+  
+  QBoxLayout *topLayout = new QVBoxLayout( this );
+  
+  minx = new QLineEdit( this, "minx" );
+  maxx = new QLineEdit( this, "maxx" );
+  miny = new QLineEdit( this, "miny" );
+  maxy = new QLineEdit( this, "maxy" );
+  
+  QBoxLayout* x_extrema_layout = new QHBoxLayout( topLayout );
+  minxlabel = new QLabel( this, "minxlabel" );
+  minxlabel->setText( tr( "Min Iter:" ) );
+  maxxlabel = new QLabel( this, "maxxlabel" );
+  maxxlabel->setText( tr( "Max Iter:" ) );
+  x_extrema_layout->addWidget(minxlabel);
+  x_extrema_layout->addWidget(minx);
+  x_extrema_layout->addWidget(maxxlabel);
+  x_extrema_layout->addWidget(maxx);
+  
+  QBoxLayout* y_extrema_layout = new QHBoxLayout( topLayout );
+  minylabel = new QLabel( this, "minxlabel" );
+  minylabel->setText( tr( "Min Y:" ) );
+  maxylabel = new QLabel( this, "maxxlabel" );
+  maxylabel->setText( tr( "Max Y:" ) );
+  y_extrema_layout->addWidget(minylabel);
+  y_extrema_layout->addWidget(miny);
+  y_extrema_layout->addWidget(maxylabel);
+  y_extrema_layout->addWidget(maxy);    
+
+  minx->setText( tr("%1") . arg( minX ) );
+  maxx->setText( tr("%1") . arg( maxX ) );
+  miny->setText( tr("%1") . arg( minY ) );
+  maxy->setText( tr("%1") . arg( maxY ) );
+
+  QString plottext(tr("plot %1").arg(YVarName));
+  plotbutton = new QPushButton( this, "plotbutton" );
+  plotbutton->setText( plottext );
+  plotbutton->setEnabled(true);
+  QObject::connect(plotbutton,SIGNAL(clicked()),this,SLOT(proceed()));
+  topLayout->addWidget( plotbutton );
+  
+  closebutton = new QPushButton( this, "closebutton" );
+  closebutton->setText( tr( "Close Window" ) );
+  QObject::connect(closebutton,SIGNAL(clicked()),this,SLOT(closeWindow()));
+  
+  topLayout->addWidget( closebutton );
+  topLayout->activate();
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+chooseRangesDialog::~chooseRangesDialog()
+{
+  // no need to delete child widgets, Qt does it all for us
+}
+
+void chooseRangesDialog::closeWindow()
+{
+  //  accept();
+  reject();
+}
+
+void chooseRangesDialog::closeEvent(QCloseEvent * e)
+{
+  e->accept();
+}
+
+/** Called when plotbutton "Plot" is clicked:
+    based on the sameExtremaForAllCheckBox state,
+    either spawns plots or new dialog boxes.
+    Does some checks before sending params to plots (no garbage out).
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void chooseRangesDialog::proceed()
+{
+  if(std::verbose>=2) {
+    std::cout << "in chooseRangesDialog::proceed()" << std::endl;
+  }
+  bool complain = false;
+  // attempt to call plot windows after error checking
+  bool ok = true;
+  int minXVal = minx->text().toInt(&ok);
+  if((!ok) || (minXVal < 0) ) complain=true; // allow minXVal to be 0
+  int maxXVal = maxx->text().toInt(&ok);
+  if(!ok) complain=true;
+  if(maxXVal <= 0) complain=true;
+  if(minXVal >= maxXVal) complain=true;
+  double minYVal = miny->text().toDouble(&ok);
+  if(!ok) complain=true;
+  double maxYVal = maxy->text().toDouble(&ok);
+  if(!ok) complain=true;
+  // allow negative values for minYVal, even though there are no negative ones in data
+  if(maxYVal <= 0) complain=true;
+  if(minYVal >= maxYVal) complain=true;
+  if(complain) {
+    std::cerr << "Invalid combination of X and Y parameters." << std::endl;
+  } else { // passed error checks
+    if(std::verbose>=2) {
+      std::cout << "Plotting with iter: [" << minXVal 
+               << "," << maxXVal <<      "]; y: [" << minYVal << "," 
+               << maxYVal << "]" << std::endl;
+    }
+    ///   spawnPlots(true, minXVal, maxXVal, minYVal, maxYVal);
+    //    std::cout << "PLOTTING!" << std::endl;
+    line_real_set_t LRS(minXVal, maxXVal, minYVal, maxYVal);
+    ///    int PMWidth  = 550; // pixmap width, etc
+    ///    sd_line_t::WIDTH  = 550;
+    int PMWidth = sd_line_t::WIDTH;
+    ///    int PMHeight = 450;
+    ///    sd_line_t::HEIGHT = 450;
+    int PMHeight = sd_line_t::HEIGHT;
+    QPixmap* myPixmapP = new QPixmap(PMWidth,PMHeight);
+    myPixmapP->fill( Qt::white );
+    QPainter* myPainterP = new QPainter;
+    myPainterP->begin(myPixmapP);
+    // do the thing with the plot
+    if(forPBP) {
+      myEES.addPBPVarLines(LRS, PBPYVar, ee_index);
+    } else {
+      myEES.addGlobVarLines(LRS, GlobalYVar, ee_index);
+    }
+    plot_t* myPlotterP = new plot_t(LRS);
+    ///    plot_t myPlotter(LRS);       // now combine LRS with myPainterP
+    myPlotterP->setName(fullname);
+    QString xAxisLabel = "Iteration"; // as in all evals
+    myPlotterP->setXAxisName(xAxisLabel);
+    myPlotterP->setYAxisName(YVarName); // YVarName is an instance variable
+    myPlotterP->plot(*myPainterP);
+    displaylineswindow *dwp = new displaylineswindow( this , fullname, myPixmapP, false, 0, 
+                                                     -20+this->pos().x(), 20+this->pos().y() );
+    dwp->show(); // and display!
+  }
+} // --chooseRangesDialog::proceed()
diff --git a/tools/Display/chooseRanges.hpp b/tools/Display/chooseRanges.hpp
new file mode 100755 (executable)
index 0000000..c7439aa
--- /dev/null
@@ -0,0 +1,96 @@
+/** @file chooseRanges.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef CHOOSERANGES_H
+#define CHOOSERANGES_H
+
+#include "variables.hpp"
+#include "displaywidget.hpp"
+
+#include <qdialog.h>
+
+#include <qbuttongroup.h>
+#include <qcolor.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qfiledialog.h>
+#include <qfont.h>
+#include <qframe.h>
+#include <qimage.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qlineedit.h>
+#include <qlistbox.h>
+#include <qmessagebox.h>
+#include <qpainter.h>
+#include <qpen.h>
+#include <qpixmap.h>
+#include <qpoint.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qtooltip.h>
+#include <qvariant.h>
+#include <qwhatsthis.h>
+#include <qwidget.h>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QButtonGroup;
+class QCheckBox;
+class QComboBox;
+class QFrame;
+class QGridLayout; 
+class QLabel;
+class QLineEdit;
+class QListBox;
+class QListBoxItem;
+class QPushButton;
+class QRadioButton;
+class QPixmap;
+
+class chooseRangesDialog : public QDialog
+{
+  Q_OBJECT
+
+public:
+  chooseRangesDialog( QWidget* parent=0, const char* name=0, bool modal=true, WFlags fl=0, int x=0 , int y=0, 
+                     unsigned ee_index=0, bool forPBP=0, unsigned PBPYVar=0, globalYVar_t GlobalYVar=VARIANCE,
+                     int minX=0, int maxX=0, double minY= -1.0, double maxY= -1.0);
+  ~chooseRangesDialog();
+  int id;
+  bool status;
+  //  double maxval,minval,diffmaxval,diffminval;
+  QString YVarName;
+  QString fullname;
+  displayWidget* displaywidget;
+  QBoxLayout* topLayout;
+  //  QBoxLayout* yaxisbuttonLayout;
+  QBoxLayout* x_extrema_layout;
+  QBoxLayout* y_extrema_layout;
+  //  QButtonGroup* yaxisbuttongroup;
+  QLabel* minxlabel;
+  QLabel* maxxlabel;
+  QLabel* minylabel;
+  QLabel* maxylabel;
+  QLineEdit* minx;
+  QLineEdit* maxx;
+  QLineEdit* miny;
+  QLineEdit* maxy;
+  QPushButton* plotbutton;
+  QPushButton* closebutton;
+private:
+  unsigned ee_index;
+  bool forPBP; // as opposed to forGlobal
+  unsigned PBPYVar;
+  globalYVar_t GlobalYVar;
+public slots:
+  void proceed();
+  void closeWindow();
+protected:
+  virtual void closeEvent(QCloseEvent *e);
+};
+#endif // CHOOSERANGES_H
diff --git a/tools/Display/chooseYVar.cpp b/tools/Display/chooseYVar.cpp
new file mode 100755 (executable)
index 0000000..2aa3032
--- /dev/null
@@ -0,0 +1,377 @@
+/** @file chooseYVar.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+ */
+
+#include "chooseYVar.hpp"
+#include "SnarkDisplay.hpp"
+#include "displaylines.hpp"
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+#define EPSILON 0.00000001
+
+/** 
+ *  Constructs a chooseYVarWindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'fl', initial topleft position to (x,y)
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+chooseYVarWindow::chooseYVarWindow(QWidget* parent, const char* name, bool modal, WFlags fl, int x, int y)
+: QDialog(parent, name, modal, fl) {
+    QPoint topleft;
+        static const int WINWIDTH = 300;
+        static const int WINHEIGHT = 280;
+    if (!name)
+        setName("selectEvalExecutionsWindow");
+        resize( WINWIDTH, WINHEIGHT );
+    // setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+        setMinimumSize( QSize( WINWIDTH, WINHEIGHT ) );
+//        setMaximumSize( QSize( WINWIDTH, WINHEIGHT ) );
+    setCaption(tr("Select Y Var to plot from selected Evaluate Executions"));
+    topleft.setX(x);
+    topleft.setY(y);
+    this->move(topleft);
+
+    QBoxLayout *topLayout = new QVBoxLayout(this);
+//    topLayout.setDirection(QBoxLayout::TopToBottom);
+    QBoxLayout *yaxisbuttonLayout = new QVBoxLayout(topLayout);
+    QBoxLayout *colorbuttonLayout = new QVBoxLayout(topLayout);
+
+    // ain't broke: don't fix it.
+    yaxisbuttongroup = new QButtonGroup(this, "yaxisbuttongroup");
+    yaxisbuttongroup->setTitle(tr("Y Axis"));
+    yaxisbuttongroup->setAlignment(int( QButtonGroup::AlignHCenter));
+    globalbutton = new QRadioButton(yaxisbuttongroup, "globalbutton");
+    globalbutton->setGeometry(QRect(10, 20, 140, 30));
+    globalbutton->setText(tr("Global"));
+    globalbutton->setChecked(false);
+    if (!myEES.selectionHasGlobal())
+        globalbutton->setEnabled(false); // can't click it
+    QObject::connect(globalbutton, SIGNAL(clicked()), this, SLOT(activateGlobalErrors()));
+
+    globalerrors = new QComboBox(yaxisbuttongroup, "globalerrors");
+    globalerrors->setGeometry(QRect(150, 20, 140, 30));
+    globalerrors->setEnabled(false);
+    // it seems a bit idiosyncratic to pass int as a parameter, but it seems the only way
+    QObject::connect(globalerrors, SIGNAL(activated(int)), this, SLOT(maybeGetCalculatedExtrema()));
+
+    pointbutton = new QRadioButton(yaxisbuttongroup, "pointbutton");
+    pointbutton->setGeometry(QRect(10, 50, 140, 30));
+    pointbutton->setText(tr("Point-by-point"));
+    pointbutton->setChecked(false);
+    if (!myEES.selectionHasPBP()) {
+        pointbutton->setEnabled(false); // can't click it
+    }
+    QObject::connect(pointbutton, SIGNAL(clicked()), this, SLOT(activatePointErrors()));
+    pointerrors = new QComboBox(yaxisbuttongroup, "pointerrors");
+    pointerrors->setGeometry(QRect(150, 55, 140, 30));
+    pointerrors->setEnabled(false);
+    QObject::connect(pointerrors, SIGNAL(activated(int)), this, SLOT(maybeGetCalculatedExtrema()));
+
+    yaxisbuttonLayout->addWidget(yaxisbuttongroup);
+
+
+    // jk 1/13/2009 adding grayScale option for graphs
+    // jklukowska 6/7/2009 modified to be radio button with option of either
+    // color or grayscale
+    colorbuttongroup = new QButtonGroup(this, "colorbuttongroup");
+    colorbuttongroup->setTitle(tr("Draw graphs in "));
+    colorbuttongroup->setAlignment(int( QButtonGroup::AlignHCenter));
+    grayScaleButton = new QRadioButton(colorbuttongroup, "grayScaleButton");
+    grayScaleButton->setGeometry(QRect(10, 15, 130, 20));
+    grayScaleButton->setText(tr(" grayscale"));
+    grayScaleButton->setEnabled(true);
+    grayScaleButton->setChecked(false);
+    colorButton = new QRadioButton(colorbuttongroup, "colorButton");
+    colorButton->setGeometry(QRect(160, 15, 130, 20));
+    colorButton->setText(tr(" color"));
+    colorButton->setEnabled(true);
+    colorButton->setChecked(true);
+    colorbuttonLayout->addWidget(colorbuttongroup);
+
+    QString* sameLabel = new QString("Use same extrema for all evaluate executions");
+    sameExtremaForAllCheckBox = new QCheckBox(*sameLabel, this, "sameExtrema");
+    sameExtremaForAllCheckBox->setTristate(false); // don't want a tristate button
+    sameExtremaForAllCheckBox->setEnabled(true);
+    sameExtremaForAllCheckBox->setChecked(true);
+    topLayout->addWidget(sameExtremaForAllCheckBox);
+    QObject::connect(sameExtremaForAllCheckBox, SIGNAL(clicked()), this, SLOT(sameExtremaClicked()));
+
+    minx = new QLineEdit(this, "minx");
+    maxx = new QLineEdit(this, "maxx");
+    miny = new QLineEdit(this, "miny");
+    maxy = new QLineEdit(this, "maxy");
+
+    deactivateExtremaFields();
+
+    QBoxLayout* x_extrema_layout = new QHBoxLayout(topLayout);
+    minxlabel = new QLabel(this, "minxlabel");
+    minxlabel->setText(tr("  Min Iter:"));
+    maxxlabel = new QLabel(this, "maxxlabel");
+    maxxlabel->setText(tr("  Max Iter:"));
+    x_extrema_layout->addWidget(minxlabel);
+    x_extrema_layout->addWidget(minx);
+    x_extrema_layout->addWidget(maxxlabel);
+    x_extrema_layout->addWidget(maxx);
+
+    QBoxLayout* y_extrema_layout = new QHBoxLayout(topLayout);
+    minylabel = new QLabel(this, "minxlabel");
+    minylabel->setText(tr("  Min Y:"));
+    maxylabel = new QLabel(this, "maxxlabel");
+    maxylabel->setText(tr("  Max Y:"));
+    y_extrema_layout->addWidget(minylabel);
+    y_extrema_layout->addWidget(miny);
+    y_extrema_layout->addWidget(maxylabel);
+    y_extrema_layout->addWidget(maxy);
+
+
+    proceedbutton = new QPushButton(this, "proceedbutton");
+    proceedbutton->setText(tr("Proceed"));
+    proceedbutton->setEnabled(false);
+    QObject::connect(proceedbutton, SIGNAL(clicked()), this, SLOT(proceed()));
+    topLayout->addWidget(proceedbutton);
+
+    closebutton = new QPushButton(this, "closebutton");
+    closebutton->setText(tr("Close Window"));
+    QObject::connect(closebutton, SIGNAL(clicked()), this, SLOT(closeWindow()));
+
+    topLayout->addWidget(closebutton);
+    topLayout->activate();
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+chooseYVarWindow::~chooseYVarWindow() {
+    // no need to delete child widgets, Qt does it all for us
+}
+
+void chooseYVarWindow::closeWindow() {
+    //  accept();
+    reject();
+}
+
+void chooseYVarWindow::closeEvent(QCloseEvent * e) {
+    e->accept();
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho , Deniz Sarioz
+@version 1.1 */
+void chooseYVarWindow::activateGlobalErrors() {
+    pointerrors->setEnabled(false);
+    if (myEES.selectionHasGlobal()) {
+        proceedbutton->setEnabled(true);
+        globalerrors->clear();
+        globalerrors->insertItem("Average", -1);
+        globalerrors->insertItem("Distance", -1);
+        globalerrors->insertItem("Relative Error", -1);
+        globalerrors->insertItem("Variance", -1);
+        globalerrors->insertItem("Std. Deviation", -1);
+        if (myEES.selectionHasResidual()) {
+            globalerrors->insertItem("Residual", -1);
+        }
+        if (myEES.selectionHasKullback()) {
+            globalerrors->insertItem("KL Distance", -1);
+        }
+        globalerrors->setEnabled(true);
+        maybeGetCalculatedExtrema();
+    }
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho , Deniz Sarioz
+@version 1.1 */
+void chooseYVarWindow::activatePointErrors() {
+    globalerrors->setEnabled(false);
+    if (myEES.selectionHasPBP()) {
+        proceedbutton->setEnabled(true);
+        pointerrors->clear();
+        for (unsigned idx = 0; idx < myEES.get_num_Es(); idx++) {
+            QString elabel(tr("e(%1)").arg(idx));
+            // amazingly enough, this is parsed correctly.
+            pointerrors->insertItem(elabel, -1);
+        }
+        pointerrors->setEnabled(true);
+        maybeGetCalculatedExtrema();
+    }
+}
+
+void chooseYVarWindow::maybeGetCalculatedExtrema() {
+    if (sameExtremaForAllCheckBox->isChecked())
+        getCalculatedExtrema();
+}
+
+//  int chooseYVarWindow::getYAxis() { return 1; }
+//  int chooseYVarWindow::getMinX() { return 1; }
+//  int chooseYVarWindow::getMaxX() { return 1; }
+//  double chooseYVarWindow::getMinY() { return 1.0; }
+//  double chooseYVarWindow::getMaxY() { return 1.0; }
+
+void chooseYVarWindow::sameExtremaClicked() {
+    if (sameExtremaForAllCheckBox->isChecked()) {
+        //   std::cout << "sameExtrema CheckBox is checked." << std::endl;
+        getCalculatedExtrema();
+    } else {
+        deactivateExtremaFields();
+        //  std::cout << "sameExtrema CheckBox is unchecked." << std::endl;
+    }
+}
+
+void chooseYVarWindow::activateExtremaFields() {
+    minx->setEnabled(true);
+    maxx->setEnabled(true);
+    miny->setEnabled(true);
+    maxy->setEnabled(true);
+}
+
+void chooseYVarWindow::deactivateExtremaFields() {
+    minx->clear();
+    maxx->clear();
+    miny->clear();
+    maxy->clear();
+    minx->setEnabled(false);
+    maxx->setEnabled(false);
+    miny->setEnabled(false);
+    maxy->setEnabled(false);
+}
+
+/** getCalculatedExtrema fetches from myEES the extrema of iteration and y-var
+    over entire evaluate executions selection
+    also reads in selection...
+ */
+void chooseYVarWindow::getCalculatedExtrema() {
+    if (globalerrors->isEnabled()) {
+        /// std::cout << "getting Calculated Extrema for some global Yvar" << std::endl;
+        activateExtremaFields();
+        minx->setText(tr("%1") . arg(myEES.getMinIterViaGlobal()));
+        maxx->setText(tr("%1") . arg(myEES.getMaxIterViaGlobal()));
+        int idx = globalerrors->currentItem();
+        this->globY = static_cast<globalYVar_t> (idx);
+        miny->setText(tr("%1") . arg(myEES.getMinYGlobal(this->globY)));
+        maxy->setText(tr("%1") . arg(myEES.getMaxYGlobal(this->globY)));
+    } else if (pointerrors->isEnabled()) {
+        /// std::cout << "getting Calculated Extrema for some PBP Yvar" << std::endl;
+        activateExtremaFields();
+        minx->setText(tr("%1") . arg(myEES.getMinIterViaPBP()));
+        maxx->setText(tr("%1") . arg(myEES.getMaxIterViaPBP()));
+        int idx = pointerrors->currentItem();
+        // a minor hack
+        this->PBPY = static_cast<unsigned> (idx);
+        miny->setText(tr("%1") . arg(myEES.getMinYPBP(this->PBPY)));
+        maxy->setText(tr("%1") . arg(myEES.getMaxYPBP(this->PBPY)));
+    } else {
+        //  std::cout << "need to check either global or PBP" << std::endl;
+    }
+}
+
+/** Called when proceedbutton "Proceed" is clicked:
+    based on the sameExtremaForAllCheckBox state,
+    either spawns plots or new dialog boxes.
+    Does some checks before sending params to plots (no garbage out).
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void chooseYVarWindow::proceed() {
+    //  std::cout << "in chooseYVarWindow::proceed()" << std::endl;
+    bool complain = false;
+    if (sameExtremaForAllCheckBox->isChecked()) {
+        // attempt to call plot windows after error checking
+        bool ok = true;
+        int minXVal = minx->text().toInt(&ok);
+        if ((!ok) || (minXVal < 0)) complain = true; // allow minXVal to be 0
+        int maxXVal = maxx->text().toInt(&ok);
+        if (!ok) complain = true;
+        if (maxXVal <= 0) complain = true;
+        if (minXVal >= maxXVal) complain = true;
+        double minYVal = miny->text().toDouble(&ok);
+        if (!ok) complain = true;
+        double maxYVal = maxy->text().toDouble(&ok);
+        if (!ok) complain = true;
+        // allow negative values for minYVal, even though there are no negative ones in data
+        if (maxYVal <= 0) complain = true;
+        if (minYVal >= maxYVal) complain = true;
+        if (complain) {
+            std::cerr << "Invalid combination of X and Y parameters." << std::endl;
+        } else { // passed error checks
+            if (std::verbose >= 2) {
+                std::cout << "Proceeding to plot with iter: [" << minXVal
+                        << "," << maxXVal << "]; y: [" << minYVal << ","
+                        << maxYVal << "], ";
+            }
+            if (pointerrors->isEnabled()) {
+                if (std::verbose >= 2) {
+                    std::cout << "YVar PBP e " << (this->PBPY) << std::endl;
+                }
+                spawnPlots(true, minXVal, maxXVal, minYVal, maxYVal);
+            } else if (globalerrors->isEnabled()) {
+                if (std::verbose >= 2) {
+                    std::cout << "YVar global " << (this->globY) << std::endl;
+                }
+                spawnPlots(false, minXVal, maxXVal, minYVal, maxYVal);
+            }
+        }
+    } else { // spawn individual dialog boxes for each evaluate execution
+        if (std::verbose >= 3) {
+            std::cout << "Spawning individual query boxes for parameters; ";
+        }
+        if (pointerrors->isEnabled()) {
+            (this->PBPY) = static_cast<unsigned> (pointerrors->currentItem());
+            if (std::verbose >= 2) {
+                std::cout << "YVar is PBP e " << (this->PBPY) << std::endl;
+            }
+            spawnDialogs(true);
+        } else if (globalerrors->isEnabled()) {
+            (this->globY) = static_cast<globalYVar_t> (globalerrors->currentItem());
+            if (std::verbose >= 2) {
+                std::cout << "YVar is global " << (this->globY) << std::endl;
+            }
+            spawnDialogs(false);
+        } else {
+            std::cerr << "meaningless state in proceed()" << std::endl;
+        }
+    }
+} // --chooseYVarWindow::proceed()
+
+/** ask the EES to plot itself based on these params
+ * ONLY to be called from proceed()
+ */
+void chooseYVarWindow::spawnPlots(bool plotPBP, int minXVal, int maxXVal, double minYVal, double maxYVal) {
+    // but ONLY the selected evaluate executions'.
+    // EES does the plotting including spawning of windows... *this* window becomes their parent.
+    if (plotPBP) {
+        myEES.spawnAllPlotsPBP(this, this->PBPY, minXVal, maxXVal, minYVal, maxYVal, grayScaleButton->isChecked());
+    } else {
+        myEES.spawnAllPlotsGlob(this, this->globY, minXVal, maxXVal, minYVal, maxYVal, grayScaleButton->isChecked());
+        // displaylineswindow( QWidget* parent,  const char* name, QPixmap* pixmap, bool modal, WFlags fl , int 20, int 20 );
+    }
+} // --chooseYVarWindow::spawnPlots()
+
+/** ask the EES to spawn plotting range dialogs based on YVar selection
+ * ONLY to be called from proceed()
+ */
+void chooseYVarWindow::spawnDialogs(bool plotPBP) {
+    if (std::verbose >= 2) {
+        std::cout << "in chooseYVarWindow::spawnDialogs()" << std::endl;
+    }
+    if (plotPBP) {
+        myEES.spawnDialogsPBP(this, this->PBPY);
+    } else {
+        myEES.spawnDialogsGlob(this, this->globY);
+    }
+} // --chooseYVarWindow::spawnDialogs()
+
+
+/*
+ Joanna Klukowska (added 2/2/2009)
+*/
+bool chooseYVarWindow::isGrayScaleChecked() {
+    return (grayScaleButton->isChecked());
+}
diff --git a/tools/Display/chooseYVar.hpp b/tools/Display/chooseYVar.hpp
new file mode 100755 (executable)
index 0000000..53cd861
--- /dev/null
@@ -0,0 +1,109 @@
+/** @file chooseYVar.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef CHOOSEYVAR_H
+#define CHOOSEYVAR_H
+
+#include "variables.hpp"
+#include "displaywidget.hpp"
+
+#include <qdialog.h>
+
+#include <qbuttongroup.h>
+#include <qcolor.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qfiledialog.h>
+#include <qfont.h>
+#include <qframe.h>
+#include <qimage.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qlineedit.h>
+#include <qlistbox.h>
+#include <qmessagebox.h>
+#include <qpainter.h>
+#include <qpen.h>
+#include <qpixmap.h>
+#include <qpoint.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qtooltip.h>
+#include <qvariant.h>
+#include <qwhatsthis.h>
+#include <qwidget.h>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QButtonGroup;
+class QCheckBox;
+class QComboBox;
+class QFrame;
+class QGridLayout; 
+class QLabel;
+class QLineEdit;
+class QListBox;
+class QListBoxItem;
+class QPushButton;
+class QRadioButton;
+class QPixmap;
+
+class chooseYVarWindow : public QDialog
+{
+  Q_OBJECT
+
+public:
+  chooseYVarWindow( QWidget* parent = 0, const char* name = 0, bool modal = true, WFlags fl = 0 ,int x = 0 , int y = 0 );
+  ~chooseYVarWindow();
+  int id;
+  bool status;
+  globalYVar_t globY;
+  unsigned PBPY;
+  //  double maxval,minval,diffmaxval,diffminval;
+  displayWidget* displaywidget;
+  QBoxLayout* topLayout;
+  QBoxLayout* yaxisbuttonLayout;
+  QBoxLayout* x_extrema_layout;
+  QBoxLayout* y_extrema_layout;
+  QButtonGroup* yaxisbuttongroup;
+  QCheckBox* sameExtremaForAllCheckBox;
+  QRadioButton* globalbutton;
+  QComboBox* globalerrors;
+  QRadioButton* pointbutton;
+  QComboBox* pointerrors;
+  QLabel* minxlabel;
+  QLabel* maxxlabel;
+  QLabel* minylabel;
+  QLabel* maxylabel;
+  QLineEdit* minx;
+  QLineEdit* maxx;
+  QLineEdit* miny;
+  QLineEdit* maxy;
+  QPushButton* proceedbutton;
+  QPushButton* closebutton;
+  QButtonGroup* colorbuttongroup;
+  QRadioButton* grayScaleButton;
+  QRadioButton* colorButton;
+private:
+  void spawnPlots(bool plotPBP, int minXVal, int maxXVal, double minYVal, double maxYVal);
+  void spawnDialogs(bool plotPBP);
+  void activateExtremaFields();
+  void deactivateExtremaFields();
+  void getCalculatedExtrema();
+public slots:
+  void activateGlobalErrors();
+  void activatePointErrors();
+  void maybeGetCalculatedExtrema();
+  void sameExtremaClicked();
+  void proceed();
+  void closeWindow();
+    // jk 2/2/2009 adding grayScale option for graphs
+  bool isGrayScaleChecked();
+protected:
+  virtual void closeEvent(QCloseEvent *e);
+};
+#endif // CHOOSEYVAR_H
diff --git a/tools/Display/displaylines.cpp b/tools/Display/displaylines.cpp
new file mode 100755 (executable)
index 0000000..1f28892
--- /dev/null
@@ -0,0 +1,195 @@
+/** @file displaylines.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+        
+    modification: Joanna Klukowska 1/13/2009
+           added choice of grayScale display for plot
+           in addition to color display
+*/
+
+#include "displaylines.hpp"
+#include "verbosity.hpp"
+
+#include <cstdio>
+#include <cstdlib>
+#include <iostream>
+
+#include <qwidget.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qimage.h>
+#include <qpixmap.h>
+#include <qmessagebox.h>
+#include <qfiledialog.h>
+#include <qstring.h>
+#include <qregexp.h>
+
+/* 
+ *  Constructs a displaylineswindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+displaylineswindow::displaylineswindow( QWidget* parent,  const char* name, QPixmap* pixmap, bool modal, WFlags fl , int x, int y )
+    : QDialog( parent, name, modal, fl )
+{
+  QPoint topleft;
+  
+  if ( !name ) 
+    setName( "Column/Line Profile" );
+  imagename=name;
+  int outerXPAD = 10;
+  int outerTopYPad = 10;
+  int outerBotYPad = 90;
+  int WID = pixmap->width();
+  int WINWIDTH  = 2*outerXPAD + WID;
+  int HEI = pixmap->height();
+  int WINHEIGHT = HEI + outerTopYPad + outerBotYPad;
+  resize( WINWIDTH, WINHEIGHT );
+  setMinimumSize( QSize( WINWIDTH, WINHEIGHT ) );
+  setMaximumSize( QSize( WINWIDTH, WINHEIGHT ) );
+  //    setCaption( tr( "Column/Line Profile" ) );
+  setCaption( name );
+  topleft.setX(x);
+  topleft.setY(y);
+  this->move(topleft);
+  localpixmap=pixmap;
+  pixmapwidget = new QWidget( this, "pixmapwidget" );
+  pixmapwidget->setGeometry( QRect( outerXPAD, outerTopYPad, WID, HEI ) );
+  pixmapwidget->setBackgroundPixmap( *pixmap );
+  int BUTTONWID = 100;
+  int BUTTONHEI = 40;
+  int BUTXPAD = 40;
+  int BUTBOTPAD = 20;
+  savebutton = new QPushButton( this, "savebutton" );
+  savebutton->setGeometry( QRect( BUTXPAD, WINHEIGHT-BUTTONHEI-BUTBOTPAD, BUTTONWID, BUTTONHEI ) ); 
+  savebutton->setCaption( tr( "" ) );
+  savebutton->setText( tr( "Save" ) );
+  QObject::connect(savebutton,SIGNAL(clicked()),this,SLOT(saveImage()));
+  
+  closebutton = new QPushButton( this, "closebutton" );
+  closebutton->setGeometry( QRect( WINWIDTH-BUTTONWID-BUTXPAD, WINHEIGHT-BUTTONHEI-BUTBOTPAD, BUTTONWID, BUTTONHEI ) ); 
+  closebutton->setCaption( tr( "" ) );
+  closebutton->setText( tr( "Close" ) );
+  QObject::connect(closebutton,SIGNAL(clicked()),this,SLOT(accept()));
+} // displaylineswindow ctor
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+displaylineswindow::~displaylineswindow()
+{
+  // no need to delete child widgets, Qt does it all for us
+}
+
+/** Saves the profile graph image
+    @param void
+    @author Bruno M. Carvalho, changes by Deniz
+    @version 1.2 */ 
+void displaylineswindow::saveImage()
+{ 
+  if(std::verbose >=2) std::cout << "++displaylineswindow::saveImage()" << std::endl;
+  QString prefixForSaving = (imagename.simplifyWhiteSpace());
+  if(std::verbose >=2) std::cout << "My prefix is originally: \"" << prefixForSaving << "\"" << std::endl;
+  // beware weird characters in save file name!
+  // these might be intentionally meaningful
+  prefixForSaving.replace( QRegExp("\\="), "_EQ_");
+  prefixForSaving.replace( QRegExp("\\+"), "_PLUS_");
+  prefixForSaving.replace( QRegExp("\\@"), "_AT_");
+  //  prefixForSaving.replace( QRegExp("-"), "_MINUS_"); // maybe
+  // convert everything non-alphanumeric to underscore
+  prefixForSaving.replace( QRegExp("[^a-zA-Z0-9]"), "_");
+  // allow maximum of 2 consecutive underscores  
+  prefixForSaving.replace( QRegExp("__+") , "__"); 
+  // chuck underscore from beginning and end
+  prefixForSaving.replace( QRegExp("^_+"), "");
+  prefixForSaving.replace( QRegExp("_+$"), "");
+  if(std::verbose >=2) std::cout << "My prefix became: \"" << prefixForSaving << "\"" << std::endl;
+  // this is how the filter ought to be according to manual for version 3.3.
+  QString myExtensionFilter =   // delimiter is double-semicolon, NOT '\n'
+    "png (PNG file);;"
+    "bmp (BMP file);;"
+    "pbm (PBM file);;"
+    "pgm (PGM file);;"
+    "ppm (PPM file);;"
+    "xbm (XBM file);;"
+    "xpm (XPM file)"   ;
+  QString mySaveAs = "Save Image as";
+  QString startInDir = "./";
+  QFileDialog fd(startInDir, myExtensionFilter, this, mySaveAs, true);
+  fd.setMode(QFileDialog::AnyFile);
+  fd.setSelection(prefixForSaving);
+  if (QDialog::Accepted != fd.exec()) {
+    if(std::verbose >=2) std::cout << "--displaylineswindow::saveImage() in a hurry" << std::endl;
+    return; // happens, say, when cancel is pressed.  just leave, no harm.
+  }
+  QString userFileSavePrefix = fd.selectedFile();
+  QString userFileSaveExtension = fd.selectedFilter();
+  if (userFileSavePrefix.isEmpty()) {
+    if(std::verbose >=2) std::cout << "--displaylineswindow::saveImage() in a hurry" << std::endl;
+    return; // happens, say, when cancel is pressed.  just leave, no harm.
+  }
+  if(std::verbose >=2) std::cout << "Got file name as: \"" << userFileSavePrefix << "\"" << std::endl;
+  if(std::verbose >=2) std::cout << "Got selected ext: \"" << userFileSaveExtension << "\"" << std::endl;
+  /* NB: userFileSavePrefix now contains directory info as well.
+   * if user entered additional forward-slashes without
+   * knowing that it signified directory, that's NOT our problem.
+   * (the user MAY legitimately enter "a/myImage" as file name if there is a directory "a" 
+   *   within the currently open directory in the save dialog window)
+   * do part only after last forward-slash (i.e., what user entered)...
+   * don't want to burn ourselves if path in fact had legit non-alphanumericounderscore chars
+   */
+  QString justFilePrefix, justPath;
+  // funnylooking because written to work with Qt BOTH 2.3 and 3.3
+  int posLastSlash = userFileSavePrefix.findRev('/'); // returns pos if found, -1 if not.
+  if (-1 != posLastSlash) {
+    justPath = userFileSavePrefix.left(posLastSlash+1); // +1 to include last '/'
+    justFilePrefix = userFileSavePrefix;
+    QRegExp fakeRegex("^" + justPath); // it just *looks* fake...
+    justFilePrefix.replace( fakeRegex, "" ); // chuck away including last '/' for justFilePrefix
+    if(std::verbose >=2) std::cout << "just after regex replace, justFilePrefix: \"" << justFilePrefix << "\"" << std::endl;
+  } else {  // if for some reason no forwardslash, handle that gracefully too.
+    justFilePrefix = userFileSavePrefix;
+    justPath = "";
+  }
+  if(std::verbose >=2) std::cout << "justPath is: \"" << justPath << "\"" << std::endl;
+  if(std::verbose >=2) std::cout << "justFilePrefix is first: \"" << justFilePrefix << "\"" << std::endl;
+  // remove justFilePrefix from ONLY the end of 'userFileSavePrefix'.
+  justFilePrefix.replace( QRegExp("="), "_EQ_");
+  justFilePrefix.replace( QRegExp("+"), "_PLUS_");
+  justFilePrefix.replace( QRegExp("[^a-zA-Z0-9]"), "_"); // no forward slash in regex
+  // allow maximum of 2 consecutive underscores  
+  justFilePrefix.replace( QRegExp("__+") , "__"); 
+  // chuck underscore from beginning and end
+  justFilePrefix.replace( QRegExp("^_+"), "");
+  justFilePrefix.replace( QRegExp("_+$"), "");
+  if(std::verbose >=2) std::cout << "justFilePrefix is later: \"" << justFilePrefix << "\"" << std::endl;
+  // reset userFileSavePrefix by putting back together justPath and the refined justFilePrefix
+  userFileSavePrefix = justPath + justFilePrefix;
+  userFileSaveExtension.truncate(3);
+  if(std::verbose >=2) std::cout << "My userFileSavePrefix is \"" << userFileSavePrefix << "\"" << std::endl;
+  if(std::verbose >=2) std::cout << "My userFileSaveExtension is \"" << userFileSaveExtension << "\"" << std::endl;
+  QString extensionUpper = userFileSaveExtension.upper();
+  QString saveFullNameWithPath = userFileSavePrefix + "." + extensionUpper;
+  if(std::verbose >=2) std::cout << "extensionUpper is now \"" << extensionUpper << "\"" << std::endl;
+  if(std::verbose >=2) std::cout << "saveFullNameWithPath is now \"" << saveFullNameWithPath << "\"" << std::endl;
+  QImage prof=localpixmap->convertToImage();
+  QImageIO recio;
+  recio.setImage(prof);
+  recio.setFormat(extensionUpper);
+  recio.setFileName(saveFullNameWithPath);
+  if ( recio.write() ) {
+    if(std::verbose>=1) {
+      std::cout << "successfully saved: \"" << saveFullNameWithPath << "\"" << std::endl;
+    }
+  } else {
+    std::cerr << "UNsuccessfully tried to save as: \"" << saveFullNameWithPath << "\"" << std::endl;
+  }
+  if(std::verbose >=2) std::cout << "--displaylineswindow::saveImage()" << std::endl;
+} // --displaylineswindow::saveImage()
diff --git a/tools/Display/displaylines.hpp b/tools/Display/displaylines.hpp
new file mode 100755 (executable)
index 0000000..81aa2fd
--- /dev/null
@@ -0,0 +1,41 @@
+/** @file displaylines.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef DISPLAYLINESWINDOW_H
+#define DISPLAYLINESWINDOW_H
+
+#include "sd_line_t.hpp"
+
+#include <qvariant.h>
+#include <qdialog.h>
+
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QWidget;
+class QPixmap;
+class QPushButton;
+class QString;
+
+class displaylineswindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    displaylineswindow( QWidget* parent = 0, const char* name = 0, QPixmap* pixmap = 0, bool modal = FALSE, WFlags fl = 0, int x = 0, int y = 0 );
+    ~displaylineswindow();
+
+    QString imagename;
+    QPushButton* savebutton;
+    QPushButton* closebutton;
+    QWidget* pixmapwidget;
+    QPixmap* localpixmap;
+public slots:
+    void saveImage();
+};
+
+#endif // DISPLAYLINESWINDOW_H
diff --git a/tools/Display/displayprojection.cpp b/tools/Display/displayprojection.cpp
new file mode 100755 (executable)
index 0000000..5cfaa60
--- /dev/null
@@ -0,0 +1,670 @@
+/** @file displayprojection.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+        
+    modification: Joanna Klukowska 1/13/2009
+           added choice of grayScale display for plot
+           in addition to color display
+ */
+
+#include "variables.hpp"
+#include "verbosity.hpp"
+#include "displaywidget.hpp"
+#include "displayprojection.hpp"
+#include "lines.hpp"
+#include "SnarkDisplay.hpp"
+#include "line_real_t.hpp"
+#include "plot_t.hpp"
+#include "displaylines.hpp"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <qwidget.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qslider.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qimage.h>
+#include <qpainter.h>
+#include <qpen.h>
+#include <qpixmap.h>
+#include <qpoint.h>
+#include <qcolor.h>
+#include <qmessagebox.h>
+#include <qfiledialog.h>
+#include <qfont.h>
+#include <qregexp.h>
+#include <qstring.h>
+#include <qscrollview.h>
+
+#ifndef MIN
+#define MIN(a, b) (((a < b) ? (a) : (b)))
+#endif
+
+extern Snarkimage **imageset;
+QImage projection;
+bool convproj;
+
+/* 
+ *  Constructs a displayprojection which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+displayprojection::displayprojection(QWidget* parent, const char* name, bool modal, WFlags fl, int x, int y)
+: QDialog(parent, name, modal, fl) {
+    unsigned int i, j, minvalrange, maxvalrange;
+    QPixmap disp;
+    QPoint topleft;
+
+    windowname.sprintf("Sinogram: %s", name);
+    windowname = windowname.simplifyWhiteSpace();
+    imagename.sprintf("%s", name);
+    imagename = imagename.simplifyWhiteSpace();
+    setName(windowname);
+    setCaption(windowname);
+
+    topleft.setX(x + 30);
+    topleft.setY(y + 30);
+    this->move(topleft);
+    //    projfil->readProj(projformat);
+    projfil->readProj();
+    maxzoom = 2 * maxSizex / prjnum;
+    if (maxzoom <= 1) maxzoom = 2;
+    proj = projfil->getProj();
+    lowthreshold = minval = projfil->getMin();
+    highthreshold = maxval = projfil->getMax();
+    range = highthreshold - lowthreshold;
+
+    setMinimumSize(QSize(190 + prjnum + 10, 600));
+    resize(190 + prjnum + 10, usrays + 20);
+    //    if((10+(usrays*maxzoom)+10)>600)
+    //      setMaximumSize( QSize( 190+(prjnum*maxzoom)+10, 10+(usrays*maxzoom)+10 ) );
+    //    else 
+    //      setMaximumSize( QSize( 190+(prjnum*maxzoom)+10, 600 ) );
+
+    projection = QImage(prjnum, usrays, 8, 256);
+    for (i = 0; i < 256; i++)
+        projection.setColor(i, qRgb(i, i, i));
+    for (i = 0; i < usrays; i++)
+        for (j = 0; j < prjnum; j++)
+            *(projection.scanLine(i) + j) = (unsigned char) (((proj[j][i] - lowthreshold) / range)*255);
+
+    disp = QPixmap(prjnum, usrays);
+    convproj = disp.convertFromImage(projection, QPixmap::Auto);
+
+    displaywidget = new displayWidget(this, "displaywidget");
+    displaywidget->setGeometry(QRect(190, 10, prjnum, usrays));
+    displaywidget->setBackgroundPixmap(disp);
+    //displaywidget->setScaledContents( TRUE );
+    QObject::connect(displaywidget, SIGNAL(clicked(int, int)), this, SLOT(updateClickedPixel(int, int)));
+
+    maxvalrange = (int) (maxval * 1000);
+    minvalrange = (int) (minval * 1000);
+
+    zoomlabel = new QLabel(this, "zoomlabel");
+    zoomlabel->setGeometry(QRect(60, 5, 45, 20));
+    zoomlabel->setText(tr("Zoom"));
+
+    zoomslider = new QSlider(this, "zoomslider");
+    zoomslider->setGeometry(QRect(5, 30, 170, 20));
+    zoomslider->setOrientation(QSlider::Horizontal);
+    zoomslider->setRange(1, maxzoom);
+    zoomslider->setValue(1);
+    zoomslider->setLineStep(1);
+    zoomslider->setPageStep(2);
+    QObject::connect(zoomslider, SIGNAL(valueChanged(int)), this, SLOT(updateZoom()));
+    zoomval = 1;
+
+    zoom = new QLineEdit(this, "zoom");
+    zoom->setGeometry(QRect(5, 55, 80, 30));
+    zoom->setText("1");
+
+    setzoombutton = new QPushButton(this, "setzoombutton");
+    setzoombutton->setGeometry(QRect(90, 50, 90, 40));
+    setzoombutton->setText(tr("Set Value"));
+    QObject::connect(setzoombutton, SIGNAL(clicked()), this, SLOT(updateZoomslider()));
+
+    globalthresholdbutton = new QRadioButton(this, "globalthresholdbutton");
+    globalthresholdbutton->setGeometry(QRect(10, 100, 160, 25));
+    globalthresholdbutton->setText(tr("Global Thresholds"));
+    globalthresholdbutton->setEnabled(false);
+
+    differencebutton = new QRadioButton(this, "differencebutton");
+    differencebutton->setGeometry(QRect(10, 135, 160, 25));
+    differencebutton->setText(tr("Difference"));
+    differencebutton->setEnabled(false);
+
+    intensitybutton = new QRadioButton(this, "intensitybutton");
+    intensitybutton->setGeometry(QRect(10, 170, 160, 25));
+    intensitybutton->setText(tr("Intensity"));
+    QObject::connect(intensitybutton, SIGNAL(clicked()), this, SLOT(intensity()));
+
+    lowthreshlabel = new QLabel(this, "lowthreshlabel");
+    lowthreshlabel->setGeometry(QRect(30, 205, 110, 20));
+    lowthreshlabel->setText(tr("Low Threshold"));
+
+    lowthreshslider = new QSlider(this, "Slider4_2");
+    lowthreshslider->setGeometry(QRect(5, 230, 170, 20));
+    lowthreshslider->setOrientation(QSlider::Horizontal);
+    lowthreshslider->setRange(minvalrange, maxvalrange);
+    lowthreshslider->setValue(minvalrange);
+    QObject::connect(lowthreshslider, SIGNAL(valueChanged(int)), this, SLOT(updateLowthresh()));
+
+    lowthresh = new QLineEdit(this, "lowthresh");
+    lowthresh->setGeometry(QRect(5, 260, 80, 30));
+    char s[6];
+    sprintf(s, "%7.4f", minval);
+    lowthresh->setText(s);
+
+    setlowthreshbutton = new QPushButton(this, "setlowthreshbutton");
+    setlowthreshbutton->setGeometry(QRect(90, 255, 90, 40));
+    setlowthreshbutton->setText(tr("Set Value"));
+    QObject::connect(setlowthreshbutton, SIGNAL(clicked()), this, SLOT(updateLowthreshslider()));
+
+    highthreshlabel = new QLabel(this, "highthreshlabel");
+    highthreshlabel->setGeometry(QRect(30, 300, 115, 20));
+    highthreshlabel->setText(tr("High Threshold"));
+
+    highthreshslider = new QSlider(this, "Slider4_3");
+    highthreshslider->setGeometry(QRect(5, 325, 170, 20));
+    highthreshslider->setOrientation(QSlider::Horizontal);
+    highthreshslider->setRange(minvalrange, maxvalrange);
+    highthreshslider->setValue(maxvalrange);
+    QObject::connect(highthreshslider, SIGNAL(valueChanged(int)), this, SLOT(updateHighthresh()));
+
+    highthresh = new QLineEdit(this, "highthresh");
+    highthresh->setGeometry(QRect(5, 355, 80, 30));
+    sprintf(s, "%7.4f", maxval);
+    highthresh->setText(s);
+
+    sethighthreshbutton = new QPushButton(this, "sethighthreshbutton");
+    sethighthreshbutton->setGeometry(QRect(90, 350, 90, 40));
+    sethighthreshbutton->setText(tr("Set Value"));
+    QObject::connect(sethighthreshbutton, SIGNAL(clicked()), this, SLOT(updateHighthreshslider()));
+
+    pixelposlabel = new QLabel(this, "pixelposlabel");
+    pixelposlabel->setGeometry(QRect(30, 395, 45, 20));
+    pixelposlabel->setText(tr("Pixel"));
+
+    pixelpos = new QLineEdit(this, "pixelpos");
+    pixelpos->setGeometry(QRect(5, 420, 80, 30));
+
+    pixelvaluelabel = new QLabel(this, "pixelvaluelabel");
+    pixelvaluelabel->setGeometry(QRect(110, 395, 45, 20));
+    pixelvaluelabel->setText(tr("Value"));
+
+    pixelvalue = new QLineEdit(this, "pixelvalue");
+    pixelvalue->setGeometry(QRect(95, 420, 80, 30));
+
+    savebutton = new QPushButton(this, "savebutton");
+    savebutton->setGeometry(QRect(15, 460, 150, 40));
+    savebutton->setText(tr("Save Image"));
+    QObject::connect(savebutton, SIGNAL(clicked()), this, SLOT(saveImage()));
+
+    linesbutton = new QPushButton(this, "linesbutton");
+    linesbutton->setGeometry(QRect(15, 505, 150, 40));
+    linesbutton->setText(tr("Display Lines"));
+    // QObject::connect(linesbutton,SIGNAL(clicked()),this,SLOT(callLines_old()));
+    QObject::connect(linesbutton, SIGNAL(clicked()), this, SLOT(callLines()));
+
+    closebutton = new QPushButton(this, "closebutton");
+    closebutton->setGeometry(QRect(15, 550, 150, 40));
+    closebutton->setText(tr("Close Window"));
+    QObject::connect(closebutton, SIGNAL(clicked()), this, SLOT(accept()));
+
+    scrollv = new QScrollView(this, "qscrollview");
+    scrollv->viewport()->setBackgroundColor(colorGroup().background());
+    scrollv->setFrameShape(QFrame::NoFrame);
+    scrollv->setGeometry(190, 10, maxSizex - 210, maxSizey - 110);
+    scrollv->addChild(displaywidget);
+}
+
+void displayprojection::resetscroll() {
+    scrollv->resize(MIN(maxSizex - 210, 20 + (prjnum * zoomval)),
+            MIN(maxSizey - 110, 20 + (usrays * zoomval)));
+    scrollv->resizeContents(prjnum * zoomval + 10, usrays * zoomval + 10);
+}
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+displayprojection::~displayprojection() {
+    // no need to delete child widgets, Qt does it all for us
+}
+
+void displayprojection::updateClickedPixel(int cx, int cy) {
+    int ix, iy;
+    char s[12];
+
+    ix = cx / zoomval;
+    iy = cy / zoomval;
+    sprintf(s, "(%d,%d)", ix, iy);
+    pixelpos->setText(s);
+    sprintf(s, "%7.4f", proj[ix][iy]);
+    pixelvalue->setText(s);
+}
+
+void displayprojection::updateZoom() {
+    char s[4];
+    int v = zoomslider->value();
+    sprintf(s, "%d", v);
+    zoom->setText(s);
+    zoomval = v;
+    displaywidget->resize(prjnum*zoomval, usrays * zoomval);
+    resize(MIN(maxSizex, 210 + (prjnum * zoomval)),
+            MIN(maxSizey, 20 + (usrays * zoomval)));
+    resetImage();
+    resetscroll();
+}
+
+void displayprojection::updateZoomslider() {
+    int v;
+    bool ok = false;
+    v = zoom->text().toInt(&ok, 10);
+    if (ok && v > 0 && v <= maxzoom)
+        zoomslider->setValue(v);
+    else
+        QMessageBox::information(this, "SnarkDisplay", "Error!\n"
+            "Zoom value invalid or out of range.");
+}
+
+void displayprojection::intensity() {
+    int l;
+
+    l = windowname.length();
+    if (intensitybutton->isChecked()) {
+        windowname.append("_i");
+        setCaption(windowname);
+    } else {
+        windowname.remove(l - 2, 2);
+        setCaption(windowname);
+    }
+    resetImage();
+}
+
+/** obtain threshold value from the low threshold slider position
+    update the text of the slider
+    pre: low threshold slider not greater than high threshold slider
+         Have fixed this
+ */
+void displayprojection::updateLowthresh() {
+    char s[12];
+    int v = lowthreshslider->value();
+    int hv = highthreshslider->value();
+    if (v > hv) {
+        v = hv;
+        lowthreshslider->setValue(hv);
+    }
+    double fv = ((double) v) / 1000;
+    lowthreshold = fv;
+    sprintf(s, "%7.4f", fv);
+    lowthresh->setText(s);
+    resetImage();
+}
+
+double displayprojection::getLowthresh() {
+    return lowthreshold;
+}
+
+void displayprojection::updateLowthreshslider() {
+    double fv;
+    int v = 0;
+    bool ok = false;
+    fv = lowthresh->text().toDouble(&ok);
+    if (ok) {
+        if (fv > highthreshold) {
+            QMessageBox::information(this, "SnarkDisplay", "Error!\n"
+                    "Entered low threshold higher than high threshold.");
+            return;
+        }
+        if (fv > 0)
+            v = (int) (fv * 1000 + 0.5);
+        else
+            v = (int) (fv * 1000 - 0.5);
+        if (v < lowthreshslider->minValue())
+            lowthreshslider->setMinValue(v);
+        lowthreshslider->setValue(v);
+        lowthreshold = fv;
+    }
+}
+
+/** have fixed this */
+void displayprojection::updateHighthresh() {
+    char s[12];
+    int v = highthreshslider->value();
+    int Lv = lowthreshslider->value();
+    if (v < Lv) {
+        v = Lv;
+        highthreshslider->setValue(Lv);
+    }
+    double fv = ((double) v) / 1000;
+    highthreshold = fv;
+    sprintf(s, "%7.4f", fv);
+    highthresh->setText(s);
+    resetImage();
+}
+
+double displayprojection::getHighthresh() {
+    return highthreshold;
+}
+
+void displayprojection::updateHighthreshslider() {
+    double fv;
+    int v = 0;
+    bool ok = false;
+    fv = highthresh->text().toDouble(&ok);
+    if (ok) {
+        if (fv < lowthreshold) {
+            QMessageBox::information(this, "SnarkDisplay", "Error!\n"
+                    "Entered high threshold lower than low threshold.");
+            return;
+        }
+        if (fv > 0)
+            v = (int) (fv * 1000 + 0.5);
+        else
+            v = (int) (fv * 1000 - 0.5);
+        if (v > highthreshslider->maxValue())
+            highthreshslider->setMaxValue(v);
+        highthreshslider->setValue(v);
+        highthreshold = fv;
+    }
+} // --displayprojection::updateHighthreshslider()
+
+void displayprojection::resetImage() {
+    /* adjust image to current thresholds and zoom */
+    unsigned int i, j;
+    int m, n, base, point;
+    double t = 0;
+    unsigned char tuc;
+    QPixmap disp;
+
+    //  if((20+(usrays*zoomval)+1)>530)
+    //    resize(190+(prjnum*zoomval)+10, 20+(usrays*zoomval)+10);
+    //  else
+    //    resize(190+(prjnum*zoomval)+10, 530);
+
+    projection = projection.smoothScale(prjnum*zoomval, usrays * zoomval);
+    projection.setNumColors(256);
+    for (i = 0; i < 256; i++)
+        projection.setColor(i, qRgb(i, i, i));
+    range = highthreshold - lowthreshold;
+
+    for (i = 0; i < usrays; i++) {
+        base = i*zoomval;
+        for (j = 0; j < prjnum; j++) {
+            point = j*zoomval;
+            t = ((proj[j][i] - lowthreshold) / range);
+            if (t == 0.0 || t < 0.0) {
+                for (m = 0; m < zoomval; m++)
+                    for (n = 0; n < zoomval; n++)
+                        *(projection.scanLine(base + m) + point + n) = 0;
+            } else {
+                if (t > 1.0 || t == 1.0) {
+                    for (m = 0; m < zoomval; m++)
+                        for (n = 0; n < zoomval; n++)
+                            *(projection.scanLine(base + m) + point + n) = 255;
+                } else {
+                    if (intensitybutton->isChecked()) {
+                        tuc = (unsigned char) (sqrt(t)*255);
+                        for (m = 0; m < zoomval; m++)
+                            for (n = 0; n < zoomval; n++) {
+                                *(projection.scanLine(base + m) + point + n) = tuc;
+                            }
+                    } else {
+                        tuc = (unsigned char) (t * 255);
+                        for (m = 0; m < zoomval; m++)
+                            for (n = 0; n < zoomval; n++) {
+                                *(projection.scanLine(base + m) + point + n) = tuc;
+                            }
+                    }
+                }
+            }
+        }
+    }
+    convproj = disp.convertFromImage(projection, QPixmap::Auto);
+    //  displaywidget->resize(prjnum*zoomval,usrays*zoomval);
+    displaywidget->setBackgroundPixmap(disp);
+    resetscroll();
+} // --displayprojection::resetImage()
+
+void displayprojection::resetImageRange() {
+    /* adjust image to current thresholds */
+    unsigned int i, j;
+    double t = 0;
+    QPixmap disp;
+
+    range = highthreshold - lowthreshold;
+
+    for (i = 0; i < usrays; i++)
+        for (j = 0; j < prjnum; j++) {
+            t = ((proj[i][j] - lowthreshold) / range);
+            if (t <= 0)
+                *(projection.scanLine(i) + j) = 0;
+            else
+                if (t >= 1)
+                *(projection.scanLine(i) + j) = 255;
+            else
+                *(projection.scanLine(i) + j) = (unsigned char) (t * 255);
+        }
+    convproj = disp.convertFromImage(projection, QPixmap::Auto);
+    displaywidget->setBackgroundPixmap(disp);
+} // --displayprojection::resetImageRange()
+
+/** Starts a lines window 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void displayprojection::callLines() {
+    int i, j;
+    //  unsigned int l[4];
+    int l[4], linetype, c, x, y, sx = 400, sy = 300, xn, yn;
+    int a1, minx, maxx, xrange;
+    int topleftx, toplefty;
+    double miny, maxy, yrange, t1, t2, a2;
+    bool above = false, below = false;
+    char s[11];
+    QString title, xaxis, yaxis, temp, profilename;
+    QPoint topleft;
+    QString projname_qstr(projname);
+    projname_qstr = projname_qstr.simplifyWhiteSpace();
+    lineswindow* nw = new lineswindow(this, projname_qstr, lowthreshold, highthreshold, true, 0);
+    c = nw->exec();
+    if (c == QDialog::Accepted) {
+        linetype = nw->getLinetype();
+        QString rowOrColumn = ((linetype) ? ("Column ") : ("Row "));
+        QString vs = ((linetype) ? ("Rows") : ("Columns"));
+        //    std::cerr << "Plotting " << rowOrColumn << "vs " << vs << std::endl;
+        //    std::cerr << "There are " << prjnum << " columns and " << usrays << " rows" << std::endl;
+        int i_upperbnd = static_cast<int> ((linetype) ? (usrays) : (prjnum));
+        int elljay_upperbnd = static_cast<int> ((linetype) ? (prjnum) : (usrays));
+        //    std::cerr << i_upperbnd << " is upperbound of independent" << std::endl;
+        l[0] = nw->getLine1();
+        l[1] = nw->getLine2();
+        l[2] = nw->getLine3();
+        l[3] = nw->getLine4();
+        title = nw->getTitle();
+        xaxis = nw->getXAxis();
+        yaxis = nw->getYAxis();
+        minx = nw->getMinX();
+        maxx = nw->getMaxX();
+        miny = nw->getMinY();
+        maxy = nw->getMaxY();
+        topleft = this->pos();
+        topleftx = topleft.x();
+        toplefty = topleft.y();
+        for (j = 0; j < 4; j++) { // loop through selection
+            int&row = ((linetype) ? (i) : (l[j]));
+            int&col = ((linetype) ? (l[j]) : (i));
+            if ((l[j] >= 0) && (l[j] < elljay_upperbnd)) { // different plot for each valid j
+                line_real_set_t myLRS(minx, maxx, miny, maxy); // create a brand new LRS for brand new plot
+                myLRS.clear(); // and be sure of it!
+                topleftx += 30;
+                toplefty += 30;
+                QPixmap* pixmap = new QPixmap(sd_line_t::WIDTH, sd_line_t::HEIGHT);
+                pixmap->fill(Qt::white);
+                QPainter picasso;
+                picasso.begin(pixmap);
+                picasso.setBackgroundColor(Qt::white);
+                QString whichRowOrCol;
+                whichRowOrCol.setNum(l[j]);
+                QString plotSuffix = (rowOrColumn + whichRowOrCol);
+                //QString plotName = projname_qstr.simplifyWhiteSpace();
+                QString plotName = title.simplifyWhiteSpace(); // bug 227, wei, 6/13/2007
+                plotName += (" (sinogram):: " + plotSuffix);
+                //     std::cerr << "plotName : " << plotName << std::endl;
+                line_real_t ourProjLine(projname_qstr);
+                for (i = 0; i < i_upperbnd; i++) {
+                    ourProjLine.add(i, proj[col][row]);
+                }
+                myLRS.add(ourProjLine);
+                plot_t myPlot(myLRS);
+                myPlot.setName(plotName);
+                myPlot.setXAxisName(xaxis); // for all three of these names
+                myPlot.setYAxisName(yaxis);
+                // jk 1/13/2009 adding grayScale option for graphs
+                if (nw->isGrayScaleChecked()) { // picasso paints on QPixmap pointed to by pmp
+                    myPlot.plotGray(picasso);
+                } else {
+                    myPlot.plot(picasso);
+                }
+                displaylineswindow* dw = new displaylineswindow(this, plotName, pixmap, false, 0, topleftx, toplefty);
+                dw->show();
+            } // --if on l[j] being ok
+        } // --loop through the j's [0,4)
+    }
+} // --displayprojection::callLines()
+
+/** Saves the current image
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void displayprojection::saveImage() {
+    int i, j;
+
+    QString prefixForSaving = projname;
+    prefixForSaving = prefixForSaving.simplifyWhiteSpace();
+    prefixForSaving.replace(QRegExp("\\="), "_EQ_");
+    prefixForSaving.replace(QRegExp("\\+"), "_PLUS_");
+    prefixForSaving.replace(QRegExp("\\@"), "_AT_");
+    //  prefixForSaving.replace( QRegExp("-"), "_MINUS_"); // maybe
+    // convert everything non-alphanumeric to underscore
+    prefixForSaving.replace(QRegExp("[^a-zA-Z0-9]"), "_");
+    // allow maximum of 2 consecutive underscores
+    prefixForSaving.replace(QRegExp("__+"), "__");
+    // chuck underscore from beginning and end
+    prefixForSaving.replace(QRegExp("^_+"), "");
+    prefixForSaving.replace(QRegExp("_+$"), "");
+
+    QString myExtensionFilter =
+            "png (PNG file);;"
+            "bmp (BMP file);;"
+            "flt (ASCII float file);;"
+            "pbm (PBM file);;"
+            "pgm (PGM file);;"
+            "ppm (PPM file);;"
+            "xbm (XBM file);;"
+            "xpm (XPM file)";
+
+    QString mySaveAs = "Save Image as";
+    QString startInDir = "./";
+    QFileDialog fd(startInDir, myExtensionFilter, this, mySaveAs, true);
+    fd.setMode(QFileDialog::AnyFile);
+    fd.setSelection(prefixForSaving);
+    if (QDialog::Accepted != fd.exec()) {
+        if (std::verbose >= 2) std::cout << "--displaylineswindow::saveImage() in a hurry" << std::endl;
+        return; // happens, say, when cancel is pressed.  just leave, no harm.
+    }
+    QString userFileSavePrefix = fd.selectedFile();
+    QString userFileSaveExtension = fd.selectedFilter();
+    if (userFileSavePrefix.isEmpty()) { // double-check for absurdity
+        if (std::verbose >= 2) std::cout << "--displaylineswindow::saveImage() in a hurry" << std::endl;
+        return; // happens, say, when cancel is pressed.  just leave, no harm.
+    }
+    if (std::verbose >= 2) std::cout << "Got file name as: \"" << userFileSavePrefix << "\"" << std::endl;
+    if (std::verbose >= 2) std::cout << "Got selected ext: \"" << userFileSaveExtension << "\"" << std::endl;
+    /* NB: userFileSavePrefix now contains directory info as well.
+     * if user entered additional forward-slashes without
+     * knowing that it signified directory, that's NOT our problem.
+     * (the user MAY legitimately enter "a/myImage" as file name if there is a directory "a"
+     *   within the currently open directory in the save dialog window)
+     * do part only after last forward-slash (i.e., what user entered)...
+     * don't want to burn ourselves if path in fact had legit non-alphanumericounderscore chars
+     */
+    QString justFilePrefix, justPath;
+    // funnylooking because written to work with Qt BOTH 2.3 and 3.3
+    int posLastSlash = userFileSavePrefix.findRev('/'); // returns pos if found, -1 if not.
+    if (-1 != posLastSlash) {
+        justPath = userFileSavePrefix.left(posLastSlash + 1); // +1 to include last '/'
+        justFilePrefix = userFileSavePrefix;
+        QRegExp fakeRegex("^" + justPath); // it just *looks* fake...
+        justFilePrefix.replace(fakeRegex, ""); // chuck away including last '/' for justFilePrefix
+        if (std::verbose >= 2) std::cout << "just after regex replace, justFilePrefix: \"" << justFilePrefix << "\"" << std::endl;
+    } else { // if for some reason no forwardslash, handle that gracefully too.
+        justFilePrefix = userFileSavePrefix;
+        justPath = "";
+    }
+    if (std::verbose >= 2) std::cout << "justPath is: \"" << justPath << "\"" << std::endl;
+    if (std::verbose >= 2) std::cout << "justFilePrefix is first: \"" << justFilePrefix << "\"" << std::endl;
+    // remove justFilePrefix from ONLY the end of 'userFileSavePrefix'.
+    justFilePrefix.replace(QRegExp("="), "_EQ_");
+    justFilePrefix.replace(QRegExp("+"), "_PLUS_");
+    justFilePrefix.replace(QRegExp("[^a-zA-Z0-9]"), "_"); // no forward slash in regex
+    // allow maximum of 2 consecutive underscores
+    justFilePrefix.replace(QRegExp("__+"), "__");
+    // chuck underscore from beginning and end
+    justFilePrefix.replace(QRegExp("^_+"), "");
+    justFilePrefix.replace(QRegExp("_+$"), "");
+    if (std::verbose >= 2) std::cout << "justFilePrefix is later: \"" << justFilePrefix << "\"" << std::endl;
+    // reset userFileSavePrefix by putting back together justPath and the refined justFilePrefix
+    userFileSavePrefix = justPath + justFilePrefix;
+    userFileSaveExtension.truncate(3);
+    if (std::verbose >= 2) std::cout << "My userFileSavePrefix is \"" << userFileSavePrefix << "\"" << std::endl;
+    if (std::verbose >= 2) std::cout << "My userFileSaveExtension is \"" << userFileSaveExtension << "\"" << std::endl;
+    QString extensionUpper = userFileSaveExtension.upper();
+    QString saveFullNameWithPath = userFileSavePrefix + "." + extensionUpper;
+    if (std::verbose >= 2) std::cout << "extensionUpper is now \"" << extensionUpper << "\"" << std::endl;
+    if (std::verbose >= 2) std::cout << "saveFullNameWithPath is now \"" << saveFullNameWithPath << "\"" << std::endl;
+    if (extensionUpper.compare(QString("FLT"))) { // if NOT "FLT" extension ("FLT" is Bruno's / Linkoping's bunchafloats format)
+        QImageIO recio;
+        recio.setImage(projection);
+        recio.setFormat(extensionUpper);
+        recio.setFileName(saveFullNameWithPath);
+        if (recio.write()) {
+            if (std::verbose >= 1) {
+                std::cout << "successfully saved: \"" << saveFullNameWithPath << "\"" << std::endl;
+                return;
+            }
+        } else {
+            std::cerr << "Error opening " << saveFullNameWithPath << std::endl;
+            return;
+        }
+    } else {
+        FILE* fp;
+        if ((fp = fopen(saveFullNameWithPath.latin1(), "w")) == NULL) {
+            std::cerr << "UNsuccessfully tried to save as: \"" << saveFullNameWithPath << "\"" << std::endl;
+        } else {
+            for (i = 0; i < (static_cast<int> (usrays)); i++) {
+                for (j = 0; j < (static_cast<int> (prjnum)); j++) {
+                    fprintf(fp, "%f ", proj[i][j]);
+                    if (!((j + 1) % 5))
+                        fprintf(fp, "\n");
+                }
+                fprintf(fp, "\n");
+            }
+            fclose(fp);
+            if (std::verbose >= 1) {
+                std::cout << "(we think) successfully saved: \"" << saveFullNameWithPath << "\"" << std::endl;
+            }
+        }
+    }
+}
diff --git a/tools/Display/displayprojection.hpp b/tools/Display/displayprojection.hpp
new file mode 100755 (executable)
index 0000000..29ca4cc
--- /dev/null
@@ -0,0 +1,87 @@
+/** @file displayprojection.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef DISPLAYPROJECTION_H
+#define DISPLAYPROJECTION_H
+
+#include "variables.hpp"
+#include "displaywidget.hpp"
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+class QSlider;
+class QListBox;
+class QImage;
+class QPixmap;
+class QScrollView;
+
+class displayprojection : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    displayprojection( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0, int x = 0, int y = 0 );
+    ~displayprojection();
+
+    QString windowname;
+    QString imagename;
+    double **proj;
+    double maxval,minval;
+    double lowthreshold,highthreshold;
+    double range;
+    int zoomval;
+    int maxzoom;
+    displayWidget* displaywidget;
+    QLabel* zoomlabel;
+    QSlider* zoomslider;
+    QLineEdit* zoom;
+    QPushButton* setzoombutton;
+    QRadioButton* globalthresholdbutton;
+    QRadioButton* differencebutton;
+    QRadioButton* intensitybutton;
+    QLabel* lowthreshlabel;
+    QSlider* lowthreshslider;
+    QLineEdit* lowthresh;
+    QPushButton* setlowthreshbutton;
+    QLabel* highthreshlabel;
+    QSlider* highthreshslider;
+    QLineEdit* highthresh;
+    QPushButton* sethighthreshbutton;
+    QLabel* pixelposlabel;
+    QLineEdit* pixelpos;
+    QLabel* pixelvaluelabel;
+    QLineEdit* pixelvalue;
+    QPushButton* profilebutton;
+    QPushButton* linesbutton;
+    QPushButton* savebutton;
+    QPushButton* closebutton;
+    QScrollView* scrollv;
+public slots:
+    void updateClickedPixel(int cx,int cy);
+    void updateZoom();
+    void updateZoomslider();
+    void intensity();
+    void updateLowthresh();
+    double getLowthresh();
+    void updateLowthreshslider();
+    void updateHighthresh();
+    double getHighthresh();
+    void updateHighthreshslider();
+    void resetscroll();
+    void resetImage();
+    void resetImageRange();
+    void callLines();
+    void saveImage();
+};
+
+#endif // DISPLAYPROJECTION_H
diff --git a/tools/Display/displaywidget.cpp b/tools/Display/displaywidget.cpp
new file mode 100755 (executable)
index 0000000..c3a376a
--- /dev/null
@@ -0,0 +1,36 @@
+/** @file displaywidget.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "displaywidget.hpp"
+
+#include <qwidget.h>
+
+/* 
+ *  Constructs a displaywidget which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+displayWidget::displayWidget( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+
+}
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+displayWidget::~displayWidget()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+void displayWidget::mousePressEvent(QMouseEvent* e)
+{
+  emit clicked(e->x(), e->y());
+}
diff --git a/tools/Display/displaywidget.hpp b/tools/Display/displaywidget.hpp
new file mode 100755 (executable)
index 0000000..8b7380a
--- /dev/null
@@ -0,0 +1,27 @@
+/** @file displaywidget.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef DISPLAYWIDGET_H
+#define DISPLAYWIDGET_H
+
+#include <qvariant.h>
+#include <qwidget.h>
+
+class displayWidget : public QWidget
+{ 
+    Q_OBJECT
+
+public:
+    displayWidget( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+    ~displayWidget();
+protected:
+    void mousePressEvent(QMouseEvent* e);
+signals: 
+    void clicked(int,int);
+};
+
+#endif // DISPLAYWIDGET_H
diff --git a/tools/Display/displaywindow.cpp b/tools/Display/displaywindow.cpp
new file mode 100755 (executable)
index 0000000..03bf2a1
--- /dev/null
@@ -0,0 +1,1048 @@
+/** @file displaywindow.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+        
+    modification: Joanna Klukowska 1/13/2009
+           added choice of grayScale display for plot
+           in addition to color display
+*/
+
+#include "variables.hpp"
+#include "verbosity.hpp"
+#include "displaywidget.hpp"
+#include "displaywindow.hpp"
+#include "lines.hpp"
+#include "line_real_t.hpp"
+#include "plot_t.hpp"
+#include "displaylines.hpp"
+
+#include <iostream>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <qcolor.h>
+#include <qfiledialog.h>
+#include <qfont.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qlineedit.h>
+#include <qmessagebox.h>
+#include <qpainter.h>
+#include <qpalette.h>
+#include <qpen.h>
+#include <qpixmap.h>
+#include <qpoint.h>
+#include <qpushbutton.h>
+#include <qslider.h>
+#include <qstyle.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qwidget.h>
+#include <qregexp.h> 
+#include <qscrollview.h>
+
+#define EPSILON 0.00000001
+
+#ifndef MIN
+#define MIN(a, b) (((a < b) ? (a) : (b)))
+#endif
+
+// extern displaywindow **displaywindowset;
+// QImage rec; // this needs to be an INSTANCE VARIABLE
+// bool converted; // wouldn't hurt to make this an INSTANCE VARIABLE either (but it's unused??)
+
+/* 
+ *  Constructs a displaywindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+displaywindow::displaywindow( QWidget* parent, const char* name, bool modal, WFlags fl , DIGDataFormat dataformat, int imagenumber, int x, int y )
+  //    : QDialog( parent, name, modal, fl )
+  : QWidget(parent, name, fl)
+{
+                     // -Qt::WStyle_Customize | Qt::WStyle_NoBorder
+//    std::cerr << "++displaywindow constructor for imagenumber " << imagenumber << std::endl;
+    int i,j;
+    QPixmap disp;
+    recp = 0; // initialize
+    // double **phantomimage;
+    double **phantomimage;
+    QPoint topleft;
+    id=imagenumber;
+    //    displaywindowset[id]=this; // don't need this.
+    setName(imagetitles[id]);
+    imagename=QString(imagetitles[id]);
+    setCaption(imagetitles[id]);
+    //    displaywindowactive[id]=true;
+    status=false;
+    topleft.setX(x);
+    topleft.setY(y);
+    this->move(topleft);
+    imageset[imagenumber]->readImage(imagenumber,dataformat);
+    //printf("max=%f min=%f \n",imageset[imagenumber]->getMax(),imageset[imagenumber]->getMin());
+    if(imageset[imagenumber]->getMax() > globalmax) {
+      globalmax=imageset[imagenumber]->getMax();
+    }
+    if(imageset[imagenumber]->getMin() < globalmin) {
+      globalmin=imageset[imagenumber]->getMin();
+    }
+    maxzoom = 2 * maxSizex / Sizex;
+    if(maxzoom<=1) maxzoom = 2;
+    image = imageset[imagenumber]->getImage();
+    lowthreshold=minval=imageset[imagenumber]->getMin();
+    highthreshold=maxval=imageset[imagenumber]->getMax();
+    range=highthreshold-lowthreshold;
+    Range=highthreshold-lowthreshold;
+    if(phantomexists && id) { // (id) means "image number is not 0" (phantom must be 0)
+      diffimage=(double **)malloc(Sizey*sizeof(double *));
+      if (!diffimage) {
+       std::cerr << "Failed to allocate space for diffimage" << std::endl;
+      }
+      for(j=0;j<Sizey;j++) {
+        diffimage[j]=(double *)malloc(Sizex*sizeof(double));
+        if(!diffimage[j]) {
+         std::cerr << "Failed to allocate space for diffimage" << std::endl;
+        }
+      }  
+      if(!imageset[0]->isLoaded()) {
+       imageset[0]->readImage(0,dataformat);
+       if(imageset[0]->getMax()>globalmax)
+         globalmax=imageset[0]->getMax();
+       if(imageset[0]->getMin()<globalmin)
+         globalmin=imageset[0]->getMin();
+      }
+      phantomimage=imageset[0]->getImage();
+      diffminval=0;
+      diffmaxval=0;
+      for(i=0;i<Sizey;i++) {
+        for(j=0;j<Sizex;j++) {
+          diffimage[i][j]=image[i][j]-phantomimage[i][j];
+          if(diffimage[i][j]>diffmaxval)
+           diffmaxval=diffimage[i][j];
+          if(diffimage[i][j]<diffminval)
+           diffminval=diffimage[i][j];
+        }
+      }
+      if(diffmaxval > globaldiffmax) globaldiffmax = diffmaxval;
+      if(diffminval < globaldiffmin) globaldiffmin = diffminval;
+    }
+
+    int fudge = 105; // "dynamic" replacement of stuff
+    
+    setMinimumSize(200, 500); // good enough
+    //    setMinimumSize( QSize( 190 + MIN(Sizex, maxSizex) +10, 
+    //                    20 + MIN(Sizey,maxSizey) ) );
+    //    resize( QSize( 190+MIN(Sizex, maxSizex), 
+    //            20 + MIN(Sizey,maxSizey) ) ); // no point in this
+    // no maximum size!
+    if(recp) {
+      std::cerr << "Error: recp already assigned!" << std::endl;
+    }
+    recp = new QImage(Sizex,Sizey,8,256);
+    //    rec = QImage(Sizex,Sizey,8,256);
+    QImage& rec = (*recp);
+    for(i=0;i<256;i++)
+      rec.setColor(i,qRgb(i,i,i));
+    for(i=0;i<Sizey;i++)
+      for(j=0;j<Sizex;j++)
+        *(rec.scanLine(i)+j)=(unsigned char)(((image[i][j]-lowthreshold)/range)*255);
+
+    disp = QPixmap(Sizex,Sizey);
+    converted=disp.convertFromImage(rec,QPixmap::Auto);
+
+    //    displaywidget->setGeometry( QRect( 190, 10, Sizex, Sizey ) ); 
+    displaywidget = new displayWidget( this, "displaywidget" );
+    displaywidget->setBackgroundPixmap( disp );
+    //displaywidget->setScaledContents( TRUE );
+    QObject::connect(displaywidget,SIGNAL(clicked(int,int)),this,SLOT(updateClickedPixel(int,int)));
+    zoomlabel = new QLabel( this, "zoomlabel" );
+    zoomlabel->setGeometry( QRect( 65, 5, 45, 20 ) ); 
+    zoomlabel->setText( tr( "Zoom" ) );
+
+    zoomslider = new QSlider( this, "zoomslider" );
+    zoomslider->setGeometry( QRect( 5, 30, 175, 20 ) ); 
+    zoomslider->setOrientation( QSlider::Horizontal );
+    zoomslider->setRange(1,maxzoom);
+    zoomslider->setValue(1);
+    zoomslider->setLineStep(1);
+    zoomslider->setPageStep(2);
+    QObject::connect(zoomslider,SIGNAL(valueChanged(int)),this,SLOT(updateZoom()));
+    zoomval=1;
+
+    zoom = new QLineEdit( this, "zoom" );
+    zoom->setGeometry( QRect( 5, 55, 90, 30 ) ); 
+    zoom->setText("1");
+
+    setzoombutton = new QPushButton( this, "setzoombutton" );
+    setzoombutton->setGeometry( QRect( 95, 50, 90, 40 ) ); 
+    setzoombutton->setText( "Set Value" );
+    QObject::connect(setzoombutton,SIGNAL(clicked()),this,SLOT(updateZoomslider()));
+
+    lowthreshlabel = new QLabel( this, "lowthreshlabel" );
+    //    lowthreshlabel->setGeometry( QRect( 35, 205, 110, 20 ) ); 
+    lowthreshlabel->setGeometry( QRect( 35, 205 - fudge, 110, 20 ) ); 
+    lowthreshlabel->setText( tr( "Low Threshold" ) );
+
+    lowthreshslider = new QSlider( this, "Slider4_2" );
+    lowthreshslider->setGeometry( QRect( 5, 230 - fudge, 175, 20 ) ); 
+    lowthreshslider->setOrientation( QSlider::Horizontal );
+    lowthreshslider->setRange(0,1000000000);
+    lowthreshslider->setValue(0);
+    QObject::connect(lowthreshslider,SIGNAL(valueChanged(int)),this,SLOT(updateLowthresh()));
+
+    lowthresh = new QLineEdit( this, "lowthresh" );
+    lowthresh->setGeometry( QRect( 5, 260 - fudge, 90, 30 ) ); 
+    char s[12];     
+    sprintf(s,"%10.7f",minval);
+    lowthresh->setText(s);
+
+    setlowthreshbutton = new QPushButton( this, "setlowthreshbutton" );
+    setlowthreshbutton->setGeometry( QRect( 95, 255 - fudge, 90, 40 ) ); 
+    setlowthreshbutton->setText( tr( "Set Value" ) );
+    QObject::connect(setlowthreshbutton,SIGNAL(clicked()),this,SLOT(updateLowthreshslider()));
+
+    highthreshlabel = new QLabel( this, "highthreshlabel" );
+    highthreshlabel->setGeometry( QRect( 35, 300 - fudge, 115, 20 ) ); 
+    highthreshlabel->setText( tr( "High Threshold" ) );
+
+    highthreshslider = new QSlider( this, "Slider4_3" );
+    highthreshslider->setGeometry( QRect( 5, 325 -fudge, 175, 20 ) ); 
+    highthreshslider->setOrientation( QSlider::Horizontal );
+    highthreshslider->setRange(0,1000000000);
+    highthreshslider->setValue(1000000000);
+    QObject::connect(highthreshslider,SIGNAL(valueChanged(int)),this,SLOT(updateHighthresh()));
+
+    highthresh = new QLineEdit( this, "highthresh" );
+    highthresh->setGeometry( QRect( 5, 355 - fudge, 90, 30 ) ); 
+    sprintf(s,"%10.7f",maxval);
+    highthresh->setText(s);
+
+    sethighthreshbutton = new QPushButton( this, "sethighthreshbutton" );
+    sethighthreshbutton->setGeometry( QRect( 95, 350 - fudge , 90, 40 ) ); 
+    sethighthreshbutton->setText( tr( "Set Value" ) );
+    QObject::connect(sethighthreshbutton,SIGNAL(clicked()),this,SLOT(updateHighthreshslider()));
+
+    pixelposlabel = new QLabel( this, "pixelposlabel" );
+    pixelposlabel->setGeometry( QRect( 30, 395 - fudge, 45, 20 ) ); 
+    pixelposlabel->setText( tr( "Pixel" ) );
+
+    pixelpos = new QLineEdit( this, "pixelpos" );
+    pixelpos->setGeometry( QRect( 5, 420 - fudge, 80, 30 ) ); 
+
+    pixelvaluelabel = new QLabel( this, "pixelvaluelabel" );
+    pixelvaluelabel->setGeometry( QRect( 110, 395 - fudge, 45, 20 ) ); 
+    pixelvaluelabel->setText( tr( "Value" ) );
+
+    pixelvalue = new QLineEdit( this, "pixelvalue" );
+    pixelvalue->setGeometry( QRect( 90, 420 - fudge, 90, 30 ) );
+
+    savebutton = new QPushButton( this, "savebutton" );
+    savebutton->setGeometry( QRect( 15, 460 - fudge, 150, 40 ) ); 
+    savebutton->setText( tr( "Save Image" ) );
+    QObject::connect(savebutton,SIGNAL(clicked()),this,SLOT(saveImage()));
+
+    linesbutton = new QPushButton( this, "linesbutton" );
+    linesbutton->setGeometry( QRect( 15, 505 - fudge, 150, 40 ) ); 
+    linesbutton->setText( tr( "Display Lines" ) );
+    QObject::connect(linesbutton,SIGNAL(clicked()),this,SLOT(callLines()));
+
+    closebutton = new QPushButton( this, "closebutton" );
+    closebutton->setGeometry( QRect( 15, 550 - fudge, 150, 40 ) ); 
+    closebutton->setText( tr( "Close Window" ) );
+    QObject::connect(closebutton,SIGNAL(clicked()),this,SLOT(closeWindow()));
+
+    scrollv = new QScrollView(this, "qscrollview", Qt::WStyle_Customize | Qt::WStyle_NoBorder );
+    scrollv->viewport()->setBackgroundColor(colorGroup().background());
+    scrollv->setFrameShape(QFrame::NoFrame);
+    scrollv->setGeometry( 190, 10, maxSizex - 200, maxSizey - 100 );
+    scrollv->addChild(displaywidget);
+    useglobal = usedifference = useintensity = false;
+    //    resetImage();
+    // hide(); // don't need, not shown unless show() called
+}  // --displaywindow ctor
+
+
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+displaywindow::~displaywindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+  displaywindowactive[id]=false;
+  //  delete displaywindowset[id]; // see if this will work?
+  //  displaywindowset[id]= 0; // NULL
+}  // --displaywindow::~displaywindow()
+
+
+
+/** non-destructive!  only hide the window, don't lose any information. */
+void displaywindow::closeWindow()
+{
+  displaywindowactive[id]=false;
+  hide();
+}  // --displaywindow::closeWindow()
+
+
+
+/** do the same thing as closing the window, don't self-destruct! */
+void displaywindow::closeEvent(QCloseEvent * e)
+{
+  closeWindow();
+}  // --displaywindow::closeEvent()
+
+
+void displaywindow::updateClickedPixel(int cx,int cy)
+{
+  if(usedifference && !id) return;
+  int ix,iy;
+  char s[12];
+
+  ix=cx/zoomval;
+  iy=cy/zoomval;
+  //printf("pixel(%d,%d) image[%d][%d]=%f\n",cx,cy,iy,ix,image[iy][ix]);
+  sprintf(s,"(%d,%d)",ix,iy);
+  pixelpos->setText(s);
+  if(usedifference)
+    sprintf(s,"%10.7f",diffimage[iy][ix]);
+  else
+    sprintf(s,"%10.7f",image[iy][ix]);
+  pixelvalue->setText(s);
+}  // --displaywindow::updateClickedPixel()
+
+
+
+void displaywindow::updateZoom()
+{
+  char s[12];
+  int v=zoomslider->value();
+  sprintf(s,"%d",v);
+  zoom->setText(s);
+  zoomval=v;
+  if(usedifference) {
+    if(id) resetDiffImage();
+    else {
+      resize(MIN(maxSizex, 200+(Sizex*zoomval)),
+        MIN(maxSizey, 20+(Sizey*zoomval)));
+      scrollv->resizeContents ( Sizex*zoomval + 10, Sizey*zoomval + 10 );      
+    }
+  } else {
+    resetImage();
+  }
+}  // --displaywindow::updateZoom()
+
+
+
+void displaywindow::updateZoomslider()
+{
+  int v;
+  bool ok=false;
+  v=zoom->text().toInt(&ok,10);
+  if(ok && v>0 && v<=maxzoom) 
+    zoomslider->setValue(v);
+  else 
+    QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                                  "Zoom value invalid or out of range.");
+  updateZoom();
+}  // --displaywindow::updateZoomslider()
+
+
+void displaywindow::setGlobal(bool on) {
+  useglobal = on;
+  //  globalthresholdbutton->setChecked( on );
+  lowthreshlabel->setEnabled(!on);
+  lowthreshslider->setEnabled(!on);
+  lowthresh->setEnabled(!on);
+  setlowthreshbutton->setEnabled(!on);
+  highthreshlabel->setEnabled(!on);
+  highthreshslider->setEnabled(!on);
+  highthresh->setEnabled(!on);
+  sethighthreshbutton->setEnabled(!on);
+  setDifference(usedifference); // hack!!! // we no like mutual recursion without base case
+}  // --displaywindow::setGlobal()
+
+
+
+void displaywindow::setDifference(bool on) {
+  usedifference = on;
+  //  differencebutton->setChecked( on );
+  if(usedifference && !id) return;
+  int l;
+  char s[12];
+  l=imagename.length();
+  if(usedifference) {
+    imagename.replace(l-3,1,"d");
+    setCaption(imagename);
+    if(!useglobal) {
+      //      lowthreshslider->setMinValue((int)(diffminval*1000000000));
+      //      lowthreshslider->setValue((int)(diffminval*1000000000));
+      lowthreshslider->setValue(0);
+      highthreshslider->setValue(1000000000);
+      lowthreshold=diffminval;
+      sprintf(s,"%10.7f",lowthreshold);
+      lowthresh->setText(s);
+      //      highthreshslider->setMaxValue((int)(diffmaxval*1000000000));
+      //      highthreshslider->setValue((int)(diffmaxval*1000000000));
+      highthreshold=diffmaxval;
+      sprintf(s,"%10.7f",highthreshold);
+      highthresh->setText(s);
+      range=diffmaxval-diffminval;
+      Range=diffmaxval-diffminval;
+    }
+    resetDiffImage();
+  }
+  else {
+    imagename.replace(l-3,1,"r");
+    setCaption(imagename);
+    if(!useglobal) {
+      //      lowthreshslider->setMinValue((int)(minval*1000000000));
+      //      lowthreshslider->setValue((int)(minval*1000000000));
+      lowthreshslider->setValue(0);
+      highthreshslider->setValue(1000000000);
+      lowthreshold=minval;
+      sprintf(s,"%10.7f",lowthreshold);
+      lowthresh->setText(s);
+      //      highthreshslider->setMaxValue((int)(maxval*1000000000));
+      //      highthreshslider->setValue((int)(maxval*1000000000));
+      highthreshold=maxval;
+      sprintf(s,"%10.7f",highthreshold);
+      highthresh->setText(s);
+      range=maxval-minval;
+      Range=maxval-minval;
+    }
+    resetImage();
+  }
+}  // --displaywindow::setDifference()
+
+
+
+void displaywindow::setIntensity(bool on) {
+  useintensity = on;
+  //  intensitybutton->setChecked(on);
+  int l;
+  l=imagename.length();
+  if(useintensity) {
+    if(id) 
+      imagename.replace(l-1,1,"i");
+    else
+      imagename.append("i");
+    setCaption(imagename);
+  }
+  else {
+    if(id) 
+      imagename.replace(l-1,1,"a");
+    else
+      imagename.remove(l-1,1);
+    setCaption(imagename);
+  }
+  if(usedifference) {
+    if(id) resetDiffImage();
+  } else {
+    resetImage();
+  }
+}  // --displaywindows::setIntensity()
+
+
+
+bool displaywindow::isGlobalthreshs()
+{
+  return useglobal;
+}  // --displaywindow::isGlobalthreshs()
+
+
+
+void displaywindow::updateGlobalthreshs()
+{
+  if(useglobal) {
+    if(usedifference) {
+      if(id) {
+       resetDiffImage();
+      } else {
+       resetImage();
+      }
+    }
+  }
+}  // --displaywindow::updateGlobalthreshs()
+
+
+
+void displaywindow::setGlobalthreshs()
+{
+  if(usedifference && !id) return;
+  if(usedifference) 
+    resetDiffImage();
+  else
+    resetImage();
+}  // --displaywindow::setGlobalthreshs()
+
+
+/** update lowthreshold (number) and lowthresh (text) based on lowthreshslider */
+void displaywindow::updateLowthresh()
+{
+  if(id || !usedifference) {
+    char s[12];
+    int v = lowthreshslider->value();
+    if(v > highthreshslider->value()) { // cap it
+      lowthreshslider->setValue(highthreshslider->value());
+      lowthreshold = highthreshold;
+      lowthresh->setText(highthresh->text());
+    } else {
+      lowthreshold = (((double)v) / 1000000000) * Range + (usedifference ? diffminval : minval);
+      sprintf(s,"%10.7f",lowthreshold);
+      lowthresh->setText(s);
+    }
+    if(usedifference) {
+      resetDiffImage();
+    } else {
+      resetImage();
+    }
+  }
+}  // --displaywindow::updateLowthresh()
+
+
+
+double displaywindow::getLowthresh()
+{
+  return lowthreshold;
+}  // --displaywindow::getLowthresh()
+
+
+/** update lowthreshold and low threshold slider pos based on entered lowthresh */
+void displaywindow::updateLowthreshslider()
+{
+  if(id || !usedifference) {
+    double fv;
+    int v=0;
+    bool ok=false;
+    fv=lowthresh->text().toDouble(&ok);
+    if(ok) {
+      if(fv > highthreshold) {
+       QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                                "Cannot set low threshold higher than high threshold!");
+      } else {
+       if(fv < (usedifference ? diffminval : minval)) {
+         QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                                  "Cannot set low threshold that low!");
+       } else { // GOOD
+         if(fv>0) {
+           v= (int)(((fv - (usedifference ? diffminval : minval)) / Range) * 1000000000 + 0.5);
+         } else {
+           v= (int)(((fv - (usedifference ? diffminval : minval)) / Range) * 1000000000 - 0.5);
+         }
+         lowthreshslider->setValue(v);
+         lowthreshold=fv;
+         if(usedifference) {
+           resetDiffImage();
+         } else {
+           resetImage();
+         }
+         return; // if good
+       }
+      }
+    } else { // not OK
+      QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                              "Low Threshold value invalid.");
+    }
+    char s[12]; // if got here, no good one way or another.
+    sprintf(s,"%10.7f",lowthreshold);
+    lowthresh->setText(s); // old val
+    lowthresh->setFocus();
+  }
+}  // --displaywindow::updateLowthreshslider()
+
+
+/** update highthreshold (number) and highthresh (text) based on highthreshslider */
+void displaywindow::updateHighthresh()
+{
+  if(id || !usedifference) {
+    char s[12];
+    int v = highthreshslider->value();
+    if(v < lowthreshslider->value()) {
+      highthreshslider->setValue(lowthreshslider->value());
+      highthreshold = lowthreshold;
+      highthresh->setText(lowthresh->text());
+    } else {
+      highthreshold = (((double)v) / 1000000000) * Range + (usedifference ? diffminval : minval);
+      sprintf(s,"%10.7f",highthreshold);
+      highthresh->setText(s);
+    }
+    if(usedifference) {
+      resetDiffImage();
+    } else {
+      resetImage();
+    }
+  }
+}  // --displaywindow::updateHighthresh()
+
+
+
+double displaywindow::getHighthresh()
+{
+  return highthreshold;
+}
+
+
+
+void displaywindow::updateHighthreshslider()
+{
+  if(id || !usedifference) {
+    double fv;
+    int v=0;
+    bool ok=false;
+    fv=highthresh->text().toDouble(&ok);
+    if(ok) {
+      if(fv < lowthreshold) {
+       QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                                "Cannot set high threshold lower than low threshold!");
+      } else {
+       if(fv > (usedifference ? diffmaxval : maxval)) {
+         QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                                "Cannot set high threshold that high!");
+       } else { // GOOD
+         if(fv>0) {
+           v=(int)(((fv-(usedifference ? diffminval : minval))/Range)*1000000000+0.5);
+         } else {
+           v=(int)(((fv-(usedifference ? diffminval : minval))/Range)*1000000000+0.5);
+         }
+         highthreshslider->setValue(v);
+         highthreshold=fv;
+         if(usedifference) {
+           resetDiffImage();
+         } else {
+           resetImage();
+         }
+         return; // if good
+       }
+      }
+    } else { // not OK
+      QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                              "High Threshold value invalid.");
+    }
+    char s[12]; // if got here, no good one way or another.
+    sprintf(s,"%10.7f",highthreshold);
+    highthresh->setText(s); // old val
+    highthresh->setFocus();
+  }
+}  // --displaywindow::updateHighthreshslider()
+
+
+
+void displaywindow::resetImage()
+{
+  if(id && usedifference) return;
+  double old_lowthreshold = lowthreshold;  // hack
+  double old_highthreshold = highthreshold;
+  if(useglobal) { // see if we can get away so easily
+    lowthreshold = lowglobalthresh;
+    highthreshold = highglobalthresh;
+  }
+  /* adjust image to current thresholds and zoom */
+  int i,j,m,n,base,point;
+  double t;
+  unsigned char tuc;
+  QPixmap disp;
+  QImage& rec = (*recp);
+  rec = rec.smoothScale(Sizex*zoomval,Sizey*zoomval);
+  rec.setNumColors(256);
+  for(i=0;i<256;i++)
+    rec.setColor(i,qRgb(i,i,i));
+  range=highthreshold-lowthreshold;
+  /* printf("low=%f high=%f range=%f \n",lowthreshold,highthreshold,range); */
+
+  for(i=0;i<Sizey;i++) {
+    base=i*zoomval;
+    for(j=0;j<Sizex;j++) {
+      point=j*zoomval;
+      t=((image[i][j]-lowthreshold)/range);
+      //printf("t=%f\n",t);
+      if(t==0.0 || t<0.0) {
+        //printf("t=%f\n",t);
+       for(m=0;m<zoomval;m++) 
+         for(n=0;n<zoomval;n++) 
+           *(rec.scanLine(base+m)+point+n)=0;
+      }
+      else {
+        //printf("t=%f\n",t);
+       if(t>1.0 || t==1.0) {
+         for(m=0;m<zoomval;m++) 
+           for(n=0;n<zoomval;n++) 
+             *(rec.scanLine(base+m)+point+n)=255;
+         //printf("%d\n",rec.pixelIndex(i,j));
+       }
+       else {
+          //printf("t=%f\n",t);
+         if(useintensity) {
+           tuc=(unsigned char)(sqrt(t)*255);
+           for(m=0;m<zoomval;m++) 
+             for(n=0;n<zoomval;n++) {
+               //printf("tuc=%d\n",tuc);
+               *(rec.scanLine(base+m)+point+n)=tuc;
+               //printf("%d\n",*(rec.scanLine(i)+j));
+             }
+         }
+         else {
+           tuc=(unsigned char)(t*255);
+           for(m=0;m<zoomval;m++) 
+             for(n=0;n<zoomval;n++) {
+               //printf("tuc=%d\n",tuc);
+               *(rec.scanLine(base+m)+point+n)=tuc;
+               //printf("%d\n",*(rec.scanLine(i)+j));
+             }
+         }
+       }
+      }
+    }
+  }
+  converted=disp.convertFromImage(rec,QPixmap::Auto); 
+  displaywidget->resize(Sizex*zoomval,Sizey*zoomval);
+  displaywidget->setBackgroundPixmap( disp );
+  if(useglobal) {
+    lowthreshold = old_lowthreshold;
+    highthreshold = old_highthreshold;
+  }
+  resize(MIN(maxSizex, 200+(Sizex*zoomval)),
+        MIN(maxSizey, 20+(Sizey*zoomval)));
+  scrollv->resizeContents ( Sizex*zoomval + 10, Sizey*zoomval + 10 );
+} // --displaywindow::resetImage()
+
+
+
+void displaywindow::resetDiffImage() 
+{
+  double old_lowthreshold = lowthreshold;  // hack
+  double old_highthreshold = highthreshold;
+  if(useglobal) { // see if we can get away so easily
+    lowthreshold = lowglobalthresh;
+    highthreshold = highglobalthresh;
+  }
+  /* adjust image to current thresholds and zoom */
+  int i,j,m,n,base,point;
+  double t;
+  unsigned char tuc;
+  QPixmap disp;
+  QImage& rec = (*recp);
+  rec = rec.smoothScale(Sizex*zoomval,Sizey*zoomval);
+  rec.setNumColors(256);
+  for(i=0;i<256;i++)
+    rec.setColor(i,qRgb(i,i,i));
+  range=highthreshold-lowthreshold;
+  /* printf("low=%f high=%f range=%f \n",lowthreshold,highthreshold,range); */
+
+  for(i=0;i<Sizey;i++) {
+    base=i*zoomval;
+    for(j=0;j<Sizex;j++) {
+      point=j*zoomval;
+      t=((diffimage[i][j]-lowthreshold)/range);
+      //printf("t=%f\n",t);
+      if(t==0.0 || t<0.0) {
+        //printf("t=%f\n",t);
+       for(m=0;m<zoomval;m++) 
+         for(n=0;n<zoomval;n++) 
+           *(rec.scanLine(base+m)+point+n)=0;
+      }
+      else {
+        //printf("t=%f\n",t);
+       if(t>1.0 || t==1.0) {
+         for(m=0;m<zoomval;m++) 
+           for(n=0;n<zoomval;n++) 
+             *(rec.scanLine(base+m)+point+n)=255;
+         //printf("%d\n",rec.pixelIndex(i,j));
+       }
+       else {
+          //printf("t=%f\n",t);
+         if(useintensity) {
+           tuc=(unsigned char)(sqrt(t)*255);
+           for(m=0;m<zoomval;m++) 
+             for(n=0;n<zoomval;n++) {
+               //printf("tuc=%d\n",tuc);
+               *(rec.scanLine(base+m)+point+n)=tuc;
+               //printf("%d\n",*(rec.scanLine(i)+j));
+             }
+         }
+         else {
+           tuc=(unsigned char)(t*255);
+           for(m=0;m<zoomval;m++) 
+             for(n=0;n<zoomval;n++) {
+               //printf("tuc=%d\n",tuc);
+               *(rec.scanLine(base+m)+point+n)=tuc;
+               //printf("%d\n",*(rec.scanLine(i)+j));
+             }
+         }
+       }
+      }
+    }
+  }
+  converted=disp.convertFromImage(rec,QPixmap::Auto); 
+  displaywidget->resize(Sizex*zoomval,Sizey*zoomval);
+  displaywidget->setBackgroundPixmap( disp );
+  if(useglobal) {
+    lowthreshold = old_lowthreshold;
+    highthreshold = old_highthreshold;
+  }
+  resize(MIN(maxSizex, 200+(Sizex*zoomval)),
+        MIN(maxSizey, 20+(Sizey*zoomval)));
+  scrollv->resizeContents ( Sizex*zoomval + 10, Sizey*zoomval + 10 );
+}  // --displaywindow::resetDiffImage()
+
+
+
+void displaywindow::resetImageRange() 
+{
+  /* adjust image to current thresholds */
+  int i,j;
+  double t;
+  QPixmap disp;
+  QImage& rec = (*recp);
+  range=highthreshold-lowthreshold;
+  /* printf("low=%f high=%f range=%f \n",lowthreshold,highthreshold,range); */
+
+  for(i=0;i<Sizey;i++) 
+    for(j=0;j<Sizex;j++) {
+      t=((image[i][j]-lowthreshold)/range);
+      if(t<=0)
+       *(rec.scanLine(i)+j)=0;
+      else 
+       if(t>=1) 
+         *(rec.scanLine(i)+j)=255;
+       else 
+         *(rec.scanLine(i)+j)=(unsigned char)(t*255);
+    }
+  converted=disp.convertFromImage(rec,QPixmap::Auto); 
+  displaywidget->setBackgroundPixmap( disp );
+
+}  // --displaywindow::resetImageRange() 
+
+
+
+/** Starts a lines window 
+@param void
+@author Bruno M. Carvalho for version 1.0, Deniz
+@version 1.4 
+@description a lot like SnarkDisplay::callLines() defined in SnarkDisplay.cpp
+*/
+void displaywindow::callLines()
+{
+  int l[4];
+  int linetype,c,i,j,minx,maxx, topleftx,toplefty;
+  double **img;
+  double miny,maxy;
+  QString title,xaxis,yaxis,temp;
+  QPoint topleft;
+  imagename = imagename.simplifyWhiteSpace();
+  lineswindow* nw = new lineswindow(this,imagename,lowthreshold,highthreshold,true,1);
+  c=nw->exec();
+  if(c==QDialog::Accepted) {
+    linetype=nw->getLinetype(); // default == 0 == row; 1 == column
+    // '0' means 'show for suchandsuch rows all columns within x-selection' etc
+    l[0]=nw->getLine1();
+    l[1]=nw->getLine2();
+    l[2]=nw->getLine3();
+    l[3]=nw->getLine4();
+    title=nw->getTitle();    // bug 227, wei, 6/13/2007
+    xaxis=nw->getXAxis();
+    yaxis=nw->getYAxis();
+    minx=nw->getMinX();
+    maxx=nw->getMaxX();
+    miny=nw->getMinY();
+    maxy=nw->getMaxY();
+    topleft=this->pos();
+    topleftx=topleft.x();
+    toplefty=topleft.y();
+    QString rowOrColumn = ( (linetype) ? ("Column ") : ("Row ") );
+    QString vs = ( (linetype) ? ("Rows") : ("Columns"));
+    // loop through selection
+    for(j=0;j<4;j++) {
+      if(l[j]>=0 && l[j]<Sizex) {
+       // spawn different plot for each valid j!
+       line_real_set_t myLRS(minx,maxx,miny,maxy); // create a brand new LRS for brand new plot
+       myLRS.clear(); // and be sure of it!
+       topleftx+=30;
+       toplefty+=30;
+       QPixmap* pixmap = new QPixmap(sd_line_t::WIDTH, sd_line_t::HEIGHT);
+       pixmap->fill(Qt::white);
+        QPainter picasso;
+        picasso.begin(pixmap);
+        picasso.setBackgroundColor(Qt::white);
+       QString whichRowOrCol;
+       whichRowOrCol.setNum(l[j]);
+       QString plotSuffix = (rowOrColumn + whichRowOrCol);
+       //QString plotName = imagename.simplifyWhiteSpace();
+       QString plotName = title.simplifyWhiteSpace();   // bug 227, wei, 6/13/2007
+       plotName += (" :: " + plotSuffix);
+       line_real_t ourImageLine(imagename);
+       // references for unification -- have to be initialized right here
+       int&row = ( (linetype) ? (i) : (l[j]) );
+       int&col = ( (linetype) ? (l[j]) : (i) );
+
+        // now do the stuff for phantom
+       if((nw->isPhantomChecked()) && id) {
+         if(!imageset[0]->isLoaded())
+           imageset[0]->readImage(0,DIGDataFormat_ASCII);
+         img=imageset[0]->getImage();
+         QString phantomName = imagetitles[0];
+         phantomName = phantomName.simplifyWhiteSpace();
+         line_real_t phantomLine(phantomName);
+         for(i=0;i<Sizey;i++) {
+           phantomLine.add(i, img[row][col]);
+         }
+         myLRS.add(phantomLine);
+       }
+
+
+        double **&ourim = ( (usedifference) ? (diffimage) : (image) );
+       for(i=0;i<Sizey;i++) {
+         ourImageLine.add(i,ourim[row][col]);
+       }
+       myLRS.add(ourImageLine);
+
+       plot_t myPlot(myLRS);
+       myPlot.setName(plotName);    // actual param has to be be a legitimate QString object
+       myPlot.setXAxisName(xaxis);  // for all three of these names
+       myPlot.setYAxisName(yaxis);
+        // jk 1/13/2009 adding grayScale option for graphs
+        if (nw->isGrayScaleChecked()) {
+            myPlot.plotGray(picasso);
+        }
+        else{
+            myPlot.plot(picasso);
+        }
+        /* Call display lines with pixmap as one of the arguments */
+        displaylineswindow* dw=new displaylineswindow(this,plotName,pixmap,false,0,topleftx,toplefty);
+        dw->show();
+      }
+    }
+  }
+}  // --displaywindow::callLines()
+
+
+
+/** Saves the current image
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void displaywindow::saveImage()
+{
+  int i,j;
+  QString prefixForSaving = imagename;
+  prefixForSaving = prefixForSaving.simplifyWhiteSpace();
+  prefixForSaving.replace( QRegExp("\\="), "_EQ_");
+  prefixForSaving.replace( QRegExp("\\+"), "_PLUS_");
+  prefixForSaving.replace( QRegExp("\\@"), "_AT_");
+  //  prefixForSaving.replace( QRegExp("-"), "_MINUS_"); // maybe
+  // convert everything non-alphanumeric to underscore
+  prefixForSaving.replace( QRegExp("[^a-zA-Z0-9]"), "_");
+  // allow maximum of 2 consecutive underscores  
+  prefixForSaving.replace( QRegExp("__+") , "__"); 
+  // chuck underscore from beginning and end
+  prefixForSaving.replace( QRegExp("^_+"), "");
+  prefixForSaving.replace( QRegExp("_+$"), "");
+
+  QString myExtensionFilter = 
+    "png (PNG file);;"
+    "bmp (BMP file);;"
+    "flt (ASCII float file);;"
+    "pbm (PBM file);;"
+    "pgm (PGM file);;"
+    "ppm (PPM file);;"
+    "xbm (XBM file);;"
+    "xpm (XPM file)"   ;
+
+  QString mySaveAs = "Save Image as";
+  QString startInDir = "./";
+  QFileDialog fd(startInDir, myExtensionFilter, this, mySaveAs, true);
+  fd.setMode(QFileDialog::AnyFile);
+  fd.setSelection(prefixForSaving);
+  if (QDialog::Accepted != fd.exec()) {
+    if(std::verbose >=2) std::cout << "--displaywindow::saveImage() in a hurry" << std::endl;
+    return; // happens, say, when cancel is pressed.  just leave, no harm.
+  }
+  QString userFileSavePrefix = fd.selectedFile();
+  QString userFileSaveExtension = fd.selectedFilter();
+  if (userFileSavePrefix.isEmpty()) { // double-check for absurdity
+    if(std::verbose >=2) std::cout << "--displaywindow::saveImage() in a hurry" << std::endl;
+    return; // happens, say, when cancel is pressed.  just leave, no harm.
+  }
+  if(std::verbose >=2) std::cout << "Got file name as: \"" << userFileSavePrefix << "\"" << std::endl;
+  if(std::verbose >=2) std::cout << "Got selected ext: \"" << userFileSaveExtension << "\"" << std::endl;
+  /* NB: userFileSavePrefix now contains directory info as well.
+   * if user entered additional forward-slashes without
+   * knowing that it signified directory, that's NOT our problem.
+   * (the user MAY legitimately enter "a/myImage" as file name if there is a directory "a" 
+   *   within the currently open directory in the save dialog window)
+   * do part only after last forward-slash (i.e., what user entered)...
+   * don't want to burn ourselves if path in fact had legit non-alphanumericounderscore chars
+   */
+  QString justFilePrefix, justPath;
+  // funnylooking because written to work with Qt BOTH 2.3 and 3.3
+  int posLastSlash = userFileSavePrefix.findRev('/'); // returns pos if found, -1 if not.
+  if (-1 != posLastSlash) {
+    justPath = userFileSavePrefix.left(posLastSlash+1); // +1 to include last '/'
+    justFilePrefix = userFileSavePrefix;
+    QRegExp fakeRegex("^" + justPath); // it just *looks* fake...
+    justFilePrefix.replace( fakeRegex, "" ); // chuck away including last '/' for justFilePrefix
+    if(std::verbose >=2) std::cout << "just after regex replace, justFilePrefix: \"" << justFilePrefix << "\"" << std::endl;
+  } else {  // if for some reason no forwardslash, handle that gracefully too.
+    justFilePrefix = userFileSavePrefix;
+    justPath = "";
+  }
+  if(std::verbose >=2) std::cout << "justPath is: \"" << justPath << "\"" << std::endl;
+  if(std::verbose >=2) std::cout << "justFilePrefix is first: \"" << justFilePrefix << "\"" << std::endl;
+  // remove justFilePrefix from ONLY the end of 'userFileSavePrefix'.
+  justFilePrefix.replace( QRegExp("="), "_EQ_");
+  justFilePrefix.replace( QRegExp("+"), "_PLUS_");
+  justFilePrefix.replace( QRegExp("[^a-zA-Z0-9]"), "_"); // no forward slash in regex
+  // allow maximum of 2 consecutive underscores  
+  justFilePrefix.replace( QRegExp("__+") , "__"); 
+  // chuck underscore from beginning and end
+  justFilePrefix.replace( QRegExp("^_+"), "");
+  justFilePrefix.replace( QRegExp("_+$"), "");
+  if(std::verbose >=2) std::cout << "justFilePrefix is later: \"" << justFilePrefix << "\"" << std::endl;
+  // reset userFileSavePrefix by putting back together justPath and the refined justFilePrefix
+  userFileSavePrefix = justPath + justFilePrefix;
+  userFileSaveExtension.truncate(3);
+  if(std::verbose >=2) std::cout << "My userFileSavePrefix is \"" << userFileSavePrefix << "\"" << std::endl;
+  if(std::verbose >=2) std::cout << "My userFileSaveExtension is \"" << userFileSaveExtension << "\"" << std::endl;
+  QString extensionUpper = userFileSaveExtension.upper();
+  QString saveFullNameWithPath = userFileSavePrefix + "." + extensionUpper;
+  if(std::verbose >=2) std::cout << "extensionUpper is now \"" << extensionUpper << "\"" << std::endl;
+  if(std::verbose >=2) std::cout << "saveFullNameWithPath is now \"" << saveFullNameWithPath << "\"" << std::endl;
+  if(extensionUpper.compare(QString("FLT"))) { // if NOT "FLT" extension ("FLT" is Bruno's / Linkoping's bunchafloats format)
+    QImageIO recio;
+    QImage& rec = (*recp);
+    recio.setImage(rec);
+    recio.setFormat(extensionUpper);
+    recio.setFileName(saveFullNameWithPath);
+    if ( recio.write() ) {
+      if(std::verbose >= 1) {
+       std::cout << "displaywindow::saveImage() successfully saved: \"" << saveFullNameWithPath << "\"" << std::endl;
+       return;
+      }
+    } else {
+      std::cerr << "Error opening " << saveFullNameWithPath << std::endl;
+      return;
+    }
+  } else {
+    FILE* fp;
+    if((fp = fopen(saveFullNameWithPath.latin1(),"w"))==NULL) {
+      std::cerr << "UNsuccessfully tried to save as: \"" << saveFullNameWithPath << "\"" << std::endl;
+      return;
+    } else {
+      for(i=0;i<Sizey;i++) {
+       for(j=0;j<Sizex;j++) {
+         fprintf(fp,"%f ",image[i][j]);
+         if(!((j+1)%5)) 
+           fprintf(fp,"\n");
+       }
+       fprintf(fp,"\n");
+      }
+      fclose(fp);
+      if(std::verbose>=1) {
+       std::cout << "(we think) successfully saved: \"" << saveFullNameWithPath << "\"" << std::endl;
+      }
+    }
+  }
+}  // --displaywindow::saveImage()
diff --git a/tools/Display/displaywindow.hpp b/tools/Display/displaywindow.hpp
new file mode 100755 (executable)
index 0000000..60755c9
--- /dev/null
@@ -0,0 +1,109 @@
+/** @file displaywindow.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef DISPLAYWINDOW_H
+#define DISPLAYWINDOW_H
+
+#include "variables.hpp"
+#include "displaywidget.hpp"
+#include <qvariant.h>
+#include <qdialog.h>
+#include <qimage.h>
+#include <qwidget.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+class QSlider;
+class QListBox;
+class QImage;
+class QPixmap;
+class QScrollView;
+
+// class displaywindow : public QDialog
+class displaywindow : public QWidget
+{ 
+    Q_OBJECT
+
+public:
+    displaywindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 , DIGDataFormat fileformat = DIGDataFormat_BINARY, int imagenumber = 0, int x = 0 , int y = 0 );
+    ~displaywindow();
+
+    bool useglobal, usedifference, useintensity;
+    int id;
+    QString imagename;
+    QImage* recp;
+    bool converted;
+    double **image;
+    double **diffimage;
+    bool status;
+    double maxval,minval,diffmaxval,diffminval;
+    double lowthreshold,highthreshold,difflowthreshold,diffhighthreshold;
+    double range,Range;
+    int zoomval;
+    int maxzoom;
+    displayWidget* displaywidget;
+    QScrollView* scrollv;
+    QLabel* zoomlabel;
+    QSlider* zoomslider;
+    QLineEdit* zoom;
+    QPushButton* setzoombutton;
+  //    QRadioButton* globalthresholdbutton;
+  //    QRadioButton* differencebutton;
+  //    QRadioButton* intensitybutton;
+    QLabel* lowthreshlabel;
+    QSlider* lowthreshslider;
+    QLineEdit* lowthresh;
+    QPushButton* setlowthreshbutton;
+    QLabel* highthreshlabel;
+    QSlider* highthreshslider;
+    QLineEdit* highthresh;
+    QPushButton* sethighthreshbutton;
+    QLabel* pixelposlabel;
+    QLineEdit* pixelpos;
+    QLabel* pixelvaluelabel;
+    QLineEdit* pixelvalue;
+    QPushButton* profilebutton;
+    QPushButton* linesbutton;
+    QPushButton* savebutton;
+    QPushButton* closebutton;
+public slots:
+    void updateClickedPixel(int cx,int cy);
+    void updateZoom();
+    void updateZoomslider();
+
+    void setGlobal(bool on);
+    void setDifference(bool on);
+    void setIntensity(bool on);
+
+    bool isGlobalthreshs();
+    void updateGlobalthreshs();
+  //    void setGlobalthreshs(bool value);
+    void setGlobalthreshs();
+  //    void differencePhantom();
+  //    void intensity();
+    void updateLowthresh();
+    double getLowthresh();
+    void updateLowthreshslider();
+    void updateHighthresh();
+    double getHighthresh();
+    void updateHighthreshslider();
+    void resetImage();
+    void resetDiffImage();
+    void resetImageRange();
+    void callLines();
+    void saveImage();
+    void closeWindow();
+
+ protected:
+    virtual void closeEvent(QCloseEvent *e);
+};
+
+#endif // DISPLAYWINDOW_H
diff --git a/tools/Display/eval_helper.cpp b/tools/Display/eval_helper.cpp
new file mode 100755 (executable)
index 0000000..eddbdc8
--- /dev/null
@@ -0,0 +1,2544 @@
+/** @file eval_helper.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+ */
+
+/** @name eval_helper.hpp
+    @type C++ header file
+    @date March 2004
+    @package snark14Display
+    @purpose to help snark14Display in the interpretation of eval files, broadly speaking.
+    @author deniz, who realizes after 1200 lines that a lot of space and (programmer) time 
+    could have been saved by enumerated-typing of global resolution measure field names
+ *
+    @description this header file contains the implementation of classes, starting with:
+    phantomeas: phantom measurement structure
+    globmeas  : global resolution measurement structure
+    PBPmeas   : point-by-point error measurement structure
+  (1-line measurements in eval: glorified structures with constructors that take "measline_t" (char*))
+ *
+ phantomeas   globmeas    PBPmeas
+   |            |           |
+   |     globmeaset   PBPmeaset (info from a single execution of a single algorithm in a call to EVALUATE)
+   |        |          |
+   |       eval_execution   (info from a single call to EVALUATE, that includes calls like "EVALUATE BOTH")
+   |         |
+   |         |
+  eval_exec_set    (info from all EVALUATE calls of a snark14 run)
+ *
+  You can read "is member of" relationships if you go top down, very intuitive up to abbreviation.
+ *
+  Attempted improvements to Bruno's version (which was < 1.0):
+  - no more segmentation faults due to eval
+  - dynamic parsing and allocation for 'residual', an optional field of a globmeas, that can vary WITHIN a globmeaset
+  - variable number of fields in a point-by-point measurement structure (PBPmeas)
+  - support for multiple EVALUATE calls in snark14
+  - extrema calculated dynamically, "recursively"
+ *
+  Notes:
+  - the number of fields of all PBPmeas structures is uniquely determined by the snark14 produced eval file
+    deniz thinks it is proportional to the logarithm of phantom/reconstruction images' number-of-pixels-on-side
+  - phantomeas can be tied to eval_exec_set due to multiplicity, since there is exactly one phantom in each snark run,
+       but it can occur with OR without residual, in the same.
+ *
+  TO DO:
+  - plot phantomeas with globals.
+ */
+
+#include <qwidget.h>
+#include <qpoint.h>
+#include <qpixmap.h>
+#include <qpainter.h>
+#include <qstring.h>
+#include <exception>
+#include <stdexcept>
+#include <cstdio>
+#include <iostream>
+#include <deque>
+#include <vector>
+
+#include "eval_helper.hpp"
+#include "displaylines.hpp"
+#include "chooseRanges.hpp"
+
+#include "line_real_t.hpp"
+#include "plot_t.hpp"
+
+//  typedef char* measline_t;
+//  typedef char* execname_t;
+
+// global (resolution) measurements go into global measurement sets
+// point-by-point resolution measurements go into PBP measurement sets
+// an evaluation can have
+
+/** each phantomeas corresponds to a line of phantom stats in the eval file */
+
+class phantomeas {
+    int region;
+    int area;
+    double average;
+    double variance;
+    double stddev;
+    double* residualp;
+    double* kullbackp;
+public:
+
+    /** phantomeas 1-arg constructor */
+    phantomeas(measline_t line) {
+        //0     625    0.3622                        0.1860    0.4312
+        //1     4225   0.3574                        0.2795    0.5287 1216.8134
+        double resid;
+        double kullback;
+        int numthingsread =
+                std::sscanf(line, "%d %d %lg %lg %lg %lg %lg",
+                &region, &area, &average, &variance, &stddev, &resid, &kullback);
+        if (numthingsread < 5)
+            throw std::invalid_argument("line in phantomeas constructor must have at least 5 numeric fields");
+        if (numthingsread == 5) {
+            residualp = 0;
+            kullbackp = 0;
+        } else if (numthingsread == 6) {
+               kullbackp = 0;
+            residualp = new double;
+            *residualp = resid;
+        } else if (numthingsread == 7) {
+            residualp = new double;
+            *residualp = resid;
+            kullbackp = new double;
+            *kullbackp = kullback;
+        } else throw std::logic_error("Something very interesting is wrong in phantomeas constructor");
+    } // --phantomeas 1-arg ctor
+
+    /** phantomeas ("deep") copy ctor */
+    phantomeas(const phantomeas& p) {
+        region = p.region;
+        area = p.area;
+        variance = p. variance;
+        stddev = p.stddev;
+        if (p.residualp) {
+            residualp = new double;
+            *residualp = *(p.residualp);
+        } else residualp = 0;
+        if (p.kullbackp) {
+               kullbackp = new double;
+            *kullbackp = *(p.kullbackp);
+        } else kullbackp = 0;
+    } // --phantomeas::operator=
+
+    /** phantomeas deep-copying assignment operator */
+    phantomeas & operator=(const phantomeas& p) {
+        std::cout << "in phantomeas deep assignment operator!" << std::endl;
+        if (this == &p) return *this; // Gracefully handle self assignment
+        region = p.region;
+        area = p.area;
+        variance = p. variance;
+        stddev = p.stddev;
+        if (p.residualp) {
+            residualp = new double;
+            *residualp = *(p.residualp);
+        } else residualp = 0;
+        if (p.kullbackp) {
+               kullbackp = new double;
+            *kullbackp = *(p.kullbackp);
+        } else kullbackp = 0;
+        return *this;
+    } // --phantomeas::operator=
+
+    int getRegion() const {
+        return region;
+    }
+    //  int getArea()        const { return area;           }
+
+    double getAverage() const {
+        return average;
+    }
+
+    double getVariance() const {
+        return variance;
+    }
+
+    double getStddev() const {
+        return stddev;
+    }
+
+    bool hasResidual() const {
+        return (0 != residualp);
+    }
+
+    bool hasKullback() const {
+        return (0 != kullbackp);
+    }
+
+    /** getResidual() should not be called without calling hasResidual() */
+    double getResidual() { // defensive programming
+        if (0 == residualp)
+            throw std::logic_error("called phantomeas::getResidual() without calling hasResidual() where there is no residual");
+        // else
+        return (*residualp);
+    }
+
+    /** getKullback() should not be called without calling hasKullback() */
+    double getKullback() { // defensive programming
+        if (0 == kullbackp)
+            throw std::logic_error("called phantomeas::getKullback() without calling hasKullback() where there is no KL distance");
+        // else
+        return (*kullbackp);
+    }
+
+    void setNewResidual(double res) {
+        residualp = new double;
+        *residualp = res;
+    }
+
+    void setNewKullback(double kld) {
+        kullbackp = new double;
+        *kullbackp = kld;
+    }
+
+    double get(globalYVar_t globalYVar) {
+        switch (globalYVar) {
+            case AVERAGE:
+                return average;
+                break;
+            case VARIANCE:
+                return variance;
+                break;
+            case STDDEV:
+                return stddev;
+                break;
+            case RESIDUAL:
+                if (hasResidual())
+                    return getResidual();
+            case KULLBACK:
+                if (hasKullback())
+                    return getKullback();
+            default:
+                // it is likely for this to be called with, say, distance, which phantom has none
+                return -2.0;
+                // negative value ought to be be ignored by callee
+        }
+    } // phantomeas::get()
+
+    /** show routine for phantom, for debug  */
+    void show() {
+        std::cout << "> Phantom:" << std::endl;
+        std::cout << "region average variance stddev";
+        if (hasResidual()) std::cout << " residual";
+        if (hasKullback()) std::cout << " KL distance";
+        std::cout << std::endl;
+        std::cout << region << " " << average << " " << variance << " " << stddev;
+        if (hasResidual()) std::cout << " " << getResidual();
+        if (hasKullback()) std::cout << " " << getKullback();
+        std::cout << std::endl;
+        std::cout << "< done showing phantom" << std::endl;
+    } // --show
+
+    ~phantomeas() {
+        //    std::cout << "in phantomeas destructor!" << std::endl;
+        if (residualp) delete residualp;
+        if (kullbackp) delete kullbackp;
+    }
+}; // --class phantomeas
+
+/** a globmeas corresponds to one line of global resolution stats in the eval file */
+class globmeas {
+    // algname now in globmeaset
+    int iter; // some iterations might be missing from eval file => not always 1..n
+    int area;
+    double average;
+    double distance;
+    double relerr;
+    double variance;
+    double stddev;
+    double* residualp; // uninitialized if no residual
+    double* kullbackp; // uninitialized if no kl distance
+    static unsigned NEXT_GMID;
+    unsigned GMID;
+    // setfields(int iter, int area, double average, double distance
+public:
+
+    globmeas(measline_t line) {
+        GMID = NEXT_GMID++;
+        //    1      4225    0.3850    0.8711    0.8927    0.0122    0.1104 9756.9313
+        //  char *line2 = "  1      4225    0.3850    0.8711    0.8927    0.0122    0.1104 9756.9313";
+        //  char *line2 = "  1      4225    0.3850    0.8711    0.8927    0.0122    0.1104          ";
+        double resid;
+        double kldis;
+        int numthingsread =
+                std::sscanf(line, "%d %d %lg %lg %lg %lg %lg %lg %lg",
+                &iter, &area, &average, &distance, &relerr, &variance, &stddev, &resid, &kldis);
+        if (numthingsread < 7)
+            throw std::invalid_argument("line in globmeas constructor must have at least 7 numeric fields");
+        if (numthingsread == 7) {
+            residualp = 0;
+            kullbackp = 0;
+        } else if (numthingsread == 8) {
+            residualp = new double;
+            *residualp = resid;
+            kullbackp = 0;
+        } else if (numthingsread == 9) {
+            residualp = new double;
+            *residualp = resid;
+            kullbackp = new double;
+            *kullbackp = kldis;
+        } else throw std::logic_error("Something very interesting is wrong in globmeas constructor");
+    } // --globmeas 1-arg ctor
+
+    /** globmeas deep copy constructor */
+    globmeas(const globmeas& g) {
+        if (std::verbose >= 5) std::cout << "In deep copy constructor with rhs GMID " << g.getGMID() << std::endl;
+        GMID = g.GMID;
+        iter = g.iter;
+        area = g.area;
+        average = g.average;
+        distance = g.distance;
+        relerr = g.relerr;
+        variance = g. variance;
+        stddev = g.stddev;
+        if (g.residualp) {
+            residualp = new double;
+            *residualp = *(g.residualp);
+        } else residualp = 0;
+        if (g.kullbackp) {
+               kullbackp = new double;
+            *kullbackp = *(g.kullbackp);
+        } else kullbackp = 0;
+    } // --globmeas copy ctor
+
+    unsigned getGMID() const {
+        return static_cast<unsigned> (GMID);
+    }
+
+    /** globmeas deep-copying assignment operator */
+    globmeas & operator=(const globmeas& g) {
+        if (std::verbose >= 5) std::cout << "In globmeas operator= with rhs GMID " << g.getGMID() << std::endl;
+        if (this == &g) return *this; // Gracefully handle self assignment
+        GMID = g.GMID;
+        iter = g.iter;
+        area = g.area;
+        average = g.average;
+        distance = g.distance;
+        relerr = g.relerr;
+        variance = g. variance;
+        stddev = g.stddev;
+        if (g.residualp) {
+            residualp = new double;
+            *residualp = *(g.residualp);
+        } else residualp = 0;
+        if (g.kullbackp) {
+               kullbackp = new double;
+            *kullbackp = *(g.kullbackp);
+        } else kullbackp = 0;
+        return *this;
+    } // --globmeas::operator=
+
+    /** globmeas functions that 'get' fields */
+    int getIter() const {
+        return iter;
+    }
+    //  int    getArea()     const { return area; }
+
+    double getAverage() const {
+        return average;
+    }
+
+    double getDistance() const {
+        return distance;
+    }
+
+    double getRelerr() const {
+        return relerr;
+    }
+
+    double getVariance() const {
+        return variance;
+    }
+
+    double getStddev() const {
+        return stddev;
+    }
+
+    bool hasResidual() const {
+        return (0 != residualp);
+    }
+
+    bool hasKullback() const {
+        return (0 != kullbackp);
+    }
+
+    double getResidual() const {
+        if (0 == residualp)
+            throw std::logic_error("called getResidual without calling hasResidual() where there is no residual");
+        // else
+        return (*residualp);
+    }
+
+    double getKullback() const {
+        if (0 == kullbackp)
+            throw std::logic_error("called getKullback without calling hasKullback() where there is no kl distance");
+        // else
+        return (*kullbackp);
+    }
+
+    /** globmeas::show_all() is a debug routine to show all fields of a single global measurement of an iteration */
+    void show_all() {
+        std::cout << iter;
+        std::cout << " ";
+        std::cout << area;
+        std::cout << " ";
+        std::cout << average;
+        std::cout << " ";
+        std::cout << distance;
+        std::cout << " ";
+        std::cout << relerr;
+        std::cout << " ";
+        std::cout << variance;
+        std::cout << " ";
+        std::cout << stddev;
+        if (hasResidual()) {
+            std::cout << " ";
+            std::cout << getResidual();
+        }
+        if (hasKullback()) {
+            std::cout << " ";
+            std::cout << getKullback();
+        }
+        std::cout << std::endl;
+    } // globmeas::show_all()
+
+    ~globmeas() {
+        if (0 != residualp) {
+            if (std::verbose >= 5) std::cout << "Residualp was nonzero, residual " << (*residualp) << " ";
+            delete residualp;
+        }
+        if (0 != kullbackp) {
+            if (std::verbose >= 5) std::cout << "Kullbackp was nonzero, kl distance " << (*kullbackp) << " ";
+            delete kullbackp;
+        }
+        if (std::verbose >= 5) std::cout << "In globmeas " << GMID << " Dtor" << std::endl;
+    } // --globmeas dtor
+}; // --class globmeas
+
+// unsigned globmeas::NEXT_GMID = 0; // class variable initialization
+
+/** a globmeaset is the set of global resolution statistics for one execution of an algorithm */
+class globmeaset {
+    execname_t execname;
+    //  QString execname;   // name of the execution
+    // note that the same algorithm can have several executions
+    char algname[5]; // name of the algorithm (3 or 4 letters followed by null terminator)
+    std::deque<globmeas> measurements;
+    // why a deque and not a vector?
+    // --all access is sequential
+    // --regular queue does not allow iterator (i think)
+    // --when you push_back something new, it does not destruct all existing elements, ensuring linear runtime
+    // --can be used a lot like a vector (.size() etc are available)
+    double minAverage, maxAverage, minDistance, maxDistance, minRelerr, maxRelerr;
+    double minVariance, maxVariance, minStddev, maxStddev;
+    double minResidual, maxResidual; // both -1 if no line with residual in the set
+    double minKullback, maxKullback; // both -1 if no line with kl distance in the set
+    //  int minArea, maxArea;
+    int minIter, maxIter; // minIter is not necessarily 1
+    static unsigned NEXT_GMSID; // one for all global measurement sets
+    unsigned GMSID; // unique ID for this set
+    bool completed;
+    bool extrema_calculated;
+    char name[512];
+public:
+
+    globmeaset(execname_t line) {
+        GMSID = NEXT_GMSID++;
+        completed = false;
+        extrema_calculated = false;
+        memset(name, 0, 512);
+        char *p = line;
+        char *q;
+        q = &(name[0]);
+
+        static const char *needle = "xecution name:";
+        p = strstr(p, needle);
+        if (p) {
+            p += strlen(needle);
+            while ((' ' == *p) || ('\t' == *p)) p++;
+            for (int i = 0; (i < 490) && (*p) && ('\n' != *p) && ('\r' != *p); i++) {
+                *q++ = *p++;
+            }
+        }
+        *q = '\0'; // just to be sure
+        ///    std::cout << "exec name in globmeaset is: `" << name << "'" << std::endl;
+        if (std::verbose >= 4) std::cout << "globmeaset " << GMSID << " ctor" << std::endl;
+    } // --globmeaset ctor
+
+    unsigned getGMSID() const {
+        return GMSID;
+    }
+
+    execname_t getName() {
+        return (&name[0]);
+    }
+
+    /*    void addMeasurement(globmeas& g) {    measurements.push_back(g);    }  */
+
+    /** globmeaset::addMeasurement() */
+    void addMeasurement(measline_t line) {
+        if (completed)
+            throw std::logic_error("Must NOT add to globmeaset once complete() is signalled");
+        // else
+        if (std::verbose >= 6) std::cout << "++ globmeaset::addMeasurement(line)" << std::endl;
+        globmeas g(line);
+        if (std::verbose >= 6) std::cout << "   globmeaset::addMeasurement(line): before push" << std::endl;
+        measurements.push_back(g); // pass by reference, and a copy is made using copy constructor
+        if (std::verbose >= 6) std::cout << "-- globmeaset::addMeasurement(line)" << std::endl;
+    } // --globmeaset::addMeasurement(line)
+
+    unsigned get_num_measurements() const {
+        return (static_cast<unsigned> (measurements.size()));
+    }
+
+    void addGlobVarLine(line_real_set_t& LRS, globalYVar_t globalYVar) {
+        line_real_t LR(getName());
+        for (std::deque<globmeas>::iterator it = measurements.begin();
+                it != measurements.end(); it++) {
+            switch (globalYVar) {
+                case AVERAGE:
+                    LR.add(it->getIter(), it->getAverage());
+                    break;
+                case DISTANCE:
+                    LR.add(it->getIter(), it->getDistance());
+                    break;
+                case RELERR:
+                    LR.add(it->getIter(), it->getRelerr());
+                    break;
+                case VARIANCE:
+                    LR.add(it->getIter(), it->getVariance());
+                    break;
+                case STDDEV:
+                    LR.add(it->getIter(), it->getStddev());
+                    break;
+                case RESIDUAL:
+                    if (it->hasResidual()) {
+                        LR.add(it->getIter(), it->getResidual());
+                    }
+                case KULLBACK:
+                    if (it->hasKullback()) {
+                        LR.add(it->getIter(), it->getKullback());
+                    }
+                    break;
+                default:
+                    std::cerr << "Invalid globalYVar in globmeaset::addGlobVarLine()" << std::endl;
+            } // switch
+        } // for
+        if (!LR.empty()) LRS.add(LR);
+    } // --globmeaset::addGlobVarLine()
+
+    /** globmeaset::complete() invoke to indicate that all elements have been added to this globmeaset */
+    void complete() {
+        if (std::verbose >= 4)
+            std::cout << "Executing globmeaset::complete()" << std::endl;
+        if (measurements.empty()) {
+            throw std::logic_error("empty globmeaset refused to complete() itself");
+        } // else
+        if (completed)
+            throw std::logic_error("complete() already signalled for this globmeaset, must NOT signal again.");
+        // else
+        if (std::verbose >= 5)
+            std::cout << "completed is so far false" << std::endl;
+        completed = true;
+        if (std::verbose >= 5)
+            std::cout << "completed is now set to true" << std::endl;
+    } // globmeaset::complete()
+
+    /** globmeaset::isComplete() whether or not this global measurement set has been completed */
+    bool isComplete() const {
+        return completed;
+    } // globmeaset::isComplete()
+
+    /** globmeaset::calculate_extrema() calculates extrema of all measurments by field
+        assumes that 'iter' field is strictly increasing in the order they were added.
+        should be called as either 0-arg or 3-arg                                       */
+    bool calculate_extrema(bool restrict_domain = false, int min_it_arg = 0, int max_it_arg = 0) {
+        if (!completed)
+            throw std::logic_error("Must NOT calculate extrema of globmeaset before complete() is signalled");
+        // else
+        if (0 == get_num_measurements())
+            throw std::logic_error("Must NOT calculate extrema of empty globmeaset"); // else
+        //    int curArea;
+        double curAverage, curDistance, curRelerr, curVariance, curStddev, curResidual, curKullback;
+        minAverage = maxAverage = minDistance = maxDistance = minRelerr = maxRelerr = -1.0;
+        minVariance = maxVariance = minStddev = maxStddev = minResidual = maxResidual = minKullback = maxKullback = -1.0;
+        extrema_calculated = true; // this is intentionally true even if return value is false
+
+        std::deque<globmeas>::const_iterator it = measurements.begin();
+
+        if (restrict_domain) {
+            if (min_it_arg > max_it_arg)
+                throw std::invalid_argument("globmeaset::calculate_extrema() called with arguments min>max");
+            while ((it != measurements.end()) && (min_it_arg > (*it).getIter()))
+                it++;
+            if (it == measurements.end())
+                return false; // iterations of this globmeaset are out of requested range
+            maxIter = minIter = (*it).getIter();
+        } else {
+            minIter = (*it).getIter();
+            maxIter = measurements.back().getIter(); // and that's that.
+        }
+        //    curArea     = minArea     = maxArea     = (*it).getArea();
+        curAverage = minAverage = maxAverage = (*it).getAverage();
+        curDistance = minDistance = maxDistance = (*it).getDistance();
+        curRelerr = minRelerr = maxRelerr = (*it).getRelerr();
+        curVariance = minVariance = maxVariance = (*it).getVariance();
+        curStddev = minStddev = maxStddev = (*it).getStddev();
+        if ((*it).hasResidual()) { // not necessarily true
+            curResidual = minResidual = maxResidual = (*it).getResidual();
+        }
+        if ((*it).hasKullback()) { // not necessarily true
+            curKullback = minKullback = maxKullback = (*it).getKullback();
+        }
+        it++;
+        for (; it != measurements.end(); it++) {
+            if (restrict_domain) {
+                if (max_it_arg < (*it).getIter())
+                    break;
+                else maxIter = (*it).getIter();
+            }
+            //      curArea     = (*it).getArea();
+            curAverage = (*it).getAverage();
+            curDistance = (*it).getDistance();
+            curRelerr = (*it).getRelerr();
+            curVariance = (*it).getVariance();
+            curStddev = (*it).getStddev();
+            //      if(curArea     < minArea)     minArea     = curArea;
+            if (curAverage < minAverage) minAverage = curAverage;
+            if (curDistance < minDistance) minDistance = curDistance;
+            if (curRelerr < minRelerr) minRelerr = curRelerr;
+            if (curVariance < minVariance) minVariance = curVariance;
+            if (curStddev < minStddev) minStddev = curStddev;
+
+            //      if(curArea     > maxArea)     maxArea     = curArea;
+            if (curAverage > maxAverage) maxAverage = curAverage;
+            if (curDistance > maxDistance) maxDistance = curDistance;
+            if (curRelerr > maxRelerr) maxRelerr = curRelerr;
+            if (curVariance > maxVariance) maxVariance = curVariance;
+            if (curStddev > maxStddev) maxStddev = curStddev;
+
+            if ((*it).hasResidual()) {
+                curResidual = (*it).getResidual();
+                if (minResidual < 0) { // this is the first residual in measurements
+                    minResidual = maxResidual = curResidual;
+                } else {
+                    if (curResidual < minResidual) minResidual = curResidual;
+                    if (curResidual > maxResidual) maxResidual = curResidual;
+                }
+            }
+            if ((*it).hasKullback()) {
+               curKullback = (*it).getKullback();
+                if (minKullback < 0) { // this is the first kl distance in measurements
+                    minKullback = maxKullback = curKullback;
+                } else {
+                    if (curKullback < minKullback) minKullback = curKullback;
+                    if (curKullback > maxKullback) maxKullback = curKullback;
+                }
+            }
+        } // --foreach measurement
+        return true;
+    } // --globmeaset::calculate_extrema()
+
+    /** these functions return appropriate domain extrema from a single execution of an algorithm */
+    int getMinIter() {
+        if (!extrema_calculated)
+            calculate_extrema();
+        return minIter;
+    } // globmeaset::getMinIter()
+
+    int getMaxIter() {
+        if (!extrema_calculated)
+            calculate_extrema();
+        return maxIter;
+    } // globmeaset::getMaxIter()
+
+    /** these functions return appropriate range extrema from a single execution of an algorithm
+        All will calculate_extrema() with no-args (entire domain) if
+        it has never been called (with any set of arguments, and for a valid set)
+     */
+    double getMinAverage() {
+        if (!extrema_calculated)
+            calculate_extrema();
+        return minAverage;
+    } // globmeaset::getMinAvarage()
+
+    double getMaxAverage() {
+        if (!extrema_calculated)
+            calculate_extrema();
+        return maxAverage;
+    }
+
+    double getMinDistance() {
+        if (extrema_calculated || calculate_extrema())
+            return minDistance;
+        else return -1.0;
+    }
+
+    double getMaxDistance() {
+        if (extrema_calculated || calculate_extrema())
+            return maxDistance;
+        else return -1.0;
+    }
+
+    double getMinRelerr() {
+        if (extrema_calculated || calculate_extrema())
+            return minRelerr;
+        else return -1.0;
+    }
+
+    double getMaxRelerr() {
+        if (extrema_calculated || calculate_extrema())
+            return maxRelerr;
+        else return -1.0;
+    }
+
+    double getMinVariance() {
+        if (extrema_calculated || calculate_extrema())
+            return minVariance;
+        else return -1.0;
+    }
+
+    double getMaxVariance() {
+        if (extrema_calculated || calculate_extrema())
+            return maxVariance;
+        else return -1.0;
+    }
+
+    double getMinStddev() {
+        if (extrema_calculated || calculate_extrema())
+            return minStddev;
+        else return -1.0;
+    }
+
+    double getMaxStddev() {
+        if (extrema_calculated || calculate_extrema())
+            return maxStddev;
+        else return -1.0;
+    }
+
+    /* both of these return -1.0 if no residual */
+    double getMinResidual() {
+        if (extrema_calculated || calculate_extrema())
+            return minResidual;
+        else return -1.0;
+    }
+
+    double getMinKullback() {
+        if (extrema_calculated || calculate_extrema())
+            return minKullback;
+        else return -1.0;
+    }
+
+    double getMaxResidual() {
+        if (extrema_calculated || calculate_extrema())
+            return maxResidual;
+        else return -1.0;
+    }
+
+    double getMaxKullback() {
+        if (extrema_calculated || calculate_extrema())
+            return maxKullback;
+        else return -1.0;
+    }
+
+    bool hasResidual() { // hack: think about whether this actually works
+        if (extrema_calculated || calculate_extrema())
+            return (-0.1 < minResidual);
+        else return false;
+    }
+
+    bool hasKullback() { // hack: think about whether this actually works
+        if (extrema_calculated || calculate_extrema())
+            return (-0.1 < minKullback);
+        else return false;
+    }
+
+    /** globmeaset::show_all() shows all members of this global measurement set */
+    void show_all() {
+        if (!completed)
+            throw std::logic_error("Must NOT show_all globmeaset before complete() is signalled");
+        // else
+        for (std::deque<globmeas>::iterator mit = measurements.begin();
+                mit != measurements.end(); mit++) {
+            mit->show_all();
+        }
+    } // --globmeaset::show_all()
+
+    ~globmeaset() {
+        if (std::verbose >= 4)
+            std::cout << "globmeaset " << GMSID << " Dtor" << std::endl;
+    }
+}; // --class globmeaset
+
+// unsigned globmeas::NEXT_GMID = 0; // class variable initialization
+
+/** a PBPmeas corresponds to one line of point-by-point statistics in the eval file */
+class PBPmeas {
+    // the fields are such that there is no reason for deep copies:
+    //   default assignment and copy constructors are fine.
+    // algname now in PBPmeaset
+    int iter;
+    std::vector<double> e; // it's imperative that this is something variable
+    unsigned PMID;
+    static unsigned NEXT_PMID;
+public:
+    // pre: line starts with whitespace after algname
+    // pre: line points to a (non-static) buffer
+
+    PBPmeas(measline_t line) {
+        // read line into iter and the e vector:
+        ///  if(std::verbose>=5) std::cout << "In PBPmeas " << (PMID+1) << " ctor" << std::endl;
+        double myDouble;
+        char *p;
+        if (std::verbose >= 6) std::cout << "++ PBPmeas ctor(line)" << std::endl;
+        //    std::cout << "PBPmeas beginning--Line is:" << std::endl << line << std::endl;
+        p = line;
+        while (((*p) == ' ') || ((*p) == '\t')) p++; // death to strtok!
+        if (1 != std::sscanf(p, "%d", &iter))
+            throw std::invalid_argument("line in PBPmeas ctor must start with \
+integer iter");
+        while ((*p) && ((*p) != ' ') && ((*p) != '\t')) p++; // skip iter
+        while (((*p) == ' ') || ((*p) == '\t')) p++; // skip whitespace after iter
+        while ((*p) && ((*p) != '\n') && ((*p) != '\r')) { // read in each double (might have to find out EOF symbol)
+            if (1 == std::sscanf(p, "%lg", &myDouble)) {
+                e.push_back(myDouble);
+            }
+            while ((*p) && ((*p) != ' ') && ((*p) != '\t')) p++; // skip double
+            while (((*p) == ' ') || ((*p) == '\t')) p++; // skip whitespace after double
+        }
+        if (e.empty()) {
+            std::cout << "e is empty... Line is:" << std::endl << line << std::endl;
+            throw std::invalid_argument("line arg to PBPmeas ctor must have \
+at least 1 floating point measurement");
+        }
+        PMID = NEXT_PMID++;
+        if (std::verbose >= 6) std::cout << "-- PBPmeas ctor(line)" << std::endl;
+    } // --PBPmeas ctor
+
+    int getIter() const {
+        return iter;
+    }
+
+    unsigned get_num_Es() const {
+        return ( static_cast<unsigned> (e.size()));
+    } // --PBPmeas::get_num_Es()
+
+    double get_E(unsigned ind) {
+        if (ind >= e.size())
+            throw std::invalid_argument("Bad index to PBPmeas::get_E()");
+        // else
+        return e[ind];
+    } // PBPmeas::get_E()
+
+    void show_all() {
+        std::cout << getIter() << " ";
+        for (std::vector<double>::const_iterator it = e.begin();
+                it != e.end(); it++) {
+            std::cout << (*it) << " ";
+        }
+        std::cout << std::endl;
+    } // --PBPmeas::show_all()
+
+    ~PBPmeas() {
+        if (std::verbose >= 5) std::cout << "In PBPmeas " << PMID << " Dtor" << std::endl;
+    }
+}; // --class PBPmeas
+
+// unsigned PBPmeas::NEXT_PMID = 0;  // class variable initialization
+
+/** a PBPmeaset is the set of point-by-point statistics for one execution of an algorithm */
+class PBPmeaset {
+    char algname[5]; // name of the algorithm (4 letters)  (not even necessary)
+    char name[512]; // description of the algorithm
+    execname_t execname;
+    //  QString execname; // name of the execution:
+    // snark can execute same algorithm many times with different parameters
+    std::deque<PBPmeas> measurements; // deque is efficient for adding at end and iterating through
+    std::vector<double> minima; // wrappers around simple built-in types: assume efficient
+    std::vector<double> maxima;
+    int minIter, maxIter;
+    unsigned num_Es;
+    static unsigned NEXT_PMSID;
+    unsigned PMSID;
+    bool completed;
+    bool extrema_calculated;
+public:
+
+    PBPmeaset(execname_t line) {
+        for (int i = 0; i < 4; i++) algname[i] = 'X';
+        algname[4] = '\0'; // just in case
+        PMSID = NEXT_PMSID++;
+        num_Es = 0;
+        minIter = maxIter = -1;
+        completed = false;
+        extrema_calculated = false;
+
+        memset(name, 0, 512);
+        char *p = line;
+        char *q;
+        q = &(name[0]);
+        static const char *needle = "xecution name:";
+        p = strstr(p, needle);
+        if (p) {
+            p += strlen(needle);
+            while ((' ' == *p) || ('\t' == *p)) p++;
+            for (int i = 0; (i < 490) && (*p) && ('\n' != *p) && ('\r' != *p); i++) {
+                *q++ = *p++;
+            }
+        }
+        *q = '\0'; // just to be sure
+        /// std::cout << "exec name in PBPmeaset is: `" << name << "'" << std::endl;
+
+        if (std::verbose >= 4) std::cout << "PBPmeaset " << PMSID << " ctor" << std::endl;
+    } // --PBPmeaset ctor
+
+    char* getAlgname() {
+        return &(algname[0]);
+    }
+    // so this is a bit baroque... I guess we won't need the 4-letter algnames after all.
+
+    execname_t getName() {
+        return (&name[0]);
+    }
+
+    /** PBPmeaset::skip_algname() */
+    measline_t skip_algname(measline_t line) {
+        // my overkill implementation of strtok functionality (why? why?)
+        measline_t cursor;
+        //    std::cout<< "Input to skip_algname: " << std::endl << line << std::endl;;
+        cursor = line;
+        while ((' ' == (*cursor)) || ('\t' == (*cursor)))
+            cursor++;
+        if ((!(*cursor)) || !((*cursor) >= 'A') && ((*cursor) <= 'Z'))
+            throw std::invalid_argument("bad line passed into PBPmeaset::skip_algname()");
+        while ((*cursor) && ((*cursor) >= 'A') && ((*cursor) <= 'Z'))
+            cursor++;
+        //    std::cout<< "Returning from skip_algname: " << std::endl << cursor << std::endl;;
+        return cursor;
+    }
+
+    /** PBPmeaset::set_algname() */
+    measline_t set_algname(measline_t line) {
+        measline_t cursor;
+        cursor = line;
+        while ((' ' == *cursor) || ('\t' == *cursor)) cursor++;
+        if (!(*cursor >= 'A') && (*cursor <= 'Z'))
+            throw std::invalid_argument("bad line passed into PBPmeaset::set_algname()");
+        for (int i = 0; i < 4; i++)
+            algname[i] = *cursor++;
+        if ((algname[3] == '\t') || (algname[3] == ' ')) // alg is ART
+            algname[3] = '\0';
+        algname[4] = '\0'; // defensive
+        return cursor;
+    }
+
+    //    void addMeasurement(PBPmeas& p) {
+    //      if(completed)
+    //        throw std::logic_error("Must NOT add to PBPmeaset once complete() is signalled");
+    //      measurements.push_back(p);
+    //    }
+
+    /** PBPmeaset::addMeasurement() */
+    void addMeasurement(measline_t line) {
+        measline_t cursor = line;
+        if (completed)
+            throw std::logic_error("Must NOT add to PBPmeaset once complete() is signalled");
+        if (measurements.empty()) // if this is the first line
+            cursor = set_algname(cursor);
+        else {
+            //      std::cout<< "cursor:" << cursor << std::endl;
+            cursor = skip_algname(cursor);
+            //      std::cout<< "cursor:" << cursor << std::endl;
+        }
+        PBPmeas p(cursor);
+        measurements.push_back(p);
+    }
+
+    void complete() {
+        if (measurements.empty()) {
+            throw std::logic_error("empty PBPmeaset refused to complete() itself");
+        }
+        // else
+        if (completed)
+            throw std::logic_error("complete() already signalled for this PBPmeaset, must NOT signal again.");
+        // else
+        completed = true;
+    }
+
+    /** PBPmeaset::isComplete() whether or not this point-by-point measurement set has been completed */
+    bool isComplete() const {
+        return completed;
+    } // PBPmeaset::isComplete()
+
+    /** ++PBPmeaset::get_num_Es() returns number of fields */
+    unsigned get_num_Es() {
+        if (measurements.empty()) {
+            num_Es = 0;
+        } else {
+            num_Es = measurements[0].get_num_Es(); // guaranteed to be the same in all
+        }
+        return num_Es;
+    } // --PBPmeaset::get_num_Es()
+
+    /** PBPmeaset::calculate_extrema(), to be called as 0-arg or 3-arg
+        returns true if input iteration range intersects with data's iteration range ("data domain")
+        makes the assumption that iterations increase in a PBPmeaset (such as (*this) )
+     */
+    bool calculate_extrema(bool restrict_domain = false, int min_it_arg = 0, int max_it_arg = 0) {
+        if (!completed)
+            throw std::logic_error("Must NOT calculate extrema of PBPmeaset before complete() is signalled");
+        // else
+        if (0 == get_num_Es())
+            throw std::logic_error("CANNOT calculate anything for PBPmeaset with no entries!");
+        // else
+        extrema_calculated = true; // intentionally set this to true even if return false
+        std::deque<PBPmeas>::iterator it = measurements.begin();
+        if (restrict_domain) {
+            while ((it != measurements.end()) && (min_it_arg > (*it).getIter()))
+                it++;
+            if (it == measurements.end())
+                return false;
+        }
+        minIter = maxIter = (*it).getIter();
+        for (unsigned myInd = 0; myInd < num_Es; myInd++) {
+            double cur_E = (*it).get_E(myInd);
+            minima.push_back(cur_E);
+            maxima.push_back(cur_E);
+        }
+        it++;
+        for (; it != measurements.end(); it++) { // executes 0 or more times
+            if (restrict_domain && (max_it_arg < (*it).getIter()))
+                break;
+            maxIter = (*it).getIter(); // last of the small ones
+            for (unsigned myInd = 0; myInd < num_Es; myInd++) {
+                double cur_E = (*it).get_E(myInd);
+                if (cur_E < minima[myInd]) minima[myInd] = cur_E;
+                if (cur_E > maxima[myInd]) maxima[myInd] = cur_E;
+            }
+        }
+        return true;
+    } // --PBPmeaset::calculate_extrema()
+
+    int getMinIter() {
+        if (!completed)
+            throw std::logic_error("getMinIter() MUST not be called before complete() is signalled in PBPmeaset");
+        if (extrema_calculated) // || calculate_extrema())
+            return minIter; ///// control shouldn't reach the next line, just defensiveness
+        else return -1;
+    } // --PBPmeaset::getMinIter()
+
+    int getMaxIter() {
+        if (!completed)
+            throw std::logic_error("getMaxIter() MUST not be called before complete() is signalled in PBPmeaset");
+        if (extrema_calculated) // || calculate_extrema())
+            return maxIter;
+        else return -1;
+    } // --PBPmeaset::getMaxIter()
+
+    double getMinE(unsigned ind) {
+        if (!completed)
+            throw std::logic_error("getMinE() MUST not be called before complete() is signalled in PBPmeaset");
+        // else
+        if (!extrema_calculated)
+            calculate_extrema(); // which calculates num_Es
+        if (0 == num_Es)
+            throw std::logic_error("num_Es cannot be 0 in PBPmeaset::getMinE()");
+        // else
+        if (ind >= num_Es)
+            throw std::invalid_argument("bad parameter to getMinE");
+        // else
+        return minima[ind];
+    } // --PBPmeaset::getMinE()
+
+    double getMaxE(unsigned ind) {
+        if (!completed)
+            throw std::logic_error("getMaxE() MUST not be called before complete() is signalled in PBPmeaset");
+        // else
+        if (!extrema_calculated)
+            calculate_extrema(); // which calculates num_Es
+        if (0 == num_Es)
+            throw std::logic_error("num_Es cannot be 0 in PBPmeaset::getMinE()");
+        // else
+        if (ind >= num_Es)
+            throw std::invalid_argument("bad parameter to getMaxE");
+        // else
+        return maxima[ind];
+    } // --PBPmeaset::getMaxE()
+
+    /** shows the extrema of a PBP measurement set (due to a single execution of a single algorithm) */
+    void show_extrema() {
+        if (!completed)
+            throw std::logic_error("Must NOT show extrema of PBPmeaset before complete() is signalled");
+        if (!extrema_calculated) calculate_extrema(); // the order matters here
+        if (minima.size() != maxima.size()) // won't really happen
+            throw std::logic_error("minima and maxima of a PBPmeaset MUST have same size in show_extrema()");
+        for (unsigned i = 0; i < minima.size(); i++) {
+            std::cout << minima[i] << " " << maxima[i] << std::endl;
+        }
+    } // --PBPmeaset::show_extrema()
+
+    /** shows all measurements of a measurement set (for debugging) */
+    void show_all() {
+        if (!completed)
+            throw std::logic_error("Must NOT show_all for PBPmeaset before complete() is signalled");
+        for (std::deque<PBPmeas>::iterator mit = measurements.begin();
+                mit != measurements.end(); mit++) {
+            mit->show_all();
+        }
+    } // --PBPmeaset::show_all()
+
+    void addPBPVarLine(line_real_set_t& LRS, unsigned PBPYVar) {
+        line_real_t LR(getName());
+        for (std::deque<PBPmeas>::iterator it = measurements.begin();
+                it != measurements.end(); it++) {
+            LR.add(it->getIter(), it->get_E(PBPYVar));
+        }
+        if (!LR.empty()) LRS.add(LR);
+    } // --PBPmeset::addPBPVarLine()
+
+    /** PBPmeaset destructor */
+    ~PBPmeaset() {
+        if (std::verbose >= 4) std::cout << "PBPmeaset " << PMSID << " Dtor" << std::endl;
+    }
+}; // --class PBPmeaset
+
+// unsigned PBPmeaset::NEXT_PMSID = 0; // class variable initialization
+
+/** contains PBPmeasets and globmeasets that appear in a single EVALUATE result */
+class eval_execution {
+    std::deque<globmeaset> globmeasets;
+    std::deque<PBPmeaset> PBPmeasets;
+    bool completed;
+    bool global_extrema_calculated;
+    bool PBP_extrema_calculated;
+    // extrama... none calculated until eval_execution is 'completed', all calculated at once.
+    // first the global extrema
+    int minIter, maxIter;
+    double minAverage, maxAverage, minDistance, maxDistance, minRelerr, maxRelerr;
+    double minVariance, maxVariance, minStddev, maxStddev, minResidual, maxResidual, minKullback, maxKullback;
+    // then the PBP extrema...
+    std::vector<double> PBP_minima; // minima and maxima of each E(0)..E(N-1), N not varying within an eval file.
+    std::vector<double> PBP_maxima; // calculated over ALL algorithm execution/iterations in this EVALUATE
+    unsigned num_Es; // 'N' in comment above
+    phantomeas* phantomeasp; // will be added directly...
+    // e.g., PBP_minima[2] is the minimum value of all E(2) in all PBPmeasets.
+    static unsigned NEXT_EEID;
+    unsigned EEID;
+    char name[512];
+public:
+
+    eval_execution() {
+        EEID = NEXT_EEID++;
+        completed = global_extrema_calculated = PBP_extrema_calculated = false;
+        phantomeasp = 0;
+        num_Es = 0;
+        minResidual = maxResidual = -1.0; // must initialize to negative value
+        minKullback = maxKullback = -1.0;
+        memset(name, 0, 512);
+    } // --eval_execution ctor
+
+    eval_execution(execname_t line) {
+        ///    std::cout << "++eval_execution::eval_execution(), line is " << line;
+        EEID = NEXT_EEID++;
+        completed = global_extrema_calculated = PBP_extrema_calculated = false;
+        phantomeasp = 0;
+        num_Es = 0;
+        minResidual = maxResidual = -1.0; // must initialize to negative value
+        minKullback = maxKullback = -1.0; // must initialize to negative value
+        char *p = line;
+        char *q;
+        q = &(name[0]);
+        static const char *needle = "valuation name:";
+        p = strstr(p, needle); // just in case of preceding whitespace
+        memset(q, 0, 512); // sort of gratuitous
+        q = &(name[0]);
+        if (p) {
+            p += strlen(needle);
+            while ((' ' == *p) || ('\t' == *p)) p++;
+            for (int i = 0; (i < 490) && (*p) && ('\n' != *p) && ('\r' != *p); i++) {
+                *q++ = *p++;
+            }
+        }
+        *q = '\0'; // just to be sure
+        ///    std::cout << "--eval_execution::eval_execution(), name is " << (&(name[0])) << std::endl;
+    } // --eval_execution ctor
+
+    execname_t getName() {
+        return static_cast<execname_t> (&(name[0]));
+    } // --eval_execution::getName()
+
+    void set_phantom(phantomeas* phanp) { // by pointer!!!
+        phantomeasp = phanp;
+    } // eval_execution::set_phantom()
+
+    void new_globmeaset(execname_t line) {
+        if (std::verbose >= 3)
+            std::cout << "++ eval_execution::new_globmeaset()" << std::endl;
+        if (completed)
+            throw std::logic_error("eval_execution::complete() already signalled in eval_execution::new_globmeaset().");
+        // else
+        if (!globmeasets.empty()) {
+            globmeasets.back().complete();
+        }
+        globmeaset g(line);
+        globmeasets.push_back(g);
+        if (std::verbose >= 3) std::cout << "-- eval_execution::new_globmeaset()" << std::endl;
+    } // eval_execution::new_globmeaset()
+
+    void add_to_globmeaset(measline_t line) {
+        if (std::verbose >= 4)
+            std::cout << "++ eval_execution::add_to_globmeaset(line)" << std::endl;
+        if (completed)
+            throw std::logic_error("eval_execution::complete() already signalled in eval_execution::add_to_globmeaset().");
+        // else
+        if (!hasGlobal())
+            throw std::logic_error("attempting to add to globmeaset of eval_execution where none exist");
+        globmeasets.back().addMeasurement(line);
+        if (std::verbose >= 4)
+            std::cout << "-- eval_execution::add_to_globmeaset(line)" << std::endl;
+    }
+
+    void new_PBPmeaset(execname_t line) {
+        if (completed)
+            throw std::logic_error("eval_execution::complete() already signalled in eval_execution::new_PBPmeaset().");
+        // else
+        if (!PBPmeasets.empty()) {
+            PBPmeasets.back().complete();
+        }
+        PBPmeaset p(line);
+        PBPmeasets.push_back(p);
+    } // --eval_execution::new_PBPmeaset()
+
+    void add_to_PBPmeaset(measline_t line) {
+        if (completed)
+            throw std::logic_error("eval_execution::complete() already signalled in eval_execution::add_to_PBPmeaset().");
+        // else
+        if (!hasPBP())
+            throw std::logic_error("attempting to add to PBPmeaset of eval execution where none exist");
+        // else
+        PBPmeasets.back().addMeasurement(line); // add measurement to last PBPmeaset
+    } // --eval_execution::add_to_PBPmeaset()
+
+    unsigned get_num_globmeasets() const {
+        return static_cast<unsigned> (globmeasets.size());
+    }
+
+    unsigned get_num_PBPmeasets() const {
+        return static_cast<unsigned> (PBPmeasets.size());
+    }
+
+    bool hasGlobal() const {
+        return (!(globmeasets.empty()));
+    } // eval_execution::hasGlobal()
+
+    bool hasPBP() const {
+        return (!(PBPmeasets.empty()));
+    } // eval_execution::hasPBP()
+
+    /** Tell this eval_execution object that no more entries will be added to it, and calculations may begin */
+    void complete() { // verb
+        if ((!hasGlobal()) && (!hasPBP()))
+            throw std::logic_error("eval_execution with NOTHING in it was asked to complete() itself!");
+        // else
+        if (completed)
+            throw std::logic_error("attempt to complete() same eval execution twice!");
+        // else
+        completed = true;
+        if (hasGlobal()) {
+            if (std::verbose >= 3) std::cout << "calling calculate_global_extrema()" << std::endl;
+            globmeasets.back().complete();
+            calculate_global_extrema(); // a good place to do this. (is it?)
+            if (std::verbose >= 3) std::cout << "returned from calculate_global_extrema()" << std::endl;
+        }
+        if (hasPBP()) {
+            PBPmeasets.back().complete();
+            if (std::verbose >= 3) std::cout << "calling calculate_PBP_extrema()" << std::endl;
+            calculate_PBP_extrema(); // " " " " " "
+            if (std::verbose >= 3) std::cout << "returned from calculate_PBP_extrema()" << std::endl;
+        }
+    } // --eval_execution::complete()
+
+    /** eval_execution::isComplete()
+        for debugging--ask the eval_execution object whether it has been told that no more data will be added to it */
+    bool isComplete() const {
+        return completed;
+    } // --eval_execution::isComplete()
+
+    /** eval_execution::calculate_global_extrema()
+        calculates global extrema of ALL global measurement sets in this EVALUATE execution
+        called with 0 or 3 args meaningfully: 0-arg means "calculate over ALL data"         */
+    bool calculate_global_extrema(bool restrict_domain = false, int min_it_arg = 0, int max_it_arg = 0) {
+        ///    if(global_extrema_calculated) return false;
+        if (!completed)
+            throw std::logic_error("Must NOT calculate extrema of globmeaset before complete() is signalled");
+        // else
+        if (!hasGlobal())
+            throw std::logic_error("Must NOT calculate extrema of empty globmeaset");
+        // else
+        std::deque<globmeaset>::iterator it = globmeasets.begin();
+        // guaranteed to exist and point to an actual globmeaset if control reached here
+        // skip while current globmeaset's domain does not intersect with input domain
+        // "allows" to recalculate global extrema regardless
+        while ((it != globmeasets.end()) &&
+                !((*it).calculate_extrema(restrict_domain, min_it_arg, max_it_arg))) {
+            it++; // boolean expression of while has intentional and possibly necessary side effect
+        }
+        if (it == globmeasets.end())
+            return false; // no globmeaset agrees with domain!  unbelievable!
+        // else
+        minIter = (*it).getMinIter(); // return value will automagically be right due to
+        maxIter = (*it).getMaxIter(); // the above globmeaset::calculate_extrema() call (first that succeeded)
+
+        minAverage = (*it).getMinAverage();
+        minDistance = (*it).getMinDistance();
+        minRelerr = (*it).getMinRelerr();
+        minVariance = (*it).getMinVariance();
+        minStddev = (*it).getMinStddev();
+
+        maxAverage = (*it).getMaxAverage();
+        maxDistance = (*it).getMaxDistance();
+        maxRelerr = (*it).getMaxRelerr();
+        maxVariance = (*it).getMaxVariance();
+        maxStddev = (*it).getMaxStddev();
+
+        double tmp;
+        if (phantomeasp) {
+            if (minAverage > (tmp = phantomeasp->getAverage())) minAverage = tmp;
+            else if (maxAverage < tmp) maxAverage = tmp;
+
+            if (minVariance > (tmp = phantomeasp->getVariance())) minVariance = tmp;
+            else if (maxVariance < tmp) maxVariance = tmp;
+
+            if (minStddev > (tmp = phantomeasp->getStddev())) minStddev = tmp;
+            else if (maxStddev < tmp) maxStddev = tmp;
+        }
+
+        if ((*it).hasResidual()) { // not necessarily true in the first globmeaset
+            double tmp;
+            minResidual = (*it).getMinResidual(); // won't be nonnegative
+            maxResidual = (*it).getMaxResidual(); // won't be nonnegative
+            if (phantomeasp && (phantomeasp->hasResidual())) {
+                if (minResidual > (tmp = phantomeasp->getResidual())) minResidual = tmp;
+                else if (maxResidual < tmp) maxResidual = tmp;
+            }
+        }
+
+        if ((*it).hasKullback()) { // not necessarily true in the first globmeaset
+            double tmp;
+            minKullback = (*it).getMinKullback(); // won't be nonnegative
+            maxKullback = (*it).getMaxKullback(); // won't be nonnegative
+            if (phantomeasp && (phantomeasp->hasKullback())) {
+                if (minKullback > (tmp = phantomeasp->getKullback())) minKullback = tmp;
+                else if (maxKullback < tmp) maxKullback = tmp;
+            }
+        }
+        it++;
+        for (; it != globmeasets.end(); it++) {
+            if (!((*it).calculate_extrema(restrict_domain, min_it_arg, max_it_arg)))
+                continue; // don't update as long as (*it)'s domain does not match the arguments
+            int tmpi;
+            if (minIter > (tmpi = ((*it).getMinIter()))) minIter = tmpi;
+            if (maxIter < (tmpi = ((*it).getMaxIter()))) maxIter = tmpi;
+
+            double tmp;
+            if (minAverage > (tmp = ((*it).getMinAverage()))) minAverage = tmp;
+            if (minDistance > (tmp = ((*it).getMinDistance()))) minDistance = tmp;
+            if (minRelerr > (tmp = ((*it).getMinRelerr()))) minRelerr = tmp;
+            if (minVariance > (tmp = ((*it).getMinVariance()))) minVariance = tmp;
+            if (minStddev > (tmp = ((*it).getMinStddev()))) minStddev = tmp;
+
+            if (maxAverage < (tmp = ((*it).getMaxAverage()))) maxAverage = tmp;
+            if (maxDistance < (tmp = ((*it).getMaxDistance()))) maxDistance = tmp;
+            if (maxRelerr < (tmp = ((*it).getMaxRelerr()))) maxRelerr = tmp;
+            if (maxVariance < (tmp = ((*it).getMaxVariance()))) maxVariance = tmp;
+            if (maxStddev < (tmp = ((*it).getMaxStddev()))) maxStddev = tmp;
+
+            if ((*it).hasResidual()) {
+                if (minResidual < 0) { // this is the first globmeaset with residual
+                    minResidual = (*it).getMinResidual();
+                    maxResidual = (*it).getMaxResidual();
+                } else { // we have seen a globmeaset with residual before and now seeing another
+                    double tmp;
+                    if (minResidual > (tmp = ((*it).getMinResidual()))) minResidual = tmp;
+                    if (maxResidual < (tmp = ((*it).getMaxResidual()))) maxResidual = tmp;
+                }
+            }
+            if ((*it).hasKullback()) {
+                if (minKullback < 0) { // this is the first globmeaset with kl distance
+                    minKullback = (*it).getMinKullback();
+                    maxKullback = (*it).getMaxKullback();
+                } else { // we have seen a globmeaset with kl distance before and now seeing another
+                    double tmp;
+                    if (minKullback > (tmp = ((*it).getMinKullback()))) minKullback = tmp;
+                    if (maxKullback < (tmp = ((*it).getMaxKullback()))) maxKullback = tmp;
+                }
+            }
+        } // --foreach globmeaset
+        global_extrema_calculated = true;
+        return true;
+    } // --eval_execution::calculate_global_extrema()
+
+    /** These require global measurements' extrema to have been calculated */
+    double getMinAverage() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMinAverage()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return minAverage;
+    }
+
+    double getMaxAverage() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMaxAverage()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return maxAverage;
+    }
+
+    double getMinDistance() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMinDistance()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return minDistance;
+    } // --eval_execution::getMinDistance()
+
+    double getMaxDistance() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMaxDistance()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return maxDistance;
+    }
+
+    double getMinRelerr() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMinRelerr()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return minRelerr;
+    }
+
+    double getMaxRelerr() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMaxRelerr()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return maxRelerr;
+    } // --eval_execution::getMaxRelerr()
+
+    double getMinVariance() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMinVariance()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return minVariance;
+    }
+
+    double getMaxVariance() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMaxVariance()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return maxVariance;
+    }
+
+    double getMinStddev() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMinStddev()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return minStddev;
+    }
+
+    double getMaxStddev() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMaxStddev()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return maxStddev;
+    } // --eval_execution::getMaxStddev()
+
+    bool hasResidual() { // true if some of its globmeasets have some residual entry
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMaxResidual()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return (-0.5 < minResidual);
+    }
+
+    bool hasKullback() { // true if some of its globmeasets have some kl distance entries
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMaxKullback()");
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        return (-0.5 < minKullback);
+    }
+
+    // pre: do NOT call these before calling hasResidual() and making sure it's true
+
+    double getMinResidual() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMinResidual()");
+        if (!hasResidual())
+            throw std::logic_error("hasResidual() is false in eval_execution::getMinResidual()");
+        return minResidual;
+    }
+
+    double getMinKullback() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMinKullback()");
+        if (!hasKullback())
+            throw std::logic_error("hasKullback() is false in eval_execution::getMinKullback()");
+        return minKullback;
+    }
+
+    double getMaxResidual() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMaxResidual()");
+        if (!hasResidual())
+            throw std::logic_error("hasResidual() is false in eval_execution::getMaxResidual()");
+        return maxResidual;
+    }
+
+    double getMaxKullback() {
+        if (!hasGlobal())
+            throw std::logic_error("hasGlobal() is false in eval_execution::getMaxKullback()");
+        if (!hasKullback())
+            throw std::logic_error("hasKullback() is false in eval_execution::getMaxKullback()");
+        return maxKullback;
+    }
+
+    /** eval_execution::calculate_PBP_extrema() */
+    bool calculate_PBP_extrema(bool restrict_domain = false, int min_it_arg = 0, int max_it_arg = 0) {
+        /// if(PBP_extrema_calculated) return; // not anymore.
+        ///// else
+        if (std::verbose >= 5) std::cout << "++ calculate_PBP_extrema()" << std::endl;
+        //   PBP_minima.resize(0);
+        //   PBP_maxima.resize(0);
+        PBP_minima.clear();
+        PBP_maxima.clear();
+        if (!completed) {
+            std::cerr << "Attempt to calculate_PBP_extrema() before signaling complete() to evaluate_execution";
+            throw std::logic_error("Attempt to calculate_PBP_extrema() before signaling complete() to evaluate_execution");
+        }
+        // else
+        if (!hasPBP()) {
+            std::cerr << "Attempt to calculate_PBP_extrema() when no point-by-point data in this evaluate_execution";
+            throw std::logic_error("Attempt to calculate_PBP_extrema() when no point-by-point data in this evaluate_execution");
+        }
+        // else
+        PBP_extrema_calculated = true;
+        std::deque<PBPmeaset>::iterator it = PBPmeasets.begin();
+        num_Es = (*it).get_num_Es(); // this is the same throughout the file.  can use it even if we chuck the data.
+        while ((it != PBPmeasets.end()) &&
+                !((*it).calculate_extrema(restrict_domain, min_it_arg, max_it_arg))) {
+            it++;
+        }
+        if (it == PBPmeasets.end())
+            return false;
+        // else
+        minIter = (*it).getMinIter();
+        maxIter = (*it).getMaxIter();
+        PBP_minima.resize(num_Es);
+        PBP_maxima.resize(num_Es);
+        for (unsigned myInd = 0; myInd < num_Es; myInd++) {
+            PBP_minima[myInd] = (*it).getMinE(myInd);
+            //      PBP_maxima.push_back( (*it).getMaxE(myInd) );
+            PBP_maxima[myInd] = (*it).getMaxE(myInd);
+        }
+        it++;
+        for (; it != PBPmeasets.end(); it++) {
+            // empty domain intersection
+            if (!((*it).calculate_extrema(restrict_domain, min_it_arg, max_it_arg)))
+                continue;
+            //  now:  min_it_arg >= (*it).getMinIter() and max_it_arg <= (*it).getMaxIter()
+            int tmpi;
+            if (minIter > (tmpi = (*it).getMinIter())) minIter = tmpi;
+            if (maxIter < (tmpi = (*it).getMaxIter())) maxIter = tmpi;
+            for (unsigned myInd = 0; myInd < num_Es; myInd++) {
+                double curMinE, curMaxE;
+                if (PBP_minima[myInd] > (curMinE = (*it).getMinE(myInd))) PBP_minima[myInd] = curMinE;
+                if (PBP_maxima[myInd] < (curMaxE = (*it).getMaxE(myInd))) PBP_maxima[myInd] = curMaxE;
+            }
+        }
+        if (std::verbose >= 5) std::cout << "-- calculate_PBP_extrema()" << std::endl;
+        return true;
+    } // --eval_execution::calculate_PBP_extrema()
+
+    /** for getMinIter() and getMaxIter(), global and PBP agree (given same restriction) */
+
+    /** however, there is no guarantee that both are present.                            */
+    int getMinIter() {
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        // else
+        if (!global_extrema_calculated && !PBP_extrema_calculated) {
+            if (hasGlobal()) {
+                calculate_global_extrema();
+            } else if (hasPBP()) {
+                calculate_PBP_extrema();
+            } else throw std::logic_error("no Global, no PBP in eval_execution::getMinIter()");
+        }
+        return minIter;
+    }
+
+    int getMaxIter() {
+        if (!completed)
+            throw std::logic_error("attempt to get info from incomplete eval_execution");
+        // else
+        if (!global_extrema_calculated && !PBP_extrema_calculated) {
+            if (hasGlobal()) {
+                calculate_global_extrema();
+            } else if (hasPBP()) {
+                calculate_PBP_extrema();
+            } else throw std::logic_error("no Global, no PBP in eval_execution::getMaxIter()");
+        }
+        return maxIter;
+    }
+
+    /** eval_execution::get_num_Es() with possible nasty side effect of recalculating PBP extrema! */
+    unsigned get_num_Es() {
+        if (!completed)
+            throw std::logic_error("get_num_Es() MUST not be called before complete() is signalled in eval_execution");
+        if (!PBP_extrema_calculated)
+            calculate_PBP_extrema();
+        return num_Es; // due to the "side effect" of calling calculate_PBP_extrema
+    }
+
+    /** eval_execution::getMinE() to get minimum of a PBP measure attribute through EVALUATE */
+    double getMinE(unsigned ind) {
+        if (!completed)
+            throw std::logic_error("getMinE() MUST not be called before complete() is signalled in eval_execution");
+        // else
+        if (!PBP_extrema_calculated)
+            calculate_PBP_extrema(); // which calculates num_Es
+        if (0 == num_Es)
+            throw std::logic_error("num_Es cannot be 0 in PBPmeaset::getMinE()");
+        // else
+        if (ind >= num_Es)
+            throw std::invalid_argument("bad parameter to getMinE");
+        // else
+        return PBP_minima[ind];
+    } // eval_execution::getMinE()
+
+    double getMaxE(unsigned ind) {
+        if (!completed)
+            throw std::logic_error("getMinE() MUST not be called before complete() is signalled in PBPmeaset");
+        // else
+        if (!PBP_extrema_calculated)
+            calculate_PBP_extrema(); // which calculates num_Es
+        if (0 == num_Es)
+            throw std::logic_error("num_Es cannot be 0 in PBPmeaset::getMaxE()");
+        // else
+        if (ind >= num_Es)
+            throw std::invalid_argument("bad parameter to getMaxE");
+        // else
+        return PBP_maxima[ind];
+    } // eval_execution::getMaxE()
+
+    /** debug routine: shows all values in the global measurement sets "recursively" */
+    void show_all_globs() {
+        if (!completed) {
+            //        std::cout << "(cout) about to bail" << std::endl;
+            //        std::cerr << "(cerr) about to bail" << std::endl;
+            throw std::logic_error("MUST not call show_all_globs() before signalling complete() to an eval_execution");
+        }
+        // else
+        if (globmeasets.empty()) {
+            std::cout << "## No glob sets to show in eval exec " << EEID << std::endl;
+        } else {
+            std::cout << "=>>=showing all globmeasets in eval exec " << EEID << std::endl;
+            for (unsigned i = 0; i < get_num_globmeasets(); i++) {
+                std::cout << "Showing globmeaset " << i << ":" << std::endl;
+                globmeasets[i].show_all();
+            }
+            std::cout << "=<<=showed all globmeasets in eval exec " << EEID << std::endl;
+        }
+    } // --eval_execution::show_all_globs()
+
+    /** debug routine: shows all values in the global measurement sets "recursively" */
+    void show_all_PBPs() {
+        if (!completed)
+            throw std::logic_error("MUST not call show_all_ppbs() before signalling complete() to eval_execution");
+        // else
+        if (PBPmeasets.empty()) {
+            std::cout << "## No PBP sets to show in eval exec " << EEID << std::endl;
+        } else {
+            std::cout << "=>>=showing all PBPmeasets in eval exec " << EEID << std::endl;
+            for (unsigned i = 0; i < get_num_PBPmeasets(); i++) {
+                std::cout << "Showing PBPmeaset " << i << ": (algname ["
+                        << PBPmeasets[i].getAlgname() << "])" << std::endl;
+                PBPmeasets[i].show_all();
+            }
+            std::cout << "=<<=showed all PBPmeasets in eval exec " << EEID << std::endl;
+        }
+    } // --eval_execution::show_all_PBPs()
+
+    /** eval_execution::show_extrema() */
+    void show_extrema() {
+        if (!completed)
+            throw std::logic_error("Must NOT show extrema of eval_execution before complete() is signalled");
+        std::cout << "Showing extrema in eval_execution_set among selected eval_executions." << std::endl;
+        bool successful = false;
+        if (hasGlobal() && calculate_global_extrema()) {
+            std::cout << "after global calculation: minIter, maxIter: " << minIter << " " << maxIter << std::endl;
+            std::cout << "minAverage, maxAverage, minDistance, maxDistance, minRelerr, maxRelerr:" << std::endl
+                    << minAverage << " " << maxAverage << " " << minDistance << " " << maxDistance << " " << minRelerr << " " << maxRelerr;
+            std::cout << std::endl;
+            std::cout << "minVariance, maxVariance, minStddev, maxStddev, minResidual, maxResidual, minKullback, maxKullback:" << std::endl
+                    << minVariance << " " << maxVariance << " " << minStddev << " " << maxStddev << " " << minResidual << " " << maxResidual << " " << minKullback << " " << maxKullback;
+            std::cout << std::endl;
+            successful = true;
+        }
+
+        if (hasPBP() && calculate_PBP_extrema()) {
+            std::cout << "after PBP calculation: minIter, maxIter: " << minIter << " " << maxIter << std::endl;
+            for (unsigned i = 0; i < num_Es; i++) {
+                std::cout << "PBP_minima[" << i << "] = " << PBP_minima[i] << "; "
+                        << "PBP_maxima[" << i << "] = " << PBP_maxima[i] << std::endl;
+            }
+            successful = true;
+        }
+        if (!successful) {
+            std::cout << "Attempts to calculate both global and PBP extrema were unsuccessful in eval_execution." << std::endl;
+        }
+    } // --eval_execution::show_extrema()
+
+    void show_all() {
+        std::cout << "==>>>==entering show_all() for eval exec " << EEID << std::endl;
+        show_all_globs();
+        show_all_PBPs();
+        std::cout << "==<<<==leaving show_all() for eval exec " << EEID << std::endl;
+    } // --eval_execution::show_all()
+
+    void addPBPVarLines(line_real_set_t& LRS, unsigned PBPYVar) {
+        for (std::deque<PBPmeaset>::iterator it = PBPmeasets.begin();
+                it != PBPmeasets.end(); it++) {
+            it->addPBPVarLine(LRS, PBPYVar);
+        }
+    } // --eval_execution::addPBPVarLines()
+
+    void addGlobVarLines(line_real_set_t& LRS, globalYVar_t globalYVar) {
+        for (std::deque<globmeaset>::iterator it = globmeasets.begin();
+                it != globmeasets.end(); it++) {
+            it->addGlobVarLine(LRS, globalYVar);
+        }
+    } // --eval_execution::addGlobVarLines()
+
+}; // --class eval_execution
+
+// unsigned eval_execution::NEXT_EEID = 0; // class variable initialization
+
+/** eval_execution_set: superstructure capable of holding information 
+    given by many eval executions, an entire eval08 file                 */
+//  class eval_execution_set {
+//    std::deque<eval_execution> execs; // entire output of snark14 EVALUATE executions
+//    std::vector<bool> selected; // holds which execs are selected by snark14Display user
+//    phantomeas* phantomeasp;
+//    bool completed; // holds whether creation of execs is complete (is this really necessary here?)
+//    bool extrema_calculated; // holds whether extrema are calculated (ditto.)
+//    bool same_x_forall;  // for iter, plotted on x-axis
+//    bool same_y_forall;  // for whatever it is that is requested for plotting on y-axis
+//    // (almost the same as for eval_execution) extrama...
+//    // first the global extrema
+//    int minIter, maxIter;
+//    double minAverage, maxAverage, minDistance, maxDistance, minRelerr, maxRelerr;
+//    double minVariance, maxVariance, minStddev, maxStddev, minResidual, maxResidual;
+//    // then the PBP extrema...
+//    std::vector<double> PBP_minima; // minima and maxima of each E(0)..E(N-1), N not varying within an eval file.
+//    std::vector<double> PBP_maxima; // to be calculated over ALL EVALUATE calls, depending.
+//    unsigned num_Es; // 'N' in comment above
+//    // e.g., PBP_minima[2] is the minimum value of all E(2) in all PBPmeasets in all execs.
+
+eval_execution_set::eval_execution_set() {
+    completed = extrema_calculated = false;
+    same_x_forall = same_y_forall = false; // initialize to use "locally" calculated domain/range bounds
+    selectionHasResidualvar = false;
+    selectionHasKullbackvar = false;
+    phantomeasp = 0;
+} // eval_execution_set() ctor
+
+//   void new_exec(eval_execution &ev) {
+//     // pseudocode
+//     execs.push_back(ev);
+//     selected.push_back(false);
+//   }
+
+// void eval_execution_set::new_exec() {
+//   if (!execs.empty()) {
+//     execs.back().set_phantom(phantomeasp);
+//     execs.back().complete();
+//   }
+//   eval_execution exec;
+//   execs.push_back(exec);
+//   selected.push_back(false);
+// }
+
+void eval_execution_set::new_exec(execname_t name) {
+    if (!execs.empty()) {
+        execs.back().set_phantom(phantomeasp);
+        execs.back().complete();
+    }
+    eval_execution exec(name);
+    execs.push_back(exec);
+    selected.push_back(false);
+}
+
+void eval_execution_set::new_globmeaset(execname_t line) {
+    if (execs.empty())
+        throw std::logic_error("call to eval_execution_set::new_globmeaset() before ::new_exec()");
+    // else
+    execs.back().new_globmeaset(line);
+}
+
+void eval_execution_set::add_to_globmeaset(measline_t line) {
+    if (execs.empty())
+        throw std::logic_error("call to eval_execution_set::add_to_globmeaset() before ::new_exec()");
+    execs.back().add_to_globmeaset(line);
+}
+
+void eval_execution_set::new_PBPmeaset(execname_t line) {
+    if (execs.empty())
+        throw std::logic_error("call to eval_execution_set::new_PBPmeaset() before ::new_exec()");
+    execs.back().new_PBPmeaset(line);
+}
+
+void eval_execution_set::add_to_PBPmeaset(measline_t line) {
+    if (execs.empty())
+        throw std::logic_error("call to eval_execution_set::add_to_PBPmeaset() before ::new_exec()");
+    execs.back().add_to_PBPmeaset(line);
+}
+
+/** eval_execution_set::set_phantomeas() sets _the_ phantom measurement of the eval_execution_set
+    pre: all phantom-related lines in the eval file are identical
+    barring the possibility of there being residual in some but not others
+    this function sort of "updates" the value of phantom.
+    logically, to be considered part of every eval_execution that has at least one globmeaset:
+    (for applicable fields) both for the purpose of plotting and calculating extrema.
+    if exists (!=0), DO NOT CHANGE phantomeasp OR YOU'LL SEGFAULT!
+ */
+void eval_execution_set::set_phantomeas(measline_t line) {
+
+    if (phantomeasp && phantomeasp->hasResidual() && phantomeasp->hasKullback()) return;
+    // else
+    if (!phantomeasp) {
+        phantomeasp = new phantomeas(line);
+        return;
+    }
+    // else
+    phantomeas locphan(line);
+    if (locphan.hasResidual()) {
+        phantomeasp->setNewResidual(locphan.getResidual()); // set by value
+    }
+    if (locphan.hasKullback()) {
+        phantomeasp->setNewKullback(locphan.getKullback()); // set by value
+    }
+} // --eval_execution_set::set_phantomeas()
+
+bool eval_execution_set::hasPhantom() {
+    return (0 != phantomeasp);
+}
+
+bool eval_execution_set::calculate_global_extrema() {
+    return calculate_global_extrema(false, 0, 0);
+}
+
+/** eval_execution_set::calculate_global_extrema()  */
+bool eval_execution_set::calculate_global_extrema(bool restrict_domain, int min_it_arg, int max_it_arg) {
+    if (!completed)
+        throw std::logic_error("eval_execution_set::calculate_extrema() cannot be called on incomplete set");
+    if (selected.size() != execs.size())
+        throw std::logic_error("selected does not match execs in size");
+    minResidual = maxResidual = -1.0;
+    minKullback = maxKullback = -1.0;
+    bool first_one = true;
+    unsigned j = 0;
+    for (std::deque<eval_execution>::iterator it = execs.begin();
+            it != execs.end(); j++, it++) {
+        if (selected[j] && ((*it).hasGlobal()) && ((*it).calculate_global_extrema(restrict_domain, min_it_arg, max_it_arg))) {
+            /// std::cout << "eval_execution_set::calculate_global_extrema() j = " << j << std::endl;
+            if (first_one) { // for first selected eval_exec with global
+                // it is the first one and non-empty intersects with argument domain, if restricted
+                minIter = (*it).getMinIter();
+                maxIter = (*it).getMaxIter();
+                /// std::cout << "minIter: " <<  minIter << ", maxIter: " << maxIter << std::endl;
+                minAverage = (*it).getMinAverage();
+                minDistance = (*it).getMinDistance();
+                minRelerr = (*it).getMinRelerr();
+                minVariance = (*it).getMinVariance();
+                minStddev = (*it).getMinStddev();
+
+                maxAverage = (*it).getMaxAverage();
+                maxDistance = (*it).getMaxDistance();
+                maxRelerr = (*it).getMaxRelerr();
+                maxVariance = (*it).getMaxVariance();
+                maxStddev = (*it).getMaxStddev();
+
+                if ((*it).hasResidual()) { // not necessarily true in the first evaluate
+                    selectionHasResidualvar = true;
+                    minResidual = (*it).getMinResidual();
+                    maxResidual = (*it).getMaxResidual();
+                }
+                if ((*it).hasKullback()) { // not necessarily true in the first evaluate
+                    selectionHasKullbackvar = true;
+                    minKullback = (*it).getMinKullback();
+                    maxKullback = (*it).getMaxKullback();
+                }
+                first_one = false;
+            } else { // for all other selected eval_execs with global with matching domain
+                int tmpi;
+                if (minIter > (tmpi = (*it).getMinIter())) minIter = tmpi;
+                if (maxIter < (tmpi = (*it).getMaxIter())) maxIter = tmpi;
+                double tmp;
+                if (minAverage > (tmp = ((*it).getMinAverage()))) minAverage = tmp;
+                if (minDistance > (tmp = ((*it).getMinDistance()))) minDistance = tmp;
+                if (minRelerr > (tmp = ((*it).getMinRelerr()))) minRelerr = tmp;
+                if (minVariance > (tmp = ((*it).getMinVariance()))) minVariance = tmp;
+                if (minStddev > (tmp = ((*it).getMinStddev()))) minStddev = tmp;
+
+                if (maxAverage < (tmp = ((*it).getMaxAverage()))) maxAverage = tmp;
+                if (maxDistance < (tmp = ((*it).getMaxDistance()))) maxDistance = tmp;
+                if (maxRelerr < (tmp = ((*it).getMaxRelerr()))) maxRelerr = tmp;
+                if (maxVariance < (tmp = ((*it).getMaxVariance()))) maxVariance = tmp;
+                if (maxStddev < (tmp = ((*it).getMaxStddev()))) maxStddev = tmp;
+
+                if ((*it).hasResidual()) {
+                    if (minResidual < 0) { // this is the first globmeaset with residual
+                        minResidual = (*it).getMinResidual();
+                        maxResidual = (*it).getMaxResidual();
+                    } else { // we have seen a globmeaset with residual before and now seeing another
+                        double tmp;
+                        if (minResidual > (tmp = ((*it).getMinResidual()))) minResidual = tmp;
+                        if (maxResidual < (tmp = ((*it).getMaxResidual()))) maxResidual = tmp;
+                    }
+                }
+                if ((*it).hasKullback()) {
+                    if (minKullback < 0) { // this is the first globmeaset with kl distance
+                        minKullback = (*it).getMinKullback();
+                        maxKullback = (*it).getMaxKullback();
+                    } else { // we have seen a globmeaset with kl distance before and now seeing another
+                        double tmp;
+                        if (minKullback > (tmp = ((*it).getMinKullback()))) minKullback = tmp;
+                        if (maxKullback < (tmp = ((*it).getMaxKullback()))) maxKullback = tmp;
+                    }
+                }
+            } // --not the first one
+        } // --selected evaluate with global
+    } // --foreach EVALUATE execution
+    return (!first_one);
+    // return true if some execution has global measurements whose domain matches input domain restriction
+} // --eval_exec_set::calculate_global_extrema()
+
+bool eval_execution_set::calculate_PBP_extrema() {
+    return calculate_PBP_extrema(false, 0, 0);
+}
+
+/** eval_execution_set::calculate_PBP_extrema()  */
+bool eval_execution_set::calculate_PBP_extrema(bool restrict_domain, int min_it_arg, int max_it_arg) {
+    if (!completed)
+        throw std::logic_error("eval_execution_set::calculate_extrema() cannot be called on incomplete set");
+    if (selected.size() != execs.size())
+        throw std::logic_error("selected does not match execs in size");
+    num_Es = 0;
+    //    PBP_minima.resize(0);
+    //    PBP_maxima.resize(0);
+    PBP_minima.clear();
+    PBP_maxima.clear();
+    bool first_one = true;
+    unsigned j = 0;
+    for (std::deque<eval_execution>::iterator it = execs.begin();
+            it != execs.end(); j++, it++) {
+        if ((selected[j]) && ((*it).hasPBP()) && ((*it).calculate_PBP_extrema(restrict_domain, min_it_arg, max_it_arg))) {
+            if (first_one) {
+                minIter = (*it).getMinIter();
+                maxIter = (*it).getMaxIter();
+                num_Es = (*it).get_num_Es(); // this is the same throughout the file.
+                PBP_minima.resize(num_Es);
+                PBP_maxima.resize(num_Es);
+                for (unsigned myInd = 0; myInd < num_Es; myInd++) {
+                    PBP_minima[myInd] = (*it).getMinE(myInd);
+                    PBP_maxima[myInd] = (*it).getMaxE(myInd);
+                }
+                first_one = false;
+            } else {
+                int tmpi;
+                if (minIter > (tmpi = (*it).getMinIter())) minIter = tmpi;
+                if (maxIter < (tmpi = (*it).getMaxIter())) maxIter = tmpi;
+                for (unsigned myInd = 0; myInd < num_Es; myInd++) {
+                    double tmp;
+                    if (PBP_minima[myInd] > (tmp = (*it).getMinE(myInd))) PBP_minima[myInd] = tmp;
+                    if (PBP_maxima[myInd] < (tmp = (*it).getMaxE(myInd))) PBP_maxima[myInd] = tmp;
+                }
+            } // not first one
+        } // --selected evaluate with point
+    } // --for
+    return (!first_one);
+    // return true if any selected execution has PBP measurements and input domain restriction matches their domain
+} // eval_execution_set::calculate_PBP_extrema()
+
+execname_t eval_execution_set::getExecName(unsigned idx) {
+    return execs[idx].getName();
+}
+
+/** by "for all", the selected set of EVALUATE executions are meant.
+    setSameXForAll(true) to use "global" domain for each plot */
+//void eval_execution_set::setSameXForAll(bool val = true) {
+
+void eval_execution_set::setSameXForAll(bool val) {
+    same_x_forall = val;
+}
+
+//void eval_execution_set::setSameYForAll(bool val = true) {
+
+void eval_execution_set::setSameYForAll(bool val) {
+    same_y_forall = val;
+}
+
+bool eval_execution_set::getSameXForAll() {
+    return same_x_forall;
+}
+
+bool eval_execution_set::getSameYForAll() {
+    return same_y_forall;
+}
+
+// i don't even know if this idea will make it to the production version
+//void eval_execution_set::useSameExtremaForAll(bool val = true) {
+
+void eval_execution_set::useSameExtremaForAll(bool val) {
+    setSameXForAll(val);
+    setSameYForAll(val);
+}
+
+void eval_execution_set::useDifferentExtremaForEach() {
+    useSameExtremaForAll(false);
+}
+
+void eval_execution_set::complete() {
+    if (execs.empty())
+        throw std::logic_error("attempt to compete() empty eval_execution_set!");
+    // else
+    execs.back().set_phantom(phantomeasp);
+    execs.back().complete();
+    completed = true;
+}
+
+unsigned eval_execution_set::num_eval_execs() {
+    return static_cast<unsigned> (execs.size());
+}
+
+void eval_execution_set::deselect_exec(unsigned idx) {
+    if (!completed)
+        throw std::logic_error("Cannot deselect_exec() without having a completed eval_execution_set.");
+    if (idx >= num_eval_execs())
+        throw std::invalid_argument("exec index out of range in eval_execution_set::deselect_exec()");
+    selected[idx] = false;
+    extrema_calculated = false; // previous extrema calcs annulled
+}
+
+void eval_execution_set::select_exec(unsigned idx) { // everything is deselected by default
+    if (!completed)
+        throw std::logic_error("Cannot select_exec() without having a completed eval_execution_set.");
+    if (idx >= num_eval_execs())
+        throw std::invalid_argument("exec index out of range in eval_execution_set::deselect_exec()");
+    selected[idx] = true;
+    extrema_calculated = false; // previous extrema calcs annulled
+} // eval_execution_set::select_exec()
+
+void eval_execution_set::deselect_all_execs() {
+    if (!completed)
+        throw std::logic_error("Cannot deselect_all_execs() without having a completed eval_execution_set.");
+    for (std::vector<bool>::iterator it = selected.begin(); it != selected.end(); it++) {
+        *it = false;
+    }
+    extrema_calculated = false; // previous extrema calcs annulled
+}
+
+void eval_execution_set::select_all_execs() {
+    if (!completed)
+        throw std::logic_error("Cannot select_all_execs() without having a completed eval_execution_set.");
+    for (std::vector<bool>::iterator it = selected.begin(); it != selected.end(); it++) {
+        *it = true;
+    }
+    extrema_calculated = false; // previous extrema calcs annulled
+}
+
+bool eval_execution_set::selectionHasGlobal() {
+    for (unsigned idx = 0; idx < num_eval_execs(); idx++) {
+        if ((selected[idx]) && (execs[idx].hasGlobal())) {
+            return true;
+        }
+    }
+    return false;
+}
+
+bool eval_execution_set::selectionHasResidual() {
+    for (unsigned idx = 0; idx < num_eval_execs(); idx++) {
+        if ((selected[idx]) && (execs[idx].hasGlobal()) && (execs[idx].hasResidual())) {
+            return true;
+        }
+    }
+    return false;
+}
+
+bool eval_execution_set::selectionHasKullback() {
+    for (unsigned idx = 0; idx < num_eval_execs(); idx++) {
+        if ((selected[idx]) && (execs[idx].hasGlobal()) && (execs[idx].hasKullback())) {
+            return true;
+        }
+    }
+    return false;
+}
+
+bool eval_execution_set::selectionHasPBP() {
+    for (unsigned idx = 0; idx < num_eval_execs(); idx++) {
+        if ((selected[idx]) && (execs[idx].hasPBP())) {
+            return true;
+        }
+    }
+    return false;
+}
+
+/** eval_execution_set::get_num_Es() returns:
+    number of PBP fields IF execution selection includes a PBP
+                       0 otherwise (should? throw exception)
+ */
+unsigned eval_execution_set::get_num_Es() {
+    for (unsigned idx = 0; idx < num_eval_execs(); idx++) {
+        if ((selected[idx]) && (execs[idx].hasPBP())) {
+            return execs[idx].get_num_Es();
+        }
+    }
+    return 0;
+}
+
+// really throw exception... arkh.
+
+int eval_execution_set::getMinIterViaGlobal() {
+    if (calculate_global_extrema())
+        return minIter;
+    return -1;
+}
+
+int eval_execution_set::getMaxIterViaGlobal() {
+    if (calculate_global_extrema())
+        return maxIter;
+    return -1;
+}
+
+int eval_execution_set::getMinIterViaPBP() {
+    if (calculate_PBP_extrema())
+        return minIter;
+    return -1;
+}
+
+int eval_execution_set::getMaxIterViaPBP() {
+    if (calculate_PBP_extrema())
+        return maxIter;
+    return -1;
+}
+
+double eval_execution_set::getMinYGlobal(globalYVar_t globalYVar) {
+    if (!calculate_global_extrema()) return -1; // throw exception!
+    switch (globalYVar) {
+        case AVERAGE:
+            return minAverage;
+            break;
+        case DISTANCE:
+            return minDistance;
+            break;
+        case RELERR:
+            return minRelerr;
+            break;
+        case VARIANCE:
+            return minVariance;
+            break;
+        case STDDEV:
+            return minStddev;
+            break;
+        case RESIDUAL:
+            if (selectionHasResidual())
+                return minResidual;
+        case KULLBACK:
+            if (selectionHasKullback())
+                return minKullback;
+            break;
+    } // switch
+    // throw exception!
+    return -1;
+}
+
+double eval_execution_set::getMaxYGlobal(globalYVar_t globalYVar) {
+    if (!calculate_global_extrema()) return -1; // throw exception!
+    switch (globalYVar) {
+        case AVERAGE:
+            return maxAverage;
+            break;
+        case DISTANCE:
+            return maxDistance;
+            break;
+        case RELERR:
+            return maxRelerr;
+            break;
+        case VARIANCE:
+            return maxVariance;
+            break;
+        case STDDEV:
+            return maxStddev;
+            break;
+        case RESIDUAL:
+            if (selectionHasResidual())
+                return maxResidual;
+        case KULLBACK:
+            if (selectionHasKullback())
+                return maxKullback;
+            break;
+    } // --switch
+    // throw exception!
+    return -1;
+} // --eval_execution_set::getMaxYGlobal(globalYVar_t globalYVar)
+
+double eval_execution_set::getMinYPBP(unsigned idx) {
+    //   if(idx >= num_Es) {
+    //     throw std::logic_error("blah");
+    //   }
+    calculate_PBP_extrema();
+    return PBP_minima[idx];
+}
+
+double eval_execution_set::getMaxYPBP(unsigned idx) {
+    calculate_PBP_extrema();
+    return PBP_maxima[idx];
+}
+
+/** eval_execution_set::show_all() and show_selected() are for debugging */
+void eval_execution_set::show_all() {
+    if (hasPhantom()) {
+        phantomeasp->show();
+    }
+    for (std::deque<eval_execution>::iterator it = execs.begin(); it != execs.end(); it++) {
+        (*it).show_all();
+    } // --foreach eval_execution
+} // eval_execution_set::show_all()
+
+void eval_execution_set::show_selected() {
+    unsigned j = 0;
+    for (std::deque<eval_execution>::iterator it = execs.begin();
+            it != execs.end(); j++, it++) {
+        if (selected[j]) {
+            (*it).show_all();
+        }
+    } // --foreach eval_execution
+
+} // eval_execution_set::show_selected()
+
+/** eval_execution_set::show_extrema() [mainly for debugging]
+ *  huge side effect: recalculates all extrema without domain restriction */
+void eval_execution_set::show_extrema() {
+    if (!completed)
+        throw std::logic_error("Must NOT show extrema of eval_execution_set before complete() is signalled");
+    std::cout << "Showing extrema in eval_execution_set among selected eval_executions." << std::endl;
+
+    // hack...
+    if (hasPhantom()) {
+        phantomeasp->show();
+    }
+
+    bool successful = false;
+    if (calculate_global_extrema()) {
+        std::cout << "after global calculation: minIter, maxIter: " << minIter << " " << maxIter << std::endl;
+        std::cout << "minAverage, maxAverage, minDistance, maxDistance, minRelerr, maxRelerr:" << std::endl
+                << minAverage << " " << maxAverage << " " << minDistance << " " << maxDistance << " " << minRelerr << " " << maxRelerr;
+        std::cout << std::endl;
+        std::cout << "minVariance, maxVariance, minStddev, maxStddev, minResidual, maxResidual, minKullback, maxKullback:" << std::endl
+                << minVariance << " " << maxVariance << " " << minStddev << " " << maxStddev << " " << minResidual << " " << maxResidual << " " << minKullback << " " << maxKullback;
+        std::cout << std::endl;
+        successful = true;
+    }
+
+    if (calculate_PBP_extrema()) {
+        std::cout << "after PBP calculation: minIter, maxIter: " << minIter << " " << maxIter << std::endl;
+        for (unsigned i = 0; i < num_Es; i++) {
+            std::cout << "PBP_minima[" << i << "] = " << PBP_minima[i] << "; "
+                    << "PBP_maxima[" << i << "] = " << PBP_maxima[i] << std::endl;
+        }
+        successful = true;
+    }
+
+    if (!successful) {
+        std::cout << "Attempts to calculate both global and PBP extrema were unsuccessful." << std::endl;
+    }
+} // --eval_execution_set::show_extrema()
+
+void eval_execution_set::addPBPVarLines(line_real_set_t& LRS, unsigned PBPYVar, unsigned ee_index) {
+    execs[ee_index].addPBPVarLines(LRS, PBPYVar); // this is 'inefficient' addressing, so what?
+}
+
+void eval_execution_set::addGlobVarLines(line_real_set_t& LRS, globalYVar_t globalYVar, unsigned ee_index) {
+    double phanval;
+    // phantom first
+    if (phantomeasp) {
+        phanval = phantomeasp->get(globalYVar);
+    } else {
+        phanval = -2.0;
+    }
+    if (phanval > -0.5) {
+        line_real_t phantomline("phantom", LRS.getMinX(), LRS.getMaxX(), phanval);
+        LRS.add(phantomline);
+    }
+    // then the other lines
+    execs[ee_index].addGlobVarLines(LRS, globalYVar);
+} // --eval_execution_set::addGlobVarLines()
+
+void eval_execution_set::spawnDialogsGlob(QWidget* parent, globalYVar_t globalYVar) {
+    if (std::verbose >= 2) {
+        std::cout << "in eval_execution_set::spawnDialogsGlob()" << std::endl;
+    }
+    int posx = parent->pos().x();
+    int posy = parent->pos().y();
+    unsigned ee_index = 0;
+    for (std::deque<eval_execution>::iterator it = execs.begin();
+            it != execs.end(); ee_index++, it++) {
+        // if selected and has global and if selected var is residual then has residual
+        if ((selected[ee_index]) && ((*it).hasGlobal()) && ((globalYVar != RESIDUAL) || ((*it).hasResidual())) && ((globalYVar != KULLBACK) || ((*it).hasKullback()))) {
+            posx += 20;
+            posy += 20;
+            ///      it->show_extrema(); // might have side-effects
+            it->calculate_global_extrema();
+            int minX = it->getMinIter(); // to be the defaults in the range dialog window
+            int maxX = it->getMaxIter();
+            double minY = 0, maxY = 0; // initialize to shut up the compiler
+            switch (globalYVar) {
+                case AVERAGE: minY = it->getMinAverage();
+                    maxY = it->getMaxAverage();
+                    break;
+                case DISTANCE: minY = it->getMinDistance();
+                    maxY = it->getMaxDistance();
+                    break;
+                case RELERR: minY = it->getMinRelerr();
+                    maxY = it->getMaxRelerr();
+                    break;
+                case VARIANCE: minY = it->getMinVariance();
+                    maxY = it->getMaxVariance();
+                    break;
+                case STDDEV: minY = it->getMinStddev();
+                    maxY = it->getMaxStddev();
+                    break;
+                case RESIDUAL: minY = it->getMinResidual();
+                    maxY = it->getMaxResidual();
+                    break;
+                case KULLBACK: minY = it->getMinKullback();
+                    maxY = it->getMaxKullback();
+                    break;
+                    // default: never happens
+            }
+            if (std::verbose >= 2) {
+                std::cout << "in eval_execution_set::spawnDialogsGlob() minY is "
+                        << minY << " and maxY is " << maxY << std::endl;
+            }
+            const char* ccp = it->getName();
+            chooseRangesDialog* crdp =
+                    new chooseRangesDialog(parent, ccp, false, 0, posx, posy,
+                    ee_index, false, 0, globalYVar,
+                    minX, maxX, minY, maxY);
+            crdp->show();
+        } // if
+    } // for
+} // --eval_execution_set::spawnDialogsGlob()
+
+/** spawn dialog box to get range for each selected eval execution with PBP */
+void eval_execution_set::spawnDialogsPBP(QWidget* parent, unsigned PBPYVar) {
+    if (std::verbose >= 2) {
+        std::cout << "in eval_execution_set::spawnDialogsPBP()" << std::endl;
+    }
+    int posx = parent->pos().x();
+    int posy = parent->pos().y();
+    unsigned ee_index = 0;
+    for (std::deque<eval_execution>::iterator it = execs.begin();
+            it != execs.end(); ee_index++, it++) {
+        if ((selected[ee_index]) && ((*it).hasPBP())) {
+            posx += 20;
+            posy += 20;
+            it->calculate_PBP_extrema();
+            int minX = it->getMinIter(); // to be the defaults in the range dialog window
+            int maxX = it->getMaxIter();
+            double minY = it->getMinE(PBPYVar);
+            double maxY = it->getMaxE(PBPYVar);
+            const char* ccp = it->getName();
+            chooseRangesDialog* crdp =
+                    new chooseRangesDialog(parent, ccp, false, 0, posx, posy,
+                    ee_index, true, PBPYVar, AVERAGE,
+                    minX, maxX, minY, maxY);
+            crdp->show();
+        } // if
+    } // --for
+} // --eval_execution_set::spawnDialogsPBP()
+
+void eval_execution_set::spawnAllPlotsGlob(QWidget* parent,
+        globalYVar_t globalYVar, int userMinXVal, int userMaxXVal,
+        double userMinYVal, double userMaxYVal, bool isGrayScale) {
+    /// std::cout << "in eval_execution_set::spawnAllPlotsGlob()" << std::endl;
+    //  int PMWidth  = 650; // pixmap width, etc
+    //  sd_line_t::WIDTH  = 650;
+    int PMWidth = sd_line_t::WIDTH;
+    //  int PMHeight = 550;
+    //  sd_line_t::HEIGHT = 550;
+    int PMHeight = sd_line_t::HEIGHT;
+    int PMDepth = 24; // number of colors?
+    unsigned ee_index = 0;
+    int x = parent->pos().x();
+    int y = parent->pos().y();
+    // block for doing phan
+    double phanval;
+    if (phantomeasp) {
+        phanval = phantomeasp->get(globalYVar);
+    } else {
+        phanval = -2.0;
+    }
+    QString YVarName;
+    switch (globalYVar) {
+        case AVERAGE: YVarName = "Average";
+            break;
+        case DISTANCE: YVarName = "Distance";
+            break;
+        case RELERR: YVarName = "Relative Error";
+            break;
+        case VARIANCE: YVarName = "Variance";
+            break;
+        case STDDEV: YVarName = "Standard Deviation";
+            break;
+        case RESIDUAL: YVarName = "Residual";
+            break;
+        case KULLBACK: YVarName = "KL Distance";
+            break;
+    }
+    for (std::deque<eval_execution>::iterator it = execs.begin();
+            it != execs.end(); ee_index++, it++) {
+        if ((selected[ee_index]) && ((*it).hasGlobal()) && ((globalYVar != RESIDUAL) || ((*it).hasResidual())) && ((globalYVar != KULLBACK) || ((*it).hasKullback()))) {
+            line_real_set_t LRS(userMinXVal, userMaxXVal, userMinYVal, userMaxYVal);
+            QPixmap* myPixmapP = new QPixmap(PMWidth, PMHeight);
+            myPixmapP->fill(Qt::white);
+            QPainter* myPainterP = new QPainter;
+            myPainterP->begin(myPixmapP);
+            // do the thing with the plot
+            if (phanval > -0.5) { // if no error getting stuff from phan
+                line_real_t phantomline("phantom", LRS.getMinX(), LRS.getMaxX(), phanval);
+                LRS.add(phantomline);
+            }
+            it->addGlobVarLines(LRS, globalYVar);
+            plot_t myPlotter(LRS); // now combine LRS with myPainterP
+            QString evalexecname = it->getName();
+            QString fullname = evalexecname;
+            fullname += " :: ";
+            fullname += YVarName;
+            myPlotter.setName(fullname);
+            myPlotter.setYAxisName(YVarName);
+            QString XAxisName = "Iteration"; // as in all evals
+            myPlotter.setXAxisName(XAxisName);
+            // jk 2/2/2009 adding grayScale option for graphs
+            if (isGrayScale) {
+                myPlotter.plotGray(*myPainterP);
+            } else {
+                myPlotter.plot(*myPainterP);
+            }
+            x += 20;
+            y += 20;
+            displaylineswindow *dwp = new displaylineswindow(parent, fullname, myPixmapP, false, 0, x, y);
+            dwp->show(); // and display!
+        }
+    } // --for
+} // --eval_execution_set::spawnAllPlotsGlob()
+
+void eval_execution_set::spawnAllPlotsPBP(QWidget* parent, unsigned PBPYVar,
+        int userMinXVal, int userMaxXVal, double userMinYVal,
+        double userMaxYVal, bool isGrayScale) {
+    ///  std::cout << "in eval_execution_set::spawnAllPlotsPBP()" << std::endl;
+    //  int PMWidth  = 650; // pixmap width, etc
+    //  sd_line_t::WIDTH  = 650;
+    int PMWidth = sd_line_t::WIDTH;
+    //  int PMHeight = 550;
+    //  sd_line_t::HEIGHT = 550;
+    int PMHeight = sd_line_t::HEIGHT;
+    unsigned ee_index = 0;
+    int x = parent->pos().x();
+    int y = parent->pos().y();
+    QString YVarName = "e(";
+    QString PBPYVarAsQString;
+    PBPYVarAsQString.setNum(PBPYVar);
+    YVarName += PBPYVarAsQString;
+    YVarName += (')');
+    for (std::deque<eval_execution>::iterator it = execs.begin();
+            it != execs.end(); ee_index++, it++) {
+        if ((selected[ee_index]) && ((*it).hasPBP())) {
+            line_real_set_t LRS(userMinXVal, userMaxXVal, userMinYVal, userMaxYVal);
+            QPixmap* myPixmapP = new QPixmap(PMWidth, PMHeight);
+            myPixmapP->fill(Qt::white);
+            QPainter* myPainterP = new QPainter;
+            myPainterP->begin(myPixmapP);
+            // do the thing with the plot: NO phantom for PBP
+            it->addPBPVarLines(LRS, PBPYVar);
+            plot_t myPlotter(LRS); // now combine LRS with myPainterP
+            // can give name here based on (*it)
+            QString evalexecname = it->getName();
+            QString fullname = evalexecname;
+            fullname += " :: ";
+            fullname += YVarName;
+            myPlotter.setName(fullname);
+            QString xaxname = "Iteration";
+            myPlotter.setXAxisName(xaxname);
+            myPlotter.setYAxisName(YVarName);
+            // jk 2/2/2009 adding grayScale option for graphs
+            if (isGrayScale) {
+                myPlotter.plotGray(*myPainterP);
+            } else {
+                myPlotter.plot(*myPainterP);
+            }
+
+            x += 20;
+            y += 20;
+            displaylineswindow *dwp = new displaylineswindow(parent, fullname, myPixmapP, false, 0, x, y);
+            dwp->show(); // and display!
+        }
+    } // --for
+} // --eval_execution_set::spawnAllPlotsPBP()
+
+/** eval_execution_set::clear() !!!! erases all information!!! (to allow callee to get on with life) */
+void eval_execution_set::clear() {
+    ///  std::cout << "in eval_execution_set::clear()!!!" << std::endl;
+    completed = extrema_calculated = false;
+    same_x_forall = same_y_forall = false; // initialize to use "locally" calculated domain/range bounds
+    selectionHasResidualvar = false;
+    selectionHasKullbackvar = false;
+    num_Es = 0;
+    if (phantomeasp) delete phantomeasp;
+    phantomeasp = 0;
+    PBP_minima.clear();
+    PBP_maxima.clear();
+    selected.clear();
+    execs.clear();
+    minResidual = maxResidual = -1;
+    minKullback = maxKullback = -1;
+} // --eval_execution_set()
+
+eval_execution_set::~eval_execution_set() {
+    //  std::cout << "in eval_execution_set destructor!!!" << std::endl;
+    if (phantomeasp) {
+        delete phantomeasp; // and make sure no one else does this!
+    }
+} // --eval_execution_set dtor
+//// // --class eval_execution_set
+
+unsigned globmeas::NEXT_GMID = 0; // class variable initialization
+unsigned globmeaset::NEXT_GMSID = 0; // class variable initialization
+unsigned PBPmeas::NEXT_PMID = 0; // class variable initialization
+unsigned PBPmeaset::NEXT_PMSID = 0; // class variable initialization
+unsigned eval_execution::NEXT_EEID = 0; // class variable initialization
+
+// --eval_helper.cpp
diff --git a/tools/Display/eval_helper.hpp b/tools/Display/eval_helper.hpp
new file mode 100755 (executable)
index 0000000..d4d4795
--- /dev/null
@@ -0,0 +1,121 @@
+/** @file eval_helper.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/** @name eval_helper.hpp
+    @type C++ header file
+    @date April 2004
+    @package snark14Display
+    @see eval_helper.cpp
+*/
+
+#ifndef _EVAL_HELPER_HPP 
+#define _EVAL_HELPER_HPP
+
+#include <qwidget.h>
+#include "verbosity.hpp"
+#include <exception>
+#include <stdexcept>
+#include <cstdio>
+#include <iostream>
+#include <deque>
+#include <vector>
+
+#include "line_real_set_t.hpp"
+
+
+enum globalYVar_t { AVERAGE, DISTANCE, RELERR, VARIANCE, STDDEV, RESIDUAL, KULLBACK };
+
+typedef char* measline_t; // these types are potentially used everywhere
+typedef char* execname_t;
+
+class phantomeas;        // forward declaration of classes used by eval_execution_set
+class eval_execution;
+
+/** "public interface"-like class definition of eval_execution_set: 
+ *    superstructure capable of holding information 
+ *    from many eval executions, an entire eval08 file  */
+class eval_execution_set {
+  std::deque<eval_execution> execs; // entire output of snark14 EVALUATE executions
+  std::vector<bool> selected; // holds which execs are selected by snark14Display user
+  phantomeas* phantomeasp;
+  bool completed; // holds whether creation of execs is complete (is this really necessary here?)
+  bool extrema_calculated; // holds whether extrema are calculated (ditto.)
+  bool selectionHasResidualvar;
+  bool selectionHasKullbackvar;
+  bool same_x_forall;  // for iter, plotted on x-axis
+  bool same_y_forall;  // for whatever it is that is requested for plotting on y-axis
+  // (almost the same as for eval_execution) extrama...
+  // first the global extrema
+  int minIter, maxIter;
+  double minAverage, maxAverage, minDistance, maxDistance, minRelerr, maxRelerr;
+  double minVariance, maxVariance, minStddev, maxStddev, minResidual, maxResidual, minKullback, maxKullback;
+  // then the PBP extrema...
+  std::vector<double> PBP_minima; // minima and maxima of each E(0)..E(N-1), N not varying within an eval file.
+  std::vector<double> PBP_maxima; // to be calculated over ALL EVALUATE calls, depending.
+  unsigned num_Es; // 'N' in comment above
+  // e.g., PBP_minima[2] is the minimum value of all E(2) in all PBPmeasets in all execs.
+public:
+  // construction
+  eval_execution_set();
+  // cultivation  (call during the eval file reading phase)
+  void new_exec(execname_t line);
+  void new_globmeaset(execname_t line);
+  void add_to_globmeaset(measline_t line);
+  void new_PBPmeaset(execname_t line);
+  void add_to_PBPmeaset(measline_t line);
+  void set_phantomeas(measline_t line);
+  // completion (call to signal transition from cultivation phase to manipulation phase)
+  void complete();
+  // manipulation
+  bool calculate_global_extrema(bool restrict_domain, int min_it_arg, int max_it_arg);
+  bool calculate_global_extrema();
+  bool calculate_PBP_extrema(bool restrict_domain, int min_it_arg, int max_it_arg);
+  bool calculate_PBP_extrema();
+  void deselect_exec(unsigned idx);
+  void select_exec(unsigned idx);
+  void deselect_all_execs();
+  void select_all_execs();
+  void setSameXForAll (bool val = true);
+  void setSameYForAll (bool val = true);
+  void useSameExtremaForAll (bool val = true);
+  void useDifferentExtremaForEach();
+  // information extraction pertaining to entire set
+  unsigned num_eval_execs();
+  bool hasPhantom();
+  bool selectionHasGlobal();
+  bool selectionHasResidual(); // should really be called only after selectionHasGlobal()
+  bool selectionHasKullback();
+  bool selectionHasPBP();
+  unsigned get_num_Es(); // if no PBP, returns 0.  should really be called only after hasPBP()
+  bool getSameXForAll();
+  bool getSameYForAll();
+  int getMinIterViaGlobal();   // by some sleight of theory, 
+  int getMaxIterViaGlobal();  // iterations could be different from global to PBP... 
+  int getMinIterViaPBP();    // I'm taking out insurance.
+  int getMaxIterViaPBP();
+  double getMinYGlobal(globalYVar_t globalYVar);
+  double getMaxYGlobal(globalYVar_t globalYVar);
+  double getMinYPBP(unsigned idx);
+  double getMaxYPBP(unsigned idx);
+  // information extraction pertaining to a single evaluate execution
+  execname_t getExecName(unsigned idx);
+  // reporting to stdout (for debugging)
+  void show_all();
+  void show_selected();
+  void show_extrema();
+  void addPBPVarLines(line_real_set_t& LRS, unsigned PBPYVar, unsigned ee_index);
+  void addGlobVarLines(line_real_set_t& LRS, globalYVar_t globalYVar, unsigned ee_index);
+  void spawnDialogsGlob(QWidget* parent, globalYVar_t globalYVar);
+  void spawnDialogsPBP(QWidget* parent, unsigned PBPYVar);
+  void spawnAllPlotsGlob(QWidget* parent, globalYVar_t globalYVar, int userMinXVal, int userMaxXVal, double userMinYVal, double userMaxYVal, bool isGrayScale);
+  void spawnAllPlotsPBP(QWidget* parent, unsigned PBPYVar, int userMinXVal, int userMaxXVal, double userMinYVal, double userMaxYVal, bool isGrayScale);
+  // two flavors of destruction
+  void clear(); // allows there to be a single, shared variable
+  ~eval_execution_set();
+}; // --"public interface" (within entire snark14Display) of class eval_execution_set
+#endif // _EVAL_HELPER_HPP
+// --eval_helper.hpp
diff --git a/tools/Display/image.cpp b/tools/Display/image.cpp
new file mode 100755 (executable)
index 0000000..2928a7e
--- /dev/null
@@ -0,0 +1,172 @@
+/** @file image.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "variables.hpp"
+#include "image.hpp"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <malloc.h>
+#include <qmessagebox.h>
+
+Snarkimage::Snarkimage()
+{
+  image=NULL;
+  max=-100000;
+  min=100000;
+  isloaded=false;
+  fileformat=DIGDataFormat_ASCII;
+}
+
+Snarkimage::Snarkimage(int imagenumber,DIGDataFormat format)
+{
+  int i,j;
+  double *tmpimg;
+  max=-100000;
+  min=100000;
+  tmpimg=(double *)malloc(sizeof(double)*Sizey*Sizex);
+  image=matrix(0,Sizey,0,Sizex);
+  if(!format) { /* format=0 (ASCII)  */
+    fileformat=DIGDataFormat_ASCII;
+    digrecfil.SelectArraySet(imageindexes[imagenumber][0]);
+    digrecfil.SelectArray(imageindexes[imagenumber][1]);
+    digrecfil.GetArrayData(tmpimg);
+    for(i=0;i<Sizey;i++) {
+// bug #141 fix
+      for(j=0;j<Sizex;j++) {
+       image[Sizey-i-1][j]=tmpimg[i*Sizex+j];
+       // bug! image[i][j]=tmpimg[i*Sizey+j]; fixed 2004 apr
+        if(image[Sizey-i-1][j]>max)
+         max=image[Sizey-i-1][j];
+        if(image[Sizey-i-1][j]<min)
+         min=image[Sizey-i-1][j];
+      }
+    }
+  }
+  else { /* format=1 (BINARY) */
+    fileformat=DIGDataFormat_BINARY;
+    digrecfil.SelectArraySet(imageindexes[imagenumber][0]);
+    digrecfil.SelectArray(imageindexes[imagenumber][1]);
+    digrecfil.GetArrayData(tmpimg);
+    //    for(i=0;i<Sizey;i++) {
+    for(i=Sizey-1; i>=0; i--) { // bug #141 fix
+      for(j=0;j<Sizex;j++) {
+       //bug! image[i][j]=tmpimg[i*Sizey+j]; fixed 2004 apr
+       image[Sizey-i-1][j]=tmpimg[i*Sizex+j];
+        if(image[Sizey-i-1][j]>max)
+         max=image[Sizey-i-1][j];
+        if(image[Sizey-i-1][j]<min)
+         min=image[Sizey-i-1][j];
+      }
+    }
+  }
+ isloaded=true;
+ if(max>globalmax) 
+   globalmax=max;
+ if(min<globalmin) 
+   globalmin=min;
+ free(tmpimg);
+}
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+Snarkimage::~Snarkimage()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+void Snarkimage::readImage(int imagenumber,DIGDataFormat format)
+{
+  int i,j;
+  double *tmpimg;
+
+  max=-100000;
+  min=100000;
+  tmpimg=(double *)malloc(sizeof(double)*Sizey*Sizex);
+  image=matrix(0,Sizey,0,Sizex);
+  if(!format) { /* format=0 (DIGDataFormat_ASCII)  */
+    digrecfil.SelectArraySet(imageindexes[imagenumber][0]);
+    digrecfil.SelectArray(imageindexes[imagenumber][1]);
+    digrecfil.GetArrayData(tmpimg);
+    for(i=0;i<Sizey;i++) {
+      // bug #141 fix
+      for(j=0;j<Sizex;j++) {
+       image[Sizey-i-1][j]=tmpimg[i*Sizey+j];
+        if(image[Sizey-i-1][j]>max)
+         max=image[Sizey-i-1][j];
+        if(image[Sizey-i-1][j]<min)
+         min=image[Sizey-i-1][j];
+      }
+    }
+  }
+  else { /* format=1 (DIGDataFormat_BINARY) */
+    digrecfil.SelectArraySet(imageindexes[imagenumber][0]);
+    digrecfil.SelectArray(imageindexes[imagenumber][1]);
+    digrecfil.GetArrayData(tmpimg);
+    for(i=0;i<Sizey;i++) {
+      // bug #141 fix
+      for(j=0;j<Sizex;j++) {
+       image[Sizey-i-1][j]=tmpimg[i*Sizey+j];
+        if(image[Sizey-i-1][j]>max)
+         max=image[Sizey-i-1][j];
+        if(image[Sizey-i-1][j]<min)
+         min=image[Sizey-i-1][j];
+      }
+    }
+  }
+ isloaded=true;
+ if(max>globalmax) 
+   globalmax=max;
+ if(min<globalmin) 
+   globalmin=min;
+ free(tmpimg);
+}
+
+double** Snarkimage::getImage()
+{
+  return image;
+}
+
+double Snarkimage::getMax()
+{
+  return max;
+}
+
+double Snarkimage::getMin()
+{
+  return min;
+}
+
+bool Snarkimage::isLoaded()
+{
+  return isloaded;
+}
+
+double** Snarkimage::matrix(int nrl,int nrh,int ncl,int nch)
+/*  Allocates a double pt array with range [npl .. nph][nrl .. nrh][ncl .. nch]  */
+{
+   int j;
+   double **m;
+
+   m = (double **) malloc((unsigned) (nrh-nrl+1)*sizeof(double*));
+   if (!m) {
+       printf("Allocation failure in matrix() (y)\n");
+       exit(-1);
+   }
+   m -= nrl;
+   for(j=nrl; j<=nrh; j++) {
+     m[j] = (double *) malloc((unsigned) (nch-ncl+1)*sizeof(double));
+     if(!m[j]) {
+       printf("Allocation failure in matrix() (x)\n");
+       exit(-1);
+     }
+     m[j] -= ncl;
+   }
+   return m;
+}
+
diff --git a/tools/Display/image.hpp b/tools/Display/image.hpp
new file mode 100755 (executable)
index 0000000..91e2e1e
--- /dev/null
@@ -0,0 +1,33 @@
+/** @file image.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef IMAGE_H
+#define IMAGE_H
+
+// #include "variables.hpp"
+
+class Snarkimage {
+public:
+    Snarkimage( int imagenumber, DIGDataFormat format );
+    Snarkimage();
+    ~Snarkimage();
+    void readImage( int imagenumber, DIGDataFormat format );
+    double** getImage();
+    double getMin();
+    double getMax();
+    bool isLoaded();
+
+    double **image;
+    double max;
+    double min;
+    bool isloaded;
+    DIGDataFormat fileformat;
+private:
+    double** matrix(int  nrl,int nrh,int ncl,int nch);
+};
+
+#endif // IMAGE_H
diff --git a/tools/Display/line_real_set_t.cpp b/tools/Display/line_real_set_t.cpp
new file mode 100755 (executable)
index 0000000..5a77b33
--- /dev/null
@@ -0,0 +1,36 @@
+/** @file line_real_set_t.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    @description implementation of functions in line_real_set_t class
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include <iostream>
+
+#include "verbosity.hpp"
+#include "line_real_set_t.hpp"
+#include "line_real_t.hpp"
+
+line_real_set_t::line_real_set_t(int minXin, int maxXin, double minYin, double maxYin) {
+  minX = minXin;
+  maxX = maxXin;
+  minY = minYin;
+  maxY = maxYin;
+}
+
+void line_real_set_t::add(line_real_t& line_real) {
+  line_real.setset(this);
+  data.push_back(line_real);
+  if(std::verbose > 2) {
+    //  line_real.show();
+    //  std::cerr << " $$Added a line_real_t to line_real_set_t " << this << " $$ ";
+  }
+} // line_real_set_t::add()
+
+bool line_real_set_t::empty()  {    return data.empty();  }
+void line_real_set_t::clear()  {    data.clear();  }
+int line_real_set_t::getMinX()    {    return minX;  }
+int line_real_set_t::getMaxX()    {    return maxX;  }
+double line_real_set_t::getMinY() {    return minY;  }
+double line_real_set_t::getMaxY() {    return maxY;  }
diff --git a/tools/Display/line_real_set_t.hpp b/tools/Display/line_real_set_t.hpp
new file mode 100755 (executable)
index 0000000..2f31709
--- /dev/null
@@ -0,0 +1,37 @@
+/** @file line_real_set_t.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    @description class line_real_set_t definition
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+#ifndef _LINE_REAL_SET_T
+#define _LINE_REAL_SET_T
+
+#include <list>
+
+class plot_t;
+class line_real_t;
+
+/** lots of real lines, corresponding to:
+      same type of y-variable 
+      same going-to-be window size
+*/
+class line_real_set_t {
+  int minX, maxX;
+  double minY, maxY;
+  typedef std::list<line_real_t> line_real_list_t;
+  line_real_list_t data;
+  friend class plot_t;
+public:
+  line_real_set_t(int minXin, int maxXin, double minYin, double maxYin);
+  void add(line_real_t& line_real);
+  bool empty();
+  void clear();
+  int getMinX();
+  int getMaxX();
+  double getMinY();
+  double getMaxY();
+  //  void show();
+}; // --class line_real_set_t
+#endif
diff --git a/tools/Display/line_real_t.cpp b/tools/Display/line_real_t.cpp
new file mode 100755 (executable)
index 0000000..37d9d78
--- /dev/null
@@ -0,0 +1,79 @@
+/** @file line_real_t.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include <exception>
+#include <stdexcept>
+
+#include <qstring.h>
+
+#include "sd_line_t.hpp"
+#include "line_real_t.hpp"
+#include "line_real_set_t.hpp"
+
+#include <iostream>
+
+class line_real_set_t;
+
+line_real_t::line_real_t(QString name) {
+  plotname = name;
+  mySetP = 0;
+}
+
+line_real_t::line_real_t(QString name, int fromX, int toX, double atY) { // good for phantom
+  plotname = name;
+  mySetP = 0;
+  for(int x = fromX; x <= toX; x++) {
+    add(x,atY);
+  }
+}
+
+bool line_real_t::empty() { return data.empty(); }
+
+void line_real_t::add(int x, double y) {
+  point_real_t p = {x, y};
+  data.push_back(p);
+} // --line_real_t::add()
+
+void line_real_t::clear() { data.clear(); }
+
+// these 4 must wait until the end of line_real_set_t def
+
+int line_real_t::getMinX() {
+  if(0 == mySetP)
+    throw std::logic_error("line_real's set not set!");
+  return mySetP->getMinX();
+}
+
+int line_real_t::getMaxX() {
+  if(0 == mySetP)
+    throw std::logic_error("line_real's set not set!");
+  return mySetP->getMaxX();
+}
+
+double line_real_t::getMinY() {
+  if(0 == mySetP)
+    throw std::logic_error("line_real's set not set!");
+  return mySetP->getMinY();
+}
+
+double line_real_t::getMaxY() {
+  if(0 == mySetP)
+    throw std::logic_error("line_real's set not set!");
+  return mySetP->getMaxY();
+}
+
+QString line_real_t::getName() { return plotname; }
+
+void line_real_t::setset(line_real_set_t* sp) {  mySetP = sp;  }
+
+/** debug routine -- caller is responsible */
+void line_real_t::show() {
+  for(data_real_t::const_iterator it = data.begin(); it != data.end(); it++) {
+    std::cerr << "(" << (it->x) << "," << (it->y) << ")" << " ";
+  }
+  std::cerr << " ##### ";
+}
diff --git a/tools/Display/line_real_t.hpp b/tools/Display/line_real_t.hpp
new file mode 100755 (executable)
index 0000000..c0da903
--- /dev/null
@@ -0,0 +1,43 @@
+/** @file line_real_t.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef _LINE_REAL_T
+#define _LINE_REAL_T
+
+#include "sd_line_t.hpp"
+
+#include <list>
+
+#include <qstring.h>
+
+class QString;
+class line_real_set_t;
+class line_window_onevar_t;
+class line_real_t
+{
+  typedef std::list<point_real_t> data_real_t;
+  data_real_t data;
+  QString plotname;
+  friend class line_window_onevar_t; // hey, this worked!
+  line_real_set_t* mySetP;
+  // maybe make 'struct' nodes and trees in historytree.cpp into friendly classes too?
+public:
+  line_real_t(QString name);
+
+  line_real_t(QString name, int fromX, int toX, double atY); // good for phantom
+  bool empty();
+  void add(int x, double y);
+  void clear();
+  int getMinX(); // definitions must wait until the end of line_real_set_t def
+  int getMaxX();
+  double getMinY();
+  double getMaxY();
+  QString getName();
+  void setset(line_real_set_t* sp);
+  void show();
+}; // --class line_real_t
+#endif
diff --git a/tools/Display/line_window_onevar_t.cpp b/tools/Display/line_window_onevar_t.cpp
new file mode 100755 (executable)
index 0000000..80ccd61
--- /dev/null
@@ -0,0 +1,266 @@
+/** @file line_window_onevar_t.cpp
+    @author Deniz
+    @description implementation of functions in line_window_onevar_t
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include <iostream>
+#include <list>
+#include <stdexcept>
+#include <exception>
+
+#include "verbosity.hpp"
+#include "sd_line_t.hpp"
+#include "line_real_t.hpp"
+#include "line_window_onevar_t.hpp"
+
+typedef std::list<line_window_t> data_onevar_t;
+
+/** class line_window_onevar_t 
+    corresponds to a set of maybe disconnected (due to falling out of window boundaries)
+    segments for a single variable, due to single execution
+    All these hacks are due to a bug i found in QT API (both versions)
+    when plotting big numbers: now being superparanoid to drawLine() ONLY within the window, 
+    which is not necessarily as precise but at least guarantees that 
+    there will be lines when there should be. 
+*/
+
+/** constuctor/1 takes one line with real coords, potentially makes many point sets from it    *
+ *  pre: line_real has at least 1 point                                                        *
+ *  pre: x values in line_real are strictly increasing (as is the case in snark14 eval output) *
+ *  (as well as in column/row profiles?) i believe those are not even given as (x,y)  (yet)    *
+ *  trusts Painter::drawLine() with between interior and JUST outside the paint window.        *
+ *  this is where conversion from reals to window coords actually happens                      *
+ *  2004 version WAS TOO SIMPLE MINDED.                                                        *
+ *    even if both points are out of range, we still want to see a line,                       *
+ *        without there being an inside-the-box first point!                                   *
+ */
+line_window_onevar_t::line_window_onevar_t(line_real_t& line_real) {
+  if(std::verbose > 2) {
+    std::cerr << std::endl << "line_window_onevar_t ctor++" << std::endl;
+  }
+  if(line_real.empty()) {
+    std::cerr << ("Empty line passed to line_window_onevar_t constructor/3");
+    throw std::runtime_error("Empty line passed to line_window_onevar_t constructor/3");
+  }
+  //    XWINPAD and YWINPAD are defined consts (int)
+  if ((3*sd_line_t::XWINPAD > sd_line_t::WIDTH) || (3*sd_line_t::YWINPAD > sd_line_t::HEIGHT)) {
+    std::cerr << "PADDING WITHIN WINDOW IS HUGE!  ADJUST XWINPAD / YWINPAD, codeur!" << std::endl;
+    throw std::logic_error("in line_window_onevar_t ctor, too huge padding wrt W/H");
+    // this is why it's a bad idea to let the user set WIDTH and HEIGHT
+  }
+  plotname = line_real.getName();
+  int xrmin = line_real.getMinX(); // "x real min" etc.  real as opposed to window coords
+  int xrmax = line_real.getMaxX();
+  double yrmin = line_real.getMinY();
+  double yrmax = line_real.getMaxY();
+  // perform fudging defensively
+  if(0 < sd_line_t::X_HALF_FUDGE_INCREMENT) {
+    xrmin -= sd_line_t::X_HALF_FUDGE_INCREMENT;
+    xrmax += sd_line_t::X_HALF_FUDGE_INCREMENT;
+  }
+  int xr_range = xrmax - xrmin; // underscore between r's for emphasis
+  double yr_range = yrmax - yrmin;
+  if(std::verbose > 2) {
+    std::cerr << "xr_range: " << xr_range << ", yr_range: " << yr_range << std::endl;
+  }
+  if(0 < sd_line_t::Y_HALF_FUDGE_FACTOR) {
+    double y_half_fudge = yr_range * sd_line_t::Y_HALF_FUDGE_FACTOR;
+    yrmin -= y_half_fudge;
+    yrmax += y_half_fudge;
+    yr_range = yrmax - yrmin; // calculate post-fudge yr_range
+  }
+  // convert to lattice points of [XWINPAD, WIDTH-XWINPAD) x [YWINPAD, HEIGHT-YWINPAD)
+  // NB: y reverses direction
+  int cr_x, pr_x;    // current and previous real x's
+  double cr_y, pr_y; // current and previous real y's
+  int xwmin = sd_line_t::XWINPAD;
+  //      int xwmax = WIDTH - 1 - XWINPAD;
+  int xwrange = sd_line_t::WIDTH - 1 - 2*sd_line_t::XWINPAD;
+  int ywmin = sd_line_t::YWINPAD;
+  // the following can be very slightly out of range: trust Qt to be OK with it
+  int ywmax = sd_line_t::HEIGHT - 1 - sd_line_t::YWINPAD;
+  int ywrange = ywmax - ywmin;
+  double yscalar = static_cast<double>(ywrange) / yr_range;
+  double xscalar = static_cast<double>(xwrange) / static_cast<double>(xr_range);
+  line_window_t LW; // treated like scratch paper: fills up, pushed, emptied, filled again...
+  int xw, yw;
+  double xr;  // , yr;
+  // xwrange corresponds to xr_range
+  // ywrange corresponds to yr_range
+  // the line (xr = xrmin) intersects the  *left side*  of (pixels with "x coordinate" xwmin)
+  // the line (xr = xrmax) intersects the *right side*  of (pixels with "x coordinate" xwmax)
+  // the line (yr = yrmin) intersects the *bottom side* of (pixels with "y coordinate" ywmax)
+  // the line (yr = yrmax) intersects the  *top side*   of (pixels with "y coordinate" ywmax)
+  // in general:
+  // xw = xwmin + static_cast<int> (xscalar * (xr - xrmin));
+  // yw = ywmin + static_cast<int> (yscalar * (yrmax - yr));
+  bool firstdatapoint = true;
+  bool firstpointwithinxrange = false;
+  bool prev_r_low, prev_r_high, cur_r_low, cur_r_high;
+  line_real_t::data_real_t::const_iterator it = line_real.data.begin();
+  if(it == line_real.data.end()) {
+    std::cerr << "line_window_onevar_t ctor: No data points... but checked for this already?" << std::endl;
+    return;
+  }
+  // first real point gets 'special treatment' in that it has no previous data point
+  cr_x = it->x;
+  if(cr_x > xrmax) return; // nothing will be within range, x's increasing
+  cr_y = it->y;
+  cur_r_low  = (cr_y < yrmin);
+  cur_r_high = (cr_y > yrmax);
+  // for loop will execute only as long as cur x is to the left
+  while((it != line_real.data.end()) && (cr_x < xrmin)) {
+    it++;
+    cr_x = it->x;
+    cr_y = it->y;
+    cur_r_low  = (cr_y < yrmin);
+    cur_r_high = (cr_y > yrmax);
+  }
+  if(cr_x < xrmin) {
+    if(std::verbose > 1) {
+      std::cerr << "line_window_onevar_t ctor returning because everything was to the left of x range" << std::endl;
+    }
+    return; // nothing was within range
+  }
+  // since we started with less than x (otherwise would have returned)
+  // now cur x is within the range, since x range contains at least one x value!
+  if(cr_x > xrmax) {
+    if(std::verbose > 1) {
+      std::cerr << "in line_window_onevar_t ctor: But this is impossible!" << std::endl;
+    }
+    return;
+  }
+  // now, we have the first data point whose real x is within range of interest
+  if(! (cur_r_low || cur_r_high)) {
+    xw = xwmin + static_cast<int> (xscalar * (cr_x - xrmin));
+    yw = ywmin + static_cast<int> (yscalar * (yrmax - cr_y));
+    LW.add(xw, yw);
+  }
+  it++; // now do all the other points!
+  for(; it != line_real.data.end(); it++) {
+    pr_x = cr_x;
+    pr_y = cr_y;
+    prev_r_low = cur_r_low;
+    prev_r_high = cur_r_high;
+    cr_x = it->x;
+    if(cr_x > xrmax) break; // this one is fine: we won't look at the rest of the data...
+    cr_y = it->y;
+    cur_r_low  = (cr_y < yrmin);
+    cur_r_high = (cr_y > yrmax);
+    // from now on, lowness and highness only concerns y, until we run out, which is the end
+    // in general: 9 (3*3) possibilities
+    if(prev_r_low) { // 1
+      if(cur_r_low) { // 1.1
+       // do nothing! (except to set prev := cur, which happens near the closing brace)
+      } else if(cur_r_high) { // 1.2
+       // calculate two x-intercepts in between prev and cur... first the lower one
+       // "xr_intercept_low" is the x intercept of yrmin
+       double xr_intercept_low = (cr_x) - ((cr_y - yrmin ) * (cr_x - pr_x)) / (cr_y - pr_y);
+       xw = xwmin + static_cast<int> (xscalar * (xr_intercept_low - xrmin));
+       LW.add(xw,ywmax); // ywmax <=> yrmin
+       // "xr_intercept_high" means the x intercept with yrmax
+       double xr_intercept_high = (cr_x) - ((cr_y - yrmax ) * (cr_x - pr_x)) / (cr_y - pr_y);
+       xw = xwmin + static_cast<int> (xscalar * (xr_intercept_high - xrmin));      
+       LW.add(xw,ywmin); // ywmin <=> yrmax
+       data.push_back(LW);  // flush
+       LW.clear();
+      } else { // 1.3
+       // prev was low, cur gets us back in the game
+       // add x-intercept first, then cur.
+       double xr_intercept_low = (cr_x) - ((cr_y - yrmin ) * (cr_x - pr_x)) / (cr_y - pr_y);
+       xw = xwmin + static_cast<int> (xscalar * (xr_intercept_low - xrmin));
+       LW.add(xw,ywmax); // ywmax <=> yrmin
+       // convert (cr_x, cr_y) to window coords
+       xw = xwmin + static_cast<int> (xscalar * (cr_x - xrmin));
+       yw = ywmin + static_cast<int> (yscalar * (yrmax - cr_y));
+       LW.add(xw,yw);
+      }
+    } else if(prev_r_high) { // 2
+      if(cur_r_low) { // 2.1
+       // calculate two x-intercepts in between prev and cur
+       double xr_intercept_high = (cr_x) - ((cr_y - yrmax ) * (cr_x - pr_x)) / (cr_y - pr_y);
+       xw = xwmin + static_cast<int> (xscalar * (xr_intercept_high - xrmin));      
+       LW.add(xw,ywmin); // ywmin is top of window
+       double xr_intercept_low = (cr_x) - ((cr_y - yrmin ) * (cr_x - pr_x)) / (cr_y - pr_y);
+       xw = xwmin + static_cast<int> (xscalar * (xr_intercept_low - xrmin));
+       LW.add(xw,ywmax); // ywmax <=> yrmin
+       data.push_back(LW);  // flush
+       LW.clear();
+      } else if(cur_r_high) { // 2.2
+       // do nothing! (except to set prev eq to cur, which happens near the closing brace)
+      } else { // 2.3
+       // prev was high, cur gets us back in the game
+       // add x-intercept first, then cur
+       double xr_intercept_high = (cr_x) - ((cr_y - yrmax ) * (cr_x - pr_x)) / (cr_y - pr_y);
+       xw = xwmin + static_cast<int> (xscalar * (xr_intercept_high - xrmin));
+       LW.add(xw,ywmin); // ywmin <=> yrmax
+       xw = xwmin + static_cast<int> (xscalar * (cr_x - xrmin));
+       yw = ywmin + static_cast<int> (yscalar * (yrmax - cr_y));
+       LW.add(xw,yw);
+      }
+    } else { // 3
+      if(cur_r_low) { // 3.1
+       // prev was OK: add new x-intercept (other point is yrmin aka ywmax) and flush
+       double xr_intercept_low = (cr_x) - ((cr_y - yrmin ) * (cr_x - pr_x)) / (cr_y - pr_y);
+       xr = xr_intercept_low;
+       xw = xwmin + static_cast<int> (xscalar * (xr - xrmin));
+       LW.add(xw,ywmax); // ywmax is bottom of window
+       data.push_back(LW);  // flush
+       LW.clear();
+      } else if(cur_r_high) { // 3.2
+       // prev was OK: add new x-intercept (other point is yrmax aka ywin)     and flush
+       double xr_intercept_high = (cr_x) - ((cr_y - yrmax ) * (cr_x - pr_x)) / (cr_y - pr_y);
+       xw = xwmin + static_cast<int> (xscalar * (xr_intercept_high - xrmin));
+       LW.add(xw,ywmin); // ywmin <=> yrmax
+       data.push_back(LW);  // flush
+       LW.clear();
+      } else { // 3.3
+       // simplicity itself: prev and cur both ok, just add cur to LW
+       xw = xwmin + static_cast<int> (xscalar * (cr_x - xrmin));
+       yw = ywmin + static_cast<int> (yscalar * (yrmax - cr_y));
+       LW.add(xw,yw);
+      }
+    }
+  } // --for
+  // flush if LW is non-empty
+  if(!LW.empty()) {
+    data.push_back(LW);
+  }
+  else {
+    /// std::cout << "WARNING: nothing generated by line_window_onevar_t ctor" << std::endl;
+    /// commented out because this can and does happen and it's ok.
+  }
+  if(std::verbose > 2) {
+    std::cerr << std::endl << "line_window_onevar_t ctor--" << std::endl;
+  }
+} // -- line_window_onevar_t constructor, might just be the longest constructor ever written
+
+
+bool line_window_onevar_t::empty() { return data.empty(); }  // --line_window_onevar_t::empty()
+
+
+QString line_window_onevar_t::getName() { return plotname; } // --line_window_onevar_t::getName()
+
+
+//    void add(line_window_t& LW) {
+//      data.push_back(LW);
+//    } // --line_window_onevar_t::add()
+
+
+void line_window_onevar_t::plot(QPainter& P, QColor& C, Qt::PenStyle & Ps) {
+  for(data_onevar_t::iterator it = data.begin();
+      it != data.end(); it++) {
+    it->plot(P, C, Ps);
+  }
+} // --line_window_onevar_t::plot()
+
+
+void line_window_onevar_t::show() {
+  for(data_onevar_t::iterator it = data.begin();
+      it != data.end(); it++) {
+    it->show();
+  }
+  std::cerr << std::endl;
+}
diff --git a/tools/Display/line_window_onevar_t.hpp b/tools/Display/line_window_onevar_t.hpp
new file mode 100755 (executable)
index 0000000..e27fb23
--- /dev/null
@@ -0,0 +1,45 @@
+/** @file line_window_onevar_t.hpp
+    @author Deniz
+    @description class line_window_onevar_t is defined
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef _LINE_WINDOW_ONEVAR_T
+#define _LINE_WINDOW_ONEVAR_T
+
+#include <list>
+#include <qstring.h>
+
+#include <qcanvas.h>
+class QColor;
+#include "line_window_t.hpp"
+class line_real_t;
+typedef std::list<line_window_t> data_onevar_t;
+
+/* This corresponds to a set of maybe disconnected (due to falling out of window boundaries)
+   segments for a single variable, due to single execution
+   All these hacks are due to a bug i found in QT API (both versions)
+   when plotting big numbers: now being superparanoid to drawLine() ONLY within the window, 
+   which is not necessarily as precise but at least guarantees that 
+   there will be lines when there should be. 
+*/
+class line_window_onevar_t
+{
+  data_onevar_t data;
+  QString plotname;
+  friend class plot_t;
+public:
+  /** constuctor/1 takes one line with real coords, potentially makes many point sets from it    *
+   *  pre: line_real has at least 1 point                                                        *
+   *  pre: x values in line_real are strictly increasing (as is the case in snark14 eval output) *
+   *  (as well as in column/row profiles?) i believe those are not even given as (x,y)  (yet)    *
+   *  trusts Painter::drawLine() with between interior and JUST outside the paint window.        *
+   */
+  line_window_onevar_t(line_real_t& line_real);
+  bool empty();
+  QString getName();
+  void plot(QPainter& P, QColor& C, Qt::PenStyle & Ps);
+  void show();
+}; // -- class line_window_onevar_t
+#endif
diff --git a/tools/Display/line_window_t.cpp b/tools/Display/line_window_t.cpp
new file mode 100755 (executable)
index 0000000..7b30113
--- /dev/null
@@ -0,0 +1,67 @@
+/** @file line_window_t.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include <iostream>
+
+#include <qpainter.h>
+#include <qcolor.h>
+
+#include "sd_line_t.hpp"
+#include "line_window_t.hpp"
+
+void line_window_t::add(int x, int y) {
+  point_window_t mypoint = {x, y};
+  data.push_back(mypoint);
+} // --line_window_t::add/2
+
+void line_window_t::add(point_window_t& ptw) {
+  data.push_back(ptw);
+} // --line_window_t::add/1
+
+bool line_window_t::empty() { return data.empty(); } // --line_window_t::empty()
+
+void line_window_t::clear() { data.clear(); } // --line_window_t::clear()
+
+/** pre: all coordinates are within paint's win          */
+/* (i.e., all points in data ought to be within window.) */
+void line_window_t::plot(QPainter& P, QColor& C, Qt::PenStyle & Ps) {
+  // modify P somehow: just a point if single line, bunch of segments otherwise.
+  data_window_t::const_iterator it = data.begin();
+  int x1, x2, y1, y2;
+  x1 = it->x;
+  y1 = it->y;
+  it++;
+  
+  QPen pen = P.pen();
+  pen.setStyle( Ps );
+  pen.setWidth( 2 );
+  pen.setColor( C );
+//  P.setPen( Cz);
+  P.setPen( pen );
+  
+  if(it == data.end()) {
+    // 'line' has just a single point: plot blotch @ (x1, y1)
+    sd_line_t::drawBigPoint(P, x1 , y1);
+  } else {
+    // draw segments between consecutive pixel pairs in list
+    for(; it!=data.end(); it++) {
+      x2 = it->x;
+      y2 = it->y;
+      P.drawLine(x1, y1, x2, y2);
+      x1 = x2;
+      y1 = y2;
+    }
+  }
+} // --line_window_t::plot()
+
+
+void line_window_t::show() {
+  for(data_window_t::const_iterator it = data.begin(); it != data.end(); it++) {
+    std::cerr << "(" << (it->x) << "," << (it->y) << ") "; 
+  }
+  std::cerr << " ### ";
+} // --line_window_t::show()
diff --git a/tools/Display/line_window_t.hpp b/tools/Display/line_window_t.hpp
new file mode 100755 (executable)
index 0000000..264983c
--- /dev/null
@@ -0,0 +1,40 @@
+/** @file line_window_t.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef _LINE_WINDOW_T
+#define _LINE_WINDOW_T
+
+#include <list>
+
+class QPainter;
+class QColor;
+
+class point_window_t;
+
+/** these correspond to segments */
+class line_window_t
+{
+  typedef std::list<point_window_t> data_window_t;
+  data_window_t data;
+public:
+  void add(int x, int y);
+
+  void add(point_window_t& ptw);
+
+  bool empty();
+  
+  void clear();
+
+  /** pre: all coordinates are within paint's win          */
+  /* (i.e., all points in data ought to be within window.) */
+  void plot(QPainter& P, QColor& C, Qt::PenStyle & Ps);
+
+  void show();
+
+}; // -- class line_window_t
+
+#endif
diff --git a/tools/Display/lines.cpp b/tools/Display/lines.cpp
new file mode 100755 (executable)
index 0000000..208fe49
--- /dev/null
@@ -0,0 +1,432 @@
+/** @file lines.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+        
+    modification: Joanna Klukowska 1/13/2009
+           added choice of grayScale display for plot
+           in addition to color display
+ */
+
+#include "lines.hpp"
+#include "displaylines.hpp"
+#include "variables.hpp"
+
+#include <stdio.h>
+#include <qcombobox.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qlistbox.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/* "Lines" (plotting of pixel values in a row or column) dialog for a single image (and maybe phantom)
+ *  Constructs a lineswindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+lineswindow::lineswindow(QWidget* parent, const char* name, double min, double max, bool modal, bool projrec, WFlags fl)
+: QDialog(parent, name, modal, fl) {
+
+    if (!name)
+        setName("lineswindow");
+    resize(340, 550);
+    setMinimumSize(QSize(340, 550));
+    setMaximumSize(QSize(340, 550));
+    QString s = name; // dummy (multipurpose) string
+    s += " Profile";
+    setCaption(s);
+
+    isrec = projrec;
+
+    minval = min;
+    maxval = max;
+
+    rowcolbox = new QListBox(this, "rowcolbox");
+    rowcolbox->insertItem("rows"); // rows first. => 0 => false  [ x-axis == columns ] [sic]
+    rowcolbox->insertItem("columns"); // columns later => 1 => true [ x-axis == rows ] [sic]
+    rowcolbox->setGeometry(QRect(20, 10, 80, 50));
+    rowcolbox->setSelectionMode(QListBox::Single);
+    rowcolbox->setSelected(0, true);
+    QObject::connect(rowcolbox, SIGNAL(highlighted(int)), this, SLOT(updateXAxis(int)));
+
+    phantombutton = new QRadioButton(this, "phantombutton");
+    phantombutton->setGeometry(QRect(150, 20, 120, 30));
+    phantombutton->setMinimumSize(QSize(120, 30));
+    phantombutton->setMaximumSize(QSize(120, 30));
+    phantombutton->setText("PHANTOM");
+    if (isrec)
+        phantombutton->setChecked(true);
+    else {
+        phantombutton->setChecked(false);
+        phantombutton->setEnabled(false);
+    }
+
+    line1 = new QLineEdit(this, "line1");
+    line1->setGeometry(QRect(20, 90, 60, 30));
+
+    line2 = new QLineEdit(this, "line2");
+    line2->setGeometry(QRect(100, 90, 60, 30));
+
+    line3 = new QLineEdit(this, "line3");
+    line3->setGeometry(QRect(180, 90, 60, 30));
+
+    line4 = new QLineEdit(this, "line4");
+    line4->setGeometry(QRect(260, 90, 60, 30));
+
+    label1 = new QLabel(this, "label1");
+    label1->setGeometry(QRect(33, 70, 35, 20));
+    label1->setText("row1");
+
+    label2 = new QLabel(this, "label2");
+    label2->setGeometry(QRect(113, 70, 35, 20));
+    label2->setText("row ");
+
+    label3 = new QLabel(this, "label3");
+    label3->setGeometry(QRect(193, 70, 35, 20));
+    label3->setText("row3");
+
+    label4 = new QLabel(this, "label4");
+    label4->setGeometry(QRect(273, 70, 35, 20));
+    label4->setText("row4");
+
+    title = new QLineEdit(this, "title");
+    title->setGeometry(QRect(20, 150, 300, 30));
+    title->setText(name);
+
+    titlelabel = new QLabel(this, "titlelabel");
+    titlelabel->setGeometry(QRect(160, 130, 60, 20));
+    titlelabel->setText("Title");
+
+    //    subtitle =  new QComboBox( this, "subtitle" );
+    //    subtitle->setGeometry( QRect( 20, 210, 140, 30 ) );
+    //    subtitle->insertItem("Column/Line #",-1);
+    //    subtitle->insertItem("Empty",-1);
+
+    //    subtitlelabel = new QLabel( this, "subtitlelabel" );
+    //    subtitlelabel->setGeometry( QRect( 60, 190, 100, 20 ) );
+    //    subtitlelabel->setText( "Subtitle" );
+
+    //    gridstyle = new QComboBox(this,"gridstyle");
+    //    gridstyle->setGeometry( QRect( 180, 210, 140, 30 ) );
+    //    gridstyle->insertItem("Solid",-1);
+    //    gridstyle->insertItem("None",-1);
+    //    gridstyle->insertItem("Dash",-1);
+    //    gridstyle->insertItem("Dot",-1);
+    //    gridstyle->setEnabled(false);
+    //    gridstyle->setSelected(1); // "None"
+
+    //    gridstylelabel = new QLabel( this, "gridstylelabel" );
+    //    gridstylelabel->setGeometry( QRect( 210, 190, 210, 20 ) );
+    //    gridstylelabel->setText( "Grid Style" );
+
+    xaxis = new QLineEdit(this, "xaxis");
+    xaxis->setGeometry(QRect(20, 240, 140, 30));
+    xaxis->setText("Columns");
+
+    yaxis = new QLineEdit(this, "yaxis");
+    yaxis->setGeometry(QRect(180, 240, 140, 30));
+    yaxis->setText("Pixel Values");
+
+    xaxislabel = new QLabel(this, "xaxislabel");
+    xaxislabel->setGeometry(QRect(70, 220, 60, 20));
+    xaxislabel->setText("X Axis");
+
+    yaxislabel = new QLabel(this, "yaxislabel");
+    yaxislabel->setGeometry(QRect(230, 220, 60, 20));
+    yaxislabel->setText("Y Axis");
+
+    minx = new QLineEdit(this, "minx");
+    minx->setGeometry(QRect(20, 300, 140, 30));
+    minx->setText("0");
+
+    s.setNum(isrec ? (Sizex - 1) : (usrays - 1)); // at the bottom, it's set to usrays... why?
+    maxx = new QLineEdit(this, "maxx");
+    maxx->setGeometry(QRect(180, 300, 140, 30));
+    maxx->setText(s);
+
+    s.setNum(minval);
+    miny = new QLineEdit(this, "miny");
+    miny->setGeometry(QRect(20, 360, 140, 30));
+    miny->setText(s);
+
+    s.setNum(maxval);
+    maxy = new QLineEdit(this, "maxy");
+    maxy->setGeometry(QRect(180, 360, 140, 30));
+    maxy->setText(s);
+
+    // these should be sort of exactly the same as in linesimages
+    minxlabel = new QLabel(this, "minxlabel");
+    minxlabel->setGeometry(QRect(60, 280, 60, 20));
+    minxlabel->setText("Min Col");
+
+    maxxlabel = new QLabel(this, "maxxlabel");
+    maxxlabel->setGeometry(QRect(220, 280, 60, 20));
+    maxxlabel->setText("Max Col");
+
+    minylabel = new QLabel(this, "minylabel");
+    minylabel->setGeometry(QRect(70, 340, 60, 20));
+    minylabel->setText("Min Y");
+
+    maxylabel = new QLabel(this, "maxylabel");
+    maxylabel->setGeometry(QRect(230, 340, 60, 20));
+    maxylabel->setText("Max Y");
+
+
+
+    // jk 1/13/2009 adding grayScale option for graphs
+    // jklukowska 6/7/2009 modified to be radio button with option of either
+    // color or grayscale
+    colorbuttongroup = new QButtonGroup(this, "colorbuttongroup");
+    colorbuttongroup->setTitle(tr("Draw graphs in "));
+    colorbuttongroup->setGeometry(QRect(0, 400, 340, 75));
+    colorbuttongroup->setAlignment(int( QButtonGroup::AlignHCenter));
+    grayScaleButton = new QRadioButton(colorbuttongroup, "grayScaleButton");
+    grayScaleButton->setGeometry(QRect(30, 25, 130, 20));
+    grayScaleButton->setText(tr(" grayscale"));
+    grayScaleButton->setEnabled(true);
+    grayScaleButton->setChecked(false);
+    colorButton = new QRadioButton(colorbuttongroup, "colorButton");
+    colorButton->setGeometry(QRect(190, 25, 130, 20));
+    colorButton->setText(tr(" color"));
+    colorButton->setEnabled(true);
+    colorButton->setChecked(true);
+
+    //Line3 = new QFrame(this, "Line3");
+    //Line3->setGeometry(QRect(0, 485, 340, 16));
+    //Line3->setFrameStyle(QFrame::HLine | QFrame::Sunken);
+
+    showbutton = new QPushButton(this, "showbutton");
+    showbutton->setGeometry(QRect(20, 490, 100, 40));
+    showbutton->setText("Show");
+    QObject::connect(showbutton, SIGNAL(clicked()), this, SLOT(accept()));
+
+    cancelbutton = new QPushButton(this, "cancelbutton");
+    cancelbutton->setGeometry(QRect(220, 490, 100, 40));
+    cancelbutton->setText("Cancel");
+    QObject::connect(cancelbutton, SIGNAL(clicked()), this, SLOT(reject()));
+
+    updateXAxis(0); // another HACKish workaround by deniz for bug 98
+}
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+lineswindow::~lineswindow() {
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho, a bit cleanup and change by deniz
+@version 1.0 */
+void lineswindow::updateXAxis(int i) {
+    QString maxx_str;
+    if (i == 0) { // (i==0), selection is Row, X Axis is columns
+        label1->setText("row1");
+        label2->setText("row2");
+        label3->setText("row3");
+        label4->setText("row4");
+        xaxis->setText("Columns");
+        minxlabel->setText("Min Col");
+        maxxlabel->setText("Max Col");
+        maxx_str.setNum(isrec ? (Sizex - 1) : (prjnum - 1));
+        // i think "-1" for everything makes more sense--deniz
+    } else { // (i==1), selection is Column, X Axis is rows
+        label1->setText("col1");
+        label2->setText("col2");
+        label3->setText("col3");
+        label4->setText("col4");
+        xaxis->setText("Rows");
+        minxlabel->setText("Min Row");
+        maxxlabel->setText("Max Row");
+        maxx_str.setNum(isrec ? (Sizey - 1) : (usrays - 1));
+    }
+    maxx->setText(maxx_str);
+} // --lineswindow::updateXAxis()
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int lineswindow::getLinetype() {
+    return rowcolbox->currentItem();
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int lineswindow::getLine1() {
+    int l;
+    bool ok;
+    l = line1->text().toInt(&ok, 10);
+    if (ok)
+        return l;
+    else
+        return NaI;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int lineswindow::getLine2() {
+    int l;
+    bool ok;
+    l = line2->text().toInt(&ok, 10);
+    if (ok)
+        return l;
+    else
+        return NaI;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int lineswindow::getLine3() {
+    int l;
+    bool ok;
+    l = line3->text().toInt(&ok, 10);
+    if (ok)
+        return l;
+    else
+        return NaI;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int lineswindow::getLine4() {
+    int l;
+    bool ok;
+    l = line4->text().toInt(&ok, 10);
+    if (ok)
+        return l;
+    else
+        return NaI;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+QString lineswindow::getTitle() {
+    return title->text();
+}
+
+//  /** 
+//  @param void
+//  @author Bruno M. Carvalho
+//  @version 1.0 */ 
+//  int lineswindow::getSubtitle()
+//  {
+//    return subtitle->currentItem();
+//  }
+
+//  /** 
+//  @param void
+//  @author Bruno M. Carvalho
+//  @version 1.0 */ 
+//  int lineswindow::getGridstyle()
+//  {
+//    return gridstyle->currentItem();
+//  }
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+QString lineswindow::getXAxis() {
+    return xaxis->text();
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+QString lineswindow::getYAxis() {
+    return yaxis->text();
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int lineswindow::getMinX() {
+    bool ok;
+    int t;
+    t = minx->text().toInt(&ok, 10);
+    if (ok)
+        return t;
+    else
+        return 0;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int lineswindow::getMaxX() {
+    bool ok;
+    int t;
+    t = maxx->text().toInt(&ok, 10);
+    if (ok)
+        return t;
+    else
+        return Sizex - 1;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+double lineswindow::getMinY() {
+    bool ok;
+    double t;
+    t = miny->text().toDouble(&ok);
+    if (ok)
+        return t;
+    else
+        return minval;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+double lineswindow::getMaxY() {
+    bool ok;
+    double t;
+    t = maxy->text().toDouble(&ok);
+    if (ok)
+        return t;
+    else
+        return maxval;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+bool lineswindow::isPhantomChecked() {
+    return (phantombutton->isChecked());
+}
+
+/**
+@param void
+@author Joanna Klukowska (added 1/13/2009)
+@version 1.0 */
+bool lineswindow::isGrayScaleChecked() {
+    return (grayScaleButton->isChecked());
+}
diff --git a/tools/Display/lines.hpp b/tools/Display/lines.hpp
new file mode 100755 (executable)
index 0000000..b3f21f1
--- /dev/null
@@ -0,0 +1,94 @@
+/** @file lines.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef LINESWINDOW_H
+#define LINESWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+
+#include <qbuttongroup.h>
+
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QComboBox;
+class QGridLayout; 
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QListBox;
+class QListBoxItem;
+class QPushButton;
+class QRadioButton;
+
+class lineswindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    lineswindow( QWidget* parent = 0, const char* name = 0, double min = 0, double max = 0, bool modal = FALSE, bool projrec = 0, WFlags fl = 0 );
+    ~lineswindow();
+
+    double minval;
+    double maxval;
+    bool isrec;
+    QListBox* rowcolbox;
+    QRadioButton* phantombutton;
+    QLineEdit* line2;
+    QLineEdit* line3;
+    QLineEdit* line4;
+    QLineEdit* title;
+    //    QComboBox* subtitle;
+    //    QComboBox* gridstyle;
+    QLineEdit* xaxis;
+    QLineEdit* yaxis;
+    QLineEdit* minx;
+    QLineEdit* maxx;
+    QLineEdit* miny;
+    QLineEdit* maxy;
+    QLabel* label1;
+    QLabel* label2;
+    QLabel* label3;
+    QLabel* label4;
+    QLabel* titlelabel;
+    //    QLabel* subtitlelabel;
+    //    QLabel* gridstylelabel;
+    QLabel* xaxislabel;
+    QLabel* yaxislabel;
+    QLabel* minxlabel;
+    QLabel* maxxlabel;
+    QLabel* minylabel;
+    QLabel* maxylabel;
+    QLineEdit* line1;
+    QPushButton* showbutton;
+    QFrame* Line3;
+    QPushButton* cancelbutton;
+    QButtonGroup* colorbuttongroup;
+    QRadioButton* grayScaleButton;
+    QRadioButton* colorButton;
+public slots:
+    void updateXAxis(int i);
+    int getLinetype();
+    int getLine1();
+    int getLine2();
+    int getLine3();
+    int getLine4();
+    QString getTitle();
+    //    int getSubtitle();
+    //    int getGridstyle();
+    QString getXAxis();
+    QString getYAxis();
+    int getMinX();
+    int getMaxX();
+    double getMinY();
+    double getMaxY();
+    bool isPhantomChecked();
+    // jk 1/13/2009 adding grayScale option for graphs
+    bool isGrayScaleChecked();
+};
+
+#endif // LINESWINDOW_H
diff --git a/tools/Display/linesimages.cpp b/tools/Display/linesimages.cpp
new file mode 100755 (executable)
index 0000000..5bf485e
--- /dev/null
@@ -0,0 +1,487 @@
+/** @file linesimages.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+    
+    modification: Joanna Klukowska 1/13/2009
+           added choice of grayScale display for plot
+           in addition to color display
+*/
+
+#include "linesimages.hpp"
+#include "selectimages.hpp"
+#include "variables.hpp"
+
+#include <stdio.h>
+#include <malloc.h>
+#include <qcombobox.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qlistbox.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+extern Snarkimage **imageset;
+
+/*  "Lines" (plotting of pixel values in a row or column) dialog for multiple images
+ *  Constructs a linesimageswindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'fl'
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+linesimageswindow::linesimageswindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{    if ( !name )
+       setName( "lineswindow" );
+    resize( 340, 550 ); 
+    setMinimumSize( QSize( 340, 550 ) );
+    setMaximumSize( QSize( 340, 550 ) );
+    setCaption( tr( "Multiple Images Profile" ) );
+    selected=false;
+    minval=globalmin;
+    maxval=globalmax;
+    rowcolbox = new QListBox( this, "rowcolbox" );
+    rowcolbox->insertItem( tr( "rows" ) ); // rows first. => 0 => false  [ x-axis == columns ] [sic]
+    rowcolbox->insertItem( tr( "columns" ) );   // columns later => 1 => true [ x-axis == rows ] [sic]
+    rowcolbox->setGeometry( QRect( 20, 10, 80, 50 ) );
+    rowcolbox->setSelectionMode(QListBox::Single); 
+    rowcolbox->setSelected(0,true);
+    QObject::connect(rowcolbox,SIGNAL(highlighted(int)),this,SLOT(updateXAxis(int)));
+    imagesbutton = new QPushButton( this, "imagesbutton" );
+    imagesbutton->setGeometry( QRect( 130, 20, 140, 40 ) ); 
+    imagesbutton->setText( tr( "Select Images" ) );
+    QObject::connect(imagesbutton,SIGNAL(clicked()),this,SLOT(callSelectImages()));
+
+    line1 = new QLineEdit( this, "line1" );
+    line1->setGeometry( QRect( 20, 90, 60, 30 ) ); 
+    line2 = new QLineEdit( this, "line2" );
+    line2->setGeometry( QRect( 100, 90, 60, 30 ) ); 
+    line3 = new QLineEdit( this, "line3" );
+    line3->setGeometry( QRect( 180, 90, 60, 30 ) ); 
+    line4 = new QLineEdit( this, "line4" );
+    line4->setGeometry( QRect( 260, 90, 60, 30 ) ); 
+
+    label1 = new QLabel( this, "label1" );
+    label1->setGeometry( QRect( 33, 70, 35, 20 ) ); 
+    label1->setText( tr( "row1" ) );
+    label2 = new QLabel( this, "label2" );
+    label2->setGeometry( QRect( 113, 70, 35, 20 ) ); 
+    label2->setText( tr( "row2" ) );
+    label3 = new QLabel( this, "label3" );
+    label3->setGeometry( QRect( 193, 70, 35, 20 ) ); 
+    label3->setText( tr( "row3" ) );
+    label4 = new QLabel( this, "label4" );
+    label4->setGeometry( QRect( 273, 70, 35, 20 ) ); 
+    label4->setText( tr( "row4" ) );
+
+    title =  new QLineEdit( this, "title" );
+    title->setGeometry( QRect( 20, 150, 300, 30 ) );
+    QString nameprojQStr = nameproj;
+    title->setText(nameprojQStr.simplifyWhiteSpace());
+    titlelabel = new QLabel( this, "titlelabel" );
+    titlelabel->setGeometry( QRect( 160, 130, 60, 20 ) ); 
+    titlelabel->setText( tr( "Title" ) );
+
+//      subtitle =  new QComboBox( this, "subtitle" );
+//      subtitle->setGeometry( QRect( 20, 210, 140, 30 ) );
+//      subtitle->insertItem("Column/Line #",-1);
+//      subtitle->insertItem("Empty",-1);
+//      subtitlelabel = new QLabel( this, "subtitlelabel" );
+//      subtitlelabel->setGeometry( QRect( 60, 190, 100, 20 ) ); 
+//      subtitlelabel->setText( tr( "Subtitle" ) );
+
+//      gridstyle = new QComboBox(this,"gridstyle");
+//      gridstyle->setGeometry( QRect( 180, 210, 140, 30 ) ); 
+//      gridstyle->insertItem("Solid",-1);
+//      gridstyle->insertItem("None",-1);
+//      gridstyle->insertItem("Dash",-1);
+//      gridstyle->insertItem("Dot",-1);
+
+//      gridstylelabel = new QLabel( this, "gridstylelabel" );
+//      gridstylelabel->setGeometry( QRect( 210, 190, 210, 20 ) ); 
+//      gridstylelabel->setText( tr( "Grid Style" ) );
+
+    xaxis =  new QLineEdit( this, "xaxis" );
+    xaxis->setEnabled(false); // user doesn't change it
+    xaxis->setGeometry( QRect( 20, 240, 140, 30 ) );
+    xaxis->setText("Columns"); // default setting
+
+    yaxis =  new QLineEdit( this, "yaxis" );
+    yaxis->setEnabled(false);
+    yaxis->setGeometry( QRect( 180, 240, 140, 30 ) );
+    yaxis->setText("Pixel Values");
+
+    xaxislabel = new QLabel( this, "xaxislabel" );
+    xaxislabel->setGeometry( QRect( 70, 220, 60, 20 ) );
+    xaxislabel->setText( tr( "X Axis" ) );
+
+    yaxislabel = new QLabel( this, "yaxislabel" );
+    yaxislabel->setGeometry( QRect( 230, 220, 60, 20 ) );
+    yaxislabel->setText( tr( "Y Axis" ) );
+
+    minx = new QLineEdit( this, "minx" );
+    minx->setGeometry( QRect( 20, 300, 140, 30 ) );
+    minx->setText("0");
+
+    QString s;
+    s.setNum(Sizex-1);
+    maxx = new QLineEdit( this, "maxx" );
+    maxx->setGeometry( QRect( 180, 300, 140, 30 ) );
+    maxx->setText(s);
+
+    s.setNum(globalmin);
+    miny = new QLineEdit( this, "miny" );
+    miny->setGeometry( QRect( 20, 360, 140, 30 ) );
+    miny->setText(s);
+
+    s.setNum(globalmax);
+    maxy = new QLineEdit( this, "maxy" );
+    maxy->setGeometry( QRect( 180, 360, 140, 30 ) );
+    maxy->setText(s);
+
+    minxlabel = new QLabel( this, "minxlabel" );
+    minxlabel->setGeometry( QRect( 60, 280, 60, 20 ) );
+    minxlabel->setText( tr( "Min Col" ) ); // OK, so shoot me for hardcoding
+
+    maxxlabel = new QLabel( this, "maxxlabel" );
+    maxxlabel->setGeometry( QRect( 220, 280, 60, 20 ) );
+    maxxlabel->setText( tr( "Max Col" ) );
+
+    minylabel = new QLabel( this, "minylabel" );
+    minylabel->setGeometry( QRect( 70, 340, 60, 20 ) );
+    minylabel->setText( tr( "Min Y" ) );
+
+    maxylabel = new QLabel( this, "maxylabel" );
+    maxylabel->setGeometry( QRect( 230, 340, 60, 20 ) );
+    maxylabel->setText( tr( "Max Y" ) );
+
+
+    // jk 1/13/2009 adding grayScale option for graphs
+    // jklukowska 6/7/2009 modified to be radio button with option of either
+    // color or grayscale
+    colorbuttongroup = new QButtonGroup(this, "colorbuttongroup");
+    colorbuttongroup->setTitle(tr("Draw graphs in "));
+    colorbuttongroup->setGeometry(QRect(0, 400, 340, 75));
+    colorbuttongroup->setAlignment(int( QButtonGroup::AlignHCenter));
+    grayScaleButton = new QRadioButton(colorbuttongroup, "grayScaleButton");
+    grayScaleButton->setGeometry(QRect(30, 25, 130, 20));
+    grayScaleButton->setText(tr("  grayscale"));
+    grayScaleButton->setEnabled(true);
+    grayScaleButton->setChecked(false);
+    colorButton = new QRadioButton(colorbuttongroup, "colorButton");
+    colorButton->setGeometry(QRect(190, 25, 130, 20));
+    colorButton->setText(tr(" color"));
+    colorButton->setEnabled(true);
+    colorButton->setChecked(true);
+
+    //Line3 = new QFrame( this, "Line3" );
+    //Line3->setGeometry( QRect( 0, 485, 340, 16 ) ); 
+    //Line3->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    showbutton = new QPushButton( this, "showbutton" );
+    showbutton->setGeometry( QRect( 20, 490, 100, 40 ) ); 
+    showbutton->setText( tr( "Show" ) );
+    QObject::connect(showbutton,SIGNAL(clicked()),this,SLOT(checkAndAccept()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 220, 490, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject())); 
+} // --linesimageswindow ctor
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+linesimageswindow::~linesimageswindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void linesimageswindow::updateXAxis(int i) // i is 1 for row, 0 for cols
+{
+  if(i==0) { // so x axis is the other.
+    label1->setText("row1");
+    label2->setText("row2");
+    label3->setText("row3");
+    label4->setText("row4");
+    xaxis->setText("Columns");
+    minxlabel->setText("Min Col");
+    maxxlabel->setText("Max Col");
+  } else {
+    label1->setText("col1");
+    label2->setText("col2");
+    label3->setText("col3");
+    label4->setText("col4");
+    xaxis->setText("Rows");
+    minxlabel->setText("Min Row");
+    maxxlabel->setText("Max Row");
+  }
+} // --linesimageswindow::updateXAxis()
+
+/** Starts a window for selecting the images to be shownfor a lines command
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void linesimageswindow::callSelectImages() 
+{
+  int i,*siarray;
+  QString s;
+
+  selectimageswindow* nw=new selectimageswindow(this,"Select Images for Line Displaying",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    siarray=nw->getSelectedImages();
+    if(siarray[0]==0 && !phantombutton->isChecked()) 
+      QMessageBox::information(this,"SnarkDisplay","Warning!\n"
+                              "No image was selected.\n");
+    else {
+      selected=true;
+      selectedimages = (int*) malloc((unsigned) (siarray[0]+1)*sizeof(int));
+      if(!selectedimages) {
+        QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                              "Allocation failure in getSelectedImages()\n");
+      }
+      else {
+        selectedimages[0]=siarray[0];
+        for(i=1;i<=siarray[0];i++) {
+          selectedimages[i]=siarray[i];
+         if(!imageset[siarray[i]]->isLoaded())
+            imageset[siarray[i]]->readImage(siarray[i],dataformat);
+       }
+      }
+    }
+    /*   s.sprintf("%f",globalmin);
+    miny->setText(s);
+    s.sprintf("%f",globalmax);
+    maxy->setText(s);  */
+  }
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+int* linesimageswindow::getSelectedImages()
+{
+  return selectedimages;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+int linesimageswindow::getLinetype()
+{
+  return rowcolbox->currentItem();
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+int linesimageswindow::getLine1()
+{
+  int l;
+  bool ok;
+  l=line1->text().toInt(&ok,10);
+  if(ok) 
+    return l;
+  else
+    return NaI;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+int linesimageswindow::getLine2()
+{
+  int l;
+  bool ok;
+  l=line2->text().toInt(&ok,10);
+  if(ok) 
+    return l;
+  else
+    return NaI;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+int linesimageswindow::getLine3()
+{
+  int l;
+  bool ok;
+  l=line3->text().toInt(&ok,10);
+  if(ok) 
+    return l;
+  else
+    return NaI;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+int linesimageswindow::getLine4()
+{
+  int l;
+  bool ok;
+  l=line4->text().toInt(&ok,10);
+  if(ok) 
+    return l;
+  else
+    return NaI;
+}
+
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+bool linesimageswindow::isPhantomChecked()
+{
+  if(phantombutton->isChecked())
+    return true;
+  else
+    return false;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+QString linesimageswindow::getTitle()
+{
+  return title->text();
+}
+
+//  /** 
+//  @param void
+//  @author Bruno M. Carvalho
+//  @version 1.0 */ 
+//  int linesimageswindow::getSubtitle()
+//  {
+//    return subtitle->currentItem();
+//  }
+
+//  /** 
+//  @param void
+//  @author Bruno M. Carvalho
+//  @version 1.0 */ 
+//  int linesimageswindow::getGridstyle()
+//  {
+//    return gridstyle->currentItem();
+//  }
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+QString linesimageswindow::getXAxis()
+{
+  return xaxis->text();
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+QString linesimageswindow::getYAxis()
+{
+  return yaxis->text();
+}
+
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+int linesimageswindow::getMinX()
+{
+  bool ok;
+  int t;
+  t=minx->text().toInt(&ok,10);
+  if(ok)
+    return t;
+  else 
+    return 0;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+int linesimageswindow::getMaxX()
+{
+  bool ok;
+  int t;
+  t=maxx->text().toInt(&ok,10);
+  if(ok)
+    return t;
+  else 
+    return Sizex-1;
+}
+
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+double linesimageswindow::getMinY()
+{
+  bool ok;
+  double t;
+  t=miny->text().toDouble(&ok);
+  if(ok)
+    return t;
+  else 
+    return minval;
+}
+
+/** 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+double linesimageswindow::getMaxY()
+{
+  bool ok;
+  double t;
+  t=maxy->text().toDouble(&ok);
+  if(ok)
+    return t;
+  else 
+    return maxval;
+}
+
+void linesimageswindow::checkAndAccept()
+{
+  if(selected) {
+    accept();
+  }
+  else {
+    QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                            "No image was selected.\n");
+  }
+}
+
+/**
+@param void
+@author Joanna Klukowska (added 1/13/2009)
+@version 1.0 */
+bool linesimageswindow::isGrayScaleChecked() {
+    return (grayScaleButton->isChecked());
+}
diff --git a/tools/Display/linesimages.hpp b/tools/Display/linesimages.hpp
new file mode 100755 (executable)
index 0000000..e74b973
--- /dev/null
@@ -0,0 +1,98 @@
+/** @file linesimages.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef LINESIMAGESWINDOW_H
+#define LINESIMAGESWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+#include <qbuttongroup.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QComboBox;
+class QGridLayout; 
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QListBox;
+class QListBoxItem;
+class QPushButton;
+class QRadioButton;
+
+class linesimageswindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    linesimageswindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~linesimageswindow();
+
+    double minval;
+    double maxval;
+    int *selectedimages;
+    bool selected;
+    QListBox* rowcolbox;
+    QRadioButton* phantombutton;
+    QLineEdit* line1;
+    QLineEdit* line2;
+    QLineEdit* line3;
+    QLineEdit* line4;
+    QLineEdit* title;
+    //    QComboBox* subtitle;
+    //    QComboBox* gridstyle;
+    QLineEdit* xaxis;
+    QLineEdit* yaxis;
+    QLineEdit* minx;
+    QLineEdit* maxx;
+    QLineEdit* miny;
+    QLineEdit* maxy;
+    QLabel* label1;
+    QLabel* label2;
+    QLabel* label3;
+    QLabel* label4;
+    QLabel* titlelabel;
+    //    QLabel* subtitlelabel;
+    //    QLabel* gridstylelabel;
+    QLabel* xaxislabel;
+    QLabel* yaxislabel;
+    QLabel* minxlabel;
+    QLabel* maxxlabel;
+    QLabel* minylabel;
+    QLabel* maxylabel;
+    QFrame* Line3;
+    QPushButton* showbutton;
+    QPushButton* imagesbutton;
+    QPushButton* cancelbutton;
+    // jk 1/13/2009 adding grayScale option for graphs
+    QButtonGroup* colorbuttongroup;
+    QRadioButton* grayScaleButton;
+    QRadioButton* colorButton;
+  public slots: 
+    void updateXAxis(int i);
+    void callSelectImages();
+    int* getSelectedImages();
+    int getLinetype();
+    int getLine1();
+    int getLine2();
+    int getLine3();
+    int getLine4();
+    QString getTitle();
+    //    int getSubtitle();
+    //    int getGridstyle();
+    QString getXAxis();
+    QString getYAxis();
+    int getMinX();
+    int getMaxX();
+    double getMinY();
+    double getMaxY();
+    bool isPhantomChecked();
+    void checkAndAccept();
+    // jk 1/13/2009 adding grayScale option for graphs
+    bool isGrayScaleChecked();
+};
+
+#endif // LINESIMAGESWINDOW_H
diff --git a/tools/Display/openimages.cpp b/tools/Display/openimages.cpp
new file mode 100755 (executable)
index 0000000..e132424
--- /dev/null
@@ -0,0 +1,161 @@
+/** @file openimages.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "variables.hpp"
+#include "openimages.hpp"
+#include "displaywindow.hpp"
+#include "SnarkDisplay.hpp"
+
+#include <stdio.h>
+#include <qapplication.h>
+#include <qframe.h>
+#include <qlistbox.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qwidget.h>
+
+// extern displaywindow **displaywindowset;
+
+/* 
+ *  Constructs a openimageswindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+openimageswindow::openimageswindow( displaywindow** displaywindowset_in, QWidget* parent,  const char* name, bool modal, WFlags fl , int x , int y )
+  //    : QDialog( parent, name, modal, fl )
+  : QWidget( parent, name, fl )
+{
+    QPoint topleft;
+    displaywindowset = displaywindowset_in;
+    if ( !name )
+       setName( "openimageswindow" );
+    resize( 540, 350 );
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 540, 350 ) );
+    setMaximumSize( QSize( 540, 350 ) );
+    setCaption( tr( "Open Images" ) );
+
+    Parent=parent;
+
+    topleft.setX(x);
+    topleft.setY(y);
+    this->move(topleft);
+    openbutton = new QPushButton( this, "openbutton" );
+    openbutton->setGeometry( QRect( 10, 15, 140, 40 ) ); 
+    openbutton->setText( tr( "Open" ) );
+
+    QObject::connect(openbutton,SIGNAL(clicked()) ,this, SLOT(openImages()));
+
+    selectbutton = new QPushButton( this, "selectbutton" );
+    selectbutton->setGeometry( QRect( 10, 65, 140, 40 ) ); 
+    selectbutton->setText( tr( "Select All" ) );
+    QObject::connect(selectbutton,SIGNAL(clicked()),this,SLOT(selectAll()));
+    //    QObject::connect(openbutton,SIGNAL(clicked()) ,parent, SLOT(signalAllDifference(bool)));
+
+
+    clearselectbutton = new QPushButton( this, "clearselectbutton" );
+    clearselectbutton->setGeometry( QRect( 10, 115, 140, 40 ) ); 
+    clearselectbutton->setText( tr( "Clear Selected" ) );
+    QObject::connect(clearselectbutton,SIGNAL(clicked()),this,SLOT(clearSelected()));
+
+    imageslistbox = new QListBox( this, "imageslistbox" );
+    imageslistbox->setSelectionMode(QListBox::Multi);
+    QFont f = QFont("courier",10,25,false);
+    f.setFixedPitch(true);
+    imageslistbox->setFont(f);
+    for(int i=0;i<numimages;i++)
+      imageslistbox->insertItem(imagetitles[i]);
+    imageslistbox->setGeometry( QRect( 160, 15, 370, 250 ) ); 
+
+    Line6 = new QFrame( this, "Line6" );
+    Line6->setGeometry( QRect( 0, 280, 540, 16 ) ); 
+    Line6->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    closebutton = new QPushButton( this, "closebutton" );
+    closebutton->setGeometry( QRect( 380, 300, 100, 40 ) ); 
+    closebutton->setText( tr( "Close" ) );
+    //    QObject::connect(closebutton,SIGNAL(clicked()),this,SLOT(reject()));
+    QObject::connect(closebutton,SIGNAL(clicked()),this,SLOT(close()));
+}
+
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+openimageswindow::~openimageswindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+
+void openimageswindow::openImages()
+{
+  //  std::cerr << "++openimageswindow::openImages()" << std::endl;
+  int i,x,y;
+  QPoint topleft;
+  topleft=this->pos();
+  x=topleft.x();
+  y=topleft.y();
+  for(i=0;i<numimages;i++) {
+//     std::cerr << "in openimages() for loop, i=" << i << std::endl;
+//     std::cerr << "displaywindowset[i]=" << (displaywindowset[i]) 
+//           << " active: " << (displaywindowactive[i] ? "yes" : "no")
+//           << std::endl;
+    // the new way--should only happen in the first pass of the same recfil
+    //    if(!displaywindowset[i]) {
+      //      displaywindowset[i]=new displaywindow(0,"",false,0,dataformat,i,x,y);
+    //    }
+    if((imageslistbox->isSelected(i)) && (!displaywindowactive[i])) {
+      //      std::cerr << "SHOWING for i=" << i << std::endl;
+      // fixed HUGE bug while trying to fix bug #119 (which was a while ago)
+      //   displaywindow* nw=new displaywindow(desk,"",false,0,dataformat,i,x,y);
+      //   nw->show();
+      x+=30;
+      y+=30;
+      if(y>(maxSizey-630)) {
+       y=30;
+      }
+      if(x>(maxSizex-50)) {
+       x = 30;
+      }
+      if(!displaywindowset[i]) {
+       displaywindowset[i]=new displaywindow(0,"",false,0,dataformat,i,x,y);
+      }
+      displaywindowactive[i]=true;
+      displaywindowset[i]->show();
+      displaywindowset[i]->updateZoom(); // trick to get right size scroll pane
+    }
+  }
+  //  std::cerr << "--openimageswindow::openImages()" << std::endl;
+} // --openimageswindow::openImages()
+
+
+void openimageswindow::setImagesNames()
+{
+  int i;
+  
+  imageslistbox->clear();
+  for(i=0;i<numimages;i++) 
+    imageslistbox->insertItem(imagetitles[i]);
+}
+
+
+void openimageswindow::selectAll()
+{
+  imageslistbox->selectAll(true);
+}
+
+
+void openimageswindow::clearSelected()
+{
+  imageslistbox->selectAll(false);
+}
diff --git a/tools/Display/openimages.hpp b/tools/Display/openimages.hpp
new file mode 100755 (executable)
index 0000000..55904ad
--- /dev/null
@@ -0,0 +1,50 @@
+/** @file openimages.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef OPENIMAGESWINDOW_H
+#define OPENIMAGESWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+#include <qwidget.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QFrame;
+class QListBox;
+class QListBoxItem;
+class QPushButton;
+class SnarkDisplay;
+class displaywindow;
+// class openimageswindow : public QDialog
+class openimageswindow : public QWidget
+{ 
+    Q_OBJECT
+
+public:
+    openimageswindow( displaywindow** displaywindowset_in, QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 , int x = 0 , int y = 0 );
+    ~openimageswindow();
+
+    QWidget* Parent;
+    QFrame* Line6;
+    QListBox* imageslistbox;
+    QPushButton* openbutton;
+    QPushButton* selectbutton;
+    QPushButton* clearselectbutton;
+    QPushButton* closebutton;
+private:
+    displaywindow** displaywindowset;
+public slots:
+    void openImages();
+    void setImagesNames();
+    void selectAll();
+    void clearSelected();
+    void closeWindow() { hide(); }
+    void closeEvent(QCloseEvent* e) { closeWindow(); }
+};
+
+#endif // OPENIMAGESWINDOW_H
diff --git a/tools/Display/plot_t.cpp b/tools/Display/plot_t.cpp
new file mode 100755 (executable)
index 0000000..a12de96
--- /dev/null
@@ -0,0 +1,435 @@
+/** @file plot_t.cpp
+    @author Deniz
+    @description functions in class plot_t is implemented here
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+ */
+#include <qcolor.h>
+#include <cmath>
+#include <list>
+#include <exception>
+#include <stdexcept>
+#include <iostream>
+#include <qpainter.h>
+#include <qstring.h>
+
+#include "verbosity.hpp"
+#include "plot_t.hpp"
+#include "line_window_onevar_t.hpp"
+#include "line_real_set_t.hpp"
+#include "line_real_t.hpp"
+
+/** ultimate window-coord class: holds SEVERAL vars' info and can plot them in different colors */
+
+
+typedef std::list<line_window_onevar_t> data_manyexecs_t;
+
+plot_t::plot_t(line_real_set_t& LRS, int WIDTH, int HEIGHT) {
+    // can also take padding arguments maybe?
+    // we are a friend of line_real_set_t
+    plotName = "garden variety plot";
+    XAxisName = "x-units";
+    YAxisName = "y-units";
+    rMinX = LRS.getMinX();
+    rMaxX = LRS.getMaxX();
+    rMinY = LRS.getMinY();
+    rMaxY = LRS.getMaxY();
+    // calculate instance variables, mainly to make the right label notches on axes
+    sd_line_t::WIDTH = WIDTH;
+    (this->myWidth) = WIDTH;
+    sd_line_t::HEIGHT = HEIGHT;
+    (this->myHeight) = HEIGHT; // insurance
+    // perform fudging defensively
+    if (0 < sd_line_t::X_HALF_FUDGE_INCREMENT) {
+        rMinX -= sd_line_t::X_HALF_FUDGE_INCREMENT;
+        rMaxX += sd_line_t::X_HALF_FUDGE_INCREMENT;
+    }
+    xr_range = rMaxX - rMinX; // underscore between r's for emphasis
+    yr_range = rMaxY - rMinY;
+    if (0 < sd_line_t::Y_HALF_FUDGE_FACTOR) {
+        double y_half_fudge = yr_range * sd_line_t::Y_HALF_FUDGE_FACTOR;
+        rMinY -= y_half_fudge;
+        rMaxY += y_half_fudge;
+        yr_range = rMaxY - rMinY; // calculate post-fudge yr_range
+    }
+    ywmin = sd_line_t::YWINPAD;
+    ywmax = (this->myHeight) - 1 - sd_line_t::YWINPAD;
+    ywrange = ywmax - ywmin;
+    xwmin = sd_line_t::XWINPAD;
+    xwrange = (this->myWidth) - 1 - 2 * sd_line_t::XWINPAD;
+    ywmin = sd_line_t::YWINPAD;
+    ywmax = (this->myHeight) - 1 - sd_line_t::YWINPAD;
+    xscalar = static_cast<double> (xwrange) / static_cast<double> (xr_range);
+    yscalar = static_cast<double> (ywrange) / yr_range;
+    data.clear(); // JUST in case
+    // LRS has a bunch of line_real_t's inside
+    line_real_set_t::line_real_list_t::const_iterator it = LRS.data.begin();
+    for (; it != LRS.data.end(); it++) {
+        line_real_t LR = (*it);
+        line_window_onevar_t LWO(LR);
+        if (std::verbose > 2) {
+            LWO.show();
+        }
+        data.push_back(LWO);
+    }
+} // --plot_t ctor/3
+
+/** give a name to this plot_t object */
+void plot_t::setName(QString& inName) {
+    plotName = inName;
+} // --plot_t::setName()
+
+void plot_t::setXAxisName(QString& inNameX) {
+    XAxisName = inNameX;
+} // --plot_t::setXAxisName()
+
+void plot_t::setYAxisName(QString& inNameY) {
+    YAxisName = inNameY;
+} // --plot_t::setYAxisName()
+
+/** calculate and make appropriate and human-oriented range increment for Y Axis:
+ *  1, 2, or 5 times a power of 10
+ *  such there are usually about 10 to 20 marks on the axis
+ *  this calibration can be fudged to about halve or double the number of notches
+ */
+void plot_t::makeNotchesOnYAxis(QPainter& P) {
+    double rmin = this->rMinY; // minimum as a real
+    double rmax = this->rMaxY; // maximum as a real
+    double range = rmax - rmin; // range: real
+    int xPosOfYAxis = xwmin;
+    // this code is for calculating the values at which we make notches on the axes
+    double logbase10ofrange = log(range) / log(10);
+    int characteristic = static_cast<int> (floor(logbase10ofrange));
+    double mantissa = logbase10ofrange - characteristic;
+    double log2 = log(2) / log(10);
+    double log5 = log(5) / log(10);
+    int multiplierTimes10;
+    /* the whole idea is to partition numbers like a partition of frequencies \in |R+
+     *     by musical note-based half-open intervals, e.g.: { [A,C#) , [C#,F) , [F,A) }
+     * we partition all ranges \in |R+ into three representatives: {1,2,5}.
+     * so we work on the mantissa of the range's log base 10, by definition \in [0,1).
+     * unlike the base 12-partitioned base 2 musical octaves, we throw away and add back in powers of 10,
+     *     which the snark14Display user tribe feels comfortable with.
+     *          ( we really tripartition each interval [r, 10r) where r \in |R+ )
+     * since our representatives are {1, 2, 5}.10^n (does not form a perfect geometric sequence when sorted),
+     *     we partition [0,1) into { [0,log2) , [log2,log5) , [log5, 1) } => represented as {1,2,5}
+     * rather than using the perfectly even tri-partition of notes shown above.
+     * say range is 763, then the mantissa will be log(7.63), which falls in the third partition,
+     * so all intervals are 50 (5 times the appropriate power of 10 remembered by characteristic)
+     * and range/notchinterval = 763/50 is indeed in [10,20).  get either 15 or 16 notches, depending on extrema.
+     * in the case of something like range = 4.9, we have 0.2 be the representative: 24 or 25 notches.
+     *   (that is the absolute maximum of the number of notches.)
+     */
+    if (mantissa < log2) {
+        multiplierTimes10 = 1;
+    } else if (mantissa < log5) {
+        multiplierTimes10 = 2;
+    } else {
+        multiplierTimes10 = 5;
+    }
+    //  double range_inc = multiplier * pow(10, characteristic);
+    double range_inc = multiplierTimes10 * pow(10, characteristic - 1);
+    //    double from = range_inc * ceil(rmin/range_inc);
+    // handle "weird zero" (bug #114) this way...
+    int from_idx = static_cast<int> (ceil(rmin / range_inc));
+    // not idiomatic 'C' but it is easier for me to think about inclusive bounds
+    //    double to   = range_inc * floor(rmax/range_inc);
+    int to_idx = static_cast<int> (floor(rmax / range_inc));
+    //    int num_intervals = static_cast<int>(floor((to-from)/range_inc));
+    P.setPen(Qt::black);
+    QFont f("times", 12);
+    P.setFont(f);
+    //    for(int notch = 0; notch <= num_intervals; notch++) {
+    for (int idx = from_idx; idx <= to_idx; idx++) {
+        double markreal = idx * range_inc; // if idx==0, markreal will be 0.0
+        int markwinY = static_cast<int> (floor(ywmax - (markreal - rMinY) * yscalar)); // mark position in window
+        P.drawLine(xPosOfYAxis - 6, markwinY, xPosOfYAxis + 1, markwinY);
+        QString labelToDraw;
+        labelToDraw.setNum(markreal);
+        P.drawText(xPosOfYAxis - sd_line_t::YAXISNOTCHLABELOFFSET, markwinY, labelToDraw);
+    }
+} // --plot_t::makeNotchesOnYAxis()
+
+/** just like the above, slightly trickier since we only want integers
+ */
+void plot_t::makeNotchesOnXAxis(QPainter& P) {
+    int& imin = (this->rMinX);
+    int& imax = (this->rMaxX);
+    int yPosOfXAxis = ywmax;
+    double rmin = static_cast<double> (imin); // minimum as a real
+    double rmax = static_cast<double> (imax); // maximum as a real
+    double range = rmax - rmin; // range: real
+    // this code is for calculating the values at which we make notches on the axes
+    double logbase10ofrange = log(range) / log(10);
+    int characteristic = static_cast<int> (floor(logbase10ofrange));
+    double mantissa = logbase10ofrange - characteristic;
+    double log2 = log(2) / log(10);
+    double log5 = log(5) / log(10);
+    int multiplierTimes10; // i like using integral types.
+    // the logic for this whole operation is the same as above,
+    // save some measures taken to ensure that the interval as well as notches are always integers.
+    if (mantissa < log2) {
+        multiplierTimes10 = 1;
+    } else if (mantissa < log5) {
+        multiplierTimes10 = 2;
+    } else {
+        multiplierTimes10 = 5;
+    }
+    // the following line really means: // double range_inc = multiplier * pow(10, characteristic);
+    double range_inc = multiplierTimes10 * pow(10, characteristic - 1);
+    if (range_inc <= 1) range_inc = 1.0; // x-axis should not have fractional labels (>1 guarantees it isn't)
+    int range_inc_int = static_cast<int> (floor(range_inc));
+    if (range_inc_int <= 0) range_inc_int = 1; // paranoia: don't want loop increment to be 0
+    int from_int = static_cast<int> (floor(range_inc * ceil(rmin / range_inc)));
+    // not idiomatic 'C' but it is easier for me to think about inclusive bounds
+    int to = static_cast<int> (floor(range_inc * floor(rmax / range_inc)));
+    P.setPen(Qt::black); // darkish blue notches and axis labels [as was in Bruno's code]
+    QFont f("times", 12);
+    P.setFont(f);
+    for (int notch = from_int; notch <= to; notch += range_inc_int) {
+        // safe to increment by integer in for loop
+        int markreal = notch; // really!
+        int markwinX = xwmin + static_cast<int> (floor((markreal - rMinX) * xscalar));
+        P.drawLine(markwinX, yPosOfXAxis - 1, markwinX, yPosOfXAxis + 6);
+        QString labelToDraw;
+        labelToDraw.setNum(markreal);
+        P.drawText(markwinX - 5, yPosOfXAxis + 19, labelToDraw);
+    }
+} // --plot_t::makeNotchesOnXAxis()
+
+//    void plot_t::labelTheXAxis() {
+//    } // --plot_t::labelTheXAxis()
+//    void plot_t::labelTheYAxis() {
+//    } // --plot_t::labelTheYAxis()
+
+/** plot the plot_t object */
+void plot_t::plot(QPainter& P) {
+  static const int numCanned = 15;
+  static QColor cannedColors[numCanned] = {
+    Qt::red,          //  0
+    Qt::green,
+    Qt::blue,
+    Qt::cyan,
+    Qt::magenta,
+    Qt::yellow,       //  5
+    Qt::gray,
+    Qt::darkRed,
+    Qt::darkGreen,
+    Qt::darkBlue,
+    Qt::darkCyan,     // 10
+    Qt::darkMagenta,
+    Qt::darkYellow,
+    Qt::black,
+    Qt::lightGray     // 14
+  };
+  static const int numPenStyles = 5;
+  static Qt::PenStyle  cannedPenStyles[numPenStyles] = {
+    Qt::SolidLine,
+    Qt::SolidLine,
+    Qt::SolidLine,
+    Qt::SolidLine,
+    Qt::SolidLine
+  };
+  int RectWidth = 16;  // swatch rectangles' (for algo color/name association) dimensions
+  int RectHeight = 16;
+  int xPadForRectCtrs = RectWidth;
+  int yPadForRectCtrs = RectHeight;
+  int xCtrDistance = myWidth/3;
+  int yCtrDistance = ywmin/4; // so it has to be that ywmin > 4*RectHeight
+  // for drawing legend-swatches: 2x3 on top, 3x3 at bottom, total of 15
+  static point_window_t RectCtrPositions[numCanned] = {
+    // swatches above the plot
+    {xPadForRectCtrs + 0 * xCtrDistance,  yPadForRectCtrs + 0 * yCtrDistance},
+    {xPadForRectCtrs + 1 * xCtrDistance,  yPadForRectCtrs + 0 * yCtrDistance},
+    {xPadForRectCtrs + 2 * xCtrDistance,  yPadForRectCtrs + 0 * yCtrDistance},
+    {xPadForRectCtrs + 0 * xCtrDistance,  yPadForRectCtrs + 1 * yCtrDistance},
+    {xPadForRectCtrs + 1 * xCtrDistance,  yPadForRectCtrs + 1 * yCtrDistance},
+    {xPadForRectCtrs + 2 * xCtrDistance,  yPadForRectCtrs + 1 * yCtrDistance},
+    // leave room above the plot for plot name... and swatches below the plot
+    {xPadForRectCtrs + 0 * xCtrDistance, myHeight - yPadForRectCtrs - 0 * yCtrDistance},
+    {xPadForRectCtrs + 1 * xCtrDistance, myHeight - yPadForRectCtrs - 0 * yCtrDistance},
+    {xPadForRectCtrs + 2 * xCtrDistance, myHeight - yPadForRectCtrs - 0 * yCtrDistance},
+    {xPadForRectCtrs + 0 * xCtrDistance, myHeight - yPadForRectCtrs - 1 * yCtrDistance},
+    {xPadForRectCtrs + 1 * xCtrDistance, myHeight - yPadForRectCtrs - 1 * yCtrDistance},
+    {xPadForRectCtrs + 2 * xCtrDistance, myHeight - yPadForRectCtrs - 1 * yCtrDistance},
+    // really shouldn't plot this many... these could clash a bit with x axis label.
+    {xPadForRectCtrs + 0 * xCtrDistance, myHeight - yPadForRectCtrs - 2 * yCtrDistance},
+    {xPadForRectCtrs + 1 * xCtrDistance, myHeight - yPadForRectCtrs - 2 * yCtrDistance},
+    {xPadForRectCtrs + 2 * xCtrDistance, myHeight - yPadForRectCtrs - 2 * yCtrDistance}
+  };
+  int colorInd = 0; // don't want this to be static!
+  int penStyleInd = 0;
+  for(data_manyexecs_t::iterator it = data.begin(); it != data.end(); it++) {
+    QColor& myColor = cannedColors[ (colorInd % numCanned) ];
+    Qt::PenStyle myPenStyle = cannedPenStyles[ penStyleInd % numPenStyles ];
+    QPen pen = P.pen();
+    //pen.setStyle(myPenStyle);
+    pen.setWidth(5);
+    P.setPen(pen);
+
+    it->plot(P, myColor, myPenStyle);
+    if(colorInd < numCanned) {
+      int RectCtrX = RectCtrPositions[colorInd].x;
+      int RectCtrY = RectCtrPositions[colorInd].y;
+      // fill in rectangle with corresponding color (same as the line just plotted)
+      P.fillRect(RectCtrX - RectWidth/2, RectCtrY - RectHeight/2, RectWidth, RectHeight, myColor);
+      P.setPen(Qt::black); // then draw the boundary
+      P.drawRect(RectCtrX - RectWidth/2, RectCtrY - RectHeight/2, RectWidth, RectHeight);
+      QString algName = (it->getName());
+      int nameLengthInChars = 40; // max
+      QFont savedFont = P.font();
+      QFont f("Times", 11);
+      P.setFont(f);
+      P.drawText(RectCtrX + RectWidth*3/4, RectCtrY+5, algName, nameLengthInChars);
+      P.setFont(savedFont);
+    } else {
+      // perhaps generate some kind of warning about too many plots,
+      // not enough colors being used / not enough space for swatches etc
+    }
+    // no one in their right mind would run 16 different execs (?), but just covering our base (no segfault).
+    // here could also be where label associating color with variable name is plotted...
+    colorInd++;
+    penStyleInd++;
+  }
+  sd_line_t::drawBoundary(P); // by doing this after, we make sure the frame is not painted over
+  makeNotchesOnXAxis(P);
+  makeNotchesOnYAxis(P);
+  // now label the plot just above the plot window
+  QFont F = P.font();
+  QFont FBold = F;
+  FBold.setBold(true);
+  P.setFont(FBold);
+  P.setPen(Qt::black);
+  P.drawText(xwmin, ywmin-15, plotName);
+  P.setFont(F); // restore original font to QPainter
+  // label the X axis
+  P.drawText( (sd_line_t::WIDTH - sd_line_t::XWINPAD)/2, ywmax+45, XAxisName);
+  // label the Y axis (sideways)
+  P.rotate(-90);
+  P.drawText( -(sd_line_t::HEIGHT)/2, sd_line_t::XWINPAD - sd_line_t::YAXISLABELOFFSET, YAxisName);
+  P.rotate(90); // restore orientation of painter
+} // --plot_t::plot()
+
+/** plot the plot_t object in Grayscale*/
+// jk 1/13/2009 adding grayScale option for graphs
+void plot_t::plotGray(QPainter& P) {
+
+    static const int numCanned = 9;
+    static QColor cannedColors[numCanned] = {
+        Qt::gray,
+        Qt::black,
+        Qt::lightGray,
+        Qt::gray,
+        Qt::black,
+        Qt::lightGray,
+        Qt::gray,
+        Qt::black,
+        Qt::lightGray,
+    };
+    static const int numPenStyles = 9;
+    static Qt::PenStyle cannedPenStyles[numPenStyles] = {
+        Qt::SolidLine,
+        Qt::SolidLine,
+        Qt::SolidLine,
+        Qt::DotLine,
+        Qt::DotLine,
+        Qt::DotLine,
+        Qt::DashLine,
+        Qt::DashLine,
+        Qt::DashLine
+        //Qt::DashDotLine,
+        //Qt::DashDotDotLine,
+    };
+    int RectWidth = 16; // swatch rectangles' (for algo color/name association) dimensions
+    int RectHeight = 16;
+    int xPadForRectCtrs = RectWidth;
+    int yPadForRectCtrs = RectHeight;
+    int xCtrDistance = myWidth / 3;
+    int yCtrDistance = ywmin / 4; // so it has to be that ywmin > 4*RectHeight
+    // for drawing legend-swatches: 2x3 on top, 3x3 at bottom, total of 15
+    static point_window_t RectCtrPositions[numCanned] = {
+        // swatches above the plot
+        {xPadForRectCtrs + 0 * xCtrDistance, yPadForRectCtrs + 0 * yCtrDistance},
+        {xPadForRectCtrs + 1 * xCtrDistance, yPadForRectCtrs + 0 * yCtrDistance},
+        {xPadForRectCtrs + 2 * xCtrDistance, yPadForRectCtrs + 0 * yCtrDistance},
+        {xPadForRectCtrs + 0 * xCtrDistance, yPadForRectCtrs + 1 * yCtrDistance},
+        {xPadForRectCtrs + 1 * xCtrDistance, yPadForRectCtrs + 1 * yCtrDistance},
+        {xPadForRectCtrs + 2 * xCtrDistance, yPadForRectCtrs + 1 * yCtrDistance},
+        // leave room above the plot for plot name... and swatches below the plot
+        {xPadForRectCtrs + 0 * xCtrDistance, myHeight - yPadForRectCtrs - 0 * yCtrDistance},
+        {xPadForRectCtrs + 1 * xCtrDistance, myHeight - yPadForRectCtrs - 0 * yCtrDistance},
+        {xPadForRectCtrs + 2 * xCtrDistance, myHeight - yPadForRectCtrs - 0 * yCtrDistance}
+        //    {xPadForRectCtrs + 0 * xCtrDistance, myHeight - yPadForRectCtrs - 1 * yCtrDistance},
+        //    {xPadForRectCtrs + 1 * xCtrDistance, myHeight - yPadForRectCtrs - 1 * yCtrDistance},
+        //    {xPadForRectCtrs + 2 * xCtrDistance, myHeight - yPadForRectCtrs - 1 * yCtrDistance},
+        //    // really shouldn't plot this many... these could clash a bit with x axis label.
+        //    {xPadForRectCtrs + 0 * xCtrDistance, myHeight - yPadForRectCtrs - 2 * yCtrDistance},
+        //    {xPadForRectCtrs + 1 * xCtrDistance, myHeight - yPadForRectCtrs - 2 * yCtrDistance},
+        //    {xPadForRectCtrs + 2 * xCtrDistance, myHeight - yPadForRectCtrs - 2 * yCtrDistance}
+    };
+    int colorInd = 0; // don't want this to be static!
+    int penStyleInd = 0;
+    for (data_manyexecs_t::iterator it = data.begin(); it != data.end(); it++) {
+        QColor& myColor = cannedColors[ (colorInd % numCanned) ];
+        Qt::PenStyle myPenStyle = cannedPenStyles[ penStyleInd % numPenStyles ];
+
+        it->plot(P, myColor, myPenStyle);
+        if (colorInd < numCanned) {
+            int RectCtrX = RectCtrPositions[colorInd].x;
+            int RectCtrY = RectCtrPositions[colorInd].y;
+            // fill in rectangle with corresponding color (same as the line just plotted)
+            //P.fillRect(RectCtrX - RectWidth/2, RectCtrY - RectHeight/2, RectWidth, RectHeight, myColor);
+            QPen savedPen = P.pen();
+            QPen pen; // = P.pen();
+            pen.setStyle(myPenStyle);
+            pen.setWidth(2);
+            pen.setColor(myColor);
+            P.setPen(pen);
+
+            //P.setPen(myColor); // then draw the boundary
+            //P.setPen(myPenStyle);
+            //P.drawRect(RectCtrX - RectWidth/2, RectCtrY - RectHeight/2, RectWidth, RectHeight);
+            P.drawLine(RectCtrX - RectWidth / 2, RectCtrY, RectCtrX + RectWidth / 2, RectCtrY);
+            //change pen color and style back to black solid for printing the text
+            //P.setPen( savedPen );
+            pen.setStyle(Qt::SolidLine);
+            pen.setWidth(1);
+            pen.setColor(Qt::black);
+            P.setPen(pen);
+
+            QString algName = (it->getName());
+            int nameLengthInChars = 40; // max
+            QFont savedFont = P.font();
+            QFont f("Times", 11);
+            P.setFont(f);
+            P.drawText(RectCtrX + RectWidth * 3 / 4, RectCtrY + 5, algName, nameLengthInChars);
+            P.setFont(savedFont);
+
+        } else {
+            // perhaps generate some kind of warning about too many plots,
+            // not enough colors being used / not enough space for swatches etc
+        }
+        // no one in their right mind would run 16 different execs (?), but just covering our base (no segfault).
+        // here could also be where label associating color with variable name is plotted...
+        colorInd++;
+        penStyleInd++;
+    }
+    sd_line_t::drawBoundary(P); // by doing this after, we make sure the frame is not painted over
+    makeNotchesOnXAxis(P);
+    makeNotchesOnYAxis(P);
+    // now label the plot just above the plot window
+    QFont F = P.font();
+    QFont FBold = F;
+    FBold.setBold(true);
+    P.setFont(FBold);
+    P.setPen(Qt::black);
+    P.drawText(xwmin, ywmin - 15, plotName);
+    P.setFont(F); // restore original font to QPainter
+    // label the X axis
+    P.drawText((sd_line_t::WIDTH - sd_line_t::XWINPAD) / 2, ywmax + 45, XAxisName);
+    // label the Y axis (sideways)
+    P.rotate(-90);
+    P.drawText(-(sd_line_t::HEIGHT) / 2, sd_line_t::XWINPAD - sd_line_t::YAXISLABELOFFSET, YAxisName);
+    P.rotate(90); // restore orientation of painter
+} // --plot_t::plot()
+
diff --git a/tools/Display/plot_t.hpp b/tools/Display/plot_t.hpp
new file mode 100755 (executable)
index 0000000..f799fdf
--- /dev/null
@@ -0,0 +1,61 @@
+/** @file plot_t.hpp
+    @author Deniz
+    @description class plot_t is defined here
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+#ifndef _PLOT_T
+#define _PLOT_T
+
+#include "sd_line_t.hpp"
+#include "line_window_onevar_t.hpp"
+
+class line_real_set_t;
+class QString;
+class QPainter;
+
+typedef std::list<line_window_onevar_t> data_manyexecs_t;
+
+/** ultimate window-coord class: holds SEVERAL vars' info and can plot them in different colors */
+class plot_t
+{
+  int myWidth, myHeight;
+  data_manyexecs_t data;
+  QPainter* myPainterP;
+  int rMinX, rMaxX;
+  double rMinY, rMaxY;
+  int xr_range;
+  double yr_range;
+  int xwmin, xwmax, ywmin, ywmax, xwrange, ywrange;
+  double xscalar, yscalar;
+  QString plotName, XAxisName, YAxisName;
+public:
+  /** plot_t ctor/3
+   *  prepare a plot based on line_real_set_t and WIDTH and HEIGHT args 
+   *  name can be set in setName()
+   */
+  plot_t(line_real_set_t& LRS, int WIDTH=sd_line_t::WIDTH, int HEIGHT=sd_line_t::HEIGHT);
+
+  /** give a name to this plot_t object */
+  void setName(QString& inName);
+
+  void setXAxisName(QString& inNameX);
+
+  void setYAxisName(QString& inNameY);
+
+  /** calculate and make appropriate and human-oriented range increment for Y Axis:
+   *  1, 2, or 5 times a power of 10
+   *  such there are usually about 10 to 20 marks on the axis
+   *  this calibration can be fudged to about halve or double the number of notches
+   */
+  void makeNotchesOnYAxis(QPainter& P);
+  
+  /** just like the above, slightly trickier since we only want integers
+   */
+  void makeNotchesOnXAxis(QPainter& P);
+
+  /** plot the plot_t object */
+  void plot(QPainter& P);
+  void plotGray(QPainter& P);
+}; // -- class plot_t
+#endif
diff --git a/tools/Display/proj.cpp b/tools/Display/proj.cpp
new file mode 100755 (executable)
index 0000000..e31e1d6
--- /dev/null
@@ -0,0 +1,168 @@
+/** @file proj.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "variables.hpp"
+#include "proj.hpp"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <malloc.h>
+#include <qmessagebox.h>
+
+Snarkproj::Snarkproj()
+{
+  proj=NULL;
+  max=-100000;
+  min=100000;
+  isloaded=false;
+  fileformat=DIGDataFormat_ASCII;
+}
+
+Snarkproj::Snarkproj(DIGDataFormat format)
+{
+  unsigned int i,j;
+  double *tmpimg;
+
+  max=-100000;
+  min=100000;
+  tmpimg=(double *)malloc(sizeof(double)*usrays);
+  proj=matrix(0,prjnum,0,usrays);
+  if(!format) { /* format=0 (ASCII)  */
+    projformat=DIGDataFormat_ASCII;
+    for(i=0;i<prjnum;i++) {
+//       digprojfil.SelectArraySet(i);
+      digprojfil.SelectProj(i);
+//       digprojfil.SelectArray(0);
+//       digprojfil.GetArrayData(tmpimg);
+      digprojfil.GetProjData(tmpimg);
+      for(j=0;j<usrays;j++) {
+       proj[i][j]=tmpimg[j];
+        if(proj[i][j]>max)
+         max=proj[i][j];
+        if(proj[i][j]<min)
+         min=proj[i][j];
+      }
+    }
+  }
+  else { /* format=1 (BINARY) */
+    projformat=DIGDataFormat_BINARY;
+    for(i=0;i<prjnum;i++) {
+      //      digprojfil.SelectArraySet(i);
+      digprojfil.SelectProj(i);
+      //      digprojfil.SelectArray(0);
+      //      digprojfil.GetArrayData(tmpimg);
+      digprojfil.GetProjData(tmpimg);
+      for(j=0;j<usrays;j++) {
+       proj[i][j]=tmpimg[j];
+        if(proj[i][j]>max)
+         max=proj[i][j];
+        if(proj[i][j]<min)
+         min=proj[i][j];
+      }
+    }
+  }
+ isloaded=true;
+ free(tmpimg);
+}
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+Snarkproj::~Snarkproj()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+// void Snarkproj::readProj(DIGDataFormat format)
+void Snarkproj::readProj()
+{
+  int i,j;
+  double *tmpimg;
+
+  max=-100000;
+  min=100000;
+  tmpimg=(double *)malloc(sizeof(double)*usrays);
+  proj=matrix(0,prjnum,0,usrays);
+//   if(!format) { /* format=0 (DIGDataFormat_ASCII)  */
+//     for(i=0;i<prjnum;i++) {
+//       //      digprojfil.SelectArraySet(i);
+//       digprojfil.SelectProj(i);
+//       //      digprojfil.SelectArray(0);
+//       //      digprojfil.GetArrayData(tmpimg);
+//       digprojfil.GetProjData(tmpimg);
+//       for(j=0;j<usrays;j++) {
+//     proj[i][j]=tmpimg[j];
+//         if(proj[i][j]>max)
+//       max=proj[i][j];
+//         if(proj[i][j]<min)
+//       min=proj[i][j];
+//       }
+//     }
+//   }
+//  else { /* format=1 (DIGDataFormat_BINARY) */
+    for(i=0; i< (static_cast<int>(prjnum)) ; i++) {
+      //      digprojfil.SelectArraySet(i);
+      digprojfil.SelectProj(i);
+      //      digprojfil.SelectArray(0);
+      //      digprojfil.GetArrayData(tmpimg);
+      digprojfil.GetProjData(tmpimg);
+      for(j=0; j< (static_cast<int>(usrays)) ; j++) {
+       proj[i][j]=tmpimg[j];
+        if(proj[i][j]>max)
+         max=proj[i][j];
+        if(proj[i][j]<min)
+         min=proj[i][j];
+      }
+    }
+    //  }
+ isloaded=true;
+ free(tmpimg);
+}
+
+double** Snarkproj::getProj()
+{
+  return proj;
+}
+
+double Snarkproj::getMax()
+{
+  return max;
+}
+
+double Snarkproj::getMin()
+{
+  return min;
+}
+
+bool Snarkproj::isLoaded()
+{
+  return isloaded;
+}
+
+double** Snarkproj::matrix(int nrl,int nrh,int ncl,int nch)
+/*  Allocates a double array with range [npl .. nph][nrl .. nrh][ncl .. nch]  */
+{
+   int j;
+   double **m;
+
+   m = (double **) malloc((unsigned) (nrh-nrl+1)*sizeof(double*));
+   if (!m) {
+       printf("Allocation failure in matrix() (y)\n");
+       exit(-1);
+   }
+   m -= nrl;
+   for(j=nrl; j<=nrh; j++) {
+     m[j] = (double *) malloc((unsigned) (nch-ncl+1)*sizeof(double));
+     if(!m[j]) {
+       printf("Allocation failure in matrix() (x)\n");
+       exit(-1);
+     }
+     m[j] -= ncl;
+   }
+   return m;
+}
+
diff --git a/tools/Display/proj.hpp b/tools/Display/proj.hpp
new file mode 100755 (executable)
index 0000000..b3b6f3a
--- /dev/null
@@ -0,0 +1,32 @@
+/** @file proj.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef PROJ_H
+#define PROJ_H
+
+class Snarkproj {
+public:
+    Snarkproj( DIGDataFormat format );
+    Snarkproj();
+    ~Snarkproj();
+    //    void readProj(DIGDataFormat format);
+    void readProj();
+    double** getProj();
+    double getMin();
+    double getMax();
+    bool isLoaded();
+
+    double **proj;
+    double max;
+    double min;
+    bool isloaded;
+    DIGDataFormat fileformat;
+private:
+    double** matrix(int  nrl,int nrh,int ncl,int nch);
+};
+
+#endif // PROJ_H
diff --git a/tools/Display/range.cpp b/tools/Display/range.cpp
new file mode 100755 (executable)
index 0000000..f4ca32e
--- /dev/null
@@ -0,0 +1,314 @@
+/** @file range.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "range.hpp"
+#include "variables.hpp"
+#include "SnarkDisplay.hpp"
+
+#include <stdio.h>
+#include <qcheckbox.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qslider.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+
+/* 
+ *  Constructs a rangewindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+rangewindow::rangewindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+
+    if ( !name )
+       setName( "rangewindow" );
+    resize( 460, 280 ); 
+    setMinimumSize( QSize( 460, 280 ) );
+    setMaximumSize( QSize( 460, 280 ) );
+    setCaption( tr( "Global Features Window" ) );
+
+    maxval=globalmax;
+    minval=globalmin;
+    Range=maxval-minval;
+    lowglobalthresh=globalmin;
+    highglobalthresh=globalmax;
+    status=false;
+
+    // need to connect these three checkboxes to meaningful things
+    int cbsRowTop = 20;
+    int cbsRowLeft = 50;
+    int cbsRowDiff = 145;
+    int cbsWidth = 130;
+    int cbsHeight = 15;
+    allGlobals = new QCheckBox( this, "allGlobalsCheckBox" );
+    allGlobals->setGeometry( QRect ( cbsRowLeft, cbsRowTop, 
+                                    cbsWidth, cbsHeight ) );
+    allGlobals->setText("Global Thresholds");
+    // DO connect to both!... no, latter calls former.
+    //    QObject::connect(allGlobals,SIGNAL(toggled(bool)),this,SLOT(signalAllGlobals(bool)));
+    QObject::connect(allGlobals,SIGNAL(toggled(bool)),parent, SLOT(signalAllGlobals(bool)));
+
+    allDifference = new QCheckBox( this, "allDifferenceCheckBox" );
+    allDifference->setGeometry( QRect ( cbsRowLeft + cbsRowDiff, cbsRowTop, 
+                                       cbsWidth, cbsHeight ) );
+    allDifference->setText("Difference");
+    // must also set global threshold extrema based on whether or not this is selected
+    QObject::connect(allDifference,SIGNAL(toggled(bool)),this,SLOT(signalAllDifference(bool)));
+    // first this, then the rest!
+    QObject::connect(allDifference,SIGNAL(toggled(bool)),parent,SLOT(signalAllDifference(bool)));
+
+    // removed per Gabor's suggestion in 2nd reopening of bug #146
+    // don't go too crazy with commenting everything out
+    //    allIntensity = new QCheckBox( this, "allIntensityCheckBox" );
+    //    allIntensity->setGeometry( QRect ( cbsRowLeft + 2*cbsRowDiff, cbsRowTop,
+    //                                cbsWidth, cbsHeight ) );
+    //    allIntensity->setText("Intensity");
+    //    QObject::connect(allIntensity,SIGNAL(toggled(bool)),parent,SLOT(signalAllIntensity(bool)));
+    // for intensity, nothing to do in 'this' since it is orthogonal to difference
+
+    lowtrheshframe = new QFrame( this, "lowtrheshframe" );
+    lowtrheshframe->setGeometry( QRect( 15, 60, 430, 70 ) ); 
+    lowtrheshframe->setFrameShape( QFrame::StyledPanel );
+    lowtrheshframe->setFrameShadow( QFrame::Raised );
+
+    lowthresh = new QLineEdit( lowtrheshframe, "lowthresh" );
+    lowthresh->setGeometry( QRect( 185, 20, 140, 30 ) ); 
+    char s[12];
+    sprintf(s,"%10.7f",lowglobalthresh);
+    lowthresh->setText(s);
+
+    setlowbutton = new QPushButton( lowtrheshframe, "setlowbutton" );
+    setlowbutton->setGeometry( QRect( 335, 15, 90, 40 ) ); 
+    setlowbutton->setText( tr( "Set Value" ) );
+    QObject::connect(setlowbutton,SIGNAL(clicked()),this,SLOT(updateLowthreshslider()));
+    QObject::connect(setlowbutton,SIGNAL(clicked()),parent,SLOT(updateGlobalThreshs()));
+
+    lowthreshslider = new QSlider( lowtrheshframe, "lowthreshslider" );
+    lowthreshslider->setGeometry( QRect( 15, 30, 150, 20 ) ); 
+    lowthreshslider->setOrientation( QSlider::Horizontal );
+    lowthreshslider->setRange(0,1000000000);
+    lowthreshslider->setValue(0);
+    QObject::connect(lowthreshslider,SIGNAL(valueChanged(int)),this,SLOT(updateLowthresh()));
+    QObject::connect(lowthreshslider,SIGNAL(valueChanged(int)),parent,SLOT(updateGlobalThreshs()));
+
+    lowthershlabel = new QLabel( lowtrheshframe, "lowthershlabel" );
+    lowthershlabel->setGeometry( QRect( 35, 10, 110, 20 ) ); 
+    lowthershlabel->setText( tr( "Low Threshold" ) );
+
+    highthreshframe = new QFrame( this, "highthreshframe" );
+    highthreshframe->setGeometry( QRect( 15, 140, 430, 70 ) ); 
+    highthreshframe->setFrameShape( QFrame::StyledPanel );
+    highthreshframe->setFrameShadow( QFrame::Raised );
+
+    highthresh = new QLineEdit( highthreshframe, "highthresh" );
+    highthresh->setGeometry( QRect( 185, 20, 140, 30 ) ); 
+    sprintf(s,"%10.7f",highglobalthresh);
+    highthresh->setText(s);
+
+    sethighbutton = new QPushButton( highthreshframe, "sethighbutton" );
+    sethighbutton->setGeometry( QRect( 335, 15, 90, 40 ) ); 
+    sethighbutton->setText( tr( "Set Value" ) );
+    QObject::connect(sethighbutton,SIGNAL(clicked()),this,SLOT(updateHighthreshslider()));
+    QObject::connect(sethighbutton,SIGNAL(clicked()),parent,SLOT(updateGlobalThreshs()));
+
+    highthreshslider = new QSlider( highthreshframe, "highthreshslider" );
+    highthreshslider->setGeometry( QRect( 15, 30, 150, 20 ) ); 
+    highthreshslider->setOrientation( QSlider::Horizontal );
+    highthreshslider->setRange(0,1000000000);
+    highthreshslider->setValue(1000000000);
+    QObject::connect(highthreshslider,SIGNAL(valueChanged(int)),this,SLOT(updateHighthresh()));
+    QObject::connect(highthreshslider,SIGNAL(valueChanged(int)),parent,SLOT(updateGlobalThreshs()));
+
+    highthreshlabel = new QLabel( highthreshframe, "highthreshlabel" );
+    highthreshlabel->setGeometry( QRect( 35, 10, 110, 20 ) ); 
+    highthreshlabel->setText( tr( "High Threshold" ) );
+
+    Line2 = new QFrame( this, "Line2" );
+    Line2->setGeometry( QRect( 0, 215, 460, 16 ) ); 
+    Line2->setProperty( "frameShape", (int)QFrame::HLine );
+    Line2->setFrameShadow( QFrame::Sunken );
+    Line2->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+    Line2->setProperty( "frameShape", (int)QFrame::HLine );
+
+//     applybutton = new QPushButton( this, "applybutton" );
+//     applybutton->setGeometry( QRect( 40, 230, 180, 40 ) ); 
+//     applybutton->setText( tr( "Apply Global Thresholds" ) );
+//     // a-ha!  clicked signal is connected to the PARENT's updateGlobalThreshs()... 
+//     //      apply is not a toggle button so this makes sense
+//     QObject::connect(applybutton,SIGNAL(clicked()),parent,SLOT(updateGlobalThreshs()));
+
+    closebutton = new QPushButton( this, "closebutton" );
+    //    closebutton->setGeometry( QRect( 300, 230, 100, 40 ) ); 
+    closebutton->setGeometry( QRect( 180, 230, 100, 40 ) ); 
+    closebutton->setText( tr( "Close" ) );
+    QObject::connect(closebutton,SIGNAL(clicked()),this,SLOT(closeWindow()));
+
+    signalAllGlobals( false );
+}
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+rangewindow::~rangewindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+
+/** update the text in lowthresh textbox based on the value of low threshold slider */
+void rangewindow::updateLowthresh()
+{
+  int v = lowthreshslider->value();
+  if(v > highthreshslider->value()) { // cap it
+    lowthreshslider->setValue(highthreshslider->value());
+    lowglobalthresh = highglobalthresh;
+    lowthresh->setText(highthresh->text());
+  } else {
+    lowglobalthresh = (((double)v)/1000000000)*Range+minval;
+    char s[12];
+    sprintf(s,"%10.7f", lowglobalthresh);
+    lowthresh->setText(s);
+  }
+}
+
+
+void rangewindow::updateLowthreshslider()
+{
+  double fv; // floating-point value entered
+  int v=0;   // integer position of slider
+  bool ok=false;
+  fv=lowthresh->text().toDouble(&ok); 
+  if(ok) { // value in lowthresh text box parsed OK
+    if((fv<minval) || (fv>maxval)) {
+      QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                              "Entered threshold value must be within valid range");
+      updateLowthresh();
+      lowthresh->setFocus();
+    } else {
+      if(fv>0) {
+       v=(int)(((fv-minval)/Range)*1000000000+0.5);
+      } else {
+       v=(int)(((fv-minval)/Range)*1000000000-0.5);
+      }
+      lowthreshslider->setValue(v);
+    }
+  } else {
+    QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                            "Invalid Low Threshold value.");
+  }
+} // --rangewindow::updateLowthreshslider()
+
+
+/** update the text in highthresh textbox based on the value of high threshold slider */
+void rangewindow::updateHighthresh()
+{
+  int v = highthreshslider->value();
+  if(v < lowthreshslider->value()) { // cap it
+    highthreshslider->setValue(lowthreshslider->value());
+    highglobalthresh = lowglobalthresh;
+    highthresh->setText(highthresh->text());
+  } else {
+    highglobalthresh = (((double)v)/1000000000)*Range+minval;
+    char s[12];
+    sprintf(s,"%10.7f", highglobalthresh);
+    highthresh->setText(s);
+  }
+} // --rangewindow::updateHighthresh()
+
+
+void rangewindow::updateHighthreshslider()
+{
+  double fv;
+  int v=0;
+  bool ok=false;
+  fv=highthresh->text().toDouble(&ok);
+  if(ok) {
+    if((fv>maxval) || (fv<minval)) {
+      QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                              "Entered threshold value must be within valid range");
+      updateHighthresh();
+      highthresh->setFocus();
+    } else {
+      highglobalthresh=fv;
+      //    status=true;
+      //      if(fv>maxval) {
+      //       maxval=fv;
+      //       Range=maxval-minval;
+      //      }
+      if(fv>0) {
+       v=(int)(((fv-minval)/Range)*1000000000+0.5);
+      } else {
+       v=(int)(((fv-minval)/Range)*1000000000-0.5);
+      }
+      //      if(v>highthreshslider->maxValue()) 
+      //       highthreshslider->setMaxValue(v);
+      highthreshslider->setValue(v);
+      //    status=false;
+    }
+  } else {
+    QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                            "Invalid High Threshold value.");
+  }
+} // --rangewindow::updateHighthreshslider()
+
+
+/** en/disable fields in this window only 
+    based on parameter indicating whether global thresholds should apply to all images
+*/
+void rangewindow::signalAllGlobals(bool on) {
+  lowthresh->setEnabled(on);
+  setlowbutton->setEnabled(on);
+  lowthreshslider->setEnabled(on);
+  lowthershlabel->setEnabled(on);
+  highthreshframe->setEnabled(on);
+  highthresh->setEnabled(on);
+  sethighbutton->setEnabled(on);
+  highthreshslider->setEnabled(on);
+  highthreshlabel->setEnabled(on);
+  // applybutton->setEnabled(on);
+}
+
+/** apply correct thresholds based on whether difference (for all) is selected or not*/
+void rangewindow::signalAllDifference(bool on) {
+  if(on) {
+    maxval=globaldiffmax;
+    minval=globaldiffmin;
+  } else {
+    maxval=globalmax;
+    minval=globalmin;
+  }
+  Range=maxval-minval;
+  lowglobalthresh=minval;
+  highglobalthresh=maxval;
+  updateLowthresh();
+  updateHighthresh();
+}  // --rangewindow::signalAllDifference()
+
+
+
+void rangewindow::closeWindow() {
+  if(allGlobals->isOn()) allGlobals->toggle(); // triggers the appropriate signal-slot mechanism
+  if(allDifference->isOn()) allDifference->toggle();
+  accept();
+}
+
+
+void rangewindow::closeEvent(QCloseEvent* e) {
+  if(allGlobals->isOn()) allGlobals->toggle(); // triggers the appropriate signal-slot mechanism
+  if(allDifference->isOn()) allDifference->toggle();
+  e->accept();
+}
diff --git a/tools/Display/range.hpp b/tools/Display/range.hpp
new file mode 100755 (executable)
index 0000000..94c39c6
--- /dev/null
@@ -0,0 +1,63 @@
+/** @file range.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef RANGEWINDOW_H
+#define RANGEWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QCheckBox;
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QSlider;
+
+class rangewindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    rangewindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~rangewindow();
+
+    bool status;
+    double maxval,minval,Range;
+  //    QPushButton* selectbutton;
+  //    QPushButton* clearselectbutton;
+    QCheckBox* allGlobals;
+    QCheckBox* allDifference;
+    QCheckBox* allIntensity;
+    QFrame* lowtrheshframe;
+    QLineEdit* lowthresh;
+    QPushButton* setlowbutton;
+    QSlider* lowthreshslider;
+    QLabel* lowthershlabel;
+    QFrame* highthreshframe;
+    QLineEdit* highthresh;
+    QPushButton* sethighbutton;
+    QSlider* highthreshslider;
+    QLabel* highthreshlabel;
+    QFrame* Line2;
+  //    QPushButton* applybutton;
+    QPushButton* closebutton;
+  public slots:
+    void updateLowthresh();
+    void updateLowthreshslider();
+    void updateHighthresh();
+    void updateHighthreshslider();
+    void signalAllGlobals(bool on);
+    void signalAllDifference(bool on);
+  //    void signalAllIntensity();
+    void closeWindow();
+    void closeEvent(QCloseEvent* e);
+};
+
+#endif // RANGEWINDOW_H
diff --git a/tools/Display/sd_line_t.cpp b/tools/Display/sd_line_t.cpp
new file mode 100755 (executable)
index 0000000..81f704e
--- /dev/null
@@ -0,0 +1,69 @@
+/** @file sd_line_t.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/** Deniz, July 2004
+    classes relating to each 'line' to be plotted
+    includes conversion mechanisms from real coords to window coords
+    handles 'actual' plotting too
+*/
+
+#include "sd_line_t.hpp"
+#include <qpainter.h>
+
+
+namespace sd_line_t {
+  // number of pixels left blank as buffer outside plot area. 
+  // X is both left and right, Y is both top and bot.
+  //  MUST be natural number and not too big.
+  int WIDTH  = 980;
+  int HEIGHT = 720;
+  int XWINPAD = 90;
+  //  int XWINPAD = 0;
+  int YWINPAD = 110;
+  //  int YWINPAD = 0;
+  int YAXISNOTCHLABELOFFSET = 38; // from y axis
+  int YAXISLABELOFFSET = 58;
+//    // in addition to the padding above...
+  double Y_HALF_FUDGE_FACTOR = 0.03; // like 0.03
+//    // fudge real Y-axis extrema on each side by this much.
+//    // MUST be nonnegative.  can set to 0 if you don't want it to.
+  int X_HALF_FUDGE_INCREMENT = 1; // like 1
+//    // how much to fudge the real x-axis on both side: MUST be natural number
+  
+  void drawBoundary(QPainter& P) { // boundary JUST OUTSIDE the actual paint area
+    // if PADDINGs are 0, should seem to do nothing
+    int LEFT=  sd_line_t::XWINPAD - 1;
+    int RIGHT= sd_line_t::WIDTH - sd_line_t::XWINPAD;
+    int TOP=   sd_line_t::YWINPAD - 1;
+    int BOT=   sd_line_t::HEIGHT - sd_line_t::YWINPAD;
+    P.setPen( Qt::black );
+    P.drawLine(LEFT , TOP, RIGHT, TOP); // (x1,y1,x2,y2)  >>inclusive<<
+    P.drawLine(RIGHT, TOP, RIGHT, BOT);
+    P.drawLine(RIGHT, BOT, LEFT , BOT);
+    P.drawLine(LEFT , BOT, LEFT , TOP);
+  } // --drawBoundary() in namespace sd_line_t
+  
+  /** don't wanna define it in QPainter to respect Qt library *
+   * puts a big ugly smudge of paint at (cx, cy) without changing Pen */
+  void drawBigPoint(QPainter& P, int cx, int cy) {
+    int x, y;
+    for(x = cx-1; x <= cx+1; x++) {
+      for(y = cy-1; y <= cy+1; y++) {
+       P.drawPoint(x, y);
+      }
+    }
+    P.drawPoint(cx-2,cy-2);
+    P.drawPoint(cx-2,cy+2);
+    P.drawPoint(cx+2,cy-2);
+    P.drawPoint(cx+2,cy+2);
+    P.drawPoint(cx,cy-2);
+    P.drawPoint(cx,cy+2);
+    P.drawPoint(cx-2,cy);
+    P.drawPoint(cx+2,cy);
+  } // --drawBigPoint() in namespace sd_line_t
+
+}; // -- namespace sd_line_t, for now
diff --git a/tools/Display/sd_line_t.hpp b/tools/Display/sd_line_t.hpp
new file mode 100755 (executable)
index 0000000..a673bf0
--- /dev/null
@@ -0,0 +1,50 @@
+/** @file sd_line_t.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/** Deniz, July 2004 -- August 2005
+    provides stuff that classes relating to each 'line' to be plotted need
+*/
+#ifndef _SD_LINE_T
+#define _SD_LINE_T
+
+class QPainter;
+
+namespace sd_line_t {
+  // number of pixels left blank as buffer outside plot area. 
+  // X is both left and right, Y is both top and bot.
+  //  MUST be natural number and not too big.
+  extern int WIDTH;
+  extern int HEIGHT;
+  extern int XWINPAD; // assume the paddings are NEVER reassigned
+  extern int YWINPAD;
+  extern int YAXISNOTCHLABELOFFSET;
+  extern int YAXISLABELOFFSET;
+  extern double Y_HALF_FUDGE_FACTOR;
+  extern int X_HALF_FUDGE_INCREMENT;
+  extern void drawBoundary(QPainter& P);  // boundary JUST OUTSIDE the actual paint area
+  extern void drawBigPoint(QPainter& P, int cx, int cy); // defined in sd_line_t.cpp
+} // -- namespace sd_line_t
+
+// logically, the following structs/classes should be defined
+// within namespace sd_line_t as well, but it would be rather clunky 
+//   and enough abstraction is already provided.
+
+//typedef 
+struct point_real_t{
+  int x;
+  double y;
+} ;
+
+
+/* single pixel coord in the window */
+//typedef 
+struct point_window_t{
+  int x;
+  int y;
+} ;
+
+#endif
diff --git a/tools/Display/selectEvalExecutions.cpp b/tools/Display/selectEvalExecutions.cpp
new file mode 100755 (executable)
index 0000000..b382f1d
--- /dev/null
@@ -0,0 +1,158 @@
+/** @file selectEvalExecutions.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "variables.hpp"
+#include "selectEvalExecutions.hpp"
+#include "chooseYVar.hpp"
+#include "SnarkDisplay.hpp"
+
+#include <stdio.h>
+#include <qapplication.h>
+#include <qframe.h>
+#include <qlistbox.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+// extern displaywindow **displaywindowset;
+
+/* 
+ *  Constructs a  selectEvalExecutionsWindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+
+selectEvalExecutionsWindow::selectEvalExecutionsWindow( QWidget* parent,  const char* name, bool modal, WFlags fl , int x , int y )
+  : QDialog( parent, name, modal, fl )
+{
+    QPoint topleft;
+
+    ///    myYVarWinP = 0;
+
+    const int WINWIDTH = 760;
+    const int WINHEIGHT = 350;
+    if ( !name )
+       setName( "selectEvalExecutionsWindow" );
+    resize( WINWIDTH, WINHEIGHT );     
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( WINWIDTH, WINHEIGHT ) );
+    setMaximumSize( QSize( WINWIDTH, WINHEIGHT ) );
+    setCaption( tr( "Select Evaluate Executions to be plotted" ) );
+
+    ///    Parent=parent;
+    topleft.setX(x);
+    topleft.setY(y);
+    this->move(topleft);
+
+    const int BUTTONWIDTH = 140; // for (most) buttons
+    const int BUTTONHEIGHT = 40;
+    const int LRPADDING = 10; // left-to-right padding
+    openbutton = new QPushButton( this, "openbutton" );
+    openbutton->setGeometry( QRect( LRPADDING, 15, BUTTONWIDTH, BUTTONHEIGHT ) ); 
+    openbutton->setText( tr( "Proceed" ) ); // makes more sense than "open"
+    QObject::connect(openbutton,SIGNAL(clicked()),this,SLOT(openEvalExecutions()));
+
+    selectbutton = new QPushButton( this, "selectbutton" );
+    selectbutton->setGeometry( QRect( LRPADDING, 65, BUTTONWIDTH, BUTTONHEIGHT ) ); 
+    selectbutton->setText( tr( "Select All" ) );
+    QObject::connect(selectbutton,SIGNAL(clicked()),this,SLOT(selectAll()));
+
+    clearselectbutton = new QPushButton( this, "clearselectbutton" );
+    clearselectbutton->setGeometry( QRect( LRPADDING, 115, BUTTONWIDTH, BUTTONHEIGHT ) ); 
+    clearselectbutton->setText( tr( "Clear Selected" ) );
+    QObject::connect(clearselectbutton,SIGNAL(clicked()),this,SLOT(clearSelected()));
+
+    evalExecutionsListBox = new QListBox( this, "evalExecutionsListBox" );
+    evalExecutionsListBox->setSelectionMode(QListBox::Multi);
+    QFont f = QFont("courier",10,25,false);
+    f.setFixedPitch(true);
+    evalExecutionsListBox->setFont(f);
+
+    for(unsigned i=0; i < myEES.num_eval_execs(); i++) {
+      ///      QString s = QString("Execution %1" ) . arg(i);
+      QString s(static_cast<char*>(myEES.getExecName(i)));
+      evalExecutionsListBox->insertItem(s);      
+    }
+    int tmpi = BUTTONWIDTH + LRPADDING*2;
+    evalExecutionsListBox->setGeometry( QRect( tmpi, 15, WINWIDTH - tmpi - LRPADDING , 250 ) ); 
+    
+    Line6 = new QFrame( this, "Line6" );
+    Line6->setGeometry( QRect( 0, 280, WINWIDTH, 16 ) ); 
+    Line6->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    closebutton = new QPushButton( this, "closebutton" );
+    closebutton->setGeometry( QRect( 380, 300, 100, 40 ) ); 
+    closebutton->setText( tr( "Close" ) );
+    QObject::connect(closebutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+selectEvalExecutionsWindow::~selectEvalExecutionsWindow()
+{
+  // no need to delete child widgets, Qt does it all for us
+}
+
+void selectEvalExecutionsWindow::openEvalExecutions()
+{
+  if(std::verbose >= 2) std::cout << "in selectEvalExecutionsWindow::openEvalExecutions()" << std::endl;
+  //  int c=0,x,y;
+  int x,y;
+  QPoint topleft;
+  topleft=this->pos();
+  x=topleft.x();
+  y=topleft.y();
+  for(unsigned i=0; i < myEES.num_eval_execs(); i++) {
+    if(evalExecutionsListBox->isSelected(i)) {
+      myEES.select_exec(i);
+    } else {
+      myEES.deselect_exec(i);
+    }
+  } // for
+  ///// just to debug: 
+  ///  myEES.show_selected();
+
+  bool hasG, hasP;
+  // if stmts have necessary side effects
+  if(hasG = myEES.selectionHasGlobal()) {
+    //    if(std::verbose >=1) std::cout << "The selection has global." << std::endl;
+  }
+  if(hasP = myEES.selectionHasPBP()) {
+    //    if(std::verbose >=1) std::cout << "The selection has PBP." << std::endl;
+  }
+  if(!(hasG || hasP)) {
+    std::cout << "Selection has neither global nor PBP!  Nothing to plot!" << std::endl;
+  } else {
+    // do something like open a brand new window... onward!
+    QPoint topleft;
+    topleft = this->pos();
+    //    chooseYVarWindow* w;
+    ///    if(myYVarWinP) delete myYVarWinP;
+    //    myYVarWinP = new chooseYVarWindow(this, "blah", true, topleft.x(), topleft.y() );
+    chooseYVarWindow* myYVarWinP;
+    myYVarWinP = new chooseYVarWindow(desk, "Eval::chooseYVarWindow", false, 0, (this->pos()).x() + 30, (this->pos()).y() + 50 );
+// w = new chooseYVarWindow(this, "Please choose the Y-variable to be plotted.", false, topleft.x() - 10, topleft.y() - 10);
+    myYVarWinP->show();
+// w->show();
+  }
+} // --selectEvalExecutionsWindow::openEvalExecutions()
+
+void selectEvalExecutionsWindow::selectAll()
+{
+  evalExecutionsListBox->selectAll(true);
+}
+
+void selectEvalExecutionsWindow::clearSelected()
+{
+  evalExecutionsListBox->selectAll(false);
+}
+
diff --git a/tools/Display/selectEvalExecutions.hpp b/tools/Display/selectEvalExecutions.hpp
new file mode 100755 (executable)
index 0000000..b40cd89
--- /dev/null
@@ -0,0 +1,44 @@
+/** @file selectEvalExecutions.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef SELECTEVALEXECUTIONSWINDOW_HPP
+#define SELECTEVALEXECUTIONSWINDOW_HPP
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QFrame;
+class QListBox;
+class QListBoxItem;
+class QPushButton;
+class SnarkDisplay;
+
+class selectEvalExecutionsWindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    selectEvalExecutionsWindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 , int x = 0 , int y = 0 );
+    ~selectEvalExecutionsWindow();
+
+    QWidget* Parent;
+    QFrame* Line6; // ?
+    QListBox* evalExecutionsListBox;
+    QPushButton* openbutton;
+    QPushButton* selectbutton;
+    QPushButton* clearselectbutton;
+    QPushButton* closebutton;
+public slots:
+    void openEvalExecutions(); //?
+///    void setEvalExecutionsNames(); //?
+    void selectAll();
+    void clearSelected();
+};
+
+#endif // SELECTEVALEXECUTIONSWINDOW_HPP
diff --git a/tools/Display/selectimages.cpp b/tools/Display/selectimages.cpp
new file mode 100755 (executable)
index 0000000..edaa1b4
--- /dev/null
@@ -0,0 +1,116 @@
+/** @file selectimages.cpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "selectimages.hpp"
+#include "variables.hpp"
+
+#include <malloc.h>
+#include <qfont.h>
+#include <qframe.h>
+#include <qlistbox.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/* 
+ *  Constructs a selectimageswindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+selectimageswindow::selectimageswindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    int i;
+
+    if ( !name )
+       setName( "selectimageswindow" );
+    resize( 540, 350 ); 
+    setMinimumSize( QSize( 540, 350 ) );
+    setMaximumSize( QSize( 540, 350 ) );
+    setCaption( tr( "Select Images" ) );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 10, 15, 140, 40 ) ); 
+    okbutton->setText( tr( "Ok" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(accept()));
+
+    selectbutton = new QPushButton( this, "selectbutton" );
+    selectbutton->setGeometry( QRect( 10, 65, 140, 40 ) ); 
+    selectbutton->setText( tr( "Select All" ) );
+    QObject::connect(selectbutton,SIGNAL(clicked()),this,SLOT(selectAll()));
+
+    clearselectbutton = new QPushButton( this, "clearselectbutton" );
+    clearselectbutton->setGeometry( QRect( 10, 115, 140, 40 ) ); 
+    clearselectbutton->setText( tr( "Clear Selected" ) );
+    QObject::connect(clearselectbutton,SIGNAL(clicked()),this,SLOT(clearSelected()));
+
+    imageslistbox = new QListBox( this, "imageslistbox" );
+    imageslistbox->setSelectionMode(QListBox::Multi);
+    QFont f = QFont("courier",10,25,false);
+    f.setFixedPitch(true);
+    imageslistbox->setFont(f);
+    for(i=0;i<numimages;i++)
+      imageslistbox->insertItem(imagetitles[i]);
+    imageslistbox->setGeometry( QRect( 160, 15, 370, 250 ) ); 
+
+    Line6 = new QFrame( this, "Line6" );
+    Line6->setGeometry( QRect( 0, 280, 540, 16 ) ); 
+    Line6->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 300, 300, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+selectimageswindow::~selectimageswindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+int* selectimageswindow::getSelectedImages()
+{
+  int i,j,nsi=0,*siarray;
+
+  for(i=0;i<numimages;i++) 
+    if(imageslistbox->isSelected(i))
+       nsi++;
+
+  siarray = (int*) malloc((unsigned) (nsi+1)*sizeof(int));
+  if(!siarray) {
+    QMessageBox::information(this,"SnarkDisplay","Error!\n"
+                             "Allocation failure in getSelectedImages()\n");
+  }
+  else {
+    siarray[0]=nsi;
+    j=1;
+    for(i=0;i<numimages;i++) 
+      if(imageslistbox->isSelected(i)) {
+       siarray[j]=i;
+       j++;
+      }
+  }
+  return siarray;
+}
+
+void selectimageswindow::selectAll()
+{
+  imageslistbox->selectAll(true);
+}
+
+void selectimageswindow::clearSelected()
+{
+  imageslistbox->selectAll(false);
+}
diff --git a/tools/Display/selectimages.hpp b/tools/Display/selectimages.hpp
new file mode 100755 (executable)
index 0000000..f97e9e2
--- /dev/null
@@ -0,0 +1,41 @@
+/** @file selectimages.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef SELECTIMAGESWINDOW_H
+#define SELECTIMAGESWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QFrame;
+class QListBox;
+class QListBoxItem;
+class QPushButton;
+
+class selectimageswindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    selectimageswindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~selectimageswindow();
+    int* getSelectedImages();
+
+    QFrame* Line6;
+    QListBox* imageslistbox;
+    QPushButton* okbutton;
+    QPushButton* selectbutton;
+    QPushButton* clearselectbutton;
+    QPushButton* cancelbutton;
+public slots:
+    void selectAll();
+    void clearSelected();
+};
+
+#endif // SELECTIMAGESWINDOW_H
diff --git a/tools/Display/variables.hpp b/tools/Display/variables.hpp
new file mode 100755 (executable)
index 0000000..da2eba6
--- /dev/null
@@ -0,0 +1,76 @@
+/** @file variables.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef _VARIABLES_H
+#define _VARIABLES_H
+
+#define NaI 2147483647;
+
+#include <cstdlib>
+#include <cstdio>
+#include <DIGFile.h>
+#include <DIGFileSnarkProj.h>
+// #include <PRJFile.h>
+#include <qwidget.h>
+
+#include "image.hpp"
+#include "proj.hpp"
+#include "eval_helper.hpp"
+
+#ifdef SNARKDISPLAY_H
+bool openprojfil=false; //(JD 1/27/04)
+bool openrecfil=false,phantomexists=false;
+int Sizex,Sizey,maxSizex,maxSizey,numimages;
+unsigned int prjnum,usrays;
+bool allglobal, alldifference;
+double globalmax= -100000,globalmin=100000,lowglobalthresh,highglobalthresh;
+double globaldiffmax= -100000, globaldiffmin = 100000;
+Snarkimage **imageset;
+Snarkproj *projfil;
+DIGFile digrecfil;
+// PRJFile digprojfil;
+DIGFileSnarkProj digprojfil;
+DIGDataFormat dataformat,projformat;
+const char *nameproj,*projname,**settitles;
+unsigned int **imageindexes;
+bool *displaywindowactive;
+char **imagetitles,**titlesmeas;
+eval_execution_set myEES; // class defined in eval_helper.hpp
+QWidget *desk;
+#else
+extern bool openprojfil; //(JD 1/27/04)
+extern bool openrecfil,phantomexists;
+extern int Sizex,Sizey,maxSizex,maxSizey,numimages;
+extern unsigned int prjnum,usrays;
+extern bool allglobal, alldifference;
+extern double globalmax,globalmin,lowglobalthresh,highglobalthresh;
+extern double globaldiffmax, globaldiffmin;
+extern Snarkimage **imageset;
+extern Snarkproj *projfil;
+extern DIGFile digrecfil;
+// extern PRJFile digprojfil;
+extern DIGFileSnarkProj digprojfil;
+extern DIGDataFormat dataformat,projformat;
+extern const char *nameproj,*projname,**settitles;
+extern unsigned int** imageindexes;
+extern bool *displaywindowactive;
+extern char **imagetitles,**titlesmeas;
+extern eval_execution_set myEES; // class defined in eval_helper.hpp
+extern QWidget *desk;
+
+namespace sd_line_t {
+  extern int WIDTH;
+  extern int HEIGHT;
+  extern int XWINPAD;
+  extern int YWINPAD;
+  extern double Y_HALF_FUDGE_FACTOR;
+  extern int X_HALF_FUDGE_INCREMENT;
+}
+
+#endif
+
+#endif /* _VARIABLES_H has to be here! or code will be reincluded! */
diff --git a/tools/Display/verbosity.hpp b/tools/Display/verbosity.hpp
new file mode 100755 (executable)
index 0000000..1e88746
--- /dev/null
@@ -0,0 +1,13 @@
+/** @file verbosity.hpp
+    @package snark14Display
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef _VERBOSITY_DEFINED
+#define _VERBOSITY_DEFINED
+namespace std {
+  static const int verbose = 0;
+}
+#endif
diff --git a/tools/Input/Makefile b/tools/Input/Makefile
new file mode 100755 (executable)
index 0000000..a46aa91
--- /dev/null
@@ -0,0 +1,339 @@
+#############################################################################
+# Makefile for building SnarkInput
+# Generated by tmake at 11:14, 2002/05/14
+#     Project: SnarkInput
+#    Template: app
+#############################################################################
+
+####### Compiler, tools and options
+
+CC     =       gcc
+CXX    =       g++
+CFLAGS =       -pipe -O2
+CXXFLAGS=      -pipe -O2 -DNO_DEBUG -std=c++98
+INCPATH        =       -I$(QTDIR)/include
+LINK   =       g++ -std=c++98
+LFLAGS =       
+LIBS   =       $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -lqt-mt -lm
+MOC    =       $(QTDIR)/bin/moc
+UIC    =       $(QTDIR)/bin/uic
+SNARK14ROOT = ../..
+
+TAR    =       tar -cf
+GZIP   =       gzip -9f
+
+####### Files
+
+HEADERS =      SnarkInput.h \
+               basis.h \
+               create.h \
+               display.h \
+               evaluate.h \
+               execute.h \
+               experiment.h \
+               icons.h \
+               lines.h \
+               misc.h \
+               mode.h \
+               picture.h \
+               projection.h \
+               punch.h \
+               select.h \
+               skunk.h \
+               stop.h \
+               super.h \
+               trace.h \
+               variables.h
+SOURCES =      SnarkInput.cpp \
+               basis.cpp \
+               create.cpp \
+               display.cpp \
+               evaluate.cpp \
+               execute.cpp \
+               experiment.cpp \
+               lines.cpp \
+               misc.cpp \
+               mode.cpp \
+               picture.cpp \
+               projection.cpp \
+               punch.cpp \
+               select.cpp \
+               skunk.cpp \
+               stop.cpp \
+               super.cpp \
+               trace.cpp 
+OBJECTS =      SnarkInput.o \
+               basis.o \
+               create.o \
+               display.o \
+               evaluate.o \
+               execute.o \
+               experiment.o \
+               lines.o \
+               misc.o \
+               mode.o \
+               picture.o \
+               projection.o \
+               punch.o \
+               select.o \
+               skunk.o \
+               stop.o \
+               super.o \
+               trace.o 
+SRCMOC =       moc_SnarkInput.cpp \
+               moc_basis.cpp \
+               moc_create.cpp \
+               moc_display.cpp \
+               moc_evaluate.cpp \
+               moc_execute.cpp \
+               moc_experiment.cpp \
+               moc_lines.cpp \
+               moc_mode.cpp \
+               moc_picture.cpp \
+               moc_projection.cpp \
+               moc_punch.cpp \
+               moc_select.cpp \
+               moc_skunk.cpp \
+               moc_stop.cpp \
+               moc_super.cpp \
+               moc_trace.cpp 
+OBJMOC =       moc_SnarkInput.o \
+               moc_basis.o \
+               moc_create.o \
+               moc_display.o \
+               moc_evaluate.o \
+               moc_execute.o \
+               moc_experiment.o \
+               moc_lines.o \
+               moc_mode.o \
+               moc_picture.o \
+               moc_projection.o \
+               moc_punch.o \
+               moc_select.o \
+               moc_skunk.o \
+               moc_stop.o \
+               moc_super.o \
+               moc_trace.o 
+DIST   =       
+TARGET =       $(SNARK14ROOT)/bin/snark14Input
+INTERFACE_DECL_PATH = .
+
+####### Implicit rules
+
+.SUFFIXES: .cpp .cxx .cpp .C .c
+
+.cpp.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+.cxx.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+.cc.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+.C.o:
+       $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+.c.o:
+       $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
+
+####### Build rules
+
+
+all: $(TARGET)
+
+$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) 
+       $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
+
+moc: $(SRCMOC)
+
+clean:
+       @rm -f $(OBJECTS) $(OBJMOC) moc_*.cpp $(TARGET)
+       @rm -f *~ core
+####### Sub-libraries
+
+
+###### Combined headers
+
+
+####### Compile
+
+SnarkInput.o: SnarkInput.cpp \
+               SnarkInput.h \
+               basis.h \
+               create.h \
+               display.h \
+               evaluate.h \
+               execute.h \
+               icons.h \
+               lines.h \
+               misc.h \
+               mode.h \
+               picture.h \
+               projection.h \
+               punch.h \
+               select.h \
+               skunk.h \
+               stop.h \
+               super.h \
+               trace.h \
+               variables.h
+
+basis.o: basis.cpp \
+               basis.h
+
+create.o: create.cpp \
+               create.h
+
+display.o: display.cpp \
+               display.h
+
+evaluate.o: evaluate.cpp \
+               evaluate.h
+
+execute.o: execute.cpp \
+               execute.h
+
+experiment.o: experiment.cpp \
+               experiment.h
+
+lines.o: lines.cpp \
+               lines.h
+
+misc.o: misc.cpp \
+               misc.h
+
+mode.o: mode.cpp \
+               mode.h
+
+picture.o: picture.cpp \
+               picture.h
+
+projection.o: projection.cpp \
+               projection.h
+
+punch.o: punch.cpp \
+               punch.h
+
+select.o: select.cpp \
+               select.h
+
+skunk.o: skunk.cpp \
+               skunk.h
+
+stop.o: stop.cpp \
+               stop.h
+
+super.o: super.cpp \
+               super.h
+
+trace.o: trace.cpp \
+               trace.h
+
+moc_SnarkInput.o: moc_SnarkInput.cpp \
+               SnarkInput.h
+
+moc_basis.o: moc_basis.cpp \
+               basis.h
+
+moc_create.o: moc_create.cpp \
+               create.h
+
+moc_display.o: moc_display.cpp \
+               display.h
+
+moc_evaluate.o: moc_evaluate.cpp \
+               evaluate.h
+
+moc_execute.o: moc_execute.cpp \
+               execute.h
+
+moc_experiment.o: moc_experiment.cpp \
+               experiment.h
+
+moc_lines.o: moc_lines.cpp \
+               lines.h
+
+moc_mode.o: moc_mode.cpp \
+               mode.h
+
+moc_picture.o: moc_picture.cpp \
+               picture.h
+
+moc_projection.o: moc_projection.cpp \
+               projection.h
+
+moc_punch.o: moc_punch.cpp \
+               punch.h
+
+moc_select.o: moc_select.cpp \
+               select.h
+
+moc_shelper.o: moc_shelper.cpp \
+               shelper.h
+
+moc_skunk.o: moc_skunk.cpp \
+               skunk.h
+
+moc_stop.o: moc_stop.cpp \
+               stop.h
+
+moc_super.o: moc_super.cpp \
+               super.h
+
+moc_trace.o: moc_trace.cpp \
+               trace.h
+
+moc_SnarkInput.cpp: SnarkInput.h
+       $(MOC) SnarkInput.h -o moc_SnarkInput.cpp
+
+moc_basis.cpp: basis.h
+       $(MOC) basis.h -o moc_basis.cpp 
+
+moc_create.cpp: create.h
+       $(MOC) create.h -o moc_create.cpp
+
+moc_display.cpp: display.h
+       $(MOC) display.h -o moc_display.cpp 
+
+moc_evaluate.cpp: evaluate.h
+       $(MOC) evaluate.h -o moc_evaluate.cpp
+
+moc_execute.cpp: execute.h
+       $(MOC) execute.h -o moc_execute.cpp
+
+moc_experiment.cpp: experiment.h
+       $(MOC) experiment.h -o moc_experiment.cpp
+
+moc_lines.cpp: lines.h
+       $(MOC) lines.h -o moc_lines.cpp
+
+moc_mode.cpp: mode.h
+       $(MOC) mode.h -o moc_mode.cpp
+
+moc_picture.cpp: picture.h
+       $(MOC) picture.h -o moc_picture.cpp
+
+moc_projection.cpp: projection.h
+       $(MOC) projection.h -o moc_projection.cpp
+
+moc_punch.cpp: punch.h
+       $(MOC) punch.h -o moc_punch.cpp 
+
+moc_select.cpp: select.h
+       $(MOC) select.h -o moc_select.cpp
+
+moc_shelper.cpp: shelper.h
+       $(MOC) shelper.h -o moc_shelper.cpp
+
+moc_skunk.cpp: skunk.h
+       $(MOC) skunk.h -o moc_skunk.cpp 
+
+moc_stop.cpp: stop.h
+       $(MOC) stop.h -o moc_stop.cpp
+
+moc_super.cpp: super.h
+       $(MOC) super.h -o moc_super.cpp
+
+moc_trace.cpp: trace.h
+       $(MOC) trace.h -o moc_trace.cpp
diff --git a/tools/Input/QPL b/tools/Input/QPL
new file mode 100755 (executable)
index 0000000..233674c
--- /dev/null
@@ -0,0 +1,53 @@
+[ from http://www.trolltech.com/licenses/qpl.html as viewed on 2005/01/22 ]
+
+Q Public License v1.0   
+
+Copyright Â© 1999 Trolltech AS, Norway.
+
+Everyone is permitted to copy and distribute this license document.
+
+The intent of this license is to establish freedom to share and change the software regulated by this license under the open source model.
+
+This license applies to any software containing a notice placed by the copyright holder saying that it may be distributed under the terms of the Q Public License version 1.0. Such software is herein referred to as the Software. This license covers modification and distribution of the Software, use of third-party application programs based on the Software, and development of free software which uses the Software.
+Granted Rights
+
+1. You are granted the non-exclusive rights set forth in this license provided you agree to and comply with any and all conditions in this license. Whole or partial distribution of the Software, or software items that link with the Software, in any form signifies acceptance of this license.
+
+2. You may copy and distribute the Software in unmodified form provided that the entire package, including - but not restricted to - copyright, trademark notices and disclaimers, as released by the initial developer of the Software, is distributed.
+
+3. You may make modifications to the Software and distribute your modifications, in a form that is separate from the Software, such as patches. The following restrictions apply to modifications:
+
+a. Modifications must not alter or remove any copyright notices in the Software.
+
+b. When modifications to the Software are released under this license, a non-exclusive royalty-free right is granted to the initial developer of the Software to distribute your modification in future versions of the Software provided such versions remain available under these terms in addition to any other license(s) of the initial developer.
+
+4. You may distribute machine-executable forms of the Software or machine-executable forms of modified versions of the Software, provided that you meet these restrictions:
+
+a. You must include this license document in the distribution.
+
+b. You must ensure that all recipients of the machine-executable forms are also able to receive the complete machine-readable source code to the distributed Software, including all modifications, without any charge beyond the costs of data transfer, and place prominent notices in the distribution explaining this.
+
+c. You must ensure that all modifications included in the machine-executable forms are available under the terms of this license.
+
+5. You may use the original or modified versions of the Software to compile, link and run application programs legally developed by you or by others.
+
+6. You may develop application programs, reusable components and other software items that link with the original or modified versions of the Software. These items, when distributed, are subject to the following requirements:
+
+a. You must ensure that all recipients of machine-executable forms of these items are also able to receive and use the complete machine-readable source code to the items without any charge beyond the costs of data transfer.
+
+b. You must explicitly license all recipients of your items to use and re-distribute original and modified versions of the items in both machine-executable and source code forms. The recipients must be able to do so without any charges whatsoever, and they must be able to re-distribute to anyone they choose.
+
+c. If the items are not available to the general public, and the initial developer of the Software requests a copy of the items, then you must supply one.
+Limitations of Liability
+
+In no event shall the initial developers or copyright holders be liable for any damages whatsoever, including - but not restricted to - lost revenue or profits or other direct, indirect, special, incidental or consequential damages, even if they have been advised of the possibility of such damages, except to the extent invariable law, if any, provides otherwise.
+No Warranty
+
+The Software and this license document are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+Choice of Law
+
+This license is governed by the Laws of Norway. Disputes shall be settled by Oslo City Court.
+
+
+       
+
diff --git a/tools/Input/SnarkInput.cpp b/tools/Input/SnarkInput.cpp
new file mode 100755 (executable)
index 0000000..9732298
--- /dev/null
@@ -0,0 +1,838 @@
+/** @file SnarkInput.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    modifications made June 13, 2008 by Joanna Klukowska
+       addition of variability to snark14 (two extra fields in LAST line
+       changed occurances of snark05 to snark14
+       removed SAVE and MODIFY options from RUN since snark14 does not have file12
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "SnarkInput.h"
+#include "icons.h"
+#include "variables.h"
+
+#include "basis.h"
+#include "create.h"
+#include "display.h"
+#include "evaluate.h"
+#include "execute.h"
+#include "experiment.h"
+#include "lines.h"
+#include "mode.h"
+#include "picture.h"
+#include "projection.h"
+#include "punch.h"
+#include "select.h"
+#include "skunk.h"
+#include "stop.h"
+#include "super.h"
+#include "trace.h"
+
+#include <qstring.h>
+#include <qlabel.h>
+#include <qrect.h>
+#include <qintdict.h>
+#include <qlistbox.h>
+#include <qtoolbar.h>
+#include <qstatusbar.h>
+#include <qbuttongroup.h>
+#include <qradiobutton.h>
+
+char *myTag = "si140703";
+
+int edittype=1;
+
+/** 
+ *  Constructs a SnarkInput which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+SnarkInput::SnarkInput(QWidget* parent, const char* name, WFlags fl)
+    : QMainWindow(parent, name, fl)
+{ 
+  printf("snark14Input version %s\n", myTag);
+
+  entries=0;
+  resize(482,665);
+  setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+  setMinimumSize(QSize(482,665));
+
+  inputfilename=QString("./snark_input");
+
+  QPixmap comments_icon( ( const char** ) comments_icon_data );
+  QPixmap trace_icon( ( const char** ) trace_icon_data );
+  QPixmap mode_icon( ( const char** ) mode_icon_data );
+  QPixmap create_icon( ( const char** ) create_icon_data );
+  QPixmap picture_icon( ( const char** ) picture_icon_data );
+  QPixmap projection_icon( ( const char** ) projection_icon_data );
+  QPixmap select_icon( ( const char** ) select_icon_data );
+  QPixmap basis_icon( ( const char** ) basis_icon_data );
+  QPixmap stop_icon( ( const char** ) stop_icon_data );
+  QPixmap super_icon( ( const char** ) super_icon_data );
+  QPixmap execute_icon( ( const char** ) execute_icon_data );
+  QPixmap evaluate_icon( ( const char** ) evaluate_icon_data );
+  QPixmap display_icon( ( const char** ) display_icon_data );
+  QPixmap punch_icon( ( const char** ) punch_icon_data );
+  QPixmap lines_icon( ( const char** ) lines_icon_data );
+  QPixmap skunk_icon( ( const char** ) skunk_icon_data );
+  QPixmap end_icon( ( const char** ) end_icon_data );
+  QPixmap run_icon( ( const char** ) run_icon_data );
+  QPixmap open_icon( ( const char** ) open_icon_data );
+  QPixmap save_icon( ( const char** ) save_icon_data );
+  QPixmap saveas_icon( ( const char** ) saveas_icon_data );
+  QPixmap newfile_icon( ( const char** ) newfile_icon_data );
+
+  QMenuBar* menubar=menuBar();
+
+  filemenu=new QPopupMenu(menubar,"File Menu");
+  QString t="&Open";
+  filemenu->insertItem(t,this,SLOT(openFile()));
+  t="&New";
+  filemenu->insertItem(t,this,SLOT(newInputFile()));
+  t="&Save";
+  filemenu->insertItem(t,this,SLOT(saveFile()));
+  t="S&ave as";
+  filemenu->insertItem(t,this,SLOT(saveFileAs()));
+  t="&Quit";
+  filemenu->insertItem(t,qApp,SLOT(quit()));  
+
+  commandsmenu=new QPopupMenu(menubar,"Commands Menu");
+  t="&* Comments Window";
+  commandsmenu->insertItem(t,this,SLOT(callComment()));
+  t="&Trace Window";
+  commandsmenu->insertItem(t,this,SLOT(callTrace()));
+  t="&Mode Window";
+  commandsmenu->insertItem(t,this,SLOT(callMode()));
+  t="&Create Window";
+  commandsmenu->insertItem(t,this,SLOT(callCreate()));
+  t="&Picture Window";
+  commandsmenu->insertItem(t,this,SLOT(callPicture()));
+  t="p&Rojection Window";
+  commandsmenu->insertItem(t,this,SLOT(callProjection()));
+  t="&Select Window";
+  commandsmenu->insertItem(t,this,SLOT(callSelect()));
+  t="&Basis Function Window";
+  commandsmenu->insertItem(t,this,SLOT(callBasis()));
+  t="st&Op Window";
+  commandsmenu->insertItem(t,this,SLOT(callStop()));
+  t="s&Uperiorize Window";
+  commandsmenu->insertItem(t,this,SLOT(callSuper()));
+  t="&Execute Window";
+  commandsmenu->insertItem(t,this,SLOT(callExecute()));
+  t="e&Valuate Window";
+  commandsmenu->insertItem(t,this,SLOT(callEvaluate()));
+  t="&Display Window";
+  commandsmenu->insertItem(t,this,SLOT(callDisplay()));
+  t="p&Unch Window";
+  commandsmenu->insertItem(t,this,SLOT(callPunch()));
+  t="&Lines Window";
+  commandsmenu->insertItem(t,this,SLOT(callLines()));
+  t="s&Kunk Function Window";
+  commandsmenu->insertItem(t,this,SLOT(callSkunk()));
+  t="E&nd Command";
+  commandsmenu->insertItem(t,this,SLOT(addEnd()));
+
+  runsnarkmenu=new QPopupMenu(menubar,"Run Snark Menu");
+  t="&Run SNARK";
+  runsnarkmenu->insertItem(t,this,SLOT(runSnark()));
+
+  helpmenu=new QPopupMenu(menubar,"Help Menu");
+  t="&About";
+  helpmenu->insertItem(t,this,SLOT(about()));
+
+  menubar->insertItem("&File",filemenu);
+  menubar->insertItem("&Commands",commandsmenu);
+  menubar->insertItem("&SNARK",runsnarkmenu);
+  menubar->insertSeparator();
+  menubar->insertItem("&Help",helpmenu);
+
+  /** Add graphical buttons to the interface */  
+  QToolBar *tb1 = new QToolBar("label",this,Top,false,"fileiconsbar");
+  tb1->setHorizontalStretchable(true);
+
+  QToolButton* ii=new QToolButton(open_icon,"Open File",QString::null,this,SLOT(openFile()),tb1,"Open File");
+
+  ii=new QToolButton(newfile_icon,"New File",QString::null,this,SLOT(newInputFile()),tb1,"New File");
+
+  ii=new QToolButton(save_icon,"Save File",QString::null,this,SLOT(saveFile()),tb1,"Save File");
+
+  ii=new QToolButton(saveas_icon,"Save File as",QString::null,this,SLOT(saveFileAs()),tb1,"Save File as");
+
+  QToolBar *tb2 = new QToolBar("label",this,Left,false,"iconsbar");
+  tb2->setVerticalStretchable(true);
+
+  QToolBar *tb3 = new QToolBar("label",this,Left,false,"iconsbar2");
+  tb3->setVerticalStretchable(true);
+
+  ii=new QToolButton(comments_icon,"Comments",QString::null,this,SLOT(callComment()),tb2,"Experiment Comments");
+
+  ii=new QToolButton(trace_icon,"Trace Window",QString::null,this,SLOT(callTrace()),tb2,"Trace Window");
+
+  ii=new QToolButton(mode_icon,"Mode window",QString::null,this,SLOT(callMode()),tb2,"Mode window");
+
+  ii=new QToolButton(create_icon,"Create Window",QString::null,this,SLOT(callCreate()),tb2,"Create Window");
+
+  ii=new QToolButton(picture_icon,"Picture window",QString::null,this,SLOT(callPicture()),tb2,"Picture window");
+
+  ii=new QToolButton(projection_icon,"Projection Window",QString::null,this,SLOT(callProjection()),tb2,"Projection Window");
+
+  ii=new QToolButton(select_icon,"Select Window",QString::null,this,SLOT(callSelect()),tb2,"Select Window");
+
+  ii=new QToolButton(basis_icon,"Basis window",QString::null,this,SLOT(callBasis()),tb2,"Basis window");
+
+  ii=new QToolButton(stop_icon,"Stop Window",QString::null,this,SLOT(callStop()),tb2,"Stop Window");
+
+  ii=new QToolButton(super_icon,"Superiorize Window",QString::null,this,SLOT(callSuper()),tb2,"Superiorize Window");
+
+  ii=new QToolButton(execute_icon,"Execute Window",QString::null,this,SLOT(callExecute()),tb3,"Execute Window");
+
+  ii=new QToolButton(evaluate_icon,"Evaluate Window",QString::null,this,SLOT(callEvaluate()),tb3,"Evaluate Window");
+
+  ii=new QToolButton(display_icon,"Display window",QString::null,this,SLOT(callDisplay()),tb3,"Display window");  
+
+  ii=new QToolButton(punch_icon,"Punch window",QString::null,this,SLOT(callPunch()),tb3,"Punch window");
+
+  ii=new QToolButton(lines_icon,"Lines window",QString::null,this,SLOT(callLines()),tb3,"Lines window");
+
+  ii=new QToolButton(skunk_icon,"Skunk Window",QString::null,this,SLOT(callSkunk()),tb3,"Skunk Window");
+
+  ii=new QToolButton(end_icon,"End Command",QString::null,this,SLOT(addEnd()),tb3,"End Command");
+
+  ii=new QToolButton(run_icon,"Run SNARK14",QString::null,this,SLOT(runSnark()),tb3,"Run SNARK14");
+
+  currentinput = new QMultiLineEdit(this,"current input");
+  setCentralWidget(currentinput);
+
+  QLabel* ibl = new QLabel( statusBar(), "tracelabel" );
+  ibl->setGeometry( QRect( 10, 0, 130, 30 ) ); 
+  ibl->setText( tr( "Insert command:" ) );
+
+  QButtonGroup* insertbuttongroup = new QButtonGroup( statusBar(), "tracebuttongroup" );
+  insertbuttongroup->setGeometry( QRect( 150, 0, 300, 60 ) );
+  insertbuttongroup->setFrameStyle(QFrame::NoFrame);
+  insertbuttongroup->setAlignment( int( QButtonGroup::AlignVCenter ) );
+  QObject::connect(insertbuttongroup,SIGNAL(clicked(int)),this,SLOT(setInsertType(int)));
+
+  QRadioButton* int1button = new QRadioButton(insertbuttongroup,"int1button");
+  int1button->setGeometry( QRect( 0, 0, 100, 30 ) ); 
+  int1button->setText( tr( "At the end" ) );
+  //  int1button->setChecked(true);
+
+  QRadioButton* int2button = new QRadioButton(insertbuttongroup,"int2button");
+  int2button->setGeometry( QRect( 110, 0, 130, 30 ) ); 
+  int2button->setText( tr( "After cursor line" ) );
+  int2button->setChecked(true);
+
+  sleep(1);
+
+  //  delete splash;
+}
+
+/** Calls file dialog and opens file
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkInput::setInsertType(int e)
+{
+  edittype=e;
+}
+
+
+/** Calls file dialog and opens file
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkInput::openFile()
+{
+  QString tempbuffer,tempinputfilename;
+  char tempstring[500];
+  int i,l;
+
+  tempinputfilename=QFileDialog::getOpenFileName(QString::null,"Snark input files (*.in)\n All files (*)");
+  if(tempinputfilename) {
+    inputfilename=tempinputfilename;
+    if((inputfile=fopen(inputfilename,"r+"))==NULL) {
+      printf("Error opening %s\n",(const char *)inputfilename);
+    } 
+    else { /* fseek(inputfile,0L,SEEK_END); */
+      tempbuffer=QString();
+      l=currentinput->numLines();
+      for(i=0;i<l;i++)
+        currentinput->removeLine(0);
+      while(fgets(tempstring,500,inputfile)) {
+       tempbuffer.append(QString(tempstring));
+      }
+      currentinput->insertLine(tempbuffer,-1);
+      fclose(inputfile);
+    }
+  }
+}
+
+/** Erases current content for a new input file
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkInput::newInputFile()
+{
+  while(currentinput->numLines()>1)
+    currentinput->removeLine(0);
+  currentinput->removeLine(0);
+  inputfilename=QString("./snark_input");
+}
+
+/**  Saves file 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkInput::saveFile()
+{
+  int i,l;
+  QString t;
+
+  if((inputfile=fopen(inputfilename,"w"))==NULL) {
+  QMessageBox::information(this,"SnarkInput","Error!\n"
+                                 "Could not open file %s\n",(const char *)inputfilename);
+  } 
+  else {
+    l=currentinput->numLines();
+    for(i=0;i<l;i++) {
+      t=currentinput->textLine(i);
+      fprintf(inputfile,"%s\n",t.latin1());
+    }
+    fclose(inputfile);  
+  }
+}
+
+/**  Calls file dialog and saves file as
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkInput::saveFileAs()
+{
+  int i,l;
+  QString t;
+
+  outputfilename=QFileDialog::getSaveFileName(QString::null,"Snark input files (*.in)\n All files (*)");
+  if(outputfilename) {
+    inputfilename=outputfilename;
+    if((inputfile=fopen(inputfilename,"w"))==NULL) {
+    QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Could not open file %s\n",(const char *)inputfilename);
+    } 
+    else {
+      l=currentinput->numLines();
+      for(i=0;i<l;i++) {
+        t=currentinput->textLine(i);
+        fprintf(inputfile,"%s\n",t.latin1());
+      }
+      fclose(inputfile);
+    }
+  }
+}
+
+/** Calls SNARK with current input file
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkInput::runSnark()
+{ 
+  QString todo;
+  printf("SNARK14 is run on file %s\n",(const char *)inputfilename);
+  char tmpfilename[100];
+  sprintf(tmpfilename, "/tmp/snark_input_%d_%d", getuid(), geteuid());
+  char command[150];
+  if((inputfile=fopen(tmpfilename, "w"))==NULL) {
+    printf("Error opening for read-write %s\n",(const char *)tmpfilename);
+  }
+  todo=currentinput->text();
+  fprintf(inputfile,"%s\n",todo.latin1());
+  fflush(inputfile);
+  fclose(inputfile);  
+  // Added by deniz to fix bug 85
+  // these tests return 0 for pass, so we use some deMorgan :)
+  if(system("test -x ./bin/snark14UserDefined") ||  // file exists and executable
+     system("test -s ./bin/snark14UserDefined") ||  // exists and has non-zero size
+     system("test -f ./bin/snark14UserDefined")) {  // exists and is regular (not a directory)
+// std::cout << "file is not a non-zero-size executable non-directory" << std::endl;
+    // run snark14 as usual
+    sprintf(command, "snark14 < %s", tmpfilename);
+    //    system("snark14 < /tmp/snark_input ");
+    system(command);
+  } else {
+// std::cout << "file is a non-zero-size executable non-directory" << std::endl;
+    // run ./bin/snark14UserAlg
+    sprintf(command, "./bin/snark14UserDefined < %s", tmpfilename);
+    //    system("./bin/snark14UserAlg < /tmp/snark_input ");
+    system(command);
+  }
+  // don't clean-up... potentially dangerous... let files be.
+  //  sprintf(command, "rm -f %s", tmpfilename);
+  //  system(command);
+}
+
+/** Calls SnarkInput manual
+@param void
+@author Bruno M. Carvalho
+@version 1.0 
+COMMENTED OUT BY DENIZ SARIOZ in line with "new requirements"
+*/
+// void SnarkInput::help()
+// {
+//   char command[80];
+//   // char *snarkinputbase;
+//   sprintf(command,"acroread %s/doc/SnarkInput.pdf &",SNARKINPUTBASE);
+//   /* snarkinputbase=getenv("HOME");
+//   printf("SNARKINPUTBASE=%s\n",snarkinputbase);
+//   snarkinputbase=getenv("SNARKBASE");
+//   printf("SNARKINPUTBASE=%s\n",snarkinputbase);
+//   sprintf(command,"acroread $SNARKINPUTBASE/doc/SnarkInput.pdf &"); */
+//   system(command);
+// }
+
+/** Calls Snark manual
+@param void
+@author Bruno M. Carvalho
+@version 1.0 
+COMMENTED OUT BY DENIZ SARIOZ in line with "new requirements"
+*/
+// void SnarkInput::SNARKManual()
+// {
+//   char command[80];
+//   sprintf(command,"acroread %s/doc/Snark_manual.pdf &",SNARKBASE);
+//   system(command); 
+// }
+
+/** Calls about window
+@param void
+@author Bruno M. Carvalho & Deniz Sarioz
+@version 2.0 */
+void SnarkInput::about()
+{
+  QMessageBox::information(this,"snark14Input",
+                             "snark05Input was developed by\n"
+                          "Bruno M. Carvalho and Deniz Sarioz\n"
+                          "2003--2005\n"
+                          "converted to snark14Input by Joanna Klukowska\n"
+                          "June 2008\n"
+                          "converted to snark14Input by Bernhard Prommegger\n"
+                          "July 2014\n"
+                           "copyright (QPL) by CUNY-GC-CS-DIG\n"
+                          "http://www.dig.cs.gc.cuny.edu");
+}
+
+/** Calls comment window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void SnarkInput::callComment()
+{
+  QString line;
+  int l,col;
+
+  experimentwindow* nw=new experimentwindow(this,"Experiment's Comments Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a trace window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callTrace()
+{ 
+  QString line;
+  int l,col;
+
+  tracewindow* nw=new tracewindow(this,"Trace Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a mode window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callMode()
+{
+  QString line;
+  int l,col;
+
+  modewindow* nw=new modewindow(this,"Mode Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a create window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callCreate() 
+{  
+  QString line1,line2,line3,line4,line5,line6,line7,line8;
+  QStringList divline;
+  int ell,col;
+
+  createwindow* nw=new createwindow(this,"Create Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line1=nw->getOutput1();
+    line2=nw->getOutput2();
+    line3=nw->getOutput3();
+    line4=nw->getOutput4();
+    line5=nw->getOutput5();
+    if(nw->isRaysumAveragePresent()) {
+      line6=nw->getOutput6();
+      line7=nw->getOutput7();
+      line8=nw->getOutput8();
+    }
+    if(edittype) {
+      currentinput->getCursorPosition(&ell,&col);
+      if((currentinput->numLines()) == (ell+1)) { // if cursor on last line of text
+       currentinput->insertLine("",ell+1); // hack so that stuff below will work
+      }
+      if(nw->isRaysumAveragePresent()) {
+       currentinput->insertLine(line8,ell+1);
+       currentinput->insertLine(line7,ell+1);
+       currentinput->insertLine(line6,ell+1);
+      }
+      currentinput->insertLine(line5,ell+1);
+      currentinput->insertLine(line4,ell+1);
+      currentinput->insertLine(line3,ell+1);
+      currentinput->insertLine(line2,ell+1);
+      currentinput->insertLine(line1,ell+1);
+    }
+    else {
+      currentinput->insertLine(line1);
+      currentinput->insertLine(line2);
+      currentinput->insertLine(line3);
+      currentinput->insertLine(line4);
+      currentinput->insertLine(line5);
+      if(nw->isRaysumAveragePresent()) {
+       currentinput->insertLine(line6);
+       currentinput->insertLine(line7);
+       currentinput->insertLine(line8);
+      }
+    }
+  }
+}
+
+/** Starts a picture window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callPicture()
+{
+  QString line;
+  int l,col;
+
+  picturewindow* nw=new picturewindow(this,"Picture Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a projection window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callProjection() 
+{
+  QString line;
+  int l,col;
+
+  projectionwindow* nw=new projectionwindow(this,"Projection Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a select window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callSelect() 
+{
+  QString line;
+  int l,col;
+
+  selectwindow* nw=new selectwindow(this,"Select Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a basis window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callBasis()
+{  
+  QString line;
+  int l,col;
+
+  basiswindow* nw=new basiswindow(this,"Basis Function Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  } 
+}
+
+/** Starts a stop window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callStop() 
+{
+  QString line;
+  int l,col;
+
+  stopwindow* nw=new stopwindow(this,"Stop Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {    
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+// Starts a superiorize window
+void SnarkInput::callSuper()
+{
+  QString line;
+  int l,col;
+
+  superwindow* nw=new superwindow(this,"Superiorize Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a execute window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callExecute()
+{
+  QString line;
+  int l,col;
+
+  executewindow* nw=new executewindow(this,"Execute Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a evaluate window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callEvaluate() 
+{
+  QString line;
+  int l,col;
+
+  evaluatewindow* nw=new evaluatewindow(this,"Evaluate Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a display window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callDisplay() 
+{
+  QString line;
+  int l,col;
+
+  displaywindow* nw=new displaywindow(this,"Display Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a punch window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callPunch()
+{  
+  QString line;
+  int l,col;
+
+  punchwindow* nw=new punchwindow(this,"Punch Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a lines window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callLines() 
+{
+  QString line;
+  int l,col;
+
+  lineswindow* nw=new lineswindow(this,"Lines Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Starts a skunk window
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::callSkunk() 
+{
+  QString line;
+  int l,col;
+
+  skunkwindow* nw=new skunkwindow(this,"Skunk Window",true);
+  int c=nw->exec();
+  if(c==QDialog::Accepted) {
+    line=nw->getOutput();
+    if(edittype) {
+      currentinput->getCursorPosition(&l,&col);
+      currentinput->insertLine(line,l+1);
+    }
+    else
+      currentinput->insertLine(line);
+  }
+}
+
+/** Adds an end command
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+void SnarkInput::addEnd()
+{  
+  int l,col;
+
+  if(edittype) {
+    currentinput->getCursorPosition(&l,&col);
+    currentinput->insertLine(QString("END"),l+1);
+  }
+  else
+    currentinput->insertLine(QString("END"));
+}
+
+/** Starts the application
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */ 
+int main(int argc,char* argv[])
+{
+  QApplication snarkapp(argc,argv);
+  SnarkInput* mw=new SnarkInput();
+  snarkapp.setMainWidget(mw);
+  mw->show();
+  return snarkapp.exec();
+}
diff --git a/tools/Input/SnarkInput.h b/tools/Input/SnarkInput.h
new file mode 100755 (executable)
index 0000000..7ff97af
--- /dev/null
@@ -0,0 +1,79 @@
+/** @file SnarkInput.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef SNARKINPUT_H
+#define SNARKINPUT_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <qapplication.h>
+#include <qwidget.h>
+#include <qmainwindow.h>
+#include <qmultilineedit.h>
+#include <qmenubar.h>
+#include <qpopupmenu.h>
+#include <qtoolbar.h>
+#include <qpushbutton.h>
+#include <qtoolbutton.h>
+#include <qiconset.h>
+#include <qpixmap.h>
+#include <qlayout.h>
+#include <qlabel.h>
+#include <qtooltip.h>
+#include <qmessagebox.h>
+#include <qfiledialog.h>
+#include <qstringlist.h>
+#include <qbuttongroup.h>
+#include <qradiobutton.h>
+
+class SnarkInput : public QMainWindow {
+
+  Q_OBJECT; 
+
+public:
+  SnarkInput(QWidget *parent=0, const char *name=0, WFlags f=0);
+  FILE *inputfile;
+  QString inputfilename;
+  QString outputfilename;
+  QPopupMenu* filemenu;
+  QPopupMenu* commandsmenu;
+  QPopupMenu* runsnarkmenu;
+  QPopupMenu* helpmenu;
+  QMultiLineEdit* currentinput;
+  QButtonGroup* insertbuttongroup;
+  QRadioButton* int1button;
+  QRadioButton* int2button;
+private slots:
+  void setInsertType(int);
+  void openFile();
+  void newInputFile();
+  void saveFile();
+  void saveFileAs();
+  void runSnark();
+  //  void help();
+  //  void SNARKManual();
+  void about();
+  void callComment(); 
+  void callTrace();  
+  void callMode(); 
+  void callCreate();  
+  void callPicture(); 
+  void callProjection();  
+  void callSelect(); 
+  void callBasis(); 
+  void callStop();
+  void callSuper();
+  void callExecute(); 
+  void callEvaluate();  
+  void callDisplay(); 
+  void callPunch();  
+  void callLines(); 
+  void callSkunk(); 
+  void addEnd(); 
+};
+#endif  // SNARKINPUT_H
diff --git a/tools/Input/basis.cpp b/tools/Input/basis.cpp
new file mode 100755 (executable)
index 0000000..7daef3e
--- /dev/null
@@ -0,0 +1,266 @@
+/** @file basis.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/* basis.cpp
+   This file is part of the snark14Input package
+   Written by Bruno M. Carvalho and Deniz Sarioz
+   licensed under QPLv1.0 which should accompany this distribution in the file 'QPL'
+*/ 
+
+#include "basis.h"
+#include "misc.h"
+#include "variables.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#include <qcheckbox.h>
+#include <qradiobutton.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qbuttongroup.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a basiswindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+basiswindow::basiswindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "basiswindow" );
+    resize( 400, 300 );
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 400, 300 ) );
+    setMaximumSize( QSize( 400, 300 ) );
+    setCaption( tr( "Basis Window" ) );
+
+    basislabel = new QLabel( this, "basislabel" );
+    basislabel->setGeometry( QRect( 10, 10, 120, 30 ) ); 
+    basislabel->setText( tr( "BASIS" ) );
+
+    basisbuttongroup = new QButtonGroup( this, "basisbuttongroup" );
+    basisbuttongroup->setGeometry( QRect( 20, 40, 360, 170 ) ); 
+    basisbuttongroup->setTitle( tr( "basis function" ) );
+    basisbuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    pixelbutton = new QRadioButton( basisbuttongroup, "pixelbutton" );
+    pixelbutton->setGeometry( QRect( 10, 20, 120, 30 ) ); 
+    pixelbutton->setText( tr( "PIXEL" ) ); 
+    pixelbutton->setChecked(true);
+    QObject::connect(pixelbutton,SIGNAL(clicked()),this,SLOT(deactivateBlobFields()));
+
+    blobbutton = new QRadioButton( basisbuttongroup, "blobbutton" );
+    blobbutton->setGeometry( QRect( 10, 70, 80, 30 ) ); 
+    blobbutton->setText( tr( "BLOB" ) ); 
+    QObject::connect(blobbutton,SIGNAL(clicked()),this,SLOT(activateBlobFields()));
+
+    // "paragraph" ++ by deniz
+    useblobdefaultsbox = new QCheckBox( basisbuttongroup, "useblobdefaultsbox" );
+    useblobdefaultsbox->setGeometry( QRect( 10, 115, 135, 30 ) );
+    useblobdefaultsbox->setText( tr( "use blob defaults" ) );
+    useblobdefaultsbox->setEnabled(FALSE);
+    //    useblobdefaultsbox->setChecked(false);
+    QObject::connect(useblobdefaultsbox,SIGNAL(clicked()),this,SLOT(deactivateBlobFields()));
+
+    supportlabel = new QLabel( basisbuttongroup, "supportlabel" );
+    supportlabel->setGeometry( QRect( 105, 50, 60, 20 ) ); 
+    supportlabel->setText( tr( "support" ) ); 
+    supportlabel->setEnabled(FALSE);
+
+    support = new QLineEdit( basisbuttongroup, "support" );
+    support->setGeometry( QRect( 90, 70, 70, 30 ) ); 
+    support->setEnabled(FALSE);
+
+    shapelabel = new QLabel( basisbuttongroup, "shapelabel" );
+    shapelabel->setEnabled( FALSE );
+    shapelabel->setGeometry( QRect( 185, 50, 60, 20 ) ); 
+    shapelabel->setText( tr( "shape" ) );
+
+    shape = new QLineEdit( basisbuttongroup, "shape" );
+    shape->setGeometry( QRect(170, 70, 70, 30 ) ); 
+    shape->setEnabled(FALSE);
+
+    deltalabel = new QLabel( basisbuttongroup, "deltalabel" );
+    deltalabel->setEnabled( FALSE );
+    deltalabel->setGeometry( QRect( 265, 50, 60, 20 ) ); 
+    deltalabel->setText( tr( "delta" ) );
+
+    delta = new QLineEdit( basisbuttongroup, "delta" );
+    delta->setGeometry( QRect( 250, 70, 70, 30 ) ); 
+    delta->setEnabled(FALSE);
+
+    Line9 = new QFrame( this, "Line9" );
+    Line9->setGeometry( QRect( -10, 215, 420, 16 ) ); 
+    Line9->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 230, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 230, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+basiswindow::~basiswindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Activates blob subfields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void basiswindow::activateBlobFields()
+{
+  if(blobbutton->isChecked()) {
+    useblobdefaultsbox->setEnabled(TRUE);
+    useblobdefaultsbox->setChecked(false);
+    support->setEnabled(TRUE);
+    supportlabel->setEnabled(TRUE);
+    shape->setEnabled(TRUE);
+    shapelabel->setEnabled(TRUE);
+    delta->setEnabled(TRUE);
+    deltalabel->setEnabled(TRUE);
+  }
+  else {
+    useblobdefaultsbox->setEnabled(FALSE);
+    support->setEnabled(FALSE);
+    supportlabel->setEnabled(FALSE);
+    shape->setEnabled(FALSE);
+    shapelabel->setEnabled(FALSE);
+    delta->setEnabled(FALSE);
+    deltalabel->setEnabled(FALSE);
+  }
+}
+
+/** Dectivates blob subfields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void basiswindow::deactivateBlobFields()
+{
+  // played with by deniz
+  if(pixelbutton->isChecked()) {
+    useblobdefaultsbox->setEnabled(FALSE);
+    support->setEnabled(FALSE);
+    supportlabel->setEnabled(FALSE);
+    shape->setEnabled(FALSE);
+    shapelabel->setEnabled(FALSE);
+    delta->setEnabled(FALSE);
+    deltalabel->setEnabled(FALSE);
+  } else if(useblobdefaultsbox->isChecked()) {
+    support->setEnabled(FALSE);
+    supportlabel->setEnabled(FALSE);
+    shape->setEnabled(FALSE);
+    shapelabel->setEnabled(FALSE);
+    delta->setEnabled(FALSE);
+    deltalabel->setEnabled(FALSE);
+  } else activateBlobFields();
+}
+
+/** Returns a string for BASIS input sequence
+@param void
+@return basis
+@author Bruno M. Carvalho
+@version 1.0 */
+QString basiswindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("BASIS ");
+  if(blobbutton->isChecked()) {
+    // ++ by deniz
+    if(useblobdefaultsbox->isChecked()) { 
+      output.append("BLOBS ");
+    } else {
+      output.append("BLOB ");
+      output+=support->text();
+      output.append(" ");
+      output+=shape->text();
+      output.append(" ");
+      output+=delta->text();
+      output.append(" ");
+    }
+  }
+  else
+    if(pixelbutton->isChecked()) {
+      output.append("PIXEL ");
+    }
+  //output.append("\n");
+
+  return output;
+}
+
+void basiswindow::checkValues()
+{
+  int f=0;
+  float su=0,sh=0,d=0;
+  
+  if((blobbutton->isChecked()) && (!(useblobdefaultsbox->isChecked()))) {
+    su=strtof((const char *) (support->text().lower()) ); // lower: bug#148
+    if(errnum) 
+      f=1; else {
+       if(su<=0)
+         f=4;
+       sh=strtof((const char *) (shape->text().lower()) );
+       if(errnum) 
+         f=2; else {
+           if(sh<0)
+             f=5;
+           d=strtof((const char *) (delta->text().lower()) );
+           if(errnum) 
+             f=3; else {
+               if(d<=0)
+                 f=6;
+             }
+         }
+      }
+  }
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid support format.");
+    break;
+  case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid shape format.");
+    break;
+  case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid delta format.");
+    break;
+  case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "support must be positive.");
+    break;
+  case 5: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "shape must be nonnegative.");
+    break;
+  case 6: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "delta must be positive.");
+    break;
+  }
+}
+
diff --git a/tools/Input/basis.h b/tools/Input/basis.h
new file mode 100755 (executable)
index 0000000..8d72c28
--- /dev/null
@@ -0,0 +1,54 @@
+/** @file basis.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef BASISWINDOW_H
+#define BASISWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+class QCheckBox; // ++ by deniz
+
+class basiswindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    basiswindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~basiswindow();
+    QString getOutput();
+
+    QLabel* basislabel;
+    QButtonGroup* basisbuttongroup;
+    QRadioButton* pixelbutton;
+    QRadioButton* blobbutton;
+    QCheckBox* useblobdefaultsbox;
+    QLineEdit* support;
+    QLabel* supportlabel;
+    QLineEdit* shape;
+    QLabel* shapelabel;
+    QLineEdit* delta;
+    QLabel* deltalabel;
+    QFrame* Line9;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+      //void activateFields();
+    void activateBlobFields();
+    void deactivateBlobFields();
+    void checkValues();
+};
+
+#endif // BASISWINDOW_H
diff --git a/tools/Input/create.cpp b/tools/Input/create.cpp
new file mode 100755 (executable)
index 0000000..cfb3d5e
--- /dev/null
@@ -0,0 +1,2798 @@
+/** @file create.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    modified by Joanna Klukowska (June 2008)
+       added two fields in LAST line for agreement with snark14
+       removed SAVE and MODIFY options of Run since snark14 does not have file12
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "create.h"
+#include "variables.h"
+#include "misc.h"
+#include <stdio.h>
+#include <math.h>
+
+#include <qbuttongroup.h>
+#include <qlabel.h>
+#include <qframe.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qlineedit.h>
+#include <qmultilineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qcombobox.h>
+#include <qtabwidget.h>
+#include <qwidget.h>
+#include <qregexp.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a createwindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  true to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+createwindow::createwindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "createwindow" );
+    resize( 750, 629 ); 
+    setCaption( tr( "Create Window" ) );
+
+    tabwidget1 = new QTabWidget( this, "tabwidget1" );
+    tabwidget1->setGeometry( QRect( 0, 0, 750, 550 ) ); 
+    tabwidget1->setMinimumSize( QSize( 750, 550 ) );
+    tabwidget1->setMaximumSize( QSize( 750, 550 ) );
+    tabwidget1->setTabPosition( QTabWidget::Top );
+    tabwidget1->setTabShape( QTabWidget::Triangular );
+
+    /** Generates Tab number 1 - Header/Spectrum  */
+
+    headerSpectrum = new QWidget( tabwidget1, "headerSpectrum" );
+
+    idheaderlabel = new QLabel( headerSpectrum, "idheaderlabel" );
+    idheaderlabel->setGeometry( QRect( 20, 30, 90, 20 ) ); 
+    idheaderlabel->setText( tr( "ID HEADER" ) );
+
+    idheader = new QLineEdit( headerSpectrum, "idheader" );
+    idheader->setGeometry( QRect( 120, 20, 500, 28 ) ); 
+
+    spectrumlabel = new QLabel( headerSpectrum, "spectrumlabel" );
+    spectrumlabel->setGeometry( QRect( 20, 70, 100, 20 ) ); 
+    spectrumlabel->setText( tr( "SPECTRUM" ) );
+
+    spectrumbuttongroup = new QButtonGroup( headerSpectrum, "spectrumbuttongroup" );
+    spectrumbuttongroup->setGeometry( QRect( 140, 70, 200, 100 ) ); 
+    spectrumbuttongroup->setTitle( tr( "spectrum type" ) );
+    spectrumbuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    monochromaticbutton = new QRadioButton( spectrumbuttongroup, "monochromaticbutton" );
+    monochromaticbutton->setGeometry( QRect( 10, 30, 170, 24 ) ); 
+    monochromaticbutton->setText( tr( "MONOCHROMATIC" ) );
+    monochromaticbutton->setChecked(true);
+    QObject::connect(monochromaticbutton,SIGNAL(clicked()),this,SLOT(activateMonochromaticFields()));
+
+    energy = new QLineEdit( headerSpectrum, "energy" );
+    energy->setGeometry( QRect( 350, 90, 60, 28 ) ); 
+    energy->setEnabled(true);
+
+    energylabel = new QLabel( headerSpectrum, "energylabel" );
+    energylabel->setGeometry( QRect( 355, 70, 50, 20 ) ); 
+    energylabel->setText( tr( "energy" ) ); 
+    energylabel->setEnabled(true);
+
+    polychromaticbutton = new QRadioButton( spectrumbuttongroup, "polychromaticbutton" );
+    polychromaticbutton->setGeometry( QRect( 10, 60, 170, 24 ) ); 
+    polychromaticbutton->setText( tr( "POLYCHROMATIC" ) );
+    QObject::connect(polychromaticbutton,SIGNAL(clicked()),this,SLOT(activatePolychromaticFields()));
+
+    nergy = new QLineEdit( headerSpectrum, "nergy" );
+    nergy->setGeometry( QRect( 350, 140, 60, 28 ) ); 
+    nergy->setEnabled(false);
+
+    nergylabel = new QLabel( headerSpectrum, "nergylabel" );
+    nergylabel->setGeometry( QRect( 360, 120, 40, 20 ) ); 
+    nergylabel->setText( tr( "nergy" ) );
+    nergylabel->setEnabled(false);
+
+    energy1 = new QLineEdit( headerSpectrum, "energy1" );
+    energy1->setGeometry( QRect( 30, 200, 70, 28 ) );
+    energy1->setEnabled(false);
+    energy1label = new QLabel( headerSpectrum, "energy1label" );
+    energy1label->setGeometry( QRect( 35, 180, 70, 20 ) ); 
+    energy1label->setText( tr( "energy1" ) );
+    energy1label->setEnabled(false);
+
+    percent1 = new QLineEdit( headerSpectrum, "percent1" );
+    percent1->setGeometry( QRect( 110, 200, 70, 28 ) );
+    percent1->setEnabled(false);
+
+    percent1label = new QLabel( headerSpectrum, "percent1label" );
+    percent1label->setGeometry( QRect( 115, 180, 70, 20 ) ); 
+    percent1label->setText( tr( "percent1" ) );
+    percent1label->setEnabled(false);
+
+    energy2 = new QLineEdit( headerSpectrum, "energy2" );
+    energy2->setGeometry( QRect( 190, 200, 70, 28 ) ); 
+    energy2->setEnabled(false);
+
+    energy2label = new QLabel( headerSpectrum, "energy2label" );
+    energy2label->setGeometry( QRect( 195, 180, 70, 20 ) );
+    energy2label->setText( tr( "energy2" ) );
+    energy2label->setEnabled(false);
+
+    percent2 = new QLineEdit( headerSpectrum, "percent2" );
+    percent2->setGeometry( QRect( 270, 200, 70, 28 ) ); 
+    percent2->setEnabled(false);
+
+    percent2label = new QLabel( headerSpectrum, "percent2label" );
+    percent2label->setGeometry( QRect( 275, 180, 70, 20 ) ); 
+    percent2label->setText( tr( "percent2" ) ); 
+    percent2label->setEnabled(false);
+
+    energy3 = new QLineEdit( headerSpectrum, "energy3" );
+    energy3->setGeometry( QRect( 350, 200, 70, 28 ) ); 
+    energy3->setEnabled(false);
+
+    energy3label = new QLabel( headerSpectrum, "energy3label" );
+    energy3label->setGeometry( QRect( 355, 180, 70, 20 ) ); 
+    energy3label->setText( tr( "energy3" ) ); 
+    energy3label->setEnabled(false);
+
+    percent3 = new QLineEdit( headerSpectrum, "percent3" );
+    percent3->setGeometry( QRect( 430, 200, 70, 28 ) ); 
+    percent3->setEnabled(false);
+
+    percent3label = new QLabel( headerSpectrum, "percent3label" );
+    percent3label->setGeometry( QRect( 435, 180, 70, 20 ) ); 
+    percent3label->setText( tr( "percent3" ) );
+    percent3label->setEnabled(false);
+
+    energy4 = new QLineEdit( headerSpectrum, "energy4" );
+    energy4->setGeometry( QRect( 510, 200, 70, 28 ) );
+    energy4->setEnabled(false);
+
+    energy4label = new QLabel( headerSpectrum, "energy4label" );
+    energy4label->setGeometry( QRect( 515, 180, 70, 20 ) ); 
+    energy4label->setText( tr( "energy4" ) ); 
+    energy4label->setEnabled(false);
+
+    percent4 = new QLineEdit( headerSpectrum, "percent4" );
+    percent4->setGeometry( QRect( 590, 200, 70, 28 ) ); 
+    percent4->setEnabled(false);
+
+    percent4label = new QLabel( headerSpectrum, "percent4label" );
+    percent4label->setGeometry( QRect( 595, 180, 70, 20 ) );
+    percent4label->setText( tr( "percent4" ) );
+    percent4label->setEnabled(false);
+
+    energy5 = new QLineEdit( headerSpectrum, "energy5" );
+    energy5->setGeometry( QRect( 30, 260, 70, 28 ) ); 
+    energy5->setEnabled(false);
+
+    energy5label = new QLabel( headerSpectrum, "energy5label" );
+    energy5label->setGeometry( QRect( 35, 240, 70, 20 ) ); 
+    energy5label->setText( tr( "energy5" ) );
+    energy5label->setEnabled(false);
+
+    percent5 = new QLineEdit( headerSpectrum, "percent5" );
+    percent5->setGeometry( QRect( 110, 260, 70, 28 ) ); 
+    percent5->setEnabled(false);
+
+    percent5label = new QLabel( headerSpectrum, "percent5label" );
+    percent5label->setGeometry( QRect( 115, 240, 70, 20 ) ); 
+    percent5label->setText( tr( "percent5" ) ); 
+    percent5label->setEnabled(false);
+
+    energy6 = new QLineEdit( headerSpectrum, "energy6" );
+    energy6->setGeometry( QRect( 190, 260, 70, 28 ) ); 
+    energy6->setEnabled(false);
+
+    energy6label = new QLabel( headerSpectrum, "energy6label" );
+    energy6label->setGeometry( QRect( 195, 240, 70, 20 ) );
+    energy6label->setText( tr( "energy6" ) );
+    energy6label->setEnabled(false);
+
+    percent6 = new QLineEdit( headerSpectrum, "percent6" );
+    percent6->setGeometry( QRect( 270, 260, 70, 28 ) ); 
+    percent6->setEnabled(false);
+
+    percent6label = new QLabel( headerSpectrum, "percent6label" );
+    percent6label->setGeometry( QRect( 270, 240, 70, 20 ) ); 
+    percent6label->setText( tr( "percent6" ) );
+    percent6label->setEnabled(false);
+
+    energy7 = new QLineEdit( headerSpectrum, "energy7" );
+    energy7->setGeometry( QRect( 350, 260, 70, 28 ) );
+    energy7->setEnabled(false);
+
+    energy7label = new QLabel( headerSpectrum, "energy7label" );
+    energy7label->setGeometry( QRect( 355, 240, 70, 20 ) ); 
+    energy7label->setText( tr( "energy7" ) ); 
+    energy7label->setEnabled(false);
+
+    percent7 = new QLineEdit( headerSpectrum, "percent7" );
+    percent7->setGeometry( QRect( 430, 260, 70, 28 ) );
+    percent7->setEnabled(false);
+
+    percent7label = new QLabel( headerSpectrum, "percent7label" );
+    percent7label->setGeometry( QRect( 435, 240, 70, 20 ) ); 
+    percent7label->setText( tr( "percent7" ) );
+    percent7label->setEnabled(false);
+
+    tabwidget1->insertTab( headerSpectrum, tr( "Header/Spectrum" ) );
+
+    /** Generates  Tab number 2 - Objects  */
+
+    objects = new QWidget( tabwidget1, "objects" );
+
+    objectslabel = new QLabel( objects, "objectslabel" );
+    objectslabel->setGeometry( QRect( 10, 20, 80, 20 ) ); 
+    objectslabel->setText( tr( "OBJECTS" ) );
+
+    shape = new QComboBox( objects, "shape" );
+    shape->setGeometry( QRect( 100, 55, 100, 28 ) ); 
+    shape->insertItem("RECT",-1);
+    shape->insertItem("ELIP",-1);
+    shape->insertItem("TRIA",-1);
+    shape->insertItem("SEGM",-1);
+    shape->insertItem("SECT",-1);
+
+    shapelabel = new QLabel( objects, "shapelabel" );
+    shapelabel->setGeometry( QRect( 125, 35, 60, 20 ) ); 
+    shapelabel->setText( tr( "shape" ) );
+
+    cx = new QLineEdit( objects, "cx" );
+    cx->setGeometry( QRect( 210, 55, 65, 28 ) ); 
+
+    cxlabel = new QLabel( objects, "cxlabel" );
+    cxlabel->setGeometry( QRect( 230, 35, 60, 20 ) ); 
+    cxlabel->setText( tr( "cx" ) );
+
+    cy = new QLineEdit( objects, "cy" );
+    cy->setGeometry( QRect( 285, 55, 65, 28 ) ); 
+
+    cylabel = new QLabel( objects, "cylabel" );
+    cylabel->setGeometry( QRect( 305, 35, 60, 20 ) ); 
+    cylabel->setText( tr( "cy" ) );
+
+    u = new QLineEdit( objects, "u" );
+    u->setGeometry( QRect( 360, 55, 65, 28 ) ); 
+
+    ulabel = new QLabel( objects, "ulabel" );
+    ulabel->setGeometry( QRect( 385, 35, 60, 20 ) ); 
+    ulabel->setText( tr( "u" ) );
+
+    v = new QLineEdit( objects, "v" );
+    v->setGeometry( QRect( 435, 55, 65, 28 ) ); 
+
+    vlabel = new QLabel( objects, "vlabel" );
+    vlabel->setGeometry( QRect( 460, 35, 60, 20 ) ); 
+    vlabel->setText( tr( "v" ) );
+
+    ang = new QLineEdit( objects, "ang" );
+    ang->setGeometry( QRect( 510, 55, 65, 28 ) ); 
+
+    anglabel = new QLabel( objects, "anglabel" );
+    anglabel->setGeometry( QRect( 520, 35, 60, 20 ) ); 
+    anglabel->setText( tr( "ang" ) );
+
+    den1 = new QLineEdit( objects, "den" );
+    den1->setGeometry( QRect( 585, 55, 65, 28 ) ); 
+
+    den1label = new QLabel( objects, "den1label" );
+    den1label->setGeometry( QRect( 595, 35, 60, 20 ) ); 
+    den1label->setText( tr( "den(1)" ) );
+
+    deni = new QLineEdit( objects, "deni" );
+    deni->setGeometry( QRect( 100, 108, 150, 28 ) ); 
+    deni->setEnabled(false);
+
+    denilabel = new QLabel( objects, "denilabel" );
+    denilabel->setGeometry( QRect( 150, 88, 60, 20 ) ); 
+    denilabel->setText( tr( "den(i)" ) );
+    denilabel->setEnabled(false);
+
+    addshapebutton = new QPushButton( objects, "addshape" );
+    addshapebutton->setGeometry( QRect( 15, 50, 80, 37 ) ); 
+    addshapebutton->setText( tr( "ADD" ) );
+    QObject::connect(addshapebutton,SIGNAL(clicked()),this,SLOT(addShape()));
+
+    objectsdescription = new QMultiLineEdit( objects, "objectsdescription" );
+    objectsdescription->setGeometry( QRect( 100, 150, 550, 300 ) );
+
+    lastlabel = new QLabel( objects, "lastlabel" );
+    lastlabel->setGeometry( QRect( 100, 485, 50, 20 ) ); 
+    lastlabel->setText( tr( "LAST" ) );
+
+    scale = new QLineEdit( objects, "scale" );
+    scale->setGeometry( QRect( 160, 480, 60, 28 ) ); 
+
+    scalelabel = new QLabel( objects, "scalelabel" );
+    scalelabel->setGeometry( QRect( 170, 460, 40, 20 ) ); 
+    scalelabel->setText( tr( "scale" ) );
+    
+    /* jk 06/13/2008 added variabled to reflect tissue variabilit in snark14*/
+    seedvar = new QLineEdit( objects, "seedvar");
+    seedvar->setGeometry( QRect( 240, 480, 60, 28));
+    seedvar->setText( tr("0"));
+    
+    seedvarlabel = new QLabel( objects, "seedvarlabel");
+    seedvarlabel->setGeometry( QRect( 250, 460, 40, 20));
+    seedvarlabel->setText( tr( "seed"));
+    
+    var = new QLineEdit( objects, "var");
+    var->setGeometry( QRect( 320, 480, 60, 28));
+    var->setText( tr("0.0"));
+    
+    varlabel = new QLabel( objects, "varlabel");
+    varlabel->setGeometry( QRect( 330, 460, 40, 20));
+    varlabel->setText( tr( "var"));
+    
+
+    tabwidget1->insertTab( objects, tr( "Objects" ) );
+
+   /** Generates  Tab number 3 - Phantom/Raysum  */
+    phantomRaysum = new QWidget( tabwidget1, "phantomRaysum" );
+
+    phantomlabel = new QLabel( phantomRaysum, "phantomlabel" );
+    phantomlabel->setGeometry( QRect( 10, 40, 90, 20 ) ); 
+    phantomlabel->setText( tr( "PHANTOM" ) );
+
+    phantomaveragebutton = new QRadioButton( phantomRaysum, "phantomaveragebutton" );
+    phantomaveragebutton->setGeometry( QRect( 130, 40, 110, 24 ) ); 
+    phantomaveragebutton->setText( tr( "AVERAGE" ) );
+    QObject::connect(phantomaveragebutton,SIGNAL(clicked()),this,SLOT(activatePhantomAverageFields()));
+
+    nave1 = new QLineEdit( phantomRaysum, "nave1" );
+    nave1->setGeometry( QRect( 250, 30, 90, 28 ) );
+    nave1->setEnabled(false);
+
+    nave1label = new QLabel( phantomRaysum, "nave1label" );
+    nave1label->setGeometry( QRect( 270, 10, 50, 20 ) ); 
+    nave1label->setText( tr( "nave1" ) );
+    nave1label->setEnabled(false);
+
+    nelem = new QLineEdit( phantomRaysum, "nelem" );
+    nelem->setGeometry( QRect( 350, 30, 90, 28 ) ); 
+    nelem->setEnabled(false);
+
+    nelemlabel = new QLabel( phantomRaysum, "nelemlabel" );
+    nelemlabel->setGeometry( QRect( 370, 10, 50, 20 ) ); 
+    nelemlabel->setText( tr( "nelem" ) );
+    nelemlabel->setEnabled(false);
+
+    pixelsize = new QLineEdit( phantomRaysum, "pixelsize" );
+    pixelsize->setGeometry( QRect( 450, 30, 90, 28 ) ); 
+    pixelsize->setEnabled(false);
+
+    pixelsizelabel = new QLabel( phantomRaysum, "pixelsizelabel" );
+    pixelsizelabel->setGeometry( QRect( 460, 10, 70, 20 ) ); 
+    pixelsizelabel->setText( tr( "pixel_size" ) );
+    pixelsizelabel->setEnabled(false);
+
+    raysumlabel = new QLabel( phantomRaysum, "raysumlabel" );
+    raysumlabel->setGeometry( QRect( 10, 110, 90, 20 ) ); 
+    raysumlabel->setText( tr( "RAYSUM" ) );
+
+    raysumaveragebutton = new QRadioButton( phantomRaysum, "raysumaveragebutton" );
+    raysumaveragebutton->setGeometry( QRect( 130, 110, 110, 24 ) ); 
+    raysumaveragebutton->setText( tr( "AVERAGE" ) );
+    QObject::connect(raysumaveragebutton,SIGNAL(clicked()),this,SLOT(activateRaysumAverageFields()));
+    israysumaveragepresent=false;
+
+    nave2 = new QLineEdit( phantomRaysum, "nave2" );
+    nave2->setGeometry( QRect( 250, 100, 90, 28 ) ); 
+    nave2->setEnabled(false);
+
+    nave2label = new QLabel( phantomRaysum, "nave2label" );
+    nave2label->setGeometry( QRect( 270, 80, 50, 20 ) ); 
+    nave2label->setText( tr( "nave2" ) ); 
+    nave2label->setEnabled(false);
+
+    naper1 = new QLineEdit( phantomRaysum, "naper1" );
+    naper1->setGeometry( QRect( 20, 160, 70, 28 ) ); 
+    naper1->setEnabled(false);
+
+    naper1label = new QLabel( phantomRaysum, "naper1label" );
+    naper1label->setGeometry( QRect( 30, 140, 60, 20 ) );
+    naper1label->setText( tr( "naper1" ) );
+    naper1label->setEnabled(false);
+
+    naper2 = new QLineEdit( phantomRaysum, "naper2" );
+    naper2->setGeometry( QRect( 100, 160, 70, 28 ) ); 
+    naper2->setEnabled(false);
+
+    naper2label = new QLabel( phantomRaysum, "naper2label" );
+    naper2label->setGeometry( QRect( 110, 140, 50, 20 ) );
+    naper2label->setText( tr( "naper2" ) );
+    naper2label->setEnabled(false);
+
+    naper3 = new QLineEdit( phantomRaysum, "naper3" );
+    naper3->setGeometry( QRect( 180, 160, 70, 28 ) ); 
+    naper3->setEnabled(false);
+
+    naper3label = new QLabel( phantomRaysum, "naper3label" );
+    naper3label->setGeometry( QRect( 190, 140, 50, 20 ) ); 
+    naper3label->setText( tr( "naper3" ) );
+    naper3label->setEnabled(false);
+
+    naper4 = new QLineEdit( phantomRaysum, "naper4" );
+    naper4->setGeometry( QRect( 260, 160, 70, 28 ) ); 
+    naper4->setEnabled(false);
+
+    naper4label = new QLabel( phantomRaysum, "naper4label" );
+    naper4label->setGeometry( QRect( 270, 140, 50, 20 ) ); 
+    naper4label->setText( tr( "naper4" ) );
+    naper4label->setEnabled(false);
+
+    naper5 = new QLineEdit( phantomRaysum, "naper5" );
+    naper5->setGeometry( QRect( 340, 160, 70, 28 ) ); 
+    naper5->setEnabled(false);
+
+    naper5label = new QLabel( phantomRaysum, "naper5label" );
+    naper5label->setGeometry( QRect( 350, 140, 50, 20 ) ); 
+    naper5label->setText( tr( "naper5" ) );
+    naper5label->setEnabled(false);
+
+    naper6 = new QLineEdit( phantomRaysum, "naper6" );
+    naper6->setGeometry( QRect( 420, 160, 70, 28 ) ); 
+    naper6->setEnabled(false);
+
+    naper6label = new QLabel( phantomRaysum, "naper6label" );
+    naper6label->setGeometry( QRect( 430, 140, 50, 20 ) ); 
+    naper6label->setText( tr( "naper6" ) );
+    naper6label->setEnabled(false);
+
+    naper7 = new QLineEdit( phantomRaysum, "naper7" );
+    naper7->setGeometry( QRect( 500, 160, 70, 28 ) ); 
+    naper7->setEnabled(false);
+
+    naper7label = new QLabel( phantomRaysum, "naper7label" );
+    naper7label->setGeometry( QRect( 510, 140, 50, 20 ) ); 
+    naper7label->setText( tr( "naper7" ) );
+    naper7label->setEnabled(false);
+
+    naper8 = new QLineEdit( phantomRaysum, "naper8" );
+    naper8->setGeometry( QRect( 20, 220, 70, 28 ) ); 
+    naper8->setEnabled(false);
+
+    naper8label = new QLabel( phantomRaysum, "naper8label" );
+    naper8label->setGeometry( QRect( 30, 200, 50, 20 ) ); 
+    naper8label->setText( tr( "naper8" ) );
+    naper8label->setEnabled(false);
+
+    naper9 = new QLineEdit( phantomRaysum, "naper9" );
+    naper9->setGeometry( QRect( 100, 220, 70, 28 ) ); 
+    naper9->setEnabled(false);
+
+    naper9label = new QLabel( phantomRaysum, "naper9label" );
+    naper9label->setGeometry( QRect( 110, 200, 50, 20 ) ); 
+    naper9label->setText( tr( "naper9" ) );
+    naper9label->setEnabled(false);
+
+    naper10 = new QLineEdit( phantomRaysum, "naper10" );
+    naper10->setGeometry( QRect( 180, 220, 70, 28 ) ); 
+    naper10->setEnabled(false);
+
+    naper10label = new QLabel( phantomRaysum, "naper10label" );
+    naper10label->setGeometry( QRect( 185, 200, 60, 20 ) ); 
+    naper10label->setText( tr( "naper10" ) );
+    naper10label->setEnabled(false);
+
+    naper11 = new QLineEdit( phantomRaysum, "naper11" );
+    naper11->setGeometry( QRect( 260, 220, 70, 28 ) ); 
+    naper11->setEnabled(false);
+
+    naper11label = new QLabel( phantomRaysum, "naper11label" );
+    naper11label->setGeometry( QRect( 265, 200, 60, 20 ) ); 
+    naper11label->setText( tr( "naper11" ) );
+    naper11label->setEnabled(false);
+
+    naper12 = new QLineEdit( phantomRaysum, "naper12" );
+    naper12->setGeometry( QRect( 340, 220, 70, 28 ) ); 
+    naper12->setEnabled(false);
+
+    naper12label = new QLabel( phantomRaysum, "naper12label" );
+    naper12label->setGeometry( QRect( 345, 200, 60, 20 ) ); 
+    naper12label->setText( tr( "naper12" ) );
+    naper12label->setEnabled(false);
+
+    naper13 = new QLineEdit( phantomRaysum, "naper13" );
+    naper13->setGeometry( QRect( 420, 220, 70, 28 ) ); 
+    naper13->setEnabled(false);
+
+    naper13label = new QLabel( phantomRaysum, "naper13label" );
+    naper13label->setGeometry( QRect( 425, 200, 60, 20 ) ); 
+    naper13label->setText( tr( "naper13" ) );
+    naper13label->setEnabled(false);
+
+    tabwidget1->insertTab( phantomRaysum, tr( "Phantom/Raysum" ) );
+
+   /** Generates  Tab number 4 - Geometry/Raysums  */
+
+    geometryRaysums = new QWidget( tabwidget1, "geometryRaysums" );
+
+    geometrylabel = new QLabel( geometryRaysums, "geometrylabel" );
+    geometrylabel->setGeometry( QRect( 10, 20, 100, 20 ) ); 
+    geometrylabel->setText( tr( "GEOMETRY" ) );
+
+    geometrybuttongroup = new QButtonGroup( geometryRaysums, "geometrybuttongroup" );
+    //    geometrybuttongroup->setGeometry( QRect( 120, 10, 570, 160 ) ); 
+    geometrybuttongroup->setGeometry( QRect( 120, 10, 570, 210 ) ); 
+    geometrybuttongroup->setTitle( tr( "" ) );
+    geometrybuttongroup->setEnabled(false);
+
+    parallelbutton = new QRadioButton( geometrybuttongroup, "parallelbutton" );
+    parallelbutton->setGeometry( QRect( 10, 20, 100, 24 ) ); 
+    parallelbutton->setText( tr( "PARALLEL" ) );
+    parallelbutton->setChecked(true);
+    QObject::connect(parallelbutton,SIGNAL(clicked()),this,SLOT(activateParallelFields()));
+
+    parallelbuttongroup = new QButtonGroup( geometrybuttongroup, "parallelbuttongroup" );
+    parallelbuttongroup->setGeometry( QRect( 130, 10, 120, 70 ) ); 
+    parallelbuttongroup->setTitle( tr( "" ) );
+    parallelbuttongroup->setEnabled(true);
+
+    uniformbutton = new QRadioButton( parallelbuttongroup, "uniformbutton" );
+    uniformbutton->setGeometry( QRect( 10, 10, 100, 24 ) ); 
+    uniformbutton->setText( tr( "UNIFORM" ) ); 
+    uniformbutton->setChecked(true);
+
+    variablebutton = new QRadioButton( parallelbuttongroup, "variablebutton" );
+    variablebutton->setGeometry( QRect( 10, 40, 100, 24 ) ); 
+    variablebutton->setText( tr( "VARIABLE" ) );
+
+    parallelbuttongroup2 = new QButtonGroup( geometrybuttongroup, "parallelbuttongroup2" );
+    parallelbuttongroup2->setGeometry( QRect( 260, 10, 90, 70 ) ); 
+    parallelbuttongroup2->setTitle( tr( "" ) ); 
+    parallelbuttongroup2->setEnabled(true);
+
+    stripbutton = new QRadioButton( parallelbuttongroup2, "stripbutton" );
+    stripbutton->setGeometry( QRect( 10, 10, 70, 24 ) ); 
+    stripbutton->setText( tr( "STRIP" ) );
+
+    linebutton = new QRadioButton( parallelbuttongroup2, "linebutton" );
+    linebutton->setGeometry( QRect( 10, 40, 70, 24 ) ); 
+    linebutton->setText( tr( "LINE" ) );
+    linebutton->setChecked(true);
+
+    divergentbutton = new QRadioButton( geometrybuttongroup, "divergentbutton" );
+    divergentbutton->setGeometry( QRect( 10, 100, 120, 24 ) ); 
+    divergentbutton->setText( tr( "DIVERGENT" ) );    
+    QObject::connect(divergentbutton,SIGNAL(clicked()),this,SLOT(activateDivergentFields()));
+
+    divergentbuttongroup = new QButtonGroup( geometrybuttongroup, "divergentbuttongroup" );
+    divergentbuttongroup->setGeometry( QRect( 130, 80, 120, 70 ) ); 
+    divergentbuttongroup->setTitle( tr( "" ) ); 
+    divergentbuttongroup->setEnabled(false);
+
+    arcbutton = new QRadioButton( divergentbuttongroup, "arcbutton" );
+    arcbutton->setGeometry( QRect( 10, 10, 60, 24 ) ); 
+    arcbutton->setText( tr( "ARC" ) );
+
+    tangentbutton = new QRadioButton( divergentbuttongroup, "tangentbutton" );
+    tangentbutton->setGeometry( QRect( 10, 40, 100, 20 ) ); 
+    tangentbutton->setText( tr( "TANGENT" ) );
+
+    sourcetoorigin = new QLineEdit( geometrybuttongroup, "sourcetoorigin" );
+    sourcetoorigin->setGeometry( QRect( 260, 100, 140, 28 ) ); 
+    sourcetoorigin->setEnabled(false);
+
+    sourcetooriginlabel = new QLabel( geometrybuttongroup, "sourcetooriginlabel" );
+    sourcetooriginlabel->setGeometry( QRect( 270, 80, 120, 20 ) ); 
+    sourcetooriginlabel->setText( tr( "source_to_origin" ) );
+    sourcetooriginlabel->setEnabled(false);
+
+    sourcetodetector = new QLineEdit( geometrybuttongroup, "sourcetodetector" );
+    sourcetodetector->setGeometry( QRect( 410, 100, 140, 28 ) ); 
+    sourcetodetector->setEnabled(false);
+
+    sourcetodetectorlabel = new QLabel( geometrybuttongroup, "sourcetodetectorlabel" );
+    sourcetodetectorlabel->setGeometry( QRect( 410, 80, 140, 20 ) ); 
+    sourcetodetectorlabel->setText( tr( "source_to_detector" ) );
+    sourcetodetectorlabel->setEnabled(false);
+
+    linogrambutton = new QRadioButton( geometrybuttongroup, "divergentbutton" );
+    linogrambutton->setGeometry( QRect( 10, 180, 120, 24 ) ); 
+    linogrambutton->setText( tr( "LINOGRAM" ) );    
+    QObject::connect(linogrambutton,SIGNAL(clicked()),this,SLOT(activateLinogramFields()));
+
+    raysumslabel = new QLabel( geometryRaysums, "raysumslabel" );
+    //    raysumslabel->setGeometry( QRect( 10, 180, 90, 20 ) ); 
+    raysumslabel->setGeometry( QRect( 10, 230, 90, 20 ) ); 
+    raysumslabel->setText( tr( "RAYSUMS" ) );
+
+    raysumsbuttongroup = new QButtonGroup( geometryRaysums, "raysumsbuttongroup" );
+    //    raysumsbuttongroup->setGeometry( QRect( 120, 180, 570, 120 ) ); 
+    raysumsbuttongroup->setGeometry( QRect( 120, 230, 570, 120 ) ); 
+    raysumsbuttongroup->setTitle( tr( "" ) );
+    raysumsbuttongroup->setEnabled(false);
+
+    userbutton = new QRadioButton( raysumsbuttongroup, "userbutton" );
+    userbutton->setGeometry( QRect( 10, 40, 70, 24 ) ); 
+    userbutton->setText( tr( "USER" ) ); 
+    userbutton->setChecked(true);
+    QObject::connect(userbutton,SIGNAL(clicked()),this,SLOT(activateUserFields()));
+
+    userrays = new QLineEdit( raysumsbuttongroup, "userrays" );
+    userrays->setGeometry( QRect( 130, 30, 90, 28 ) ); 
+    userrays->setEnabled(true);
+
+    userrayslabel = new QLabel( raysumsbuttongroup, "userrayslabel" );
+    userrayslabel->setGeometry( QRect( 140, 10, 70, 20 ) ); 
+    userrayslabel->setText( tr( "user_rays" ) );
+    userrayslabel->setEnabled(true);
+
+    programbutton = new QRadioButton( raysumsbuttongroup, "programbutton" );
+    programbutton->setGeometry( QRect( 10, 90, 110, 24 ) ); 
+    programbutton->setText( tr( "PROGRAM" ) );
+    QObject::connect(programbutton,SIGNAL(clicked()),this,SLOT(activateProgramFields()));
+
+    raysumsnelem = new QLineEdit( raysumsbuttongroup, "raysumsnelem" );
+    raysumsnelem->setGeometry( QRect( 130, 80, 90, 28 ) ); 
+    raysumsnelem->setEnabled(false);
+
+    raysumsnelemlabel = new QLabel( raysumsbuttongroup, "raysumsnelemlabel" );
+    raysumsnelemlabel->setGeometry( QRect( 150, 60, 50, 20 ) ); 
+    raysumsnelemlabel->setText( tr( "nelem" ) );
+    raysumsnelemlabel->setEnabled(false);
+
+    raysumspixelsize = new QLineEdit( raysumsbuttongroup, "raysumspixelsize" );
+    raysumspixelsize->setGeometry( QRect( 240, 80, 90, 28 ) ); 
+    raysumspixelsize->setEnabled(false);
+
+    raysumspixelsizelabel = new QLabel( raysumsbuttongroup, "raysumspixelsizelabel" );
+    raysumspixelsizelabel->setGeometry( QRect( 250, 60, 70, 20 ) ); 
+    raysumspixelsizelabel->setText( tr( "pixel_size" ) );
+    raysumspixelsizelabel->setEnabled(false);
+
+    detectorspacing = new QLineEdit( raysumsbuttongroup, "detectorspacing" );
+    detectorspacing->setGeometry( QRect( 370, 50, 140, 28 ) ); 
+
+    detectorspacinglabel = new QLabel( raysumsbuttongroup, "detectorspacinglabel" );
+    detectorspacinglabel->setGeometry( QRect( 380, 30, 130, 20 ) ); 
+    detectorspacinglabel->setText( tr( "detector_spacing" ) );
+
+    angleslabel = new QLabel( geometryRaysums, "angleslabel" );
+    //    angleslabel->setGeometry( QRect( 8, 310, 70, 20 ) ); 
+    angleslabel->setGeometry( QRect( 10, 360, 70, 20 ) ); 
+    angleslabel->setText( tr( "ANGLES" ) );
+
+    anglesbuttongroup = new QButtonGroup( geometryRaysums, "anglesbuttongroup" );
+    //    anglesbuttongroup->setGeometry( QRect( 120, 310, 570, 100 ) ); 
+    anglesbuttongroup->setGeometry( QRect( 120, 360, 570, 100 ) ); 
+    anglesbuttongroup->setTitle( tr( "" ) );
+    anglesbuttongroup->setEnabled(false);
+
+    prjnum = new QLineEdit( anglesbuttongroup, "prjnum" );
+    prjnum->setGeometry( QRect( 17, 40, 120, 28 ) ); 
+
+    prjnumlabel = new QLabel( anglesbuttongroup, "prjnumlabel" );
+    prjnumlabel->setGeometry( QRect( 50, 20, 50, 20 ) ); 
+    prjnumlabel->setText( tr( "prjnum" ) );
+
+//     linobutton = new QRadioButton( anglesbuttongroup, "linobutton" );
+//     linobutton->setGeometry( QRect( 160, 10, 60, 24 ) ); 
+//     linobutton->setText( tr( "LINO" ) );
+//     QObject::connect(linobutton,SIGNAL(clicked()),this,SLOT(deactivateEqualSpacingFields()));
+
+    equalspacingbutton = new QRadioButton( anglesbuttongroup, "equalspacingbutton" );
+    equalspacingbutton->setGeometry( QRect( 160, 40, 160, 24 ) ); 
+    equalspacingbutton->setText( tr( "EQUAL SPACING" ) );
+    QObject::connect(equalspacingbutton,SIGNAL(clicked()),this,SLOT(activateEqualSpacingFields()));
+
+    nonebutton = new QRadioButton( anglesbuttongroup, "nonebutton" );
+    nonebutton->setGeometry( QRect( 160, 70, 70, 24 ) ); 
+    nonebutton->setText( tr( "NONE" ) );
+    nonebutton->setChecked(true);
+    QObject::connect(nonebutton,SIGNAL(clicked()),this,SLOT(deactivateEqualSpacingFields()));
+
+    firstangle = new QLineEdit( anglesbuttongroup, "firstangle" );
+    firstangle->setGeometry( QRect( 340, 40, 80, 28 ) ); 
+    firstangle->setEnabled(false);
+
+    firstanglelabel = new QLabel( anglesbuttongroup, "firstanglelabel" );
+    firstanglelabel->setGeometry( QRect( 345, 20, 80, 20 ) ); 
+    firstanglelabel->setText( tr( "first_angle" ) ); 
+    firstanglelabel->setEnabled(false);
+
+    lastangle = new QLineEdit( anglesbuttongroup, "lastangle" );
+    lastangle->setGeometry( QRect( 440, 40, 80, 28 ) );
+    lastangle->setEnabled(false); 
+
+    lastanglelabel = new QLabel( anglesbuttongroup, "lastanglelabel" );
+    lastanglelabel->setGeometry( QRect( 445, 20, 80, 20 ) ); 
+    lastanglelabel->setText( tr( "last_angle" ) );
+    lastanglelabel->setEnabled(false);
+
+    //    angles = new QMultiLineEdit( geometryRaysums, "angles" );
+    angles = new QLineEdit( geometryRaysums, "angles" );
+    //    angles->setGeometry( QRect( 120, 415, 570, 105 ) ); 
+    angles->setGeometry( QRect( 120, 465, 570, 55 ) ); 
+    angles->setEnabled(false);
+
+    tabwidget1->insertTab( geometryRaysums, tr( "Geometry/Raysums" ) );
+
+   /** Generates  Tab number 5 - Measurement/Run  */
+
+    measurementRun = new QWidget( tabwidget1, "measurementRun" );
+
+    measurementlabel = new QLabel( measurementRun, "measurementlabel" );
+    measurementlabel->setGeometry( QRect( 10, 20, 130, 20 ) ); 
+    measurementlabel->setText( tr( "MEASUREMENT" ) );
+
+    measurementbuttongroup = new QButtonGroup( measurementRun, "measurementbuttongroup" );
+    measurementbuttongroup->setGeometry( QRect( 20, 50, 710, 410 ) ); 
+    measurementbuttongroup->setTitle( tr( "" ) );
+    measurementbuttongroup->setEnabled(false);
+
+    perfectbutton = new QRadioButton( measurementbuttongroup, "perfectbutton" );
+    perfectbutton->setGeometry( QRect( 10, 10, 100, 24 ) ); 
+    perfectbutton->setText( tr( "PERFECT" ) ); 
+    perfectbutton->setChecked(true);
+    QObject::connect(perfectbutton,SIGNAL(clicked()),this,SLOT(deactivateNoisyFields()));
+
+    noisybutton = new QRadioButton( measurementbuttongroup, "noisybutton" );
+    noisybutton->setGeometry( QRect( 10, 40, 70, 24 ) ); 
+    noisybutton->setText( tr( "NOISY" ) );
+    QObject::connect(noisybutton,SIGNAL(clicked()),this,SLOT(activateNoisyFields()));
+
+    noisyframe = new QFrame( measurementbuttongroup, "noisyframe" );
+    noisyframe->setGeometry( QRect( 90, 40, 570, 250 ) ); 
+    noisyframe->setFrameStyle( 49 );
+    noisyframe->setEnabled(false);
+
+    quantumbutton = new QCheckBox( noisyframe, "quantumbutton" );
+    quantumbutton->setGeometry( QRect( 20, 30, 110, 24 ) ); 
+    quantumbutton->setText( tr( "QUANTUM" ) );
+    quantumbutton->setEnabled(false);
+    QObject::connect(quantumbutton,SIGNAL(clicked()),this,SLOT(activateQuantumFields()));
+
+    quanmn = new QLineEdit( noisyframe, "quanmn" );
+    quanmn->setGeometry( QRect( 180, 30, 80, 28 ) ); 
+    quanmn->setEnabled(false);
+
+    quanmnlabel = new QLabel( noisyframe, "quanmnlabel" );
+    quanmnlabel->setGeometry( QRect( 190, 10, 60, 20 ) ); 
+    quanmnlabel->setText( tr( "quanmn" ) ); 
+    quanmnlabel->setEnabled(false);
+
+    quancm = new QLineEdit( noisyframe, "quancm" );
+    quancm->setGeometry( QRect( 270, 30, 80, 28 ) ); 
+    quancm->setEnabled(false);
+
+    quancmlabel = new QLabel( noisyframe, "quancmlabel" );
+    quancmlabel->setGeometry( QRect( 280, 10, 60, 20 ) ); 
+    quancmlabel->setText( tr( "quancm" ) );
+    quancmlabel->setEnabled(false);
+
+    calibrationlabel = new QLabel( noisyframe, "calibrationlabel" );
+    calibrationlabel->setGeometry( QRect( 360, 30, 110, 20 ) ); 
+    calibrationlabel->setText( tr( "CALIBRATION" ) ); 
+    calibrationlabel->setEnabled(false);
+
+    quanin = new QComboBox( noisyframe, "quanin" );
+    quanin->setGeometry( QRect( 480, 30, 80, 28 ) );
+    quanin->insertItem("1",-1);
+    quanin->insertItem("2",-1);
+    quanin->insertItem("3",-1);
+    quanin->insertItem("4",-1);
+    quanin->setEnabled(false); 
+
+    quaninlabel = new QLabel( noisyframe, "quaninlabel" );
+    quaninlabel->setGeometry( QRect( 490, 10, 50, 20 ) ); 
+    quaninlabel->setText( tr( "quanin" ) );
+    quaninlabel->setEnabled(false);
+
+    scatterbutton = new QCheckBox( noisyframe, "scatterbutton" );
+    scatterbutton->setGeometry( QRect( 20, 90, 100, 24 ) ); 
+    scatterbutton->setText( tr( "SCATTER" ) );
+    QObject::connect(scatterbutton,SIGNAL(clicked()),this,SLOT(activateScatterFields()));
+
+    sctnpk = new QLineEdit( noisyframe, "sctnpk" );
+    sctnpk->setGeometry( QRect( 180, 90, 80, 28 ) );
+    sctnpk->setEnabled(false); 
+
+    sctnpklabel = new QLabel( noisyframe, "sctnpklabel" );
+    sctnpklabel->setGeometry( QRect( 190, 70, 50, 20 ) ); 
+    sctnpklabel->setText( tr( "sctnpk" ) ); 
+    sctnpklabel->setEnabled(false);
+
+    sctnwd = new QLineEdit( noisyframe, "sctnwd" );
+    sctnwd->setGeometry( QRect( 270, 90, 80, 28 ) ); 
+    sctnwd->setEnabled(false);
+
+    sctnwdlabel = new QLabel( noisyframe, "sctnwdlabel" );
+    sctnwdlabel->setGeometry( QRect( 280, 70, 60, 20 ) ); 
+    sctnwdlabel->setText( tr( "sctnwd" ) );  
+    sctnwdlabel->setEnabled(false);
+
+    additivebutton = new QCheckBox( noisyframe, "additivebutton" );
+    additivebutton->setGeometry( QRect( 20, 150, 90, 24 ) ); 
+    additivebutton->setText( tr( "ADDITIVE" ) );
+    additivebutton->setChecked(false);
+    QObject::connect(additivebutton,SIGNAL(clicked()),this,SLOT(activateAdditiveFields()));
+
+    addnmn = new QLineEdit( noisyframe, "addnmn" );
+    addnmn->setGeometry( QRect( 180, 150, 80, 28 ) ); 
+    addnmn->setEnabled(false);
+
+    addnmnlabel = new QLabel( noisyframe, "addnmnlabel" );
+    addnmnlabel->setGeometry( QRect( 190, 130, 60, 20 ) ); 
+    addnmnlabel->setText( tr( "addnmn" ) ); 
+    addnmnlabel->setEnabled(false);
+
+    addnsd = new QLineEdit( noisyframe, "addnsd" );
+    addnsd->setGeometry( QRect( 270, 150, 80, 28 ) ); 
+    addnsd->setEnabled(false);
+
+    addnsdlabel = new QLabel( noisyframe, "addnsdlabel" );
+    addnsdlabel->setGeometry( QRect( 280, 130, 60, 20 ) ); 
+    addnsdlabel->setText( tr( "addnsd" ) );
+    addnsdlabel->setEnabled(false);
+
+    multiplicativebutton = new QCheckBox( noisyframe, "multiplicativebutton" );
+    multiplicativebutton->setGeometry( QRect( 20, 210, 150, 24 ) ); 
+    multiplicativebutton->setText( tr( "MULTIPLICATIVE" ) );
+    QObject::connect(multiplicativebutton,SIGNAL(clicked()),this,SLOT(activateMultiplicativeFields()));
+
+    multnmn = new QLineEdit( noisyframe, "multnmn" );
+    multnmn->setGeometry( QRect( 180, 210, 80, 28 ) );
+    multnmn->setEnabled(false);
+
+    multnmnlabel = new QLabel( noisyframe, "multnmnlabel" );
+    multnmnlabel->setGeometry( QRect( 190, 190, 70, 20 ) ); 
+    multnmnlabel->setText( tr( "multnmn" ) );
+    multnmnlabel->setEnabled(false);
+
+    multnsd = new QLineEdit( noisyframe, "multnsd" );
+    multnsd->setGeometry( QRect( 270, 210, 80, 28 ) ); 
+    multnsd->setEnabled(false);
+
+    multnsdlabel = new QLabel( noisyframe, "multnsdlabel" );
+    multnsdlabel->setGeometry( QRect( 280, 190, 70, 20 ) ); 
+    multnsdlabel->setText( tr( "multnsd" ) ); 
+    multnsdlabel->setEnabled(false);
+
+    seedlabel = new QLabel( measurementbuttongroup, "seedlabel" );
+    seedlabel->setGeometry( QRect( 10, 310, 110, 20 ) ); 
+    seedlabel->setText( tr( "SEED" ) ); 
+    seedlabel->setEnabled(false);
+
+    seed = new QLineEdit( measurementbuttongroup, "seed" );
+    seed->setGeometry( QRect( 140, 310, 70, 28 ) );  
+    seed->setEnabled(false);
+
+    seedlabel1 = new QLabel( measurementbuttongroup, "seedlabel1" );
+    seedlabel1->setGeometry( QRect( 155, 290, 70, 20 ) ); 
+    seedlabel1->setText( tr( "seed" ) );  
+    seedlabel1->setEnabled(false);
+
+    backgroundlabel = new QLabel( measurementbuttongroup, "backgroundlabel" );
+    backgroundlabel->setGeometry( QRect( 10, 370, 120, 20 ) ); 
+    backgroundlabel->setText( tr( "BACKGROUND" ) );
+
+    backgr1 = new QLineEdit( measurementbuttongroup, "backgr1" );
+    backgr1->setGeometry( QRect( 140, 370, 70, 28 ) ); 
+
+    backgr1label = new QLabel( measurementbuttongroup, "backgr1label" );
+    backgr1label->setGeometry( QRect( 145, 350, 70, 20 ) ); 
+    backgr1label->setText( tr( "backgr(1)" ) ); 
+
+    backgr2 = new QLineEdit( measurementbuttongroup, "backgr2" );
+    backgr2->setGeometry( QRect( 220, 370, 70, 28 ) ); 
+    backgr2->setEnabled(false);
+
+    backgr2label = new QLabel( measurementbuttongroup, "backgr2label" );
+    backgr2label->setGeometry( QRect( 225, 350, 70, 20 ) ); 
+    backgr2label->setText( tr( "backgr(2)" ) ); 
+    backgr2label->setEnabled(false);
+
+    backgr3 = new QLineEdit( measurementbuttongroup, "backgr3" );
+    backgr3->setGeometry( QRect( 300, 370, 70, 28 ) ); 
+    backgr3->setEnabled(false);
+
+    backgr3label = new QLabel( measurementbuttongroup, "backgr3label" );
+    backgr3label->setGeometry( QRect( 305, 350, 70, 20 ) ); 
+    backgr3label->setText( tr( "backgr(3)" ) ); 
+    backgr3label->setEnabled(false);
+
+    backgr4 = new QLineEdit( measurementbuttongroup, "backgr4" );
+    backgr4->setGeometry( QRect( 380, 370, 70, 28 ) ); 
+    backgr4->setEnabled(false);
+
+    backgr4label = new QLabel( measurementbuttongroup, "backgr4label" );
+    backgr4label->setGeometry( QRect( 385, 350, 70, 20 ) ); 
+    backgr4label->setText( tr( "backgr(4)" ) ); 
+    backgr4label->setEnabled(false);
+
+    backgr5 = new QLineEdit( measurementbuttongroup, "backgr5" );
+    backgr5->setGeometry( QRect( 460, 370, 70, 28 ) ); 
+    backgr5->setEnabled(false);
+
+    backgr5label = new QLabel( measurementbuttongroup, "backgr5label" );
+    backgr5label->setGeometry( QRect( 465, 350, 70, 20 ) ); 
+    backgr5label->setText( tr( "backgr(5)" ) ); 
+    backgr5label->setEnabled(false);
+
+    backgr6 = new QLineEdit( measurementbuttongroup, "backgr6" );
+    backgr6->setGeometry( QRect( 540, 370, 70, 28 ) ); 
+    backgr6->setEnabled(false);
+
+    backgr6label = new QLabel( measurementbuttongroup, "backgr6label" );
+    backgr6label->setGeometry( QRect( 545, 350, 70, 20 ) ); 
+    backgr6label->setText( tr( "backgr(6)" ) ); 
+    backgr6label->setEnabled(false);
+
+    backgr7 = new QLineEdit( measurementbuttongroup, "backgr7" );
+    backgr7->setGeometry( QRect( 620, 370, 70, 28 ) ); 
+    backgr7->setEnabled(false);
+
+    backgr7label = new QLabel( measurementbuttongroup, "backgr7label" );
+    backgr7label->setGeometry( QRect( 625, 350, 70, 20 ) ); 
+    backgr7label->setText( tr( "backgr(7)" ) ); 
+    backgr7label->setEnabled(false);
+
+    // jk 06/14/08 removal of file12 changes
+    /*runlabel = new QLabel( measurementRun, "runlabel" );
+    runlabel->setGeometry( QRect( 10, 490, 40, 20 ) ); 
+    runlabel->setText( tr( "RUN" ) );
+
+    runbuttongroup = new QButtonGroup( measurementRun, "runbuttongroup" );
+    //runbuttongroup->setGeometry( QRect( 80, 480, 320, 40 ) ); 
+    runbuttongroup->setGeometry( QRect( 80, 480, 120, 40 ) ); 
+    runbuttongroup->setTitle( tr( "" ) ); 
+    runbuttongroup->setEnabled(false);
+    */
+    /*savebutton = new QRadioButton( runbuttongroup, "savebutton" );
+    savebutton->setGeometry( QRect( 10, 10, 60, 24 ) ); 
+    savebutton->setText( tr( "SAVE" ) );
+
+    modifybutton = new QRadioButton( runbuttongroup, "modifybutton" );
+    modifybutton->setGeometry( QRect( 110, 10, 80, 24 ) ); 
+    modifybutton->setText( tr( "MODIFY" ) );
+    */
+    /*nonebutton_2 = new QRadioButton( runbuttongroup, "nonebutton_2" );
+    //nonebutton_2->setGeometry( QRect( 230, 10, 70, 24 ) ); 
+    nonebutton_2->setGeometry( QRect( 10, 10, 70, 24 ) ); 
+    nonebutton_2->setText( tr( "NONE" ) );
+    nonebutton_2->setChecked(true);
+    */
+    tabwidget1->insertTab( measurementRun, tr( "Measurement/Run" ) );
+    QObject::connect(tabwidget1,SIGNAL(currentChanged(QWidget*)),this,SLOT(activateOKButton()));
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 100, 560, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+    okbutton->setEnabled(false);
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 510, 560, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+createwindow::~createwindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Activates monochromatic fields and deactivates polychromatic fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateMonochromaticFields()
+{
+  if(monochromaticbutton->isChecked()) {
+    energy->setEnabled(true);
+    energylabel->setEnabled(true);
+    nergy->setEnabled(false);
+    nergylabel->setEnabled(false);
+    energy1->setEnabled(false);
+    energy1label->setEnabled(false);
+    percent1->setEnabled(false);
+    percent1label->setEnabled(false);
+    energy2->setEnabled(false);
+    energy2label->setEnabled(false);
+    percent2->setEnabled(false);
+    percent2label->setEnabled(false);
+    energy3->setEnabled(false);
+    energy3label->setEnabled(false);
+    percent3->setEnabled(false);
+    percent3label->setEnabled(false);
+    energy4->setEnabled(false);
+    energy4label->setEnabled(false);
+    percent4->setEnabled(false);
+    percent4label->setEnabled(false);
+    energy5->setEnabled(false);
+    energy5label->setEnabled(false);
+    percent5->setEnabled(false);
+    percent5label->setEnabled(false);
+    energy6->setEnabled(false);
+    energy6label->setEnabled(false);
+    percent6->setEnabled(false);
+    percent6label->setEnabled(false);
+    energy7->setEnabled(false);
+    energy7label->setEnabled(false);
+    percent7->setEnabled(false);
+    percent7label->setEnabled(false);
+    deni->setEnabled(false);
+    denilabel->setEnabled(false);
+    backgr2->setEnabled(false);
+    backgr2label->setEnabled(false);
+    backgr3->setEnabled(false);
+    backgr3label->setEnabled(false);
+    backgr4->setEnabled(false);
+    backgr4label->setEnabled(false);
+    backgr5->setEnabled(false);
+    backgr5label->setEnabled(false);
+    backgr6->setEnabled(false);
+    backgr6label->setEnabled(false);
+    backgr7->setEnabled(false);
+    backgr7label->setEnabled(false);
+    activateOKButton();
+  }
+  else {
+    energy->setEnabled(false);
+    energylabel->setEnabled(false);
+    activateOKButton();
+  }
+}
+
+/** Activates polychromatic fields and deactivates monochromatic fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activatePolychromaticFields()
+{
+  if(polychromaticbutton->isChecked()) {
+    nergy->setEnabled(true);
+    nergylabel->setEnabled(true);
+    energy1->setEnabled(true);
+    energy1label->setEnabled(true);
+    percent1->setEnabled(true);
+    percent1label->setEnabled(true);
+    energy2->setEnabled(true);
+    energy2label->setEnabled(true);
+    percent2->setEnabled(true);
+    percent2label->setEnabled(true);
+    energy3->setEnabled(true);
+    energy3label->setEnabled(true);
+    percent3->setEnabled(true);
+    percent3label->setEnabled(true);
+    energy4->setEnabled(true);
+    energy4label->setEnabled(true);
+    percent4->setEnabled(true);
+    percent4label->setEnabled(true);
+    energy5->setEnabled(true);
+    energy5label->setEnabled(true);
+    percent5->setEnabled(true);
+    percent5label->setEnabled(true);
+    energy6->setEnabled(true);
+    energy6label->setEnabled(true);
+    percent6->setEnabled(true);
+    percent6label->setEnabled(true);
+    energy7->setEnabled(true);
+    energy7label->setEnabled(true);
+    percent7->setEnabled(true);
+    percent7label->setEnabled(true);
+    deni->setEnabled(true);
+    denilabel->setEnabled(true);
+    backgr2->setEnabled(true);
+    backgr2label->setEnabled(true);
+    backgr3->setEnabled(true);
+    backgr3label->setEnabled(true);
+    backgr4->setEnabled(true);
+    backgr4label->setEnabled(true);
+    backgr5->setEnabled(true);
+    backgr5label->setEnabled(true);
+    backgr6->setEnabled(true);
+    backgr6label->setEnabled(true);
+    backgr7->setEnabled(true);
+    backgr7label->setEnabled(true);
+    energy->setEnabled(false);
+    energylabel->setEnabled(false);
+    activateOKButton();
+  }
+  else {
+    nergy->setEnabled(false);
+    nergylabel->setEnabled(false);
+    energy1->setEnabled(false);
+    energy1label->setEnabled(false);
+    percent1->setEnabled(false);
+    percent1label->setEnabled(false);
+    energy2->setEnabled(false);
+    energy2label->setEnabled(false);
+    percent2->setEnabled(false);
+    percent2label->setEnabled(false);
+    energy3->setEnabled(false);
+    energy3label->setEnabled(false);
+    percent3->setEnabled(false);
+    percent3label->setEnabled(false);
+    energy4->setEnabled(false);
+    energy4label->setEnabled(false);
+    percent4->setEnabled(false);
+    percent4label->setEnabled(false);
+    energy5->setEnabled(false);
+    energy5label->setEnabled(false);
+    percent5->setEnabled(false);
+    percent5label->setEnabled(false);
+    energy6->setEnabled(false);
+    energy6label->setEnabled(false);
+    percent6->setEnabled(false);
+    percent6label->setEnabled(false);
+    energy7->setEnabled(false);
+    energy7label->setEnabled(false);
+    percent7->setEnabled(false);
+    percent7label->setEnabled(false);
+    activateOKButton();
+  }
+}
+
+/** Adds a shape to object description 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::addShape()
+{
+  float ft;
+  int f=0;
+  QString ts;
+  QString ts2;
+
+  switch(shape->currentItem()) {
+    case 0:ts.append("RECT ");break;
+    case 1:ts.append("ELIP ");break;
+    case 2:ts.append("TRIA ");break;
+    case 3:ts.append("SEGM ");break;
+    case 4:ts.append("SECT ");break;
+  }
+  ft=strtof((const char *)cx->text().lower());
+  if(errnum) 
+    f=1;
+  ft=strtof((const char *)cy->text().lower());
+  if(errnum) 
+    f=2;
+  ft=strtof((const char *)u->text().lower());
+  if(errnum) 
+    f=3;
+  ft=strtof((const char *)v->text().lower());
+  if(errnum) 
+    f=4;
+  ft=strtof((const char *)ang->text().lower());
+  if(errnum) 
+    f=5;
+  ft=strtof((const char *)den1->text().lower());
+  if(errnum) 
+    f=6;
+  switch(f) {
+    case 0: ts.append(cx->text());
+            ts.append(" ");
+            ts.append(cy->text());
+            ts.append(" ");
+            ts.append(u->text());
+            ts.append(" ");
+            ts.append(v->text());
+            ts.append(" ");
+            ts.append(ang->text());
+            ts.append(" ");
+            ts.append(den1->text());
+            objectsdescription->insertLine(ts,-1);
+            ft=strtof((const char *)deni->text().lower());
+            if((errnum!=2) && (polychromaticbutton->isChecked())) {
+             ts2.append("DENS ");
+             ts2.append(deni->text());
+             //  objectsdescription->insertLine(deni->text(),-1);
+              objectsdescription->insertLine(ts2,-1);
+           }
+            cx->setText("");
+            cy->setText("");
+            u->setText("");
+            v->setText("");
+            ang->setText("");
+            den1->setText("");
+            deni->setText("");
+           break;
+    case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid cx format.");
+            cx->setFocus();
+           break;
+    case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid cy format.");
+            cy->setFocus();
+           break;
+    case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid u format.");
+            u->setFocus();
+           break;
+    case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid v format.");
+            v->setFocus();
+           break;
+    case 5: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid ang format.");
+            ang->setFocus();
+           break;
+    case 6: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid den(1) format.");
+            ang->setFocus();
+           break;
+  }
+  activateOKButton();
+}
+
+/** Activates phantom average fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activatePhantomAverageFields()
+{
+  if(phantomaveragebutton->isChecked()) {
+    nave1->setEnabled(true);
+    nave1label->setEnabled(true);
+    nelem->setEnabled(true);
+    nelemlabel->setEnabled(true);
+    pixelsize->setEnabled(true);
+    pixelsizelabel->setEnabled(true);
+    activateOKButton();
+  }
+  else {
+    nave1->setEnabled(false);
+    nave1label->setEnabled(false);
+    nelem->setEnabled(false);
+    nelemlabel->setEnabled(false);
+    pixelsize->setEnabled(false);
+    pixelsizelabel->setEnabled(false);
+    activateOKButton();
+  }
+}
+
+
+/** Activates raysum average fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateRaysumAverageFields()
+{
+  if(raysumaveragebutton->isChecked()) {
+    nave2->setEnabled(true);
+    nave2label->setEnabled(true);
+    naper1->setEnabled(true);
+    naper1label->setEnabled(true);
+    naper2->setEnabled(true);
+    naper2label->setEnabled(true);
+    naper3->setEnabled(true);
+    naper3label->setEnabled(true);
+    naper4->setEnabled(true);
+    naper4label->setEnabled(true);
+    naper5->setEnabled(true);
+    naper5label->setEnabled(true);
+    naper6->setEnabled(true);
+    naper6label->setEnabled(true);
+    naper7->setEnabled(true);
+    naper7label->setEnabled(true);
+    naper8->setEnabled(true);
+    naper8label->setEnabled(true);
+    naper9->setEnabled(true);
+    naper9label->setEnabled(true);
+    naper10->setEnabled(true);
+    naper10label->setEnabled(true);
+    naper11->setEnabled(true);
+    naper11label->setEnabled(true);
+    naper12->setEnabled(true);
+    naper12label->setEnabled(true);
+    naper13->setEnabled(true);
+    naper13label->setEnabled(true);
+    geometrybuttongroup->setEnabled(true);
+    if(! (linogrambutton->isChecked()) ) {  // a little caveat
+      raysumsbuttongroup->setEnabled(true);
+      anglesbuttongroup->setEnabled(true);
+      angles->setEnabled(true);
+    }
+    measurementbuttongroup->setEnabled(true);
+    //runbuttongroup->setEnabled(true);
+    israysumaveragepresent=true;
+    activateOKButton();
+  }
+  else {
+    nave2->setEnabled(false);
+    nave2label->setEnabled(false);
+    naper1->setEnabled(false);
+    naper1label->setEnabled(false);
+    naper2->setEnabled(false);
+    naper2label->setEnabled(false);
+    naper3->setEnabled(false);
+    naper3label->setEnabled(false);
+    naper4->setEnabled(false);
+    naper4label->setEnabled(false);
+    naper5->setEnabled(false);
+    naper5label->setEnabled(false);
+    naper6->setEnabled(false);
+    naper6label->setEnabled(false);
+    naper7->setEnabled(false);
+    naper7label->setEnabled(false);
+    naper8->setEnabled(false);
+    naper8label->setEnabled(false);
+    naper9->setEnabled(false);
+    naper9label->setEnabled(false);
+    naper10->setEnabled(false);
+    naper10label->setEnabled(false);
+    naper11->setEnabled(false);
+    naper11label->setEnabled(false);
+    naper12->setEnabled(false);
+    naper12label->setEnabled(false);
+    naper13->setEnabled(false);
+    naper13label->setEnabled(false);
+    geometrybuttongroup->setEnabled(false);
+    raysumsbuttongroup->setEnabled(false);
+    anglesbuttongroup->setEnabled(false);
+    angles->setEnabled(false);
+    measurementbuttongroup->setEnabled(false);
+    //runbuttongroup->setEnabled(false);
+    israysumaveragepresent=false;
+    activateOKButton();
+  }
+}
+
+
+bool createwindow::isRaysumAveragePresent()
+{
+  return israysumaveragepresent;
+}
+
+
+/** Activates parallel fields and deactivates divergent fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateParallelFields()
+{
+  if(parallelbutton->isChecked()) {
+    parallelbuttongroup->setEnabled(true);
+    parallelbuttongroup2->setEnabled(true);
+    divergentbuttongroup->setEnabled(false);
+    sourcetoorigin->setEnabled(false);
+    sourcetooriginlabel->setEnabled(false);
+    sourcetodetector->setEnabled(false);
+    sourcetodetectorlabel->setEnabled(false);
+    activate__6_3__6_4__6_5( true );
+    activateOKButton();
+  }
+  else {
+    parallelbuttongroup->setEnabled(false);
+    parallelbuttongroup2->setEnabled(false);
+    activateOKButton();
+  }
+}
+
+/** Activates divergent fields and deactivates parallel fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateDivergentFields()
+{
+  if(divergentbutton->isChecked()) {
+    divergentbuttongroup->setEnabled(true);
+    sourcetoorigin->setEnabled(true);
+    sourcetooriginlabel->setEnabled(true);
+    sourcetodetector->setEnabled(true);
+    sourcetodetectorlabel->setEnabled(true);
+    parallelbuttongroup->setEnabled(false);
+    parallelbuttongroup2->setEnabled(false);
+    activate__6_3__6_4__6_5( true );
+    activateOKButton();
+  }
+  else {
+    divergentbuttongroup->setEnabled(false);
+    sourcetoorigin->setEnabled(false);
+    sourcetooriginlabel->setEnabled(false);
+    sourcetodetector->setEnabled(false);
+    sourcetodetectorlabel->setEnabled(false);
+    activateOKButton();
+  }
+}  // --createwindow::activateDivergentFields()
+
+/** @author deniz
+    @param enable, if false, will turn these off, on if true */
+void createwindow::activate__6_3__6_4__6_5(bool enable) {
+  raysumsbuttongroup->setEnabled ( enable );
+  anglesbuttongroup->setEnabled ( enable );
+  angles->setEnabled( enable );
+}
+
+/** Deactivates divergent fields as well as parallel fields
+    also deactivates everything below LINOGRAM
+ @author Deniz Sarioz
+*/
+void createwindow::activateLinogramFields() {
+  if(linogrambutton->isChecked()) {
+    parallelbuttongroup->setEnabled(false);  // hate on parallel
+    parallelbuttongroup2->setEnabled(false);
+
+    divergentbuttongroup->setEnabled(false); // hate on divergent
+    sourcetoorigin->setEnabled(false);
+    sourcetooriginlabel->setEnabled(false);
+    sourcetodetector->setEnabled(false);
+    sourcetodetectorlabel->setEnabled(false);
+    
+    activate__6_3__6_4__6_5( false );
+  } else {
+    activate__6_3__6_4__6_5( true );
+  }
+  activateOKButton();
+}  // --createwindow::activateLinogramFields()
+
+/** Activates user fields and deactivates program fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateUserFields()
+{
+  if(userbutton->isChecked()) {
+    userrays->setEnabled(true);
+    userrayslabel->setEnabled(true);
+    raysumsnelem->setEnabled(false);
+    raysumsnelemlabel->setEnabled(false);
+    raysumspixelsize->setEnabled(false);
+    raysumspixelsizelabel->setEnabled(false);
+    activateOKButton();
+  }
+  else {
+    userrays->setEnabled(false);
+    userrayslabel->setEnabled(false);
+    activateOKButton();
+  }
+}  // --createwindow::activateUserFields()
+
+/** Activates program fields and deactivates user fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateProgramFields()
+{
+  if(programbutton->isChecked()) {
+    raysumsnelem->setEnabled(true);
+    raysumsnelemlabel->setEnabled(true);
+    raysumspixelsize->setEnabled(true);
+    raysumspixelsizelabel->setEnabled(true);
+    userrays->setEnabled(false);
+    userrayslabel->setEnabled(false);
+    activateOKButton();
+  }
+  else {
+    raysumsnelem->setEnabled(false);
+    raysumsnelemlabel->setEnabled(false);
+    raysumspixelsize->setEnabled(false);
+    raysumspixelsizelabel->setEnabled(false);
+    activateOKButton();
+  }
+}  // --createwindow::activateProgramFields()
+
+/** Activates equal spacing fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateEqualSpacingFields()
+{
+  if(equalspacingbutton->isChecked()) {
+    firstangle->setEnabled(true);
+    firstanglelabel->setEnabled(true);
+    lastangle->setEnabled(true);
+    lastanglelabel->setEnabled(true);
+    angles->setEnabled(false);
+    activateOKButton();
+  }
+  else {
+    firstangle->setEnabled(false);
+    firstanglelabel->setEnabled(false);
+    lastangle->setEnabled(false);
+    lastanglelabel->setEnabled(false);
+    angles->setEnabled(true);
+    activateOKButton();
+  }
+}  // --createwindow::activateEqualSpacingFields()
+
+/** Deactivates equal spacing fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::deactivateEqualSpacingFields()
+{
+  firstangle->setEnabled(false);
+  firstanglelabel->setEnabled(false);
+  lastangle->setEnabled(false);
+  lastanglelabel->setEnabled(false);
+  //  if(linobutton->isChecked()) 
+  //    angles->setEnabled(false);
+  //  else
+  //  if(nonebutton->isChecked()) 
+  angles->setEnabled(true);
+  activateOKButton();
+}  // --createwindow::deactivateEqualSpacingFields()
+
+/** Activates noisy fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateNoisyFields()
+{
+  if(noisybutton->isChecked()) {
+    noisyframe->setEnabled(true);
+    quantumbutton->setChecked(true);
+    quantumbutton->setEnabled(true);
+    quanmn->setEnabled(true);
+    quanmnlabel->setEnabled(true);
+    quancm->setEnabled(true);
+    quancmlabel->setEnabled(true);
+    calibrationlabel->setEnabled(true);
+    quanin->setEnabled(true); 
+    quaninlabel->setEnabled(true);
+    seedlabel->setEnabled(true);
+    seed->setEnabled(true);
+    seedlabel1->setEnabled(true);
+    activateOKButton();
+  }
+  else {
+    noisyframe->setEnabled(false);
+    activateOKButton();
+  }
+}  // --createwindow::activateNoisyFields()
+
+/** Deactivates noisy fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::deactivateNoisyFields()
+{
+  noisyframe->setEnabled(false);
+  seedlabel->setEnabled(false);
+  seed->setEnabled(false);
+  seedlabel1->setEnabled(false);
+  activateOKButton();
+}  // --createwindow::deactivateNoisyFields()
+
+/** Activates quantum fields and deactivates scatter, additive and 
+multiplicative fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateQuantumFields()
+{
+  if(quantumbutton->isChecked()) {
+    quanmn->setEnabled(true);
+    quanmnlabel->setEnabled(true);
+    quancm->setEnabled(true);
+    quancmlabel->setEnabled(true);
+    calibrationlabel->setEnabled(true);
+    quanin->setEnabled(true);
+    quaninlabel->setEnabled(true);
+    seed->setEnabled(true);
+    seedlabel->setEnabled(true);
+    seedlabel1->setEnabled(true);
+    activateOKButton();
+  }
+  else {
+    quanmn->setEnabled(false);
+    quanmnlabel->setEnabled(false);
+    quancm->setEnabled(false);
+    quancmlabel->setEnabled(false);
+    calibrationlabel->setEnabled(false);
+    quanin->setEnabled(false);
+    quaninlabel->setEnabled(false);
+    if(!additivebutton->isChecked() && !multiplicativebutton->isChecked()) {
+      seed->setEnabled(false);
+      seedlabel->setEnabled(false);
+      seedlabel1->setEnabled(false);
+    }
+    activateOKButton();
+  }
+}  // --createwindow::activateQuantumFields()
+
+/** Activates scatter fields and deactivates quantum, additive and 
+multiplicative fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateScatterFields()
+{
+  if(scatterbutton->isChecked()) {
+    sctnpk->setEnabled(true);
+    sctnpklabel->setEnabled(true);
+    sctnwd->setEnabled(true);
+    sctnwdlabel->setEnabled(true);
+    activateOKButton();
+  }
+  else {
+    sctnpk->setEnabled(false);
+    sctnpklabel->setEnabled(false);
+    sctnwd->setEnabled(false);
+    sctnwdlabel->setEnabled(false);
+    activateOKButton();
+  }
+}  // --createwindow::activateScatterFields()
+
+/** Activates additive fields and deactivates quantum, scatter and 
+multiplicative fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateAdditiveFields()
+{
+  if(additivebutton->isChecked()) {
+    addnmn->setEnabled(true);
+    addnmnlabel->setEnabled(true);
+    addnsd->setEnabled(true);
+    addnsdlabel->setEnabled(true);
+    seed->setEnabled(true);
+    seedlabel->setEnabled(true);
+    seedlabel1->setEnabled(true);
+    activateOKButton();
+  }
+  else {
+    addnmn->setEnabled(false);
+    addnmnlabel->setEnabled(false);
+    addnsd->setEnabled(false);
+    addnsdlabel->setEnabled(false);
+    if(!quantumbutton->isChecked() && !multiplicativebutton->isChecked()) {
+      seed->setEnabled(false);
+      seedlabel->setEnabled(false);
+      seedlabel1->setEnabled(false);
+    }
+    activateOKButton();
+  }
+}  // --createwindow::activateAdditiveFields()
+
+/** Activates multiplicative fields and deactivates quantum, scatter and 
+additive fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateMultiplicativeFields()
+{
+  if(multiplicativebutton->isChecked()) {
+    multnmn->setEnabled(true);
+    multnmnlabel->setEnabled(true);
+    multnsd->setEnabled(true);
+    multnsdlabel->setEnabled(true);
+    seed->setEnabled(true);
+    seedlabel->setEnabled(true);
+    seedlabel1->setEnabled(true);
+    activateOKButton();
+  }
+  else {
+    multnmn->setEnabled(false);
+    multnmnlabel->setEnabled(false);
+    multnsd->setEnabled(false);
+    multnsdlabel->setEnabled(false);
+    if(!quantumbutton->isChecked() && !additivebutton->isChecked()) {
+      seed->setEnabled(false);
+      seedlabel->setEnabled(false);
+      seedlabel1->setEnabled(false);
+    }
+    activateOKButton();
+  }
+} // --createwindow::activateMultiplicativeFields()
+
+/** Activates OK Button if the minimum information for create command is present
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void createwindow::activateOKButton()
+{
+  int pn,en,status=1;
+  float ds;
+
+  if(!strcmp((const char *)idheader->text(),""))
+    status=0;
+  if(monochromaticbutton->isChecked()) {
+    en=strtoi((const char *)energy->text());
+    if(errnum)
+      status=0;
+  }
+  else {
+    en=strtoi((const char *)nergy->text());
+    if(errnum)
+      status=0;
+  }
+  if(raysumaveragebutton->isChecked() && (! ( linogrambutton->isChecked() ) ) )  {
+    ds=strtof((const char *)detectorspacing->text().lower());
+    if(errnum)
+      status=0;
+    pn=strtoi((const char *)prjnum->text());
+    if(errnum)
+      status=0;
+  }
+  if(status)
+    okbutton->setEnabled(true);
+  else
+    okbutton->setEnabled(false);
+
+}  // --createwindow::activateOKButton()
+
+
+/** Returns a string for set 1 of CREATE input sequence
+@param void
+@return indentifying header
+@author Bruno M. Carvalho
+@version 1.0 */
+QString createwindow::getOutput1()
+{
+  QString output;
+
+  output.sprintf("CREATE\n");
+  output+=idheader->text();
+  //output.append("\n");
+  return output;
+}   // --createwindow::getOutput1()
+
+/** Returns a string for set 2 of CREATE input sequence
+@param void
+@return energy spectrum
+@author Bruno M. Carvalho
+@version 1.0 */
+QString createwindow::getOutput2()
+{
+  QString output;
+
+  output.sprintf("SPECTRUM ");
+  if(monochromaticbutton->isChecked()) {
+    output.append("MONOCHROMATIC ");
+    output+=energy->text();
+    //output.append("\n");
+  }
+  else
+    if(polychromaticbutton->isChecked()) {
+    output.append("POLYCHROMATIC ");
+    output+=nergy->text();
+    output.append("\n");
+    output+=energy1->text();
+    output.append(" ");
+    output+=percent1->text();
+    output.append(" ");
+    output+=energy2->text();
+    output.append(" ");
+    output+=percent2->text();
+    output.append(" ");
+    output+=energy3->text();
+    output.append(" ");
+    output+=percent3->text();
+    output.append(" ");
+    output+=energy4->text();
+    output.append(" ");
+    output+=percent4->text();
+    output.append(" ");
+    output+=energy5->text();
+    output.append(" ");
+    output+=percent5->text();
+    output.append(" ");
+    output+=energy6->text();
+    output.append(" ");
+    output+=percent6->text();
+    output.append(" ");
+    output+=energy7->text();
+    output.append(" ");
+    output+=percent7->text();
+    //output.append("\n");
+  }
+  return output;
+}   // --createwindow::getOutput2()
+
+/** Returns a string for set 3 of CREATE input sequence
+@param void
+@return elemental objects
+@author Bruno M. Carvalho
+@notes slight bug (91-related) fix by Deniz
+@version 1.0 */
+QString createwindow::getOutput3()
+{
+  QString output;
+
+  output.sprintf("OBJECTS\n");
+  output+=objectsdescription->text(); // which might already have a newline
+  if(!(output.endsWith( "\n" ))) {
+    output.append("\n");
+  }
+  output.append("LAST ");
+  output+=scale->text();
+  //output.append("\n");
+  
+  /* jk 06/13/2008 added variabled to reflect tissue variabilit in snark14*/
+  output.append("   ");
+  output+=seedvar->text();
+  output.append("   ");
+  output+=var->text();
+
+  return output;
+}   // --createwindow::getOutput3()
+
+/** Returns a string for set 4 of CREATE input sequence
+@param void
+@return phantom generation
+@author Bruno M. Carvalho
+@version 1.0 */
+QString createwindow::getOutput4()
+{
+  QString output;
+
+  output.sprintf("PHANTOM ");
+  if(phantomaveragebutton->isChecked()) {
+    output.append("AVERAGE ");
+    output+=nave1->text();
+    output.append("\n");
+    output+=nelem->text();
+    output.append(" ");
+    output+=pixelsize->text();
+  } 
+  //output.append("\n");
+  return output;
+}  // --createwindow::getOutput4()
+
+/** Returns a string for set 5 of CREATE input sequence
+@param void
+@return raysum generation
+@author Bruno M. Carvalho
+@version 1.0 */
+QString createwindow::getOutput5()
+{
+  QString output;
+
+  output.sprintf("RAYSUM ");
+  if(raysumaveragebutton->isChecked()) {
+    output.append("AVERAGE ");
+    output+=nave2->text();
+    output.append("\n");
+    output+=naper1->text();
+    output.append(" ");
+    output+=naper2->text();
+    output.append(" ");
+    output+=naper3->text();
+    output.append(" ");
+    output+=naper4->text();
+    output.append(" ");
+    output+=naper5->text();
+    output.append(" ");
+    output+=naper6->text();
+    output.append(" ");
+    output+=naper7->text();
+    output.append(" ");
+    output+=naper8->text();
+    output.append(" ");
+    output+=naper9->text();
+    output.append(" ");
+    output+=naper10->text();
+    output.append(" ");
+    output+=naper11->text();
+    output.append(" ");
+    output+=naper12->text();
+    output.append(" ");
+    output+=naper13->text();
+    output.append(" ");
+  } 
+  //output.append("\n");
+  return output;
+}  // --createwindow::getOutput5()
+
+/** Returns a string for set 6 of CREATE input sequence
+@param void
+@return projection geometry specification
+@author Bruno M. Carvalho
+@version 1.0 */
+QString createwindow::getOutput6()
+{
+  QString output;
+
+  if(israysumaveragepresent) {
+    output.sprintf("GEOMETRY\n");
+    if(parallelbutton->isChecked()) {
+      output.append("PARALLEL ");
+      if(uniformbutton->isChecked()) {
+       output.append("UNIFORM ");
+      } else {
+       if(variablebutton->isChecked()) {
+         output.append("VARIABLE ");
+       }
+      }
+      if(stripbutton->isChecked()) {
+       output.append("STRIP ");
+      } else {
+       if(linebutton->isChecked()) {
+         output.append("LINE ");
+       }
+      }
+    } else {
+      if(divergentbutton->isChecked()) {
+       output.append("DIVERGENT ");
+       if(arcbutton->isChecked()) {
+         output.append("ARC ");
+       } else {
+         if(tangentbutton->isChecked()) {
+           output.append("TANGENT ");
+         }
+       }
+       output+=sourcetoorigin->text();
+       output.append(" ");
+       output+=sourcetodetector->text();
+      } else {
+       if(linogrambutton->isChecked()) {
+         output.append("LINOGRAM ");
+         return output;
+       }
+      }
+    }
+    
+    output.append("\n");
+    output.append("RAYS ");
+    if(userbutton->isChecked()) {
+      output.append("USER ");
+      output+=userrays->text();
+      output.append(" ");
+    } else {
+      if(programbutton->isChecked()) {
+       output.append("PROGRAM ");
+       output+=raysumsnelem->text();
+       output.append(" ");
+       output+=raysumspixelsize->text();
+       output.append(" ");
+      }
+    }
+    output+=detectorspacing->text();
+    output.append("\n");
+    output.append("ANGLES ");
+    output+=prjnum->text();
+    output.append(" ");
+    //  if(linobutton->isChecked()) {
+    //    output.append("LINO ");
+    //output.append("\n");
+    //  }
+    //  else
+    if(equalspacingbutton->isChecked()) {
+      output.append("EQUAL SPACING ");
+      output.append("\n");
+      output+=firstangle->text();
+      output.append(" ");
+      output+=lastangle->text();
+      //output.append("\n");
+    } else {
+      output.append("\n");
+      output+=angles->text();
+      //output.append("\n");
+    }
+  }
+  return output;
+} // --createwindow::getOutput6()
+
+
+/** Returns a string for set 7 of CREATE input sequence
+@param void
+@return measurement statistics
+@author Bruno M. Carvalho
+@version 1.0 */
+QString createwindow::getOutput7()
+{
+  QString output,t;
+
+  if(israysumaveragepresent) {
+  output.sprintf("MEASUREMENT ");
+  if(perfectbutton->isChecked()) {
+    output.append("PERFECT ");
+    output.append("\n");
+  }
+  else
+    if(noisybutton->isChecked()) {
+      output.append("NOISY ");
+      output.append("\n");
+      if(quantumbutton->isChecked()) {
+       output.append("QUANTUM ");
+       output+=quanmn->text();
+       output.append(" ");
+       output+=quancm->text();
+       output.append(" ");
+        t.sprintf("CALIBRATION %d \n",quanin->currentItem()+1);
+        output.append(t);
+        output.append("SEED ");
+       output+=seed->text();
+        output.append("\n");
+      }
+      else 
+       if(scatterbutton->isChecked()) {
+         output.append("SCATTER ");
+         output+=sctnpk->text();
+          output.append(" ");
+         output+=sctnwd->text();
+         output.append("\n");
+       }
+       else 
+         if(additivebutton->isChecked()) {
+           output.append("ADDITIVE ");
+           output+=addnmn->text();
+            output.append(" ");
+           output+=addnsd->text();
+           output.append("\n");
+            output.append("SEED ");
+           output+=seed->text();
+           output.append("\n");
+          }
+         else 
+           if(multiplicativebutton->isChecked()) {
+             output.append("MULTIPLICATIVE ");
+             output+=multnmn->text();
+              output.append(" ");
+             output+=multnsd->text();
+             output.append("\n");
+              output.append("SEED ");
+             output+=seed->text();
+             output.append("\n");
+           }
+    }
+  output.append("BACKGROUND ");
+  output+=backgr1->text();
+  output.append(" ");
+  if(polychromaticbutton->isChecked()) {
+    output+=backgr2->text();
+    output.append(" ");
+    output+=backgr3->text();
+    output.append(" ");
+    output+=backgr4->text();
+    output.append(" ");
+    output+=backgr5->text();
+    output.append(" ");
+    output+=backgr6->text();
+    output.append(" ");
+    output+=backgr7->text();
+  }
+  }
+  //output.append("\n");
+  return output;
+} // --createwindow::getOutput7()
+
+/** Returns a string for set 8 of CREATE input sequence
+@param void
+@return run descriptors
+@author Bruno M. Carvalho
+@version 1.0 */
+QString createwindow::getOutput8()
+{
+  QString output;
+
+  if(israysumaveragepresent) {
+  output.sprintf("RUN ");  
+  //jk 6/14/2008 removed since snark14 has no file12 anytmore
+  /*if(savebutton->isChecked()) {
+    output.append("SAVE ");
+  }
+  else
+    if(modifybutton->isChecked()) {
+      output.append("MODIFY ");
+    }
+  */
+  }
+  //output.append("\n");
+  return output;
+}  // --createwindow::getOutput8()
+
+void createwindow::checkValues()
+{
+  int f=0,en,ne,enes[7],percs[7],sump,i,nv1,nlm,nv2,sv;
+  int np1,np2,np3,np4,np5,np6,np7,np8,np9,np10,np11,np12,np13,npsum=0;
+  int usr,pnlm,pn,sed;
+  float sca,pxls,stoo,stod,ppxls,decs,fa,la,qm,qc,sw,sp,am,as,mm,ms,vrb;
+  float b1,b2,b3,b4,b5,b6,b7;
+
+  /* Consistency check for header/spectrum section */
+
+  if(monochromaticbutton->isChecked()) {
+    en=strtoi((const char *)energy->text());
+    if(errnum) 
+      f=1;
+    else 
+      if(en<1)
+        f=5;
+  }
+  if(polychromaticbutton->isChecked()) {
+    ne=strtoi((const char *)nergy->text());
+    if(errnum) 
+      f=2;
+    else
+      if(ne<1 || ne>7)
+        f=6;
+      else {
+        switch(ne) {
+        case 7: enes[6]=strtoi((const char *)energy7->text());
+                if(errnum) 
+                  f=3;
+               else
+                 if(enes[6]<1)
+                    f=5;
+                percs[6]=strtoi((const char *)percent7->text());
+                if(errnum) 
+                  f=4;
+               else
+                  if(percs[6]<0)
+                    f=7;
+        case 6: enes[5]=strtoi((const char *)energy6->text());
+                if(errnum)
+                  f=3;
+               else
+                 if(enes[5]<1)
+                    f=5;
+                percs[5]=strtoi((const char *)percent6->text());
+                if(errnum) 
+                  f=4;
+               else
+                  if(percs[5]<0)
+                    f=7;
+        case 5: enes[4]=strtoi((const char *)energy5->text());
+                if(errnum) 
+                  f=3;
+               else
+                 if(enes[4]<1)
+                    f=5;
+                percs[4]=strtoi((const char *)percent5->text());
+                if(errnum) 
+                  f=4;
+               else
+                  if(percs[4]<0)
+                    f=7;
+        case 4: enes[3]=strtoi((const char *)energy4->text());
+                if(errnum) 
+                  f=3;
+               else
+                 if(enes[3]<1)
+                    f=5;
+                percs[3]=strtoi((const char *)percent4->text());
+                if(errnum) 
+                  f=4;
+               else
+                  if(percs[3]<0)
+                    f=7;
+        case 3: enes[2]=strtoi((const char *)energy3->text());
+                if(errnum) 
+                  f=3;
+               else
+                 if(enes[2]<1)
+                    f=5;
+                percs[2]=strtoi((const char *)percent3->text());
+                if(errnum) 
+                  f=4;
+               else
+                  if(percs[2]<0)
+                    f=7;
+        case 2: enes[1]=strtoi((const char *)energy2->text());
+                if(errnum) 
+                  f=3;
+               else
+                 if(enes[1]<1)
+                    f=5;
+                percs[1]=strtoi((const char *)percent2->text());
+                if(errnum) 
+                  f=4;
+               else
+                  if(percs[1]<0)
+                    f=7;
+        case 1: enes[0]=strtoi((const char *)energy1->text());
+                if(errnum) 
+                  f=3;
+               else
+                 if(enes[0]<1)
+                    f=5;
+                percs[0]=strtoi((const char *)percent1->text());
+                if(errnum) 
+                  f=4;
+               else
+                  if(percs[0]<0)
+                    f=7;
+      }
+      sump=0;
+      for(i=0;i<ne;i++)
+       sump+=percs[i];
+      if(sump!=100)
+       f=8;
+    }
+  }
+
+  /* Consistency check for objects section */
+  /* falta object descriptions */
+  sca=strtof((const char *)scale->text().lower());
+  if(errnum) 
+    f=9;
+  if(!(sca>0))
+    f=10;
+  /* jk 06/14/2008 added check for LAST line*/  
+  sv = strtoi((const char *)seedvar->text());
+  if(errnum)
+  {
+    vrb = strtof((const char *)var->text());
+    if(errnum)
+      ; /* this is fine, both seed and var are not there so no variability*/
+    else
+      f=55; /*seed has to have a value if var has a value*/
+  }
+  else
+  {
+    vrb  = strtof((const char *)var->text());
+    if(errnum)
+      f=57; /*var has to have a value if seed has a value*/
+    else
+      ; /* this is fine, both seed and var have a value*/
+  }
+       /* RD 09/21/2012 added check for SEED Bug 274*/  
+       if(sv>=1000000000)
+               f=56;
+
+  /* Consistency check for phantom/raysum section */
+
+  if(phantomaveragebutton->isChecked()) {
+    nv1=strtoi((const char *)nave1->text());
+    if(errnum) 
+      f=11;
+    if(nv1<1 || !(nv1%2))
+      f=16;
+    nlm=strtoi((const char *)nelem->text());
+    if(errnum) 
+      f=12;
+    if(nlm<1 || !(nlm%2))
+      f=17;
+    pxls=strtof((const char *)pixelsize->text().lower());
+    if(errnum) 
+      f=13;
+    if(!(pxls>0))
+      f=19;
+  }
+  if(raysumaveragebutton->isChecked()) {
+    nv2=strtoi((const char *)nave2->text());
+    if(errnum) 
+      f=14;
+    if(nv2<1 || !(nv2%2) || nv2>13)
+      f=18;
+    else {
+      switch(nv2) {
+      case 13: np13=strtoi((const char *)naper13->text());
+               if(errnum) 
+                 f=15;
+               np12=strtoi((const char *)naper12->text());
+               if(errnum) 
+                 f=15;
+               if(np12<0 || np13<0)
+                 f=20;
+              npsum+=np13+np12;
+      case 11: np11=strtoi((const char *)naper11->text());
+               if(errnum) 
+                 f=15;
+               np10=strtoi((const char *)naper10->text());
+               if(errnum) 
+                 f=15;
+               if(np10<0 || np11<0)
+                f=20;
+              npsum+=np11+np10;
+      case 9:  np9=strtoi((const char *)naper9->text());
+               if(errnum) 
+                 f=15;
+               np8=strtoi((const char *)naper8->text());
+               if(errnum) 
+                 f=15;
+               if(np8<0 || np9<0)
+                f=20;
+              npsum+=np9+np8;
+      case 7:  np7=strtoi((const char *)naper7->text());
+               if(errnum) 
+                 f=15; 
+               np6=strtoi((const char *)naper6->text());
+               if(errnum) 
+                 f=15;
+               if(np6<0 || np7<0)
+                f=20;
+              npsum+=np7+np6;
+      case 5:  np5=strtoi((const char *)naper5->text());
+               if(errnum) 
+                 f=15;
+               np4=strtoi((const char *)naper4->text());
+               if(errnum) 
+                 f=15;
+               if(np4<0 || np5<0)
+                f=20;
+              npsum+=np5+np4;
+      case 3:  np3=strtoi((const char *)naper3->text());
+               if(errnum) 
+                 f=15;
+               np2=strtoi((const char *)naper2->text());
+               if(errnum) 
+                 f=15;
+               if(np2<0 || np3<0)
+                f=20;
+              npsum+=np3+np2;
+      case 1:  np1=strtoi((const char *)naper1->text());
+               if(errnum) 
+                 f=15;
+               if(np1<0)
+                f=20;
+              npsum+=np1;
+      }
+      if(!npsum)
+       f=20;
+    }
+  
+
+  /* Consistency check for geometry/raysums section */
+    // if linogram, don't check anything in this section!
+    if (! (linogrambutton->isChecked() ) ) { 
+      if(divergentbutton->isChecked()) {
+       stoo=strtof((const char *)sourcetoorigin->text().lower());
+       if(errnum) 
+         f=21;
+       stod=strtof((const char *)sourcetodetector->text().lower());
+       if(errnum) 
+         f=22;
+       if(stoo<0)
+         f=30;
+       if(stod<0)
+         f=31;
+      }
+      if(userbutton->isChecked()) {
+       usr=strtoi((const char *)userrays->text());
+       if(errnum) 
+         f=23;
+       if(usr<1 || !(usr%2))
+         f=34;
+      }
+      if(programbutton->isChecked()) {
+       pnlm=strtoi((const char *)raysumsnelem->text());
+       if(errnum) 
+         f=24;
+       if(pnlm<1 || !(pnlm%2))
+         f=35;
+       ppxls=strtof((const char *)raysumspixelsize->text().lower());
+       if(errnum) 
+         f=25;
+       if(ppxls<=0)
+         f=32;
+       else 
+         if(divergentbutton->isChecked() && pnlm*ppxls*M_SQRT1_2 >= stoo)
+           f=37;
+      }
+      decs=strtof((const char *)detectorspacing->text().lower());
+      if(errnum) 
+       f=26;
+      if(decs<0)
+       f=33;
+      if(divergentbutton->isChecked() && userbutton->isChecked()) 
+       if((usr-1)*decs>=stod*M_PI)
+         f=38;
+      pn=strtoi((const char *)prjnum->text());
+      if(errnum) 
+       f=27;
+      if(pn<1)
+       f=36;
+  //  if(linobutton->isChecked())
+  //    if(pn<2)
+  //      f=36;
+      if(equalspacingbutton->isChecked()) {
+       fa=strtof((const char *)firstangle->text().lower());
+       if(errnum) 
+         f=28;
+       la=strtof((const char *)lastangle->text().lower());
+       if(errnum) 
+         f=29;
+       if(pn<2)
+         f=36;
+      }
+      if(nonebutton->isChecked()) {
+       QString angst = angles->text();
+       //Splits angst into strings wherever the regular expression sep occurs, and return the list of those strings.
+       // If allowEmptyEntries is TRUE, a null string is inserted in the list wherever the separator matches twice without intervening text.
+       QRegExp sep("\\s+");
+       // whitespace.  the first '\' is for escaping '\'
+       QStringList angleStringList = QStringList::split(sep, angst);
+       int angleCount = 0;
+       bool ok;
+       for ( QStringList::Iterator it = angleStringList.begin(); 
+             it != angleStringList.end(); ++it ) {
+         // check (*it) is really a float
+         // double QString::toDouble ( bool * ok = 0 ) const
+         ok = true;
+         (*it).toDouble(&ok);
+         if(!ok) f=39;
+         angleCount++;
+       }
+       // pn is already numerified value in prjnum field
+       if(angleCount != pn) f=39;
+      } // --if nonebutton checked
+    } // --if linogrambutton not checked
+
+  /* Consistency check for measurement/run section */
+
+  if(noisybutton->isChecked()) {
+    if(scatterbutton->isChecked()) {
+      sp=strtof((const char *)sctnpk->text().lower());
+      if(errnum) 
+        f=42;
+      if(sp<=0)
+       f=51;
+      sw=strtof((const char *)sctnwd->text().lower());
+      if(errnum) 
+        f=43;
+      if(sw<decs)
+       f=53;
+    }
+    else {
+      if(quantumbutton->isChecked() || additivebutton->isChecked() || multiplicativebutton->isChecked()) {
+        sed=strtoi((const char *)seed->text());
+        if(errnum) 
+          f=48;
+      }
+      if(quantumbutton->isChecked()) {
+        qm=strtof((const char *)quanmn->text().lower());
+        if(errnum) 
+          f=40;
+        qc=strtof((const char *)quancm->text().lower());
+        if(errnum) 
+          f=41;
+        if(qc<=0)
+         f=50;
+      }
+      if(additivebutton->isChecked()) {
+       am=strtof((const char *)addnmn->text().lower());
+        if(errnum) 
+          f=44;
+       as=strtof((const char *)addnsd->text().lower());
+        if(errnum) 
+          f=45;
+      }
+      if(multiplicativebutton->isChecked()) {
+       mm=strtof((const char *)multnmn->text().lower());
+        if(errnum) 
+          f=46;
+       if(mm==0)
+         f=52;
+       ms=strtof((const char *)multnsd->text().lower());
+        if(errnum) 
+          f=47;
+      }
+    }
+    if(!quantumbutton->isChecked() && !scatterbutton->isChecked() && !additivebutton->isChecked() && !multiplicativebutton->isChecked())
+      f=54;
+  }
+  switch(ne) {
+  case 7: b7=strtof((const char *)backgr7->text().lower());
+          if(errnum) 
+            f=49;
+  case 6: b6=strtof((const char *)backgr6->text().lower());
+          if(errnum) 
+            f=49;
+  case 5: b5=strtof((const char *)backgr5->text().lower());
+          if(errnum) 
+            f=49;
+  case 4: b4=strtof((const char *)backgr4->text().lower());
+          if(errnum) 
+            f=49;
+  case 3: b3=strtof((const char *)backgr3->text().lower());
+          if(errnum) 
+            f=49;
+  case 2: b2=strtof((const char *)backgr2->text().lower());
+          if(errnum) 
+            f=49;
+  case 1: b1=strtof((const char *)backgr1->text().lower());
+          if(errnum) 
+            f=49;
+  }
+  }
+
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid energy format.");
+    tabwidget1->setCurrentPage(0);
+    energy->setFocus();
+    break;
+  case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid nergy format.");
+    tabwidget1->setCurrentPage(0);
+    nergy->setFocus();
+    break;
+  case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid energy(i) format.");
+    tabwidget1->setCurrentPage(0);
+    energy1->setFocus();
+    break;
+  case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid percent(i) format.");
+    tabwidget1->setCurrentPage(0);
+    percent1->setFocus();
+    break;
+  case 5: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "energy must be greater than 0.");
+    tabwidget1->setCurrentPage(0);
+    energy->setFocus();
+    break;
+  case 6: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "nergy must be greater or equal to 1 and less or equal to 7.");
+    tabwidget1->setCurrentPage(0);
+    nergy->setFocus();
+    break;
+  case 7: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "percent(i) must be nonnegative.");
+    tabwidget1->setCurrentPage(0);
+    percent1->setFocus();
+    break;
+  case 8: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "percent(1) ... percent(nergy) must add to 100.");
+    tabwidget1->setCurrentPage(0);
+    percent1->setFocus();
+    break;
+  case 9: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid scale format.");
+    tabwidget1->setCurrentPage(1);
+    scale->setFocus();
+    break;
+  case 10: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "scale must be positive.");
+    tabwidget1->setCurrentPage(1);
+    scale->setFocus();
+    break;
+  case 11: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid nave1 format.");
+    tabwidget1->setCurrentPage(2);
+    nave1->setFocus();
+    break;
+  case 12: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid nelem format.");
+    tabwidget1->setCurrentPage(2);
+    nelem->setFocus();
+    break;
+  case 13: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid pixel_size format.");
+    tabwidget1->setCurrentPage(2);
+    pixelsize->setFocus();
+    break;
+  case 14: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid nave2 format.");
+    tabwidget1->setCurrentPage(2);
+    nave2->setFocus();
+    break;
+  case 15: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid naper(i) format.");
+    tabwidget1->setCurrentPage(2);
+    naper1->setFocus();
+    break;
+  case 16: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "nave1 must be positive and odd.");
+    tabwidget1->setCurrentPage(2);
+    nave1->setFocus();
+    break;
+  case 17: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "nelem must be positive and odd.");
+    tabwidget1->setCurrentPage(2);
+    nelem->setFocus();
+    break;
+  case 18: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "nave2 must be positive, odd and smaller than 14.");
+    tabwidget1->setCurrentPage(2);
+    nave2->setFocus();
+    break;
+  case 19: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "pixel_size must be positive.");
+    tabwidget1->setCurrentPage(2);
+    pixelsize->setFocus();
+    break;
+  case 20: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "naper(i) must be nonnegative and the\n"
+                                   "sum of naper(i) must be positive.");
+    tabwidget1->setCurrentPage(2);
+    naper1->setFocus();
+    break;
+  case 21: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid source_to_origin format.");
+    tabwidget1->setCurrentPage(3);
+    sourcetoorigin->setFocus();
+    break;
+  case 22: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid source_to_detector format.");
+    tabwidget1->setCurrentPage(3);
+    sourcetodetector->setFocus();
+    break;
+  case 23: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid user_rays format.");
+    tabwidget1->setCurrentPage(3);
+    userrays->setFocus();
+    break;
+  case 24: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid nelem format.");
+    tabwidget1->setCurrentPage(3);
+    raysumsnelem->setFocus();
+    break;
+  case 25: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid pixel_size format.");
+    tabwidget1->setCurrentPage(3);
+    raysumspixelsize->setFocus();
+    break;
+  case 26: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid detector_spacing format.");
+    tabwidget1->setCurrentPage(3);
+    detectorspacing->setFocus();
+    break;
+  case 27: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid prjnum format.");
+    tabwidget1->setCurrentPage(3);
+    prjnum->setFocus();
+    break;
+  case 28: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid first_angle format.");
+    tabwidget1->setCurrentPage(3);
+    firstangle->setFocus();
+    break;
+  case 29: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid last_angle format.");
+    tabwidget1->setCurrentPage(3);
+    lastangle->setFocus();
+    break;
+  case 30: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "source_to_origin must be positive.");
+    tabwidget1->setCurrentPage(3);
+    sourcetoorigin->setFocus();
+    break;
+  case 31: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "source_to_detector must be positive.");
+    tabwidget1->setCurrentPage(3);
+    sourcetodetector->setFocus();
+    break;
+  case 32: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "pixel_size must be positive.");
+    tabwidget1->setCurrentPage(3);
+    raysumspixelsize->setFocus();
+    break;
+  case 33: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "detector_spacing must be equal or greater than 0.");
+    tabwidget1->setCurrentPage(3);
+    detectorspacing->setFocus();
+    break;
+  case 34: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "user_rays must be positive and odd.");
+    tabwidget1->setCurrentPage(3);
+    userrays->setFocus();
+    break;
+  case 35: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "nelem must be positive and odd.");
+    tabwidget1->setCurrentPage(3);
+    raysumsnelem->setFocus();
+    break;
+  case 36: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "projnum must be positive, and greater than 1\n"
+                                   "if LINO or EQUAL_SPACING is selected.");
+    tabwidget1->setCurrentPage(3);
+    prjnum->setFocus();
+    break;
+  case 37: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "nelem * pixel_size/sqrt(2) must be smaller than source_to_detector.");
+    tabwidget1->setCurrentPage(3);
+    raysumsnelem->setFocus();
+    break;
+  case 38: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "(user_rays-1) * detector_spacing must be smaller than source_to_detector * PI.");
+    tabwidget1->setCurrentPage(3);
+    detectorspacing->setFocus();
+    break;
+    // case 39 is never reached, since this was only half implemented.
+  case 39: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "number of angles must be equal to prjnum and each angle must be a floating-point number.");
+    tabwidget1->setCurrentPage(3);
+    angles->setFocus();
+    break;
+  case 40: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid quanmn format.");
+    tabwidget1->setCurrentPage(4);
+    quanmn->setFocus();
+    break;
+  case 41: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid quancm format.");
+    tabwidget1->setCurrentPage(4);
+    quancm->setFocus();
+    break;
+  case 42: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid sctnpk format.");
+    tabwidget1->setCurrentPage(4);
+    sctnpk->setFocus();
+    break;
+  case 43: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid sctnwd format.");
+    tabwidget1->setCurrentPage(4);
+    sctnwd->setFocus();
+    break;
+  case 44: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid addnmn format.");
+    tabwidget1->setCurrentPage(4);
+    addnmn->setFocus();
+    break;
+  case 45: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid addnsd format.");
+    tabwidget1->setCurrentPage(4);
+    addnsd->setFocus();
+    break;
+  case 46: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid multnmn format.");
+    tabwidget1->setCurrentPage(4);
+    multnmn->setFocus();
+    break;
+  case 47: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid multnsd format.");
+    tabwidget1->setCurrentPage(4);
+    multnsd->setFocus();
+    break;
+  case 48: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid seed format.");
+    tabwidget1->setCurrentPage(4);
+    seed->setFocus();
+    break;
+  case 49: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid backgr(i) format.");
+    tabwidget1->setCurrentPage(4);
+    backgr1->setFocus();
+    break;
+  case 50: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "quancm must be positive.");
+    tabwidget1->setCurrentPage(4);
+    quancm->setFocus();
+    break;
+  case 51: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "sctnpk must be positive");
+    tabwidget1->setCurrentPage(4);
+    sctnpk->setFocus();
+    break;
+  case 52: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "multnmn must be nonzero.");
+    tabwidget1->setCurrentPage(4);
+    multnmn->setFocus();
+    break;
+  case 53: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "sctnwd must be greater than detector_spacing.");
+    tabwidget1->setCurrentPage(4);
+    sctnwd->setFocus();
+    break;
+  case 54: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "if NOISY is selected at least one of the options\n"                                   
+                                   " QUANTUM, SCATTER, ADDITIVE OR MULTIPLICATIVE must be selected too.");
+    tabwidget1->setCurrentPage(4);
+    quantumbutton->setFocus();
+    break;
+  /* jk 06/14/2008 added check for LAST line*/ 
+  /* RD 09/21/2012 added check for SEED and VAR separately */ // Bug 274
+  case 55: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Please enter a valid value for SEED");
+    tabwidget1->setCurrentPage(1);
+    seed->setFocus();
+    break;
+  /* RD 09/21/2012 added check for SEED*/ // Bug 274
+  case 56: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                                                               "The length of SEED needs to be between \n"
+                                                                               "one and nine digits");
+       tabwidget1->setCurrentPage(1);
+       seed->setFocus();
+       break;
+  /* RD 09/21/2012 added check for SEED and VAR separately */ // Bug 274
+  case 57: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                                                               "Please enter a valid value for VAR");
+    tabwidget1->setCurrentPage(1);
+       seed->setFocus();
+       break;
+                 
+                 
+  }
+}
+
diff --git a/tools/Input/create.h b/tools/Input/create.h
new file mode 100755 (executable)
index 0000000..04b9837
--- /dev/null
@@ -0,0 +1,293 @@
+/** @file create.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    modified by Joanna Klukowska (June 2008)
+       added two fields in LAST line for agreement with snark14
+       removed SAVE and MODIFY options of Run since snark14 does not have file12
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef CREATEWINDOW2_H
+#define CREATEWINDOW2_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QLabel;
+class QComboBox;
+class QLineEdit;
+class QMultiLineEdit;
+class QComboBox;
+class QPushButton;
+class QRadioButton;
+class QTabWidget;
+class QWidget;
+class QFrame;
+class QCheckBox;
+
+class createwindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    createwindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~createwindow();
+    QString getOutput1();
+    QString getOutput2();
+    QString getOutput3();
+    QString getOutput4();
+    QString getOutput5();
+    QString getOutput6();
+    QString getOutput7();
+    QString getOutput8();
+
+    QTabWidget* tabwidget1;
+
+    /* tab 1 -- sets 1 and 2 of CREATE sequence */
+    QWidget* headerSpectrum;
+    QLabel* idheaderlabel;
+    QLineEdit* idheader;
+    QLabel* spectrumlabel;
+    QButtonGroup* spectrumbuttongroup;
+    QRadioButton* monochromaticbutton;
+    QLineEdit* energy;
+    QLabel* energylabel;
+    QRadioButton* polychromaticbutton;
+    QLineEdit* nergy;
+    QLabel* nergylabel;
+    QLineEdit* energy1;
+    QLabel* energy1label;
+    QLineEdit* percent1;
+    QLabel* percent1label;
+    QLineEdit* energy2;
+    QLabel* energy2label;
+    QLineEdit* percent2;
+    QLabel* percent2label;
+    QLineEdit* energy3;
+    QLabel* energy3label;
+    QLineEdit* percent3;
+    QLabel* percent3label;
+    QLineEdit* energy4;
+    QLabel* energy4label;
+    QLineEdit* percent4;
+    QLabel* percent4label;
+    QLineEdit* energy5;
+    QLabel* energy5label;
+    QLineEdit* percent5;
+    QLabel* percent5label;
+    QLineEdit* energy6;
+    QLabel* energy6label;
+    QLineEdit* percent6;
+    QLabel* percent6label;
+    QLineEdit* energy7;
+    QLabel* energy7label;
+    QLineEdit* percent7;
+    QLabel* percent7label;
+
+    /* tab 2 -- set 3 of CREATE sequence */
+    QWidget* objects;
+    QLabel* objectslabel;
+    QComboBox* shape;
+    QLineEdit* cx;
+    QLineEdit* cy;
+    QLineEdit* u;
+    QLineEdit* v;
+    QLineEdit* ang;
+    QLineEdit* den1;
+    QLineEdit* deni;
+    QLabel* shapelabel;
+    QLabel* cxlabel;
+    QLabel* cylabel;
+    QLabel* ulabel;
+    QLabel* vlabel;
+    QLabel* anglabel;
+    QLabel* den1label;
+    QLabel* denilabel;
+    QPushButton* addshapebutton;
+    QMultiLineEdit* objectsdescription;
+    QLineEdit* scale;
+    QLabel* lastlabel;
+    QLabel* scalelabel;
+    
+    /* jk 06/13/2008 added variabled to reflect tissue variabilit in snark14*/
+    QLineEdit* seedvar;
+    QLabel* seedvarlabel;
+    QLineEdit* var;
+    QLabel* varlabel;
+    
+    /* tab 3 -- sets 4 and 5 of CREATE sequence */
+    QWidget* phantomRaysum;
+    QLabel* phantomlabel;
+    QRadioButton* phantomaveragebutton;
+    QLineEdit* nave1;
+    QLabel* nave1label;
+    QLineEdit* nelem;
+    QLabel* nelemlabel;
+    QLineEdit* pixelsize;
+    QLabel* pixelsizelabel;
+    QLabel* raysumlabel;
+    QRadioButton* raysumaveragebutton;
+    QLineEdit* nave2;
+    QLabel* nave2label;
+    QLineEdit* naper1;
+    QLabel* naper1label;
+    QLineEdit* naper2;
+    QLabel* naper2label;
+    QLineEdit* naper3;
+    QLabel* naper3label;
+    QLineEdit* naper4;
+    QLabel* naper4label;
+    QLineEdit* naper5;
+    QLabel* naper5label;
+    QLineEdit* naper6;
+    QLabel* naper6label;
+    QLineEdit* naper7;
+    QLabel* naper7label;
+    QLineEdit* naper8;
+    QLabel* naper8label;
+    QLineEdit* naper9;
+    QLabel* naper9label;
+    QLineEdit* naper10;
+    QLabel* naper10label;
+    QLineEdit* naper11;
+    QLabel* naper11label;
+    QLineEdit* naper12;
+    QLabel* naper12label;
+    QLineEdit* naper13;
+    QLabel* naper13label;
+
+    /* tab 4 -- set 6 of CREATE sequence */
+    QWidget* geometryRaysums;
+    QLabel* geometrylabel;
+    QButtonGroup* geometrybuttongroup;
+    QRadioButton* parallelbutton;
+    QRadioButton* divergentbutton;
+    QRadioButton* linogrambutton;
+    QButtonGroup* parallelbuttongroup;
+    QRadioButton* uniformbutton;
+    QRadioButton* variablebutton;
+    QButtonGroup* parallelbuttongroup2;
+    QRadioButton* stripbutton;
+    QRadioButton* linebutton;
+    QButtonGroup* divergentbuttongroup;
+    QRadioButton* arcbutton;
+    QRadioButton* tangentbutton;
+    QLineEdit* sourcetoorigin;
+    QLabel* sourcetooriginlabel;
+    QLineEdit* sourcetodetector;
+    QLabel* sourcetodetectorlabel;
+    QLabel* raysumslabel;
+    QButtonGroup* raysumsbuttongroup;
+    QRadioButton* userbutton;
+    QLineEdit* userrays;
+    QLabel* userrayslabel;
+    QRadioButton* programbutton;
+    QLineEdit* raysumsnelem;
+    QLabel* raysumsnelemlabel;
+    QLineEdit* raysumspixelsize;
+    QLabel* raysumspixelsizelabel;
+    QLineEdit* detectorspacing;
+    QLabel* detectorspacinglabel;
+    QLabel* angleslabel;
+    QButtonGroup* anglesbuttongroup;
+    QLineEdit* prjnum;
+    QLabel* prjnumlabel;
+    QRadioButton* linobutton;
+    QRadioButton* equalspacingbutton;
+    QLineEdit* firstangle;
+    QLabel* firstanglelabel;
+    QLineEdit* lastangle;
+    QLabel* lastanglelabel;
+    QRadioButton* nonebutton;
+    //    QMultiLineEdit* angles; // bad idea.  make it a regular line edit
+    QLineEdit* angles;
+
+    /* tab 5 -- sets 7 and 8 of CREATE sequence */
+    QWidget* measurementRun;
+    QLabel* measurementlabel;
+    QButtonGroup* measurementbuttongroup;
+    QRadioButton* perfectbutton;
+    QRadioButton* noisybutton;
+    QFrame* noisyframe;
+    QCheckBox* quantumbutton;
+    QLineEdit* quanmn;
+    QLabel* quanmnlabel;
+    QLineEdit* quancm;
+    QLabel* quancmlabel;
+    QLabel* calibrationlabel;
+    QComboBox* quanin;
+    QLabel* quaninlabel;
+    QCheckBox* scatterbutton;
+    QLineEdit* sctnpk;
+    QLabel* sctnpklabel;
+    QLineEdit* sctnwd;
+    QLabel* sctnwdlabel;
+    QCheckBox* additivebutton;
+    QLineEdit* addnmn;
+    QLabel* addnmnlabel;
+    QLineEdit* addnsd;
+    QLabel* addnsdlabel;
+    QCheckBox* multiplicativebutton;
+    QLineEdit* multnmn;
+    QLabel* multnmnlabel;
+    QLineEdit* multnsd;
+    QLabel* multnsdlabel;
+    QLabel* seedlabel;
+    QLineEdit* seed;
+    QLabel* seedlabel1;
+    QLabel* backgroundlabel;
+    QLineEdit* backgr1;
+    QLabel* backgr1label;
+    QLineEdit* backgr2;
+    QLabel* backgr2label;
+    QLineEdit* backgr3;
+    QLabel* backgr3label;
+    QLineEdit* backgr4;
+    QLabel* backgr4label;
+    QLineEdit* backgr5;
+    QLabel* backgr5label;
+    QLineEdit* backgr6;
+    QLabel* backgr6label;
+    QLineEdit* backgr7;
+    QLabel* backgr7label; 
+    QLabel* runlabel;
+    QButtonGroup* runbuttongroup;
+    QRadioButton* savebutton;
+    QRadioButton* modifybutton;
+    QRadioButton* nonebutton_2;
+
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+    
+    bool israysumaveragepresent;
+public slots:
+    bool isRaysumAveragePresent();
+private slots:
+    void addShape();
+    void activateMonochromaticFields();
+    void activatePolychromaticFields();
+    void activatePhantomAverageFields();
+    void activateRaysumAverageFields();
+    void activateParallelFields();
+    void activateDivergentFields();
+    void activate__6_3__6_4__6_5( bool enable ); // doesn't need to be a slot really
+    void activateLinogramFields();
+    void activateUserFields();
+    void activateProgramFields();
+    void activateEqualSpacingFields();
+    void deactivateEqualSpacingFields();
+    void deactivateNoisyFields();
+    void activateNoisyFields();
+    void activateQuantumFields();
+    void activateScatterFields();
+    void activateAdditiveFields();
+    void activateMultiplicativeFields();
+    void activateOKButton();
+    void checkValues();
+};
+
+#endif // CREATEWINDOW2_H
diff --git a/tools/Input/display.cpp b/tools/Input/display.cpp
new file mode 100755 (executable)
index 0000000..978b0b9
--- /dev/null
@@ -0,0 +1,177 @@
+/** @file display.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz 
+    modified by Joanna Klukowska (June 2008)
+       added two fields in LAST line fore agreement with snark14
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/****************************************************************************
+** Form implementation generated from reading ui file 'display.ui'
+**
+** Created: Tue May 14 10:50:39 2002
+**      by:  The User Interface Compiler (uic)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+#include "display.h"
+#include "misc.h"
+#include "variables.h"
+
+#include <qcheckbox.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a displaywindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+displaywindow::displaywindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "displaywindow" );
+    resize( 400, 350 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 400, 350 ) );
+    setMaximumSize( QSize( 400, 350 ) );
+    setCaption( tr( "Display Window" ) );
+
+    displaylabel = new QLabel( this, "displaylabel" );
+    displaylabel->setGeometry( QRect( 10, 10, 100, 30 ) ); 
+    displaylabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, displaylabel->sizePolicy().hasHeightForWidth() ) );
+    displaylabel->setMinimumSize( QSize( 100, 30 ) );
+    displaylabel->setMaximumSize( QSize( 100, 30 ) );
+    displaylabel->setText( tr( "DISPLAY" ) );
+
+    scalebox = new QCheckBox( this, "scalebox" );
+    scalebox->setGeometry( QRect( 30, 60, 80, 30 ) ); 
+    scalebox->setText( tr( "SCALE" ) );
+    QObject::connect(scalebox,SIGNAL(clicked()),this,SLOT(activateScaleFields()));
+
+    scale = new QLineEdit( this, "lowervalue" );
+    scale->setGeometry( QRect( 150, 60, 50, 30 ) ); 
+    scale->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, scale->sizePolicy().hasHeightForWidth() ) );
+    scale->setEnabled(FALSE);
+
+    scalelabel = new QLabel( this, "scalelabel" );
+    scalelabel->setGeometry( QRect( 150, 40, 40, 20 ) ); 
+    scalelabel->setText( tr( "scale" ) );
+    scalelabel->setEnabled(FALSE);
+
+    phantombox = new QCheckBox( this, "columnsbox" );
+    phantombox->setGeometry( QRect( 30, 130, 110, 30 ) ); 
+    phantombox->setText( tr( "PHANTOM" ) );
+
+    iterationflagline = new QLineEdit( this, "iterationflagline" );
+    iterationflagline->setGeometry( QRect( 50, 200, 310, 30 ) ); 
+    iterationflagline->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, iterationflagline->sizePolicy().hasHeightForWidth() ) );
+
+    iterationflaglabel = new QLabel( this, "iterationflaglabel" );
+    iterationflaglabel->setGeometry( QRect( 140, 180, 130, 20 ) ); 
+    iterationflaglabel->setText( tr( "iteration_flag_line" ) );
+
+    Line1 = new QFrame( this, "Line1" );
+    Line1->setGeometry( QRect( 0, 275, 400, 16 ) ); 
+    Line1->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 290, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 290, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+displaywindow::~displaywindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Activates scale subfields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void displaywindow::activateScaleFields()
+{
+  if(scalebox->isChecked()) {
+    scale->setEnabled(TRUE);
+    scalelabel->setEnabled(TRUE);
+  }
+  else {
+    scale->setEnabled(FALSE);
+    scalelabel->setEnabled(FALSE);
+  }
+}
+
+/** Returns a string for DISPLAY input sequence
+@param void
+@return display
+@author Bruno M. Carvalho
+@version 1.0 */
+QString displaywindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("DISPLAY ");
+  if(scalebox->isChecked()) {
+    output.append("SCALE ");
+    output+=scale->text();
+    output.append(" ");
+  }
+  if(phantombox->isChecked()) {
+    output.append("PHANTOM");
+  }
+  output.append("\n");
+  output+=iterationflagline->text();
+  return output;
+}
+
+void displaywindow::checkValues()
+{
+  int f=0;
+  float s=0;
+  
+  if(scalebox->isChecked()) {
+    s=strtof((const char *)scale->text().lower());
+    if(errnum) 
+      f=1;
+    if(s<=0)
+      f=2;
+  }
+  if(!isintspace(iterationflagline->text()))
+    f=3;
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid scale format");
+    break;
+  case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "scale should be positive");
+    break;
+  case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "iteration_flag_line must contain\n"
+                                   "only 0-9 and spaces and must\n"
+                                   "be non-empty");
+    break;
+  }
+}
diff --git a/tools/Input/display.h b/tools/Input/display.h
new file mode 100755 (executable)
index 0000000..f49edd5
--- /dev/null
@@ -0,0 +1,55 @@
+/** @file display.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/****************************************************************************
+** Form interface generated from reading ui file 'display.ui'
+**
+** Created: Mon May 13 17:29:02 2002
+**      by:  The User Interface Compiler (uic)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+#ifndef DISPLAYWINDOW_H
+#define DISPLAYWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout;
+class QHBoxLayout; 
+class QGridLayout; 
+class QCheckBox;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+
+class displaywindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    displaywindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~displaywindow();
+    QString getOutput();
+
+    QCheckBox* scalebox;
+    QLineEdit* scale;
+    QLabel* scalelabel;
+    QLabel* displaylabel;
+    QLineEdit* iterationflagline;
+    QLabel* iterationflaglabel;
+    QFrame* Line1;
+    QCheckBox* phantombox;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+    void activateScaleFields();
+    void checkValues();
+};
+
+#endif // DISPLAYWINDOW_H
diff --git a/tools/Input/evaluate.cpp b/tools/Input/evaluate.cpp
new file mode 100755 (executable)
index 0000000..40239f0
--- /dev/null
@@ -0,0 +1,380 @@
+/** @file evaluate.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "evaluate.h"
+#include "misc.h"
+#include "variables.h"
+
+#include <qbuttongroup.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qmultilineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a evaluatewindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+evaluatewindow::evaluatewindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "evaluatewindow" );
+    resize( 400, 600 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 400, 600 ) );
+    setMaximumSize( QSize( 400, 600 ) );
+    setCaption( tr( "Evaluate Window" ) );
+
+    evaluatelabel = new QLabel( this, "evaluatelabel" );
+    evaluatelabel->setGeometry( QRect( 10, 10, 120, 30 ) ); 
+    evaluatelabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, evaluatelabel->sizePolicy().hasHeightForWidth() ) );
+    evaluatelabel->setMinimumSize( QSize( 120, 30 ) );
+    evaluatelabel->setMaximumSize( QSize( 120, 30 ) );
+    evaluatelabel->setText( tr( "EVALUATE" ) );
+
+    evalnamelabel = new QLabel( this, "evalnamelabel" );
+    evalnamelabel->setGeometry( QRect( 200, 20, 190, 30) );
+    //    evalnamelabel->setMinimumSize( QSize( 120, 30) );
+    evalnamelabel->setText( tr( "EVALUATE run name:" ) );
+
+    evalnamefield = new QLineEdit( this, "evalnamefield" );
+    evalnamefield->setGeometry( QRect( 210, 51, 170, 28) );
+    evalnamefield->setEnabled(TRUE);
+
+    evaluatebuttongroup = new QButtonGroup( this, "evaluatebuttongroup" );
+    evaluatebuttongroup->setGeometry( QRect( 40, 40, 160, 140 ) ); 
+    evaluatebuttongroup->setTitle( tr( "type" ) );
+    evaluatebuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    resolutionbutton = new QRadioButton( evaluatebuttongroup, "resolutionbutton" );
+    resolutionbutton->setGeometry( QRect( 10, 20, 130, 24 ) ); 
+    resolutionbutton->setText( tr( "RESOLUTION" ) );
+
+    pointbutton = new QRadioButton( evaluatebuttongroup, "pointbutton" );
+    pointbutton->setGeometry( QRect( 10, 50, 110, 24 ) ); 
+    pointbutton->setText( tr( "POINT" ) );
+
+    bothbutton = new QRadioButton( evaluatebuttongroup, "bothbutton" );
+    bothbutton->setGeometry( QRect( 10, 80, 110, 24 ) ); 
+    bothbutton->setText( tr( "BOTH" ) );
+
+    nonebutton = new QRadioButton( evaluatebuttongroup, "nonebutton" );
+    nonebutton->setGeometry( QRect( 10, 110, 80, 24 ) ); 
+    nonebutton->setText( tr( "NONE" ) );
+
+    linebutton = new QRadioButton( this, "linebutton" );
+    //    linebutton->setGeometry( QRect( 210, 50, 100, 30 ) ); 
+    linebutton->setGeometry( QRect( 210, 130, 100, 30 ) ); 
+    linebutton->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, linebutton->sizePolicy().hasHeightForWidth() ) );
+    linebutton->setMinimumSize( QSize( 100, 30 ) );
+    linebutton->setMaximumSize( QSize( 100, 30 ) );
+    linebutton->setText( tr( "LINE" ) );
+
+    evaluatebuttongroup2 = new QButtonGroup( this, "evaluatebuttongroup2" );
+    evaluatebuttongroup2->setGeometry( QRect( 40, 190, 310, 80 ) ); 
+    evaluatebuttongroup2->setTitle( tr( "" ) );
+    evaluatebuttongroup2->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    wholepicbutton = new QRadioButton( evaluatebuttongroup2, "wholepicbutton" );
+    wholepicbutton->setGeometry( QRect( 10, 10, 110, 24 ) ); 
+    wholepicbutton->setText( tr( "WHOLEPIC" ) );
+    QObject::connect(wholepicbutton,SIGNAL(clicked()),this,SLOT(activateWholepicFields()));
+    wholepicbutton->setChecked(true);
+
+    lowden = new QLineEdit( evaluatebuttongroup2, "lowden" );
+    lowden->setGeometry( QRect( 150, 30, 60, 28 ) ); 
+    lowden->setEnabled(TRUE);
+
+    lowdenlabel = new QLabel( evaluatebuttongroup2, "lowdenlabel" );
+    lowdenlabel->setGeometry( QRect( 150, 10, 60, 20 ) ); 
+    lowdenlabel->setText( tr( "lowden" ) );
+    lowdenlabel->setEnabled(TRUE);
+
+    highden = new QLineEdit( evaluatebuttongroup2, "highden" );
+    highden->setGeometry( QRect( 230, 30, 60, 28 ) );
+    highden->setEnabled(TRUE);
+
+    highdenlabel = new QLabel( evaluatebuttongroup2, "highdenlabel" );
+    highdenlabel->setGeometry( QRect( 230, 10, 60, 20 ) ); 
+    highdenlabel->setText( tr( "highden" ) );
+    highdenlabel->setEnabled(TRUE);
+
+    selectivebutton = new QRadioButton( evaluatebuttongroup2, "selectivebutton" );
+    selectivebutton->setGeometry( QRect( 10, 40, 130, 24 ) ); 
+    selectivebutton->setText( tr( "SELECTIVE" ) );
+    QObject::connect(selectivebutton,SIGNAL(clicked()),this,SLOT(activateSelectiveFields()));
+
+    shapes = new QMultiLineEdit( this, "shapes" );
+    shapes->setGeometry( QRect( 30, 300, 350, 124 ) ); 
+    shapes->setMaxLines(40);
+    shapes->setEnabled(FALSE);
+
+    shapeslabel = new QLabel( this, "shapeslabel" );
+    shapeslabel->setGeometry( QRect( 90, 280, 240, 20 ) ); 
+    shapeslabel->setText( tr( "SELECTIVE shapes descriptions" ) );
+    shapeslabel->setEnabled(FALSE);
+
+    shapesinstructionslabel = new QLabel( this, "shapesinstructionslabel" );
+    shapesinstructionslabel->setGeometry( QRect( 80, 425, 270, 20 ) ); 
+    shapesinstructionslabel->setText( tr( "shape cx cy u v ang [lowden higden]" ) );
+    shapesinstructionslabel->setEnabled(FALSE);
+
+    iterationflaglabel = new QLabel( this, "iterationflaglinelabel" );
+    iterationflaglabel->setGeometry( QRect( 140, 450, 150, 20 ) ); 
+    iterationflaglabel->setText( tr( "iteration_flag_line" ) );
+
+    iterationflagline = new QLineEdit( this, "iterationflagline" );
+    iterationflagline->setGeometry( QRect( 30, 470, 350, 28 ) ); 
+
+    Line4 = new QFrame( this, "Line4" );
+    Line4->setGeometry( QRect( -5, 505, 410, 16 ) ); 
+    Line4->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 540, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 540, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+evaluatewindow::~evaluatewindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Activates type, region and flag fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+/*void evaluatewindow::activateFields()
+{
+  if(evaluatebutton->isChecked()) {
+    evaluatebuttongroup->setEnabled(TRUE);
+    resolutionbutton->setEnabled(TRUE);
+    pointbutton->setEnabled(TRUE);
+    bothbutton->setEnabled(TRUE);
+    nonebutton->setEnabled(TRUE);
+    linebutton->setEnabled(TRUE);
+    evaluatebuttongroup2->setEnabled(TRUE);
+    wholepicbutton->setEnabled(TRUE);
+    selectivebutton->setEnabled(TRUE);
+    if(wholepicbutton->isChecked()) {
+      lowden->setEnabled(TRUE);
+      lowdenlabel->setEnabled(TRUE);
+      highden->setEnabled(TRUE);
+      highdenlabel->setEnabled(TRUE);
+    }
+    else 
+      if(selectivebutton->isChecked()) {
+        shapes->setEnabled(TRUE);
+        shapeslabel->setEnabled(TRUE);
+        shapesinstructionslabel->setEnabled(TRUE);
+      }
+    iterationflagline->setEnabled(TRUE);
+    iterationflaglabel->setEnabled(TRUE);
+  }
+  else {
+    evaluatebuttongroup->setEnabled(FALSE);
+    resolutionbutton->setEnabled(FALSE);
+    pointbutton->setEnabled(FALSE);
+    bothbutton->setEnabled(FALSE);
+    nonebutton->setEnabled(FALSE);
+    linebutton->setEnabled(FALSE);
+    evaluatebuttongroup2->setEnabled(FALSE);
+    wholepicbutton->setEnabled(FALSE);
+    selectivebutton->setEnabled(FALSE);
+    lowden->setEnabled(FALSE);
+    lowdenlabel->setEnabled(FALSE);
+    highden->setEnabled(FALSE);
+    highdenlabel->setEnabled(FALSE);
+    shapes->setEnabled(FALSE);
+    shapeslabel->setEnabled(FALSE);
+    shapesinstructionslabel->setEnabled(FALSE);
+    iterationflagline->setEnabled(FALSE);
+    iterationflaglabel->setEnabled(FALSE);
+  }
+} */
+
+/** Activates wholepic fields and deactivates selective fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void evaluatewindow::activateWholepicFields()
+{
+  if(wholepicbutton->isChecked()) {
+    lowden->setEnabled(TRUE);
+    lowdenlabel->setEnabled(TRUE);
+    highden->setEnabled(TRUE);
+    highdenlabel->setEnabled(TRUE); 
+    shapes->setEnabled(FALSE);
+    shapeslabel->setEnabled(FALSE);
+    shapesinstructionslabel->setEnabled(FALSE);
+  }
+  else {
+    lowden->setEnabled(FALSE);
+    lowdenlabel->setEnabled(FALSE);
+    highden->setEnabled(FALSE);
+    highdenlabel->setEnabled(FALSE);
+  }
+}
+
+/** Activates selective fields and deactivates wholepic fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void evaluatewindow::activateSelectiveFields()
+{
+  if(selectivebutton->isChecked()) {
+    shapes->setEnabled(TRUE);
+    shapeslabel->setEnabled(TRUE);
+    shapesinstructionslabel->setEnabled(TRUE);
+    lowden->setEnabled(FALSE);
+    lowdenlabel->setEnabled(FALSE);
+    highden->setEnabled(FALSE);
+    highdenlabel->setEnabled(FALSE);
+  }
+  else {
+    shapes->setEnabled(FALSE);
+    shapeslabel->setEnabled(FALSE);
+    shapesinstructionslabel->setEnabled(FALSE);
+  }
+}
+
+/** Returns a string for EVALUATE input sequence
+@param void
+@return evaluate
+@author Bruno M. Carvalho
+@version 1.0 */
+QString evaluatewindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("EVALUATE ");
+  if(resolutionbutton->isChecked()) {
+    output.append("RESOLUTION ");
+  }
+  else
+    if(pointbutton->isChecked()) {
+      output.append("POINT ");
+    }
+    else
+      if(bothbutton->isChecked()) {
+        output.append("BOTH ");
+      }
+  if(linebutton->isChecked()) {
+    output.append("LINE ");
+  }
+
+  output.append("\n");
+  output += evalnamefield->text();
+  output.append("\n");
+
+  if(wholepicbutton->isChecked()) {
+      output.append("WHOLEPIC ");
+      if(! (lowden->text().stripWhiteSpace().isEmpty())) {
+       output+=lowden->text();
+       output.append(" ");
+       output+=highden->text();
+       output.append(" ");
+      }
+      output.append("\n");
+  }
+  else 
+    if(selectivebutton->isChecked()) {
+      output.append("SELECTIVE \n");
+      output+=shapes->text();
+      output.append(" \n");
+      output.append("LAST \n");
+    }
+  output+=iterationflagline->text();
+  //output.append(" \n");
+
+  return output;
+}
+
+
+void evaluatewindow::checkValues()
+{
+  int f=0;
+  float lo=0,hi=0;
+  
+  if(wholepicbutton->isChecked()) {
+    bool lowblank  = lowden->text().stripWhiteSpace().isEmpty();
+    bool highblank = highden->text().stripWhiteSpace().isEmpty();
+    if((lowblank && (!highblank) )   ||   ( (!lowblank) && highblank)) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "Must specify either both or neither of lowden and highden");
+      return;
+    }
+    if(!lowblank) {
+      lo=strtof((const char *)lowden->text());
+      if(errnum==1) 
+       f=1;
+      hi=strtof((const char *)highden->text());
+      if(errnum==1) 
+       f=2;
+      if(lo>hi && !f) 
+       f=3;
+    }
+  }
+  if(!isintspace(iterationflagline->text()))
+    f=4;
+
+  QString teststr = evalnamefield->text();
+  QString teststr2 = teststr.stripWhiteSpace();
+  if (teststr2.isEmpty()) {
+    f=5;
+  }
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid lowden format");
+          lowden->setFocus();
+    break;
+  case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid highden format");
+          highden->setFocus();
+    break;
+  case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "lowden bigger than highden");
+          lowden->setFocus();
+    break;
+  case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "iteration_flag_line must contain\n"
+                                   "only 0-9 and spaces and must\n"
+                                   "be non-empty");
+          iterationflagline->setFocus();
+    break;
+  case 5: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                  "EVALUATE run name may NOT be\n"
+                                  "empty or whitespace");
+
+    break;
+  }
+}
+
diff --git a/tools/Input/evaluate.h b/tools/Input/evaluate.h
new file mode 100755 (executable)
index 0000000..c102ff1
--- /dev/null
@@ -0,0 +1,63 @@
+/** @file evaluate.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef EVALUATEWINDOW_H
+#define EVALUATEWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QMultiLineEdit;
+class QPushButton;
+class QRadioButton;
+
+class evaluatewindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    evaluatewindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~evaluatewindow();
+    QString getOutput();
+    QLabel* evaluatelabel;
+    QButtonGroup* evaluatebuttongroup;
+    QRadioButton* resolutionbutton;
+    QRadioButton* pointbutton;
+    QRadioButton* bothbutton;
+    QRadioButton* nonebutton;
+    QRadioButton* linebutton;
+    QButtonGroup* evaluatebuttongroup2;
+    QRadioButton* wholepicbutton;
+    QLineEdit* evalnamefield;
+    QLabel* evalnamelabel;
+    QLineEdit* lowden;
+    QLabel* lowdenlabel;
+    QLineEdit* highden;
+    QLabel* highdenlabel;
+    QRadioButton* selectivebutton;
+    QMultiLineEdit* shapes;
+    QLabel* shapeslabel;
+    QLabel* shapesinstructionslabel;
+    QLineEdit* iterationflagline;
+    QLabel* iterationflaglabel;
+    QFrame* Line4;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+      //void activateFields();
+    void activateWholepicFields();
+    void activateSelectiveFields();
+    void checkValues();
+};
+
+#endif // EVALUATEWINDOW_H
diff --git a/tools/Input/execute.cpp b/tools/Input/execute.cpp
new file mode 100755 (executable)
index 0000000..cbbe734
--- /dev/null
@@ -0,0 +1,552 @@
+/** @file execute.cpp
+    @package snark05Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "execute.h"
+#include "misc.h"
+#include "variables.h"
+#include <stdio.h>
+
+#include <qbuttongroup.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qmultilineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a executewindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho (modified a little by deniz)
+@version 1.0 */
+executewindow::executewindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "executewindow" );
+    resize( 400, 600 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 400, 700 ) );
+    setMaximumSize( QSize( 400, 700 ) );
+    setCaption( tr( "Execute Window" ) );
+
+    executelabel = new QLabel( this, "executelabel" );
+    executelabel->setGeometry( QRect( 10, 10, 120, 30 ) ); 
+    executelabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, executelabel->sizePolicy().hasHeightForWidth() ) );
+    executelabel->setMinimumSize( QSize( 120, 30 ) );
+    executelabel->setMaximumSize( QSize( 120, 30 ) );
+    executelabel->setText( tr( "EXECUTE" ) );
+
+    executebuttongroup = new QButtonGroup( this, "executebuttongroup" );
+    executebuttongroup->setGeometry( QRect( 40, 40, 160, 170 ) ); 
+    executebuttongroup->setTitle( tr( "type" ) );
+    executebuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    zerobutton = new QRadioButton( executebuttongroup, "zerobutton" );
+    zerobutton->setGeometry( QRect( 10, 20, 130, 24 ) ); 
+    zerobutton->setText( tr( "ZERO" ) ); 
+
+    averagebutton = new QRadioButton( executebuttongroup, "averagebutton" );
+    averagebutton->setGeometry( QRect( 10, 50, 110, 24 ) ); 
+    averagebutton->setText( tr( "AVERAGE" ) ); 
+
+    continuebutton = new QRadioButton( executebuttongroup, "continuebutton" );
+    continuebutton->setGeometry( QRect( 10, 80, 110, 24 ) ); 
+    continuebutton->setText( tr( "CONTINUE" ) );
+
+    // added by deniz:
+    phantombutton = new QRadioButton( executebuttongroup, "phantombutton" );
+    phantombutton->setGeometry( QRect( 10, 110, 110, 24 ) ); 
+    phantombutton->setText( tr( "PHANTOM" ) );
+
+    nonebutton = new QRadioButton( executebuttongroup, "nonebutton" );
+    nonebutton->setGeometry( QRect( 10, 140, 80, 24 ) ); 
+    nonebutton->setText( tr( "NONE" ) ); 
+    nonebutton->setChecked(true);
+
+    algname = new QLineEdit( this, "algname" );
+    algname->setGeometry( QRect( 30, 230, 350, 28 ) );
+
+    algnamelabel = new QLabel( this, "algnamelabel" );
+    algnamelabel->setGeometry( QRect( 170, 210, 70, 20 ) ); 
+    algnamelabel->setText( tr( "algname" ) );
+
+    executebuttongroup2 = new QButtonGroup( this, "executebuttongroup2" );
+    executebuttongroup2->setGeometry( QRect( 40, 270, 160, 100 ) ); 
+    executebuttongroup2->setTitle( tr( "" ) );
+    executebuttongroup2->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    contourbutton = new QRadioButton( executebuttongroup2, "contourbutton" );
+    contourbutton->setGeometry( QRect( 10, 10, 110, 30 ) ); 
+    contourbutton->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, contourbutton->sizePolicy().hasHeightForWidth() ) );
+    contourbutton->setMinimumSize( QSize( 110, 30 ) );
+    contourbutton->setMaximumSize( QSize( 110, 30 ) );
+    contourbutton->setText( tr( "CONTOUR" ) );
+    QObject::connect(contourbutton,SIGNAL(clicked()),this,SLOT(activateContourSmoothFields()));
+
+    smoothbutton = new QRadioButton( executebuttongroup2, "smoothbutton" );
+    smoothbutton->setGeometry( QRect( 10, 40, 110, 30 ) ); 
+    smoothbutton->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, smoothbutton->sizePolicy().hasHeightForWidth() ) );
+    smoothbutton->setMinimumSize( QSize( 110, 30 ) );
+    smoothbutton->setMaximumSize( QSize( 110, 30 ) );
+    smoothbutton->setText( tr( "SMOOTH" ) );
+    QObject::connect(smoothbutton,SIGNAL(clicked()),this,SLOT(activateContourSmoothFields()));
+
+    nonebutton2 = new QRadioButton( executebuttongroup2, "nonebutton2" );
+    nonebutton2->setGeometry( QRect( 10, 70, 130, 24 ) ); 
+    nonebutton2->setText( tr( "NONE" ) );
+    nonebutton2->setChecked(true);
+    QObject::connect(nonebutton2,SIGNAL(clicked()),this,SLOT(activateContourSmoothFields()));
+
+    nameoftheexecution = new QLineEdit( this, "nameoftheexecution" );
+    nameoftheexecution->setGeometry( QRect( 30, 390, 350, 28 ) ); 
+
+    nameoftheexecutionlabel = new QLabel( this, "nameoftheexecutionlabel" );
+    nameoftheexecutionlabel->setGeometry( QRect( 110, 370, 180, 20 ) ); 
+    nameoftheexecutionlabel->setText( tr( "name_of_the_execution" ) );
+
+
+
+
+
+
+
+    algvariables = new QMultiLineEdit( this, "algvariables" );
+    algvariables->setGeometry( QRect( 30, 568, 350, 60 ) );
+
+    algvariableslabel = new QLabel( this, "algvariableslabel" );
+    algvariableslabel->setGeometry( QRect( 100, 535, 220, 20 ) ); 
+    algvariableslabel->setText( tr( "algorithm specific variables" ) );
+
+
+
+
+
+
+
+    threshold = new QLineEdit( this, "threshold" );
+    threshold->setGeometry( QRect( 30, 442, 80, 28 ) ); 
+    threshold->setEnabled(FALSE);
+
+    thresholdlabel = new QLabel( this, "thresholdlabel" );
+    thresholdlabel->setGeometry( QRect( 35, 422, 70, 20 ) ); 
+    thresholdlabel->setText( tr( "threshold" ) ); 
+    thresholdlabel->setEnabled(FALSE);
+
+    weight1 = new QLineEdit( this, "weight1" );
+    weight1->setGeometry( QRect( 120, 442, 80, 28 ) ); 
+    weight1->setEnabled(FALSE);
+
+    weight1label = new QLabel( this, "weight1label" );
+    weight1label->setGeometry( QRect( 130, 422, 60, 20 ) ); 
+    weight1label->setText( tr( "weight1" ) ); 
+    weight1label->setEnabled(FALSE);
+
+    weight2 = new QLineEdit( this, "weight2" );
+    weight2->setGeometry( QRect( 210, 442, 80, 28 ) ); 
+    weight2->setEnabled(FALSE);
+
+    weight2label = new QLabel( this, "weight2label" );
+    weight2label->setGeometry( QRect( 220, 422, 60, 20 ) ); 
+    weight2label->setText( tr( "weight2" ) );
+    weight2label->setEnabled(FALSE);
+
+    weight3 = new QLineEdit( this, "weight3" );
+    weight3->setGeometry( QRect( 300, 442, 80, 28 ) ); 
+    weight3->setEnabled(FALSE);
+
+    weight3label = new QLabel( this, "weight3label" );
+    weight3label->setGeometry( QRect( 310, 422, 60, 20 ) ); 
+    weight3label->setText( tr( "weight3" ) ); 
+    weight3label->setEnabled(FALSE);
+
+    iterationflaglabel = new QLabel( this, "iterationflaglinelabel" );
+    iterationflaglabel->setGeometry( QRect( 140, 482, 150, 20 ) ); 
+    iterationflaglabel->setText( tr( "iteration_flag_line" ) );
+    iterationflaglabel->setEnabled(FALSE);
+
+    iterationflagline = new QLineEdit( this, "iterationflagline" );
+    iterationflagline->setGeometry( QRect( 30, 502, 350, 28 ) ); 
+    iterationflagline->setEnabled(FALSE);
+
+    Line5 = new QFrame( this, "Line5" );
+    Line5->setGeometry( QRect( -15, 625, 450, 16 ) ); 
+    Line5->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 645, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 645, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+executewindow::~executewindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+
+/** Activates type, algname and other fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+/* void executewindow::activateFields()
+{
+  if(executebutton->isChecked()) {
+    executebuttongroup->setEnabled(TRUE);
+    zerobutton->setEnabled(TRUE);
+    averagebutton->setEnabled(TRUE);
+    continuebutton->setEnabled(TRUE);
+    nonebutton->setEnabled(TRUE);
+    algname->setEnabled(TRUE);
+    algnamelabel->setEnabled(TRUE);
+    executebuttongroup2->setEnabled(TRUE);
+    contourbutton->setEnabled(TRUE);
+    smoothbutton->setEnabled(TRUE);
+    nonebutton2->setEnabled(TRUE);
+    nameoftheexecution->setEnabled(TRUE);
+    nameoftheexecutionlabel->setEnabled(TRUE);
+    algvariables->setEnabled(TRUE); 
+    algvariableslabel->setEnabled(TRUE);
+  }
+  else {
+    executebuttongroup->setEnabled(FALSE);
+    zerobutton->setEnabled(FALSE);
+    averagebutton->setEnabled(FALSE);
+    continuebutton->setEnabled(FALSE);
+    nonebutton->setEnabled(FALSE);
+    algname->setEnabled(FALSE);
+    algnamelabel->setEnabled(FALSE);
+    executebuttongroup2->setEnabled(FALSE);
+    contourbutton->setEnabled(FALSE);
+    smoothbutton->setEnabled(FALSE);
+    nonebutton2->setEnabled(FALSE);
+    nameoftheexecution->setEnabled(FALSE);
+    nameoftheexecutionlabel->setEnabled(FALSE); 
+    algvariables->setEnabled(FALSE); 
+    algvariableslabel->setEnabled(FALSE);
+    threshold->setEnabled(FALSE);
+    thresholdlabel->setEnabled(FALSE);
+    weight1->setEnabled(FALSE);
+    weight1label->setEnabled(FALSE);
+    weight2->setEnabled(FALSE);
+    weight2label->setEnabled(FALSE);
+    weight3->setEnabled(FALSE);
+    weight3label->setEnabled(FALSE);
+    iterationflagline->setEnabled(FALSE);
+    iterationflaglabel->setEnabled(FALSE);
+  }
+}*/
+
+/** Activates contour and smooth fields fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void executewindow::activateContourSmoothFields()
+{
+  if(contourbutton->isChecked() || smoothbutton->isChecked()) {
+    threshold->setEnabled(TRUE);
+    thresholdlabel->setEnabled(TRUE);
+    weight1->setEnabled(TRUE);
+    weight1label->setEnabled(TRUE);
+    weight2->setEnabled(TRUE);
+    weight2label->setEnabled(TRUE);
+    weight3->setEnabled(TRUE);
+    weight3label->setEnabled(TRUE);
+    iterationflagline->setEnabled(TRUE);
+    iterationflaglabel->setEnabled(TRUE);
+  }
+  else {
+    threshold->setEnabled(FALSE);
+    thresholdlabel->setEnabled(FALSE);
+    weight1->setEnabled(FALSE);
+    weight1label->setEnabled(FALSE);
+    weight2->setEnabled(FALSE);
+    weight2label->setEnabled(FALSE);
+    weight3->setEnabled(FALSE);
+    weight3label->setEnabled(FALSE);
+    iterationflagline->setEnabled(FALSE);
+    iterationflaglabel->setEnabled(FALSE);
+  }
+}
+
+/** Deactivates contour and smooth fields fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void executewindow::deactivateContourSmoothFields()
+{
+  if(nonebutton2->isChecked()) {
+    threshold->setEnabled(FALSE);
+    thresholdlabel->setEnabled(FALSE);
+    weight1->setEnabled(FALSE);
+    weight1label->setEnabled(FALSE);
+    weight2->setEnabled(FALSE);
+    weight2label->setEnabled(FALSE);
+    weight3->setEnabled(FALSE);
+    weight3label->setEnabled(FALSE);
+    iterationflagline->setEnabled(FALSE);
+    iterationflaglabel->setEnabled(FALSE);
+  }
+  else {
+    threshold->setEnabled(TRUE);
+    thresholdlabel->setEnabled(TRUE);
+    weight1->setEnabled(TRUE);
+    weight1label->setEnabled(TRUE);
+    weight2->setEnabled(TRUE);
+    weight2label->setEnabled(TRUE);
+    weight3->setEnabled(TRUE);
+    weight3label->setEnabled(TRUE);
+    iterationflagline->setEnabled(TRUE);
+    iterationflaglabel->setEnabled(TRUE);
+  }
+}
+
+/** Returns a string for EXECUTE input sequence
+@param void
+@return execute
+@author Bruno M. Carvalho
+@version 1.0 */
+QString executewindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("EXECUTE ");
+  if(zerobutton->isChecked()) {
+    output.append("ZERO ");
+  }
+  else
+    if(averagebutton->isChecked()) {
+      output.append("AVERAGE ");
+    }
+    else
+      if(continuebutton->isChecked()) {
+        output.append("CONTINUE ");
+      }
+      else
+       if(phantombutton->isChecked()) {
+         output.append("PHANTOM ");
+       }
+  output+=algname->text();
+  output.append(" ");
+  if(contourbutton->isChecked()) {
+    output.append("CONTOUR ");
+  }
+  else
+    if(smoothbutton->isChecked()) {
+      output.append("SMOOTH ");
+    }
+  output.append("\n");
+  output+=nameoftheexecution->text();
+//  if(strcmp(algvariables->text(),"")) {
+//    output.append("\n");
+//    output+=algvariables->text();
+//  }
+  //output.append("\n");
+  if(contourbutton->isChecked() || smoothbutton->isChecked()) {
+    output.append("\n");
+    output+=threshold->text();
+    output.append(" ");
+    output+=weight1->text();
+    output.append(" ");
+    output+=weight2->text();
+    output.append(" ");
+    output+=weight3->text();
+    output.append("\n");
+    output+=iterationflagline->text();
+    //output.append("\n");
+  } 
+  
+    if(strcmp(algvariables->text(),"")) {
+    output.append("\n");
+    output+=algvariables->text();
+  }
+  return output;
+}
+
+void executewindow::checkValues()
+{
+  int f=0,cmp,alg;
+  float t,w1,w2,w3;
+  const char *str;
+  char str1[5];
+
+  str=(const char *)algname->text();
+  str1[0]=stolower(str[0]);
+  str1[1]=stolower(str[1]);
+  str1[2]=stolower(str[2]);
+  str1[3]=stolower(str[3]);
+  str1[4]=0;
+       //  cmp=strcmp(str1,"alg1");
+       //cmp=strcmp(str1,"algp");     // SI bug 113 fix
+       cmp=strcmp(str1,"alp1"); // bug 267, Ran
+       if(!cmp) alg=1;
+       else {
+               //    cmp=strcmp(str1,"alg2");
+               //cmp=strcmp(str1,"algb");   // SI bug 113 fix
+               cmp=strcmp(str1,"alb1"); // bug 267, Ran
+               if(!cmp) alg=2;
+               else {
+                       cmp=strcmp(str1,"alts");
+                       if(!cmp) alg=3;
+                       else {
+                               cmp=strcmp(str1,"art");
+                               if(!cmp) alg=4;
+                               else {
+                                       cmp=strcmp(str1,"back");
+                                       if(!cmp) alg=5;
+                                       else {
+                                               cmp=strcmp(str1,"conv");
+                                               if(!cmp) alg=6;
+                                               else {
+                                                       cmp=strcmp(str1,"dcon");
+                                                       if(!cmp) alg=7;
+                                                       else {
+                                                               cmp=strcmp(str1,"emap");
+                                                               if(!cmp) alg=8;
+                                                               else {
+                                                                       cmp=strcmp(str1,"four");
+                                                                       if(!cmp) alg=9;
+                                                                       else {
+                                                                               cmp=strcmp(str1,"lino");
+                                                                               if(!cmp) alg=10;
+                                                                               else {
+                                                                                       cmp=strcmp(str1,"mart");
+                                                                                       if(!cmp) alg=11;
+                                                                                       else {
+                                                                                               cmp=strcmp(str1,"mspb");
+                                                                                               if(!cmp) alg=12;
+                                                                                               else {
+                                                                                                       cmp=strcmp(str1,"quad");
+                                                                                                       if(!cmp) alg=13;
+                                                                                                       else {
+                                                                                                               cmp=strcmp(str1,"rfl");
+                                                                                                               if(!cmp) alg=14;
+                                                                                                               else {
+                                                                                                                       cmp=strcmp(str1,"sirt");
+                                                                                                                       if(!cmp) alg=15;
+                                                                                                                       else {
+                                                                                                                               cmp=strcmp(str1,"alp2");
+                                                                                                                               if(!cmp) alg=16;
+                                                                                                                               else {
+                                                                                                                                       cmp=strcmp(str1,"alp3");
+                                                                                                                                       if(!cmp) alg=17;
+                                                                                                                                       else {
+                                                                                                                                               cmp=strcmp(str1,"alp4");
+                                                                                                                                               if(!cmp) alg=18;
+                                                                                                                                               else {
+                                                                                                                                                       cmp=strcmp(str1,"alp5");
+                                                                                                                                                       if(!cmp) alg=19;
+                                                                                                                                                       else {
+                                                                                                                                                               cmp=strcmp(str1,"alb2");
+                                                                                                                                                               if(!cmp) alg=20;
+                                                                                                                                                               else {
+                                                                                                                                                                       cmp=strcmp(str1,"alb3");
+                                                                                                                                                                       if(!cmp) alg=21;
+                                                                                                                                                                       else {
+                                                                                                                                                                               cmp=strcmp(str1,"alb4");
+                                                                                                                                                                               if(!cmp) alg=22;
+                                                                                                                                                                               else {
+                                                                                                                                                                                       cmp=strcmp(str1,"alb5");
+                                                                                                                                                                                       if(!cmp) alg=23;
+                                                                                                                                                                                       else {
+                                                                                                                                                                                               cmp=strcmp(str1,"sart");
+                                                                                                                                                                                               if(!cmp) alg=23;
+                                                                                                                                                                                               else f=1;
+                                                                                                                                                                                       }
+                                                                                                                                                                               }
+                                                                                                                                                                       }
+                                                                                                                                                               }
+                                                                                                                                                       }
+                                                                                                                                               }
+                                                                                                                                       }
+                                                                                                                               }
+                                                                                                                       }
+                                                                                                               }
+                                                                                                       }
+                                                                                               }
+                                                                                       }
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+  if(contourbutton->isChecked() || smoothbutton->isChecked()) {
+    t=strtof((const char *)threshold->text());
+    if(errnum) 
+      f=2;
+    w1=strtof((const char *)weight1->text());
+    if(errnum) 
+      f=3;
+    w2=strtof((const char *)weight2->text());
+    if(errnum) 
+      f=4;
+    w3=strtof((const char *)weight3->text());
+    if(errnum) 
+      f=5;
+    if(!isintspace(iterationflagline->text()))
+      f=6;
+  }
+
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid algorithm name.Algorithm name must be one of:\n"
+  // SI bug 113 fix  alg1 -> algp ; alg2 -> algb
+                                                                  // "ALG1, ALG2, ALTSCHULER, ART, BACKPROJECTION,\n"
+  // Ran, bug 267  added ALP1 - ALP5 and ALB1 - ALB5
+                                                                  //"ALGP, ALGB, ALTSCHULER, ART, BACKPROJECTION,\n"
+                                                                  "ALP1, ALP2, ALP3, ALP4, ALP5, ALB1, ALB2, \n"
+                                                                  "ALB3, ALB4, ALB5, ALTSCHULER, ART, \n"
+                                                                  "BACKPROJECTION,CONVOLUTION, DCONV, EMAP,\n"
+                                   "FOURIER, LINO, MART, MSPB, QUAD, RFL, SART or SIRT");    break;
+  case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid threshold format.");
+          threshold->setFocus();
+    break;
+  case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid weight1 format.");
+          weight1->setFocus();
+    break;
+  case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid weight2 format.");
+          weight2->setFocus();
+    break;
+  case 5: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid weight3 format.");
+          weight3->setFocus();
+    break;
+  case 6: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "iteration_flag_line must contain\n"
+                                   "only 0-9 and spaces and must\n"
+                                   "be non-empty");
+          iterationflagline->setFocus();
+    break;
+  }
+}
diff --git a/tools/Input/execute.h b/tools/Input/execute.h
new file mode 100755 (executable)
index 0000000..f1de262
--- /dev/null
@@ -0,0 +1,70 @@
+/** @file execute.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef EXECUTEWINDOW_H
+#define EXECUTEWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QMultiLineEdit;
+class QPushButton;
+class QRadioButton;
+
+class executewindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    executewindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~executewindow();
+    QString getOutput();
+
+    QLabel* executelabel;
+    QButtonGroup* executebuttongroup;
+    QRadioButton* zerobutton;
+    QRadioButton* averagebutton;
+    QRadioButton* continuebutton;
+    QRadioButton* phantombutton;
+    QRadioButton* nonebutton;
+    QLineEdit* algname;
+    QLabel* algnamelabel;
+    QButtonGroup* executebuttongroup2;
+    QRadioButton* contourbutton;
+    QRadioButton* smoothbutton;
+    QRadioButton* nonebutton2;
+    QLabel* algvariableslabel;
+    QMultiLineEdit* algvariables;
+    QLabel* nameoftheexecutionlabel;
+    QLineEdit* nameoftheexecution;
+    QLineEdit* threshold;
+    QLabel* thresholdlabel;
+    QLineEdit* weight1;
+    QLabel* weight1label;
+    QLineEdit* weight2;
+    QLabel* weight2label;
+    QLineEdit* weight3;
+    QLabel* weight3label;
+    QLineEdit* iterationflagline;
+    QLabel* iterationflaglabel;
+    QFrame* Line5;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+      //void activateFields();
+    void activateContourSmoothFields();
+    void deactivateContourSmoothFields();
+    void checkValues();
+};
+
+#endif // EXECUTEWINDOW_H
diff --git a/tools/Input/experiment.cpp b/tools/Input/experiment.cpp
new file mode 100755 (executable)
index 0000000..4b0589f
--- /dev/null
@@ -0,0 +1,101 @@
+/** @file experiment.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "experiment.h"
+
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/* 
+ *  Constructs a experimentwindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+experimentwindow::experimentwindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "experimentwindow" );
+    resize( 400, 150 ); 
+    setMinimumSize( QSize( 400, 150 ) );
+    setMaximumSize( QSize( 400, 150 ) );
+    setCaption( tr( "Experiment's Comments Window" ) );
+
+    TextLabel1 = new QLabel( this, "TextLabel1" );
+    TextLabel1->setGeometry( QRect( 15, 30, 15, 30 ) ); 
+    QFont TextLabel1_font(  TextLabel1->font() );
+    TextLabel1_font.setFamily( "adobe-helvetica" );
+    TextLabel1_font.setPointSize( 16 );
+    TextLabel1->setFont( TextLabel1_font ); 
+    TextLabel1->setText( tr( "*" ) );
+
+    comments = new QLineEdit( this, "comments" );
+    comments->setGeometry( QRect( 35, 25, 335, 30 ) ); 
+    comments->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, comments->sizePolicy().hasHeightForWidth() ) );
+
+    Line9 = new QFrame( this, "Line9" );
+    Line9->setGeometry( QRect( -5, 75, 420, 16 ) ); 
+    Line9->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 90, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(accept()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 90, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/*  
+ *  Destroys the object and frees any allocated resources
+ */
+experimentwindow::~experimentwindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*  
+ *  Main event handler. Reimplemented to handle application
+ *  font changes
+ */
+bool experimentwindow::event( QEvent* ev )
+{
+    bool ret = QDialog::event( ev ); 
+    if ( ev->type() == QEvent::ApplicationFontChange ) {
+       QFont TextLabel1_font(  TextLabel1->font() );
+       TextLabel1_font.setFamily( "adobe-helvetica" );
+       TextLabel1_font.setPointSize( 16 );
+       TextLabel1->setFont( TextLabel1_font ); 
+    }
+    return ret;
+}
+
+/** Returns a string of comments 
+@param void
+@return mode
+@author Bruno M. Carvalho
+@version 1.0 */
+QString experimentwindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("* ");
+  output+=comments->text();
+  return output;
+}
diff --git a/tools/Input/experiment.h b/tools/Input/experiment.h
new file mode 100755 (executable)
index 0000000..391e237
--- /dev/null
@@ -0,0 +1,39 @@
+/** @file experiment.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef EXPERIMENTWINDOW_H
+#define EXPERIMENTWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+
+class experimentwindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    experimentwindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~experimentwindow();
+    QString getOutput();
+
+    QLineEdit* comments;
+    QFrame* Line9;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+    QLabel* TextLabel1;
+protected:
+    bool event( QEvent* );
+};
+
+#endif // EXPERIMENTWINDOW_H
diff --git a/tools/Input/icons.h b/tools/Input/icons.h
new file mode 100755 (executable)
index 0000000..e262afd
--- /dev/null
@@ -0,0 +1,4698 @@
+/** @file icons.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+static const char* const comments_icon_data[] = { 
+"48 48 35 1",
+". c None",
+"z c #0e0e0e",
+"A c #1b0d12",
+"d c #1b1b1b",
+"B c #241118",
+"l c #291a07",
+"j c #292929",
+"x c #361a24",
+"n c #37230a",
+"f c #373737",
+"p c #44363b",
+"u c #482331",
+"v c #513540",
+"g c #525252",
+"C c #5a2b3d",
+"r c #5b484f",
+"F c #5f3544",
+"h c #606060",
+"y c #6c3449",
+"G c #6e502a",
+"a c #6e6e6e",
+"e c #7c7c7c",
+"t c #7e3d55",
+"s c #7e3d56",
+"w c #87415c",
+"E c #895819",
+"D c #89847e",
+"b c #898989",
+"q c #904662",
+"m c #a56a1e",
+"# c #a5a5a5",
+"c c #b2b2b2",
+"i c #c0c0c0",
+"k c #cecece",
+"o c #dc8e28",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................#aaaab..........................",
+"...............cde###bb................ffffff...",
+"...............#g####ea...............fh.....f..",
+"...............ifgaaaga...............faaaaaaf..",
+"................a#...#a...............cj####jc..",
+"................a#...#a................f....f...",
+"................a#...#a................f....f...",
+"................a#...#a................f....f...",
+"................a#...#a................f....f...",
+"...............if#...#fi...............daaaad...",
+"...............g#k...k#g...............lmmmml...",
+".............ig.........gi.............noooon...",
+"............iai.........iai............noooon...",
+"............gi...........ig............noooon...",
+"..........ig...............gi..........noooon...",
+".........iai...............iai.........noooon...",
+".........jdfffffffffffffffffdj.........noooon...",
+".......ipqqqqqqqqqqqqqqqqqqqqqpi.......noooon...",
+"......irsqqqqqqqqqqqqqqqqqqqqqsri......noooon...",
+"......ptqqqqqqqqqqqqqqqqqqqqqqqtp......noooon...",
+"....ipqqqqqqqqqqqqqqqqqqqqqqqqqqqpi....noooon...",
+"...irsqqqqqqqqqqqqqqqqqqqqqqqqqqqsri...noooon...",
+"...ptqqqqqqqqqqqqqqqqqqqqqqqqqqqqqtp...noooon...",
+".ipqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpi.noooon...",
+"irsqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsrinoooon...",
+"#uqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu#noooon...",
+"#uqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu#noooon...",
+"#uqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu#noooon...",
+"#uqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu#noooon...",
+"cvwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwx#noooon...",
+".ayqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqyfinoooon...",
+".ayqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqya.noooon...",
+".bzqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzb.noooon...",
+"..fuusqqqqqqqqqqqqqqqqqqqqqqqqqqqsuuf..noooon...",
+"..c#gABCqqqqqqqqqqqqqqqqqqqqqqqCBAg#c..DEooED...",
+"......cffffFyyyyyyyyyyyyyyyyvfffc......cGmmGc...",
+"...........baaaaaaaaaaaaaaaa#...........#aa#....",
+"................................................"};
+
+static const char* const trace_icon_data[] = { 
+"48 48 18 1",
+". c None",
+"a c #000000",
+"k c #002000",
+"f c #004000",
+"i c #006000",
+"h c #008000",
+"o c #303000",
+"l c #373737",
+"e c #375737",
+"n c #606000",
+"# c #6e6e6e",
+"b c #767676",
+"c c #7f7f7f",
+"p c #909000",
+"j c #a5a5a5",
+"g c #bfbfbf",
+"m c #c0c000",
+"d c #ffffff",
+"................................................",
+"................................................",
+"................................................",
+".....................................#aa#.......",
+"....................................#bccb#......",
+"....................................acddca......",
+"..................................#adddddda#....",
+".................................#efcgdddda#....",
+".................................afhacdddda#....",
+"...............................#ahhhhfaddda#....",
+"..............................#efhhhhifccc#j....",
+"..............................afhhhhhhhaaa......",
+"............................#ahhhhhhhhha#.......",
+"...........................#efhhhhhhhif#j.......",
+"...........................afhhhhhhhhfa.........",
+".........................#ahhhhhhhhha#..........",
+"........................#efhhhhhhhif#j..........",
+"........................afhhhhhhhhfa............",
+"......................#ahhhhhhhhha#.............",
+".....................#efhhhhhhhif#j.............",
+".....................afhhhhhhhhfa...............",
+"..........#aaaaaaaaaahhhhhhhhha#................",
+".......j##########akfhhhhhhhif#j................",
+".......#aa#.......afhhhhhhhhfa..................",
+"......aaa.......#ahhhhhhhhha#...................",
+"....j#al#......#efhhhhhhhif###..................",
+"....#aa#.......afhhhhhhhhfa.#a..................",
+"....#a.......#ahhhhhhhhha#..#aa#................",
+"...#la......#efhhhhhhhif#j..j#a#................",
+"...aaa......afhhhhhhhhfa......a#................",
+"...a#.....#ahhhhhhhhha#.......a#................",
+"...a#....#efhhhhhhhif#j.......al#...............",
+"...a#....afhhhhhhhhfa.........aaa...............",
+"...a#..#ahhhhhhhhha#.............a#.............",
+"...a#.#efhhhhhhhif#j.............####j..........",
+"...a#.afhhhhhhhhfa................#aa#..........",
+"...aaamnahhhhhha#...................aaaaaa......",
+"...aonmpnfihhif#j...................######......",
+"...anmmmmafhhfa.................................",
+"...anmmmmmnaa#..................................",
+"...anmmmmmna#j..................................",
+"...anmmmmmna....................................",
+"...aaammmaaa....................................",
+"...aaannnal#....................................",
+"...aaaaaaa#.....................................",
+"................................................",
+"................................................",
+"................................................"};
+
+static const char* const mode_icon_data[] = { 
+"48 48 7 1",
+". c None",
+"e c #000000",
+"d c #585858",
+"c c #808080",
+"b c #a0a0a0",
+"a c #c3c3c3",
+"# c #ffffff",
+"................................................",
+"................................................",
+"................................................",
+".......................#######################..",
+".......................#######################..",
+".......................#######################..",
+".......................##.......................",
+".......................##.......................",
+".......................##.......................",
+".......................##.......................",
+".......................##.......................",
+".......................##.......................",
+".......................aa.......................",
+".......................aa.......................",
+".......................aa.......................",
+".......................aa.......................",
+".......................aa.......................",
+".......................aa.......................",
+".......................bb.......................",
+".......................bb.......................",
+".......................bb.......................",
+".......................bb.......................",
+".......................bb.......................",
+".......................bb.......................",
+".......................cc.......................",
+".......................cc.......................",
+".......................cc.......................",
+".......................cc.......................",
+".......................cc.......................",
+".......................cc.......................",
+".......................dd.......................",
+".......................dd.......................",
+".......................dd.......................",
+".......................dd.......................",
+".......................dd.......................",
+".......................dd.......................",
+".......................ee.......................",
+".......................ee.......................",
+".......................ee.......................",
+".......................ee.......................",
+".......................ee.......................",
+".......................ee.......................",
+"..eeeeeeeeeeeeeeeeeeeeeee.......................",
+"..eeeeeeeeeeeeeeeeeeeeeee.......................",
+"..eeeeeeeeeeeeeeeeeeeeeee.......................",
+"................................................",
+"................................................",
+"................................................"};
+
+static const char* const create_icon_data[] = { 
+"48 48 85 2",
+"Qt c None",
+".h c #000000",
+".m c #0e0b09",
+".L c #0e0d0b",
+"#r c #0e0e0e",
+"#j c #101010",
+".R c #1b1b17",
+".g c #1b1b1b",
+"#g c #202020",
+".5 c #292822",
+".B c #292823",
+".N c #292929",
+"#m c #303030",
+".v c #372d23",
+".F c #37362e",
+".e c #373737",
+"#a c #3f3f3f",
+"#h c #404040",
+".d c #524434",
+".T c #525145",
+".9 c #525146",
+".1 c #52524c",
+".t c #525252",
+"#f c #5f5f5f",
+".Z c #605849",
+".M c #605e51",
+".I c #606060",
+".c c #6e5b46",
+".V c #6e5f50",
+".Q c #6e6c5d",
+".6 c #6e6d65",
+".Y c #6e6d6a",
+".b c #6e6e6e",
+"#n c #707070",
+"#p c #727165",
+"#s c #7b7a76",
+".3 c #7c7968",
+".2 c #7c7c7c",
+"#b c #7f7f7f",
+".n c #897158",
+".P c #898774",
+".l c #898989",
+".D c #89e6d3",
+".8 c #8b8b87",
+"#l c #8f8f8f",
+"#i c #9f9f9f",
+".k c #a5886a",
+".U c #a5a28b",
+".# c #a5a5a5",
+"#c c #a8a699",
+".K c #afaea6",
+".W c #b2af96",
+".X c #b2af97",
+".f c #b2b2b2",
+".E c #b2dfc6",
+"#e c #bfbfbf",
+".y c #c0ac8b",
+".A c #c0b89c",
+".0 c #c0bda2",
+".a c #c0c0c0",
+".7 c #c5c2ab",
+".S c #c5c3af",
+".O c #c5c3b0",
+".4 c #cac7ae",
+".j c #ceaa84",
+"## c #cecaae",
+".u c #cecece",
+"#o c #cfcfcf",
+"#. c #d0cdb2",
+".i c #dcb68d",
+".o c #dcb88f",
+".C c #dcbc95",
+".p c #dcbe98",
+".G c #dcc29d",
+".r c #dcc4a0",
+".H c #dcc8a5",
+".x c #dccba8",
+".s c #dccba9",
+".J c #dccfae",
+".q c #dcd1b1",
+".z c #dcd5b7",
+".w c #dcd8ba",
+"#k c #dfdfdf",
+"#q c #efefef",
+"#d c #ffffff",
+"QtQtQt.#.#.#.#.aQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"Qt.#.b.c.c.c.d.e.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".f.g.h.i.i.i.j.k.k.e.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".m.n.i.o.p.q.r.s.o.k.t.uQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".v.i.i.p.w.w.w.w.x.y.v.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".v.i.i.q.w.w.w.w.w.z.A.BQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".v.i.C.w.w.w.w.D.E.w.w.FQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".v.i.G.w.w.w.w.w.w.w.w.FQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".v.i.H.w.D.E.w.w.w.w.w.FQtQtQtQtQtQtQtQt.I.e.e.eQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".v.i.J.w.w.w.w.w.w.K.w.FQtQtQtQtQt.f.L.F.F.w.w.M.N.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".v.i.J.w.w.w.w.w.O.O.w.FQtQtQt.a.b.g.P.w.w.w.w.w.Q.Q.RQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".v.i.C.w.w.w.w.O.S.w.w.F.IQtQt.N.T.U.w.w.w.w.w.w.w.w.F.e.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".f.V.j.q.w.w.K.O.w.w.w.w.N.#.N.M.w.w.w.w.W.U.U.U.w.w.w.X.F.LQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"Qt.b.d.p.w.w.w.w.w.w.w.w.Q.Q.Q.w.w.w.w.U.Y.b.b.g.Q.U.w.w.w.F.b.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"Qt.a.N.Z.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.0.1.IQt.f.2.R.X.w.w.W.3.g.eQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQt.1.0.w.w.w.w.w.w.w.w.w.w.w.w.4.w.w.w.5.t.uQt.l.e.B.0.w.w.w.w.N.aQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQt.a.6.Q.Q.U.w.w.w.w.w.w.w.w.7.8.w.w.w.0.F.#QtQtQt.t.F.0.w.w.w.9.e.aQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQt.a.#.2.R.X.w.w.w.w.w.w.w#..7.w.w.w.w.0.1QtQtQt.u.t.5.M.w.w##.T.NQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.u.t.U.w.w.w.w.w.w.w.w.w.w.w.w.w.w.M.5.t.#.fQtQt.N.T.U##.T.NQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQt.l.t.F.0.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.U#a#b.g.b.a.a.b.g.9.e.aQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQt.e.U.0.w.w.w.w#c.w.w.w.w.w.w.w.w.w.w.M.5#b#d#e#f.N.e.e.l.#.aQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQt.b.5.w.w.w.w.w#c#c.w.w.w.w.w.w.w.w.3#g#h#d#d#d#d#d#d#d#i#jQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQt.b.U.w.w.w.w.w.w.w.w.w.w.w.w.w.w.P.h#a#k#d#d#d#d#d#d#d#d#h.lQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQt.b.U.w.w.w.w.w.w.w.w.w.w.w.w.w.P.L#l.h#m#n#d#d#d#d#d#d#d#o.eQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQt.b.U.w.w.W.W.w.w.w.w.w.w.w.w###p#o#o#g#l#h#h#j#e#e#q#d#d#d.eQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQt.b.U.w.w.F.R.U.w.w.w.w.w.w.w.9#b#d#d#e#g#i#d#i#b#a#f#b#b#b.eQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQt.b.U.w.w.F.h.R.X.w.w.w.w.w.w#m#k#d#d#d#o#h#d#d#d#b.3.U.U.U#r.e.e.e.e.fQtQtQtQtQtQtQtQtQt",
+"QtQtQtQt.l#r.w.w.w.e.l#r.W.w.w.w.w.W#h#d#d#d#d#d#e#b#d#d#b.U.w.w.w.w.w.w.w.P.F.N.#.uQtQtQtQtQtQt",
+"QtQtQtQtQt.e.w.w.w.eQt.l.R.U.w.w.w.F#i#d#d#d#d#d#e#a#b#b#a.U.w.w.w.w.w.w.w.w.w.Q.F.#QtQtQtQtQtQt",
+"QtQtQtQtQt.e.w.w.w.eQtQt.2.Q.w.w.P.L#d#d#d#d#d#d#e.T.U.U.T.5.w.w.w.w.w.w.w.w.w.w.0.1QtQtQtQtQtQt",
+"QtQtQtQtQt.e.w.w.w.5.bQt.f.g.3.w.Q#e#d#d#d#d#d#d#l.Q.w.w.w.w.F.R.3.U.U.U.U.0.w.w.w.F.fQtQtQtQtQt",
+"QtQtQtQtQt.e.w.w.w.U.e.aQt.#.g.w.Q#e#d#d#d#d#d#d.R.U.w.w.w.w.w.U.Q.Q.Q.Q.9.Q.w.w.w.P.eQtQtQtQtQt",
+"QtQtQtQtQt.e.M.w.w##.T.#QtQt.e.F#s#q#d#d#d#d#d#n.F.w.w.w.w.w.w.w.w.w.w.w.U.R.X.w.w.w.eQtQtQtQtQt",
+"QtQtQtQtQtQt.N.Q.w.w.w.F.fQtQt#j#i#d#d#d#d#d#d#h.w.w.w.w.w.w.w.w.w.w.w.w.w.Q.3.w.w.w.eQtQtQtQtQt",
+"QtQtQtQtQtQt.#.F.0.w.w.P.g.#Qt#g#e#d#d#d#d#d#d#h.w.w.w.w.w.w.w.w.w.w.w.w.w.U.R.P.w.w.g.#QtQtQtQt",
+"QtQtQtQtQtQt.u.t.U.w.w.w.3.bQt.2#g#h#d#d#d#d#i#j.F.F.X.w.w.w.w.w.w.w.w.w.w.w.W.F.w.w.3.bQtQtQtQt",
+"QtQtQtQtQtQtQt.l#r.w.w.w.X.R.2QtQt.I.N#f#e#l.g.fQt.l.e.e.e.e.h.h.h.W.w.w.w.w.w.5.Q.w.U.t.uQtQtQt",
+"QtQtQtQtQtQtQtQt.e.P.w.w.w.U.R.b.b.a.a.b.b.b.#QtQtQtQtQtQtQt.b.b.b.R.U.w.w.w.w.U.F.0.0.F.#QtQtQt",
+"QtQtQtQtQtQtQtQt.f.L.F.X.w.w.W.U.T.NQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.2.R.X.w.w.w##.T.U.w.Q.#QtQtQt",
+"QtQtQtQtQtQtQtQtQtQt.b.3.w.w.w.w.w.M.5.t.uQtQtQtQtQtQtQtQtQtQtQtQtQt.l#r.w.w.w.w.Q.3.w.Q.2QtQtQt",
+"QtQtQtQtQtQtQtQtQtQt.#.g.w.w.w.w.w.w.0.F.#QtQtQtQtQtQtQtQtQtQtQtQtQtQt.e.w.w.w.w.U.R.w.U.R.b.#Qt",
+"QtQtQtQtQtQtQtQtQtQtQt.f.F.P.w.w.w.w.X.R.#QtQtQtQtQtQtQtQtQtQtQtQtQtQt.e.M.w.w.w.w.F.w.w.W.3.g.f",
+"QtQtQtQtQtQtQtQtQtQtQtQt.f.e.e.e.e.e.e.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.B.0.w.w.w.M.B.U.U.w.Q.#",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.t.Q.w.w.w.w.Q.Q.R.w.Q.#",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.Q.w.w.w.w.w.w.F.w.Q.#",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.T##.w.w.w.w.Q.N.e.e.f",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.a.e.9.Q.Q.Q.Q.F.#QtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.a.#.#.#.#.#.#.uQtQtQt"};
+
+static const char* const picture_icon_data[] = { 
+"48 48 1413 2",
+"pn c #0d1307",
+"g3 c #0d182a",
+"gv c #10192b",
+"g4 c #121a2c",
+"gw c #121a2e",
+"aY c #121f35",
+"fZ c #131b2e",
+"f0 c #151d30",
+"oG c #161d0d",
+"bc c #162035",
+"dM c #162737",
+"dy c #162738",
+"p5 c #172012",
+"g5 c #181f32",
+"gx c #182033",
+"bb c #18273a",
+"f1 c #192335",
+"dz c #19263a",
+"aJ c #19263e",
+"aX c #19273b",
+"dd c #19293a",
+"dN c #1a263a",
+"de c #1a273c",
+"po c #1b2110",
+"fA c #1b2739",
+"pq c #1c2317",
+"fB c #1c283a",
+"pp c #1e2419",
+"oH c #212416",
+"oK c #212717",
+"t7 c #212c10",
+"p6 c #222a1a",
+"fC c #242e42",
+"dO c #243149",
+"oJ c #252a1f",
+"tm c #253012",
+"aI c #253a4e",
+"t6 c #262f14",
+"g2 c #263640",
+"dA c #27324c",
+"bd c #273251",
+"tw c #27330b",
+"pr c #28301e",
+"p7 c #28331f",
+"aZ c #283752",
+"tu c #293014",
+"tl c #293319",
+"t4 c #293413",
+"tt c #293415",
+"oI c #2a2d22",
+"n0 c #2a2e21",
+"tn c #2a3217",
+"sO c #2a330d",
+"sF c #2a341a",
+"tk c #2a3517",
+"q5 c #2a3619",
+"df c #2a3652",
+"r6 c #2a371c",
+"c2 c #2a3d4f",
+"sC c #2b331b",
+"t3 c #2b3419",
+"sN c #2b3519",
+"sp c #2c3318",
+"sL c #2c3518",
+"ts c #2c3617",
+"gu c #2c3d47",
+"uc c #2d3017",
+"n1 c #2d3220",
+"rp c #2d3512",
+"n8 c #2d3518",
+"sG c #2d3619",
+"t5 c #2d361a",
+"sM c #2d381c",
+"u. c #2d391c",
+"rm c #2d3b1e",
+"c3 c #2d3c4f",
+"px c #2e341b",
+"jk c #2e343f",
+"u# c #2e3618",
+"rP c #2e371a",
+"sP c #2e3811",
+"q7 c #2e381e",
+"rL c #2e3a1c",
+"qF c #2e3d20",
+"nZ c #2f3227",
+"tv c #2f341a",
+"pw c #2f371a",
+"sD c #2f371e",
+"rO c #2f381c",
+"t9 c #2f391a",
+"tj c #2f391b",
+"rS c #2f3a1e",
+"r9 c #303717",
+"oL c #303723",
+"sv c #30381a",
+"su c #30381d",
+"q4 c #30391c",
+"sE c #30391d",
+"ti c #303920",
+"tx c #303a12",
+"r7 c #303a1d",
+"qm c #303a1f",
+"qo c #303a20",
+"qG c #303a23",
+"rf c #303b1f",
+"rg c #303b21",
+"rX c #303b22",
+"pY c #303d24",
+"te c #31381c",
+"na c #313824",
+"o. c #31391d",
+"rY c #31391e",
+"q8 c #31391f",
+"p8 c #313922",
+"r0 c #313a1e",
+"rZ c #313a1f",
+"pF c #313a20",
+"rM c #313b1c",
+"pD c #313b1d",
+"q6 c #313b1f",
+"o1 c #313c21",
+"qn c #313d21",
+"oT c #32371c",
+"sy c #32381e",
+"pa c #323821",
+"so c #32391a",
+"tq c #32391c",
+"td c #323a1c",
+"n7 c #323a1e",
+"oC c #323a21",
+"nW c #323a22",
+"pC c #323b1d",
+"qe c #323b20",
+"sQ c #323c15",
+"sz c #323c20",
+"r5 c #323c21",
+"pZ c #323c26",
+"oY c #333920",
+"s4 c #333a1c",
+"pL c #333a20",
+"p# c #333a21",
+"rN c #333b1b",
+"oR c #333b1e",
+"oX c #333b20",
+"tY c #333c1f",
+"sq c #333c20",
+"rn c #333c22",
+"pc c #333c25",
+"nX c #333d1e",
+"rW c #333e22",
+"fY c #334450",
+"n9 c #343920",
+"s. c #343b16",
+"tX c #343b1a",
+"t2 c #343b1f",
+"pu c #343b21",
+"no c #343b23",
+"pM c #343c1e",
+"oS c #343c1f",
+"r. c #343c20",
+"ql c #343e21",
+"qk c #344022",
+"jm c #35373e",
+"nb c #353a25",
+"pb c #353b22",
+"tW c #353c1c",
+"od c #353c21",
+"o# c #353c22",
+"qr c #353c24",
+"pE c #353d20",
+"qv c #353d21",
+"oc c #353d22",
+"oa c #353d24",
+"nu c #353d28",
+"qD c #353e22",
+"rh c #353e23",
+"sB c #353e24",
+"nV c #353e25",
+"qw c #353e26",
+"sA c #353f20",
+"p4 c #353f27",
+"ty c #354016",
+"tr c #354022",
+"pW c #354028",
+"os c #363a2c",
+"sw c #363b20",
+"oe c #363b23",
+"oP c #363b24",
+"tf c #363c20",
+"pN c #363c21",
+"nt c #363c25",
+"nm c #363c26",
+"nn c #363c27",
+"s5 c #363d1d",
+"tc c #363d1f",
+"tp c #363d21",
+"pv c #363d22",
+"o8 c #363d23",
+"o7 c #363d26",
+"rQ c #363e23",
+"np c #363e28",
+"o0 c #363f25",
+"q9 c #364024",
+"q3 c #364121",
+"qx c #364126",
+"pX c #364127",
+"qA c #364223",
+"qE c #364324",
+"ne c #37392f",
+"jl c #37393f",
+"ns c #373b28",
+"nf c #373b30",
+"nr c #373c27",
+"nY c #373c28",
+"ou c #373c2e",
+"pJ c #373d27",
+"oo c #373d2e",
+"sx c #373e1f",
+"ta c #373e21",
+"o4 c #373e26",
+"g6 c #373e5b",
+"rH c #373f1e",
+"o9 c #373f24",
+"p. c #373f25",
+"o6 c #373f26",
+"qs c #373f27",
+"q. c #373f29",
+"o3 c #374023",
+"sI c #374120",
+"r# c #374125",
+"nU c #374426",
+"jp c #383b40",
+"ok c #383c2c",
+"nI c #383c3a",
+"n6 c #383d25",
+"qp c #383d26",
+"o5 c #383d28",
+"nq c #383d29",
+"tg c #383e22",
+"rF c #383f1f",
+"sK c #383f21",
+"tb c #383f22",
+"oF c #383f24",
+"oZ c #383f26",
+"ob c #383f27",
+"qj c #384020",
+"r1 c #384022",
+"oW c #384025",
+"py c #384029",
+"pA c #384123",
+"p0 c #384125",
+"qq c #384127",
+"oV c #384128",
+"st c #384221",
+"pI c #384225",
+"pS c #384226",
+"ph c #38422c",
+"bw c #38455c",
+"bv c #384c62",
+"of c #393e27",
+"op c #393e2c",
+"qf c #393f1f",
+"kV c #393f3d",
+"ua c #394021",
+"pe c #394029",
+"s# c #39411d",
+"q2 c #394120",
+"tZ c #394125",
+"ro c #394127",
+"ri c #394222",
+"qi c #394223",
+"rd c #394225",
+"qz c #394226",
+"qI c #394227",
+"re c #39422a",
+"qu c #394324",
+"jo c #3a3a40",
+"hV c #3a3d43",
+"sJ c #3a3f24",
+"pP c #3a3f25",
+"nv c #3a3f2d",
+"tU c #3a4020",
+"pQ c #3a4024",
+"oQ c #3a4027",
+"qd c #3a4121",
+"s8 c #3a4124",
+"qh c #3a4125",
+"pK c #3a4127",
+"tV c #3a4221",
+"pB c #3a4225",
+"n5 c #3a422a",
+"qH c #3a4326",
+"qt c #3a4329",
+"pT c #3a4626",
+"nT c #3a4628",
+"ot c #3b3b2c",
+"iE c #3b3e43",
+"n2 c #3b3f2e",
+"mp c #3b3f30",
+"or c #3b402d",
+"oq c #3b402e",
+"on c #3b402f",
+"mT c #3b4037",
+"hU c #3b4045",
+"pR c #3b4122",
+"qy c #3b4125",
+"pG c #3b4127",
+"o2 c #3b4228",
+"og c #3b4229",
+"oj c #3b422d",
+"rJ c #3b4321",
+"rR c #3b4325",
+"ss c #3b4327",
+"t. c #3b4426",
+"pf c #3b442f",
+"ub c #3c3d22",
+"nD c #3c3d3a",
+"nF c #3c3e3a",
+"kZ c #3c3e42",
+"ov c #3c3f32",
+"nM c #3c3f3c",
+"m0 c #3c3f40",
+"n3 c #3c402e",
+"mN c #3c412d",
+"nw c #3c412f",
+"nx c #3c4131",
+"m2 c #3c413e",
+"qg c #3c4222",
+"nl c #3c422c",
+"mE c #3c422e",
+"mI c #3c422f",
+"mR c #3c4236",
+"qZ c #3c431e",
+"th c #3c4323",
+"pd c #3c432b",
+"rq c #3c441f",
+"pH c #3c4429",
+"pO c #3c442a",
+"oU c #3c442b",
+"oh c #3c442c",
+"pi c #3c4430",
+"j6 c #3c4444",
+"sr c #3c4523",
+"pV c #3c452b",
+"pj c #3c452f",
+"mG c #3c4530",
+"q0 c #3c4623",
+"rj c #3c4626",
+"nC c #3d3d39",
+"nH c #3d3f3e",
+"ng c #3d4036",
+"mB c #3d412c",
+"mr c #3d412f",
+"lR c #3d4138",
+"t0 c #3d4223",
+"mO c #3d422f",
+"oM c #3d432c",
+"mJ c #3d432f",
+"ny c #3d4334",
+"kW c #3d433f",
+"n4 c #3d442b",
+"oO c #3d442c",
+"oA c #3d4434",
+"rE c #3d451f",
+"rT c #3d4528",
+"oi c #3d452e",
+"q1 c #3d4620",
+"rK c #3d4727",
+"r8 c #3d4729",
+"nL c #3e3e3d",
+"nK c #3e3f3d",
+"jn c #3e3f43",
+"om c #3e4030",
+"mv c #3e403c",
+"nR c #3e413a",
+"mU c #3e413d",
+"mH c #3e422d",
+"mX c #3e423e",
+"kc c #3e4245",
+"sH c #3e4324",
+"nk c #3e432d",
+"ni c #3e4331",
+"mS c #3e4339",
+"mY c #3e433e",
+"sn c #3e4424",
+"mL c #3e442e",
+"qV c #3e452a",
+"qc c #3e452b",
+"tz c #3e4621",
+"ra c #3e4627",
+"pz c #3e462c",
+"pg c #3e4632",
+"lZ c #3e4634",
+"tM c #3e4722",
+"qC c #3e472b",
+"n# c #3e482b",
+"nJ c #3f3e3f",
+"mZ c #3f403f",
+"nz c #3f413a",
+"nP c #3f4141",
+"m3 c #3f4142",
+"ow c #3f4234",
+"lF c #3f4239",
+"nB c #3f423e",
+"mV c #3f423f",
+"m6 c #3f4243",
+"iG c #3f4249",
+"m1 c #3f4341",
+"s6 c #3f4423",
+"t8 c #3f4427",
+"hX c #3f4445",
+"hW c #3f4449",
+"oD c #3f452c",
+"mF c #3f4531",
+"mQ c #3f4534",
+"oB c #3f4535",
+"oy c #3f453a",
+"rG c #3f4622",
+"mK c #3f4633",
+"qY c #3f4720",
+"rU c #3f4929",
+"l1 c #3f4932",
+"nA c #404040",
+"m8 c #40423c",
+"hY c #404244",
+"k0 c #40424a",
+"ms c #404331",
+"mo c #40433e",
+"m4 c #404342",
+"nj c #40442d",
+"ol c #40442f",
+"mC c #404431",
+"m5 c #404441",
+"jU c #404442",
+"ke c #404447",
+"iF c #404448",
+"mP c #404532",
+"s9 c #404627",
+"mM c #40462f",
+"mn c #404638",
+"t# c #404727",
+"qX c #404823",
+"pU c #404924",
+"mf c #404939",
+"r4 c #404b2e",
+"nG c #41423e",
+"nE c #414240",
+"m7 c #414242",
+"mw c #41433f",
+"mW c #414340",
+"nO c #414341",
+"kX c #414342",
+"kY c #414345",
+"mq c #414435",
+"nQ c #414443",
+"lG c #41453e",
+"h1 c #414545",
+"t1 c #414627",
+"rV c #414628",
+"tR c #414727",
+"s7 c #414729",
+"p9 c #41472f",
+"me c #41473a",
+"qU c #41482d",
+"rI c #414925",
+"r2 c #414927",
+"gy c #414968",
+"rD c #414a1f",
+"qW c #414a26",
+"c4 c #414f6b",
+"fz c #415560",
+"tP c #424629",
+"tS c #42462b",
+"ox c #424639",
+"rc c #424829",
+"lU c #424837",
+"oz c #424838",
+"j7 c #424847",
+"tO c #424929",
+"tQ c #42492b",
+"oN c #424931",
+"lX c #424934",
+"pk c #424b2a",
+"lW c #424b37",
+"l0 c #424c37",
+"l3 c #424d32",
+"l2 c #424d33",
+"hZ c #434443",
+"lT c #43453b",
+"nN c #43453f",
+"h2 c #434647",
+"to c #43472a",
+"h0 c #434747",
+"h3 c #434749",
+"mA c #434836",
+"mm c #434839",
+"ix c #434953",
+"q# c #434a31",
+"lY c #434a36",
+"kb c #434a4e",
+"sR c #434b30",
+"qb c #434b32",
+"l4 c #434b35",
+"mg c #434b3a",
+"n. c #434c31",
+"l8 c #434d39",
+"aa c #43566c",
+"nS c #444844",
+"md c #444a38",
+"tN c #444b28",
+"qa c #444b31",
+"pt c #444b33",
+"mh c #444b3a",
+"rl c #444c2e",
+"ld c #44523f",
+"k5 c #45454a",
+"kf c #45454c",
+"lQ c #45473f",
+"lS c #454741",
+"m9 c #454846",
+"kd c #45484d",
+"mD c #454936",
+"nd c #45493b",
+"mi c #454a3a",
+"qB c #454b2c",
+"tT c #454b2d",
+"mk c #454b37",
+"ml c #454b38",
+"l9 c #454b39",
+"nc c #454c32",
+"mj c #454c39",
+"mc c #454d3c",
+"l6 c #454f38",
+"ly c #455239",
+"lf c #45543f",
+"aK c #45587b",
+"lI c #464644",
+"k3 c #46474e",
+"mz c #46483b",
+"nh c #46493d",
+"ma c #464d3f",
+"tL c #464e2b",
+"rC c #464f28",
+"rb c #464f2b",
+"sj c #464f2c",
+"rB c #464f2d",
+"kE c #464f45",
+"qQ c #465031",
+"lC c #46533b",
+"lx c #465439",
+"lk c #465541",
+"lJ c #47484a",
+"iC c #47484e",
+"ps c #474c35",
+"mb c #474e3f",
+"pl c #475030",
+"qP c #475032",
+"p1 c #475037",
+"l5 c #47513c",
+"lV c #47513d",
+"l7 c #47523a",
+"lr c #47543b",
+"li c #47543f",
+"ls c #47553a",
+"lq c #47563b",
+"lD c #47563c",
+"lw c #47583d",
+"aW c #476578",
+"lM c #48484b",
+"mt c #484a40",
+"k6 c #484c4b",
+"m. c #484d41",
+"m# c #484e43",
+"oE c #484f35",
+"hS c #485155",
+"hT c #485157",
+"kF c #485247",
+"lu c #48553c",
+"lg c #485540",
+"le c #485542",
+"lj c #485641",
+"ll c #485741",
+"kP c #485843",
+"aq c #486077",
+"lH c #494944",
+"lK c #494b4d",
+"kj c #494c4c",
+"iD c #494d52",
+"sk c #49502b",
+"qR c #495132",
+"si c #49522b",
+"r3 c #495231",
+"lc c #495244",
+"kG c #495248",
+"lA c #49553c",
+"lp c #49553d",
+"ln c #495540",
+"lh c #495541",
+"lz c #49563c",
+"lo c #495641",
+"lm c #49573f",
+"lv c #49583e",
+"lL c #4a4a4f",
+"mu c #4a4d46",
+"j8 c #4a4e4a",
+"iJ c #4a4f56",
+"pm c #4a5434",
+"lB c #4a563a",
+"lt c #4a583c",
+"lE c #4a583e",
+"k4 c #4b4b4f",
+"lP c #4b4c47",
+"iI c #4b4e56",
+"rk c #4b5532",
+"qS c #4b5536",
+"f2 c #4b5575",
+"lb c #4b5648",
+"my c #4c4f48",
+"k2 c #4c5059",
+"jT c #4c514d",
+"hm c #4c5156",
+"sm c #4c532e",
+"j5 c #4c5452",
+"hP c #4c545d",
+"j9 c #4c554a",
+"kS c #4c5a44",
+"lN c #4d4d50",
+"k1 c #4d4f57",
+"kg c #4d505a",
+"sl c #4d532c",
+"l. c #4d534a",
+"kz c #4d564b",
+"kD c #4d584d",
+"kO c #4d5b47",
+"bx c #4d5c7f",
+"k7 c #4e5152",
+"tA c #4e5439",
+"k. c #4e544c",
+"ki c #4e545a",
+"iy c #4e5661",
+"k8 c #4f5052",
+"iB c #4f5157",
+"iH c #4f5357",
+"kk c #4f5359",
+"rA c #4f5734",
+"ky c #4f5751",
+"kH c #4f5b50",
+"kT c #4f5c47",
+"kQ c #4f5c48",
+"kN c #4f5d47",
+"mx c #504f4c",
+"lO c #505152",
+"s3 c #505534",
+"k# c #50574d",
+"kx c #505851",
+"qT c #505938",
+"kU c #506049",
+"jV c #515456",
+"jj c #515b66",
+"kR c #515e4c",
+"fd c #516478",
+"hR c #52595e",
+"qO c #525a3b",
+"rx c #525b35",
+"fc c #526378",
+"k9 c #535354",
+"h6 c #53565a",
+"hn c #53565c",
+"h4 c #53575a",
+"s0 c #535937",
+"ho c #535a5c",
+"jy c #535a65",
+"rz c #535c39",
+"la c #535d50",
+"l# c #535e50",
+"kM c #536150",
+"kC c #536259",
+"hz c #536573",
+"d0 c #536679",
+"jP c #545a5f",
+"jW c #545c61",
+"p2 c #55593f",
+"j4 c #556065",
+"hy c #556a74",
+"qJ c #565943",
+"h5 c #565962",
+"s1 c #565b37",
+"hs c #565b5c",
+"ry c #56603d",
+"kK c #566455",
+"ba c #567289",
+"kh c #575e69",
+"kB c #57615b",
+"kA c #576258",
+"jr c #576269",
+"kI c #576459",
+"d1 c #576d7f",
+"ji c #58616e",
+"fe c #586b7f",
+"rr c #595d40",
+"p3 c #595f45",
+"ka c #596167",
+"jz c #596268",
+"hA c #596c7c",
+"iu c #5a5c61",
+"is c #5a5e67",
+"iw c #5a606a",
+"sh c #5a6139",
+"jv c #5a626f",
+"iR c #5a6674",
+"kJ c #5a685b",
+"kL c #5a695b",
+"dL c #5a7380",
+"iv c #5b5f66",
+"tK c #5b613e",
+"iA c #5b626d",
+"kw c #5b665f",
+"fD c #5b6989",
+"d2 c #5b6e82",
+"hl c #5c6064",
+"hr c #5c6065",
+"it c #5d5f65",
+"jx c #5d6975",
+"hp c #5e6564",
+"hQ c #5e6670",
+"sa c #5f5e51",
+"js c #5f6677",
+"hB c #5f717f",
+"dx c #5f7a87",
+"s2 c #60623d",
+"hk c #60676c",
+"cK c #60778a",
+"a# c #608195",
+"ap c #608499",
+"kn c #615c60",
+"jA c #616a74",
+"jw c #616b7a",
+"jS c #62696d",
+"iQ c #627380",
+"ko c #635d61",
+"kp c #64696a",
+"iq c #646b77",
+"ir c #646c75",
+"iS c #64717f",
+"tB c #656755",
+"ib c #657788",
+"ia c #667a85",
+"dc c #66808e",
+"hj c #67707b",
+"jQ c #686f76",
+"hh c #686f77",
+"cL c #687e91",
+"tJ c #696f4e",
+"kv c #697672",
+"km c #6a6b6f",
+"qN c #6a6c56",
+"rw c #6a6d50",
+"j. c #6a6d6e",
+"hq c #6a7179",
+"jO c #6a727d",
+"j3 c #6a767b",
+"ey c #6a7f91",
+"ek c #6a8092",
+"cl c #6a8194",
+"hi c #6c7680",
+"jh c #6d7a88",
+"ic c #6d8091",
+"fb c #6d8593",
+"sS c #6e6d61",
+"iz c #6e7883",
+"hC c #6e7d93",
+"eQ c #6e8496",
+"sZ c #6f7558",
+"jR c #6f767d",
+"kl c #6f7c87",
+"a0 c #6f84ad",
+"qL c #707060",
+"je c #707e8e",
+"bO c #71879d",
+"#W c #718aa9",
+"j0 c #72808f",
+"ku c #72817f",
+"bN c #72889c",
+"el c #72899b",
+"cm c #72899e",
+"b4 c #728a9e",
+"qM c #737364",
+"hO c #737e8b",
+"iT c #738696",
+"eR c #73889b",
+"b5 c #73899f",
+"dZ c #738d9c",
+"i9 c #74757a",
+"sg c #74795a",
+"jd c #747f8b",
+"i5 c #747f8d",
+"ju c #74838c",
+"id c #748899",
+"c1 c #748f9f",
+"jX c #75828c",
+"jN c #77818e",
+"ez c #778fa3",
+"eS c #788ea1",
+"em c #788fa3",
+"cM c #798fa9",
+"qK c #7a7a69",
+"aH c #7aa0b8",
+"hg c #7b8493",
+"kt c #7b8789",
+"jB c #7b8c9d",
+"ex c #7c96a3",
+"be c #7d91bd",
+"jc c #7e8a94",
+"i8 c #7f7e88",
+"iU c #7f92a5",
+"bP c #7f95b4",
+"jb c #808490",
+"ej c #8099a6",
+"ab c #809bc2",
+"bu c #809eb5",
+"rs c #817c70",
+"jE c #81838e",
+"i7 c #818794",
+"j2 c #818b97",
+"ie c #8195a9",
+"cn c #8197b3",
+"tC c #827e73",
+"in c #838d9b",
+"jZ c #838f9c",
+"eP c #8399a7",
+"b6 c #8399b7",
+"ar c #83a1c9",
+"i6 c #848f9e",
+"jY c #84949f",
+"kq c #858e97",
+"ks c #87949a",
+"ff c #8799b6",
+"jg c #8894a7",
+"jF c #898ca3",
+"ja c #8c8b95",
+"j# c #8d8b94",
+"dP c #8d9ec2",
+"cJ c #8daabb",
+"i4 c #8e9dad",
+"sT c #8f887e",
+"io c #8f9bac",
+"ip c #909caa",
+"jt c #919cae",
+"j1 c #92a0ae",
+"ck c #92afc0",
+"tI c #939581",
+"rv c #949280",
+"dB c #95a7c9",
+"#V c #95b7d1",
+"sY c #989884",
+"jC c #989eb0",
+"kr c #98a3ac",
+"d3 c #99accc",
+"jq c #9aaab9",
+"sb c #9b948d",
+"bM c #9bb6cd",
+"dg c #9cadd0",
+"b3 c #9cb9cf",
+"eT c #9db2cc",
+"sU c #9e9690",
+"jM c #9eabb9",
+"aL c #9ebbe2",
+"aV c #9ebfde",
+"sf c #a09f8e",
+"jD c #a0a2b3",
+"eA c #a1b7d2",
+"jf c #a2b0c0",
+"gQ c #a3adba",
+"by c #a3bde1",
+"#X c #a3c0e4",
+"ao c #a3c9e6",
+"iP c #a4b5c3",
+"c5 c #a5b9d9",
+"g1 c #a5bac6",
+"en c #a5bbd5",
+"hN c #a6b4c5",
+"hf c #a7b3c5",
+"rt c #a8a197",
+"gt c #a8bcca",
+"b# c #a8c8e8",
+"Qt c #a8c9f3",
+"a. c #a8caea",
+".# c #a9caf4",
+".U c #a9cbf4",
+".V c #a9ccf4",
+"ru c #aaa59b",
+"im c #aab8c8",
+"fX c #aabfce",
+".T c #aac9f4",
+".a c #aacbf4",
+".8 c #aaccf4",
+"#m c #abcaf4",
+".B c #abcbf4",
+".9 c #abccf4",
+"#C c #abcdf4",
+"sc c #aca49e",
+"gW c #acb4c1",
+"#n c #acccf4",
+".C c #acccf5",
+".b c #accdf5",
+"gS c #adb4c2",
+"fy c #adc4d4",
+"#P c #adccf4",
+"#7 c #adcdf3",
+"#Q c #adcdf4",
+"#. c #adcdf5",
+"#U c #adcef1",
+"ak c #adcef3",
+"gR c #aeb5c4",
+"#o c #aecdf4",
+".d c #aecdf5",
+"aG c #aecef1",
+"#R c #aecef4",
+".W c #aecef5",
+"al c #aecff4",
+"tD c #afaaa5",
+"hx c #afc1cd",
+".D c #afccf5",
+".c c #afcdf5",
+"#8 c #afcef4",
+"#p c #afcef5",
+"aQ c #afcff3",
+"aR c #afd0f4",
+".X c #afd0f5",
+".f c #afd0f6",
+"#S c #afd1f5",
+"iY c #b0bcd2",
+"bQ c #b0c9ea",
+"aC c #b0cef4",
+"#D c #b0cef5",
+"aD c #b0cff3",
+".e c #b0cff5",
+"am c #b0d0f4",
+"## c #b0d0f6",
+"an c #b0d1f4",
+"#9 c #b0d1f5",
+"#q c #b0d1f6",
+"sd c #b1aaa4",
+"gV c #b1b8c8",
+"#F c #b1cff3",
+"aE c #b1cff4",
+"a7 c #b1d0f3",
+"aS c #b1d0f4",
+"#T c #b1d0f5",
+".E c #b1d0f6",
+"aF c #b1d1f5",
+"tH c #b2ada7",
+"gP c #b2becf",
+"iX c #b2c0cd",
+"cN c #b2c9e8",
+"b7 c #b2cbec",
+"ac c #b2d0f5",
+".F c #b2d0f6",
+"a8 c #b2d1f4",
+"aU c #b2d1f5",
+".g c #b2d1f6",
+".h c #b2d2f7",
+".Y c #b2d2f8",
+"sX c #b3b0a7",
+"i# c #b3c4d1",
+"co c #b3cbeb",
+"aT c #b3d0f4",
+"#E c #b3d1f5",
+"bn c #b3d2f3",
+"b. c #b3d2f5",
+"#r c #b3d2f7",
+"se c #b4afa7",
+"a9 c #b4d1f5",
+"#Y c #b4d1f6",
+"bo c #b4d2f3",
+".i c #b4d2f8",
+".j c #b4d3f8",
+".k c #b4d3f9",
+"fa c #b5cdde",
+"bp c #b5d2f4",
+".G c #b5d2f8",
+"#G c #b5d3f7",
+".H c #b5d3f8",
+".l c #b5d3f9",
+".I c #b5d3fa",
+".0 c #b5d4f8",
+".1 c #b5d4f9",
+".o c #b5d4fa",
+".t c #b5d6fb",
+".u c #b5d6fc",
+"sV c #b6afab",
+"tE c #b6b0ab",
+"#a c #b6d2f8",
+".Z c #b6d3f8",
+".m c #b6d3fa",
+"bs c #b6d4f5",
+"#b c #b6d4f8",
+".n c #b6d4fa",
+"#H c #b6d5f8",
+"#c c #b6d5f9",
+".p c #b6d5fb",
+".s c #b6d6fb",
+"dY c #b7d1e6",
+"dK c #b7d2e7",
+"bq c #b7d2f5",
+"bG c #b7d3f3",
+"bt c #b7d3f4",
+"#Z c #b7d4f8",
+"ad c #b7d4f9",
+"aM c #b7d5f8",
+"#s c #b7d5f9",
+".q c #b7d5fb",
+".K c #b7d5fc",
+".r c #b7d6fb",
+".3 c #b7d7fb",
+"sW c #b8b0ac",
+"bH c #b8d4f4",
+"br c #b8d4f5",
+"a1 c #b8d4f8",
+"bf c #b8d5f7",
+"a2 c #b8d5f8",
+".2 c #b8d5fa",
+".J c #b8d5fb",
+"a3 c #b8d6f8",
+".L c #b8d6fb",
+".v c #b8d6fc",
+"tF c #b9b2ae",
+"tG c #b9b3b0",
+"he c #b9c8dc",
+"ew c #b9d2e6",
+"dw c #b9d4ea",
+"bY c #b9d5f3",
+"bI c #b9d5f5",
+"#0 c #b9d5f9",
+"#d c #b9d5fa",
+"bZ c #b9d6f4",
+"bg c #b9d6f7",
+"as c #b9d6f8",
+"#I c #b9d6f9",
+"#e c #b9d6fa",
+"#g c #b9d6fb",
+".w c #b9d6fc",
+".S c #b9d6fd",
+"bz c #b9d7f7",
+"ae c #b9d7f8",
+"#f c #b9d7fa",
+"#i c #b9d7fb",
+".y c #b9d7fc",
+"#v c #b9d8fb",
+"gT c #bac2d1",
+"jL c #bac6d4",
+"eO c #bad1e4",
+"ei c #bad3e7",
+"b0 c #bad6f4",
+"bh c #bad6f8",
+"#1 c #bad6f9",
+"#t c #bad6fa",
+".4 c #bad6fb",
+".R c #bad6fc",
+"at c #bad7f8",
+"a4 c #bad7f9",
+"#u c #bad7fa",
+"#h c #bad7fb",
+".z c #bad7fc",
+".x c #bad7fd",
+"af c #bad8f9",
+"#J c #bad8fb",
+".A c #bad8fc",
+".P c #bad8fd",
+"bL c #bbd6f5",
+"#2 c #bbd6fa",
+"#K c #bbd6fc",
+"ch c #bbd7f4",
+"bA c #bbd7f7",
+"au c #bbd7f9",
+"ag c #bbd7fa",
+"#3 c #bbd7fb",
+".Q c #bbd7fc",
+".O c #bbd7fd",
+"av c #bbd8fa",
+"#4 c #bbd8fb",
+".M c #bbd8fc",
+".5 c #bbd8fd",
+"gO c #bccadd",
+"db c #bcd6ed",
+"bK c #bcd6f5",
+"b2 c #bcd7f4",
+"b1 c #bcd7f5",
+"aN c #bcd7f9",
+"#y c #bcd7fc",
+"#z c #bcd7fd",
+"cG c #bcd8f4",
+"ci c #bcd8f5",
+"bB c #bcd8f8",
+"a5 c #bcd8f9",
+"aw c #bcd8fa",
+"#L c #bcd8fb",
+".N c #bcd8fc",
+".6 c #bcd8fd",
+"c0 c #bcd9f0",
+"aB c #bcd9fc",
+"bJ c #bdd7f5",
+"bR c #bdd7f7",
+".7 c #bdd7fc",
+"cj c #bdd8f4",
+"bC c #bdd8f8",
+"a6 c #bdd8f9",
+"ax c #bdd8fa",
+"#O c #bdd8fb",
+"#j c #bdd8fc",
+"#l c #bdd8fd",
+"cI c #bdd9f3",
+"aP c #bdd9fa",
+"#w c #bdd9fb",
+"#k c #bdd9fc",
+"#B c #bdd9fd",
+"i3 c #becddf",
+"cF c #bed7f4",
+"cH c #bed8f5",
+"bS c #bed8f7",
+"bi c #bed8f9",
+"ah c #bed8fa",
+"#M c #bed8fb",
+"#A c #bed8fc",
+"cY c #bed9f4",
+"bT c #bed9f8",
+"bm c #bed9f9",
+"ai c #bed9fa",
+"#x c #bed9fb",
+"cX c #bfd8f4",
+"ay c #bfd8fa",
+"az c #bfd8fb",
+"#N c #bfd8fc",
+"ee c #bfd9f1",
+"cZ c #bfd9f4",
+"b8 c #bfd9f6",
+"bD c #bfd9f8",
+"bj c #bfd9f9",
+"aj c #bfd9fa",
+"#5 c #bfd9fb",
+"et c #bfdaf0",
+"bX c #bfdafa",
+"cr c #bfdbf8",
+"bl c #c0d8f9",
+"aA c #c0d8fa",
+"ds c #c0d9f2",
+"d. c #c0d9f3",
+"bk c #c0d9f9",
+"aO c #c0d9fa",
+"#6 c #c0d9fb",
+"e8 c #c0daef",
+"eK c #c0daf0",
+"ef c #c0daf1",
+"cp c #c0daf6",
+"cq c #c0daf7",
+"ca c #c0daf8",
+"bE c #c0daf9",
+"bF c #c0dafa",
+"c# c #c0dbf8",
+"cf c #c0dbfa",
+"cE c #c0dcfa",
+"iL c #c1d0e3",
+"hd c #c1d0e4",
+"iO c #c1d2e4",
+"dX c #c1d9f1",
+"dt c #c1d9f2",
+"da c #c1d9f3",
+"b9 c #c1d9f7",
+"bU c #c1d9fa",
+"eg c #c1daf1",
+"dv c #c1daf2",
+"d# c #c1daf3",
+"cO c #c1daf7",
+"c. c #c1daf8",
+"bV c #c1daf9",
+"bW c #c1dafa",
+"cP c #c1dbf7",
+"cQ c #c1dbf8",
+"cs c #c1dbf9",
+"cb c #c1dbfa",
+"cD c #c1dcfa",
+"cC c #c1ddfa",
+"jK c #c2cfdf",
+"ft c #c2daee",
+"eL c #c2daef",
+"eh c #c2daf1",
+"du c #c2daf2",
+"cg c #c2dafa",
+"dh c #c2dbf6",
+"c7 c #c2dbf7",
+"cc c #c2dbf9",
+"cd c #c2dbfa",
+"di c #c2dcf6",
+"cR c #c2dcf8",
+"cS c #c2dcf9",
+"cx c #c2dcfa",
+"ct c #c2ddf8",
+"cW c #c2ddf9",
+"cT c #c2ddfa",
+"dJ c #c2def8",
+"jG c #c3cde0",
+"hc c #c3d2e5",
+"fu c #c3daef",
+"eu c #c3daf1",
+"c6 c #c3daf5",
+"e9 c #c3dbef",
+"f. c #c3dbf0",
+"dC c #c3dbf6",
+"cw c #c3dbf9",
+"ce c #c3dbfa",
+"dj c #c3dcf6",
+"cu c #c3dcf8",
+"cv c #c3dcf9",
+"cy c #c3dcfa",
+"c9 c #c3ddf8",
+"cV c #c3ddf9",
+"cB c #c3ddfa",
+"dW c #c3def8",
+"dq c #c3def9",
+"cU c #c3defa",
+"jJ c #c4d1e1",
+"hK c #c4d2e5",
+"hM c #c4d3e5",
+"hb c #c4d3e7",
+"fv c #c4daef",
+"eM c #c4daf0",
+"ev c #c4daf1",
+"dQ c #c4dbf5",
+"dk c #c4dbf7",
+"eB c #c4dcf4",
+"dR c #c4dcf5",
+"dD c #c4dcf6",
+"c8 c #c4dcf8",
+"dI c #c4ddf8",
+"dp c #c4ddf9",
+"cz c #c4ddfa",
+"ec c #c4def8",
+"dr c #c4def9",
+"fR c #c5daed",
+"eN c #c5daf1",
+"fS c #c5dbee",
+"fw c #c5dbef",
+"f# c #c5dbf0",
+"dE c #c5dbf7",
+"eo c #c5dcf4",
+"d4 c #c5dcf5",
+"dS c #c5dcf6",
+"dl c #c5dcf7",
+"d5 c #c5ddf5",
+"dT c #c5ddf6",
+"dF c #c5ddf7",
+"dm c #c5ddf8",
+"dH c #c5ddf9",
+"cA c #c5ddfa",
+"eb c #c5def7",
+"do c #c5def8",
+"iV c #c6d4e8",
+"hL c #c6d5e7",
+"fT c #c6dbee",
+"eC c #c6dbf4",
+"eD c #c6dcf4",
+"eU c #c6ddf2",
+"eW c #c6ddf4",
+"eE c #c6ddf5",
+"d6 c #c6ddf6",
+"dG c #c6ddf7",
+"dn c #c6ddf8",
+"ea c #c6def7",
+"e# c #c6def8",
+"gU c #c7cfe2",
+"iM c #c7d6e7",
+"iK c #c7d7e7",
+"gq c #c7daed",
+"gr c #c7dbed",
+"fV c #c7dbee",
+"fx c #c7dbef",
+"fE c #c7ddf1",
+"fF c #c7ddf2",
+"eV c #c7ddf3",
+"eX c #c7ddf4",
+"ep c #c7ddf5",
+"d7 c #c7ddf6",
+"dU c #c7ddf7",
+"dV c #c7ddf8",
+"d9 c #c7def6",
+"e. c #c7def7",
+"ed c #c7def8",
+"gN c #c8d6ea",
+"gY c #c8daec",
+"gp c #c8daed",
+"fU c #c8dbee",
+"fW c #c8dbef",
+"f3 c #c8ddf1",
+"fg c #c8ddf2",
+"fh c #c8ddf3",
+"eY c #c8ddf4",
+"eZ c #c8def5",
+"d8 c #c8def6",
+"eq c #c8def7",
+"jI c #c9d6e7",
+"iN c #c9d9e8",
+"h7 c #c9d9e9",
+"ht c #c9d9ea",
+"if c #c9d9ec",
+"gX c #c9daeb",
+"gZ c #c9daed",
+"g0 c #c9daee",
+"gs c #c9dbee",
+"gz c #c9ddf0",
+"f4 c #c9ddf1",
+"f6 c #c9ddf2",
+"fG c #c9ddf3",
+"fi c #c9ddf4",
+"fH c #c9def3",
+"fj c #c9def4",
+"fk c #c9def5",
+"es c #c9def6",
+"er c #c9def7",
+"h8 c #cad9e9",
+"hu c #cad9ea",
+"hv c #cadaeb",
+"hw c #cadaec",
+"hD c #cadaee",
+"g7 c #cadbf0",
+"gA c #caddf0",
+"f5 c #caddf1",
+"f7 c #caddf2",
+"f8 c #cadef2",
+"fI c #cadef3",
+"fl c #cadef4",
+"e0 c #cadef5",
+"eF c #cadef6",
+"gM c #cbd7eb",
+"jH c #cbd8e8",
+"h9 c #cbd9ea",
+"i. c #cbdaeb",
+"gB c #cbddf1",
+"gC c #cbddf2",
+"gD c #cbdef1",
+"f9 c #cbdef2",
+"fJ c #cbdef3",
+"fK c #cbdef4",
+"eH c #cbdef5",
+"eJ c #cbdef6",
+"e2 c #cbdff5",
+"eI c #cbdff6",
+"gL c #ccd6e9",
+"i2 c #ccdaeb",
+"g8 c #ccddf0",
+"gE c #ccdef2",
+"g. c #ccdef3",
+"e3 c #ccdef4",
+"e1 c #ccdef5",
+"e6 c #ccdff4",
+"e4 c #ccdff5",
+"eG c #ccdff6",
+"hJ c #cddced",
+"ig c #cddcee",
+"hE c #cdddee",
+"hF c #cdddef",
+"g9 c #cdddf0",
+"h. c #cdddf1",
+"h# c #cddef1",
+"g# c #cddef2",
+"gb c #cddef3",
+"fL c #cddef4",
+"fM c #cddff3",
+"fn c #cddff4",
+"e5 c #cddff5",
+"fo c #cde0f5",
+"iW c #cedbeb",
+"i1 c #cedcec",
+"ih c #cedced",
+"ii c #cedcee",
+"i0 c #cedded",
+"ik c #ceddee",
+"hG c #ceddef",
+"hH c #cedeef",
+"ha c #cedef1",
+"ga c #cedef2",
+"fm c #cedef4",
+"gc c #cedff3",
+"fp c #cedff4",
+"e7 c #cedff5",
+"iZ c #cfdcec",
+"ij c #cfddee",
+"il c #cfddef",
+"hI c #cfdeef",
+"gG c #cfdef1",
+"gF c #cfdef2",
+"gd c #cfdff2",
+"fq c #cfdff4",
+"gH c #d0dff1",
+"ge c #d0dff2",
+"gg c #d0dff3",
+"gh c #d1def2",
+"gI c #d1dff1",
+"gf c #d1dff2",
+"fN c #d1dff3",
+"fr c #d1e0f4",
+"gi c #d2def2",
+"gj c #d3dff2",
+"fO c #d3e0f3",
+"fs c #d3e1f4",
+"gJ c #d4dff1",
+"fQ c #d4dff3",
+"fP c #d4e0f3",
+"gK c #d5def0",
+"gl c #d6dff1",
+"gk c #d7dff1",
+"go c #d7e0f1",
+"gn c #d8e0f1",
+"gm c #dae0f1",
+"Qt.#.a.b.c.d.e.f.g.h.i.i.i.j.k.l.m.n.n.o.p.q.q.p.q.r.r.s.t.u.r.r.r.v.w.w.x.y.y.z.z.A.A.z.x.z.x.z",
+"Qt.#.B.C.D.d.e.E.F.h.i.G.G.j.H.l.I.o.n.n.q.q.J.q.K.r.r.s.s.p.q.L.L.v.y.y.z.z.A.M.M.N.O.x.P.Q.R.S",
+".T.U.V.C.d.W.X.E.F.Y.G.Z.Z.H.0.1.n.2.2.J.L.r.J.q.J.L.L.3.r.q.J.4.Q.y.z.z.y.x.5.N.6.6.7.7.6.N.Q.x",
+".#.8.9#.#..W####.E.h.G#a#b#c#c#d#d#e#e#f#g.4.4#g#h#i.y.A.Q.Q.M.M#j#j.N.M.A.5.N#k#k#l#k#k#j.5.Q.Q",
+"#m#n#n#o.c#p###q.g#r.i.j.0#c#s.2#t#u#f#f#g#h#i#v#h#h.z.M#w#x#j.N.N.N#y.Q.Q#z.N#A#A#B#k#j#l.6.6.N",
+".B#C#o#p#D.e.E.g#E#F#r#G.0#H#s#I#t#t#e#f#u#h#h#i#J#h#K.M#L#w#M#N#M#O#y.Q#y#y.N#j#l#l#l#l#l#j#l.M",
+"#P#Q#R.e.X#S#T#U#V#W#X#Y.Z#Z#s#0#1#2#t#f#i#3#h#3#4#J#J#L#O#w#w#5#6#O#j.M#L#y#y.Q.M#j.N.N.N.N.N.N",
+"#7#Q#8.e#T#9#Ta.a#aaabac#b#Zad#0aeafagag#4#4#4ah#x#L#O#M#M#xai#5ajah#O#L#L.N.N.Q.N#j.N.N#j.N.N#O",
+"#7akalam#T#Tanaoapaqarac#Z#Zadasatauavawawax#Layajahahazaz#waiaj#5aAay#w#j#j#j#L#L.N.NaB.N#j#j#O",
+"akaCaDaE#TaFaGaHaIaJaKaL#ZaMaMasauaNavawahahayahahaOaOajaOajaiai#5ajaiaPaP#x#M#O#w#w#M#w#O#w#M#M",
+"aQaRaSaTaUaFaVaWaXaYaZa0a1a2a3asa4a5a6a6ahaAahahayaOaOaOaOaOajaj#xaiai#xaPaPai#x#x#xajai#x#x#xaj",
+"a7a8a8#Ea9b.b#babbbcbdbebfbgbh#1aNbibjbkaOblbjbmajajaOajajaiajajaPaiaPaiaiaiajaO#6aOajajajai#5aj",
+"bnbobpbqbrbsbtbubvbwbxbybzbAbBaNbCbDbEbkbkajbjbmaiaiajbkajaOajajaiaiaiajajajaObFbFbFajaOaiaOaOaO",
+"bGbGbHbIbJbKbLbMbNbObPbQbRbSbDbmbTbDbEbEbEbFbEbEbUbFbFbVbWbWbXajajaObFbFbFaOaObXbXbFbFbUbUaOaObU",
+"bYbZb0bLb1bJb2b3b4b5b6b7b8b9c.c#cac.bWcbcbcbcbcccdcdcecdcbbWbWcfcfcfcfcfcfbFbEbXbFbFbWbWcgbFbFbF",
+"chb2b2bJbJcicjckclcmcncocpcqcacrcsccctcucvcwcxcyczcAcBcBcycycxcCcDcDcDcEcfcfcbcfcbcdcxcxcdcbcbcb",
+"cFcjcGcjcHcHcIcJcKcLcMcNcpcOcPcQcccccRcRcucvcScxcBcBcTcUcBcVcWcWcScTcxcScxcxcScDcycycTcxcxcxcxcx",
+"cXcYcYcZcXcXc0c1c2c3c4c5c6c7c7cRcvcvcuc8c9cVcVcVcVcVcWcBcVcVcWcWcVcBcVcVcScvcWcTcBcBcTcTcTcxcxcT",
+"d.d.d.d#d#dadbdcdddedfdgdhdidjdkdldldmdmdndodmdmdpdpdpc9dpdpdpcVcVcvcScWcWcVc9cVcWctcWcWcWdqdqdr",
+"dsdtd#dudvdadwdxdydzdAdBdCdDdDdEdFdFdGdGdndmdndmdmdmdmdmdmdHdIc9cWcWctdJcWcWctcVcVc9cWdpdpdqdqdr",
+"dsdsdtdtdtd#dKdLdMdNdOdPdQdRdSdSdTdTdUdUdUdUdUdUdndVdndndndndmdIdJc9ctctdWdJdJdIdIdIdrdpdpdIdndH",
+"dsdXdXdvdvdvdYdZd0d1d2d3d4d5dTdTdTd6d7d8d9e.e.e.e.e.e.e.e.dne#eadGdUeae#ebebdGeadndndodmece.ede#",
+"eeefefegeheheiejekelemeneod5d5d6epd7d7d7d9dUdGdGd9e.e.e.e.e.e.e.e.e.e.e.eqeqeqeqeqeqereqeqeserer",
+"etefegegeuevewexeyelezeAeBeCeDeEeEeEdTdTdTdTdTd6d6d7d9d9d8d8d9eseseseseFeFeGeHeIeIeIeIeIeIeJeIeI",
+"eKeLeLeMeNeNeOePeQeReSeTeUeVeVeWeXeYeXeYepepepepeZeZeZe0e1e1e1eHe2e3e2e1e4e4e5e5e5e5e6e6e5e2e5e7",
+"e8eLe9f.f#f#fafbfcfdfefffgfgfheVeVfhfifififjfkfkfle0e0eHe1e1fmfnfnfnfnfnfnfne5fofnfnfpfqfqfrfsfs",
+"ftfufvfwf#fxfyfzfAfBfCfDfEfFfgfhfhfGfGfHfIflflflfJfKe3e3e3fLe6e6e3fnfnfMfpfpfpfpfqfpfnfNfOfPfQfQ",
+"fRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f4f6f7f8f8f8f9fJfJg.g#gagbgbgbgcgcgdgegegfgfgeggfNghgigjgkglgmgngo",
+"gpgqgrgsgsgsgtgugvgwgxgygzgzf5gAgBgBgCf9gDgDf9g#gEg#gagagFgGgdgHgIgJgJgKgLgMgNgOgPgQgRgSgTgUgVgW",
+"gXgYgZg0gsgsg1g2g3g4g5g6g7gAg8g8g8g9h.h#h#hahahagGhahagGgGgGhbhchdhehfhghhhihjhkhlhmhnhohphqhrhs",
+"hthuhvgXgXhwhxhyhzhAhBhChDhEhFhEhGhGhHhGhGhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6",
+"h7h8huh9h9i.i#iaibicidieifhJigihiiijijikhGilijijiminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJ",
+"iKiLiMh8iNiOiPiQiRiSiTiUiViWiXiYihiZi0i0i0i1i2i3i4i5i6i7i8i9j.j#jajbjcjdjejfjgjhjijjjkjljmjnjojp",
+"jqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9k.k#",
+"kakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkNkSkTkU",
+"kVkWkXkYkZk0k1k2k3k4k5k6k7k8k9l.l#lalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlE",
+"lFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9m.m#mambmcmdmemfmgmhmimjmkmlmmmnmo",
+"mpmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4jUm5m6m7m8m9",
+"n.n#nanbncndnenfngnhnimMnjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnS",
+"nTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9o.o#oaobocodoeofogohoiojokolomonooopoqorosotouovmpowoxoyozoAoB",
+"oCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVogoWoXoYoZo0o1o2o3o4o5o6o7o8o9p.p#papbpcpdpeoqpfpgphpipj",
+"pkplpmocpnpopppqprntpspsptpuoZpvpwpxpypzpApBpCpDpEpFpGpHpIn5pJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0",
+"p1p2p3p4p5p6p7p8p9q.q#qaqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrnVqsqtquoFqvqwo8qxqyqzqAqBqCqDqEqFqGqH",
+"qIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9r.pvr#rarbrcrdrerfrgrhrirjrkrloWqkrmrnro",
+"rprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRqerSrTrUrVrWrXrYrZr0r1r2r3r4n7r5r6r7r8",
+"r9s.s#sasbscsdsesfsgshsisjskslsmsnsospsqqHsrsspAstsusvswsxsyszsAq2sBqGsCsDsEsFsGsHsIsJsKsLsMsNrh",
+"sOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8rGs9t.t#tatbtctdtetftgthsztitjtktltmtntotptqtrtstttutv",
+"twtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQqXtRtStTtUtVtWtXtYtZt0t1t2t3t4t5t6t7sNt8tbt9u.u#uaubuc"};
+
+static const char* const projection_icon_data[] = { 
+"48 48 6 1",
+". c None",
+"c c #000000",
+"b c #585858",
+"d c #808080",
+"a c #a0a0a0",
+"# c #ffffff",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"...................########.....................",
+"................####aaaaaa####..................",
+".............###aaaaaaaaaaaaaa#.................",
+"............#aaaaaaaaaaaaaaaaaa##...............",
+"...........#aaaaaaaaaaaabbbaaaaaa#..............",
+"..........#aaaaaaaaabbbbbbbaaaaaa#..............",
+"..........#aaaaaaaaabbbbbbbaaaaaaa#.............",
+".........##aaaaaaaaaaaaaaabaaaaaaa##............",
+".........#aaaaaaaaaaaaaaaaaaaaaaaaa#............",
+".........#aaaaaaaaaaaaaaaaaaaaaaaaa#............",
+".........#aaaaaaaaaaaaaaaaaaaaaaaaa#............",
+".........##aaaaaaaaaaaaaaabaaaaaaa##............",
+"..........#aaaaaaaaabbbbbbbaaaaaaa#.............",
+"...........#aaaaaaaabbbbbbbaaaaaaa#.............",
+"...........#aaaaaaaaaaabbbbaaaaaa#..............",
+"............##aaaaaaaaaaaaaaaaaa#...............",
+"..............#aaaaaaaaaaaaaa###................",
+"...............####aaaaaaa####..................",
+"..................#########.....................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"cccccccccccccccccccccccccccccccccccccccccccccccc",
+"cccccccccccccccccccccccccccccccccccccccccccccccc",
+".........ccdddddddddddddddddddddddcc............",
+".........ccdddddddddddddddddddddddcc............",
+".........ccdddddddddddddddddddddddcc............",
+".........ccdddddddddddddddddddddddcc............",
+".........cccddddddddddddddddddddddcc............",
+"..........ccdddddddddddddddddddddccc............",
+"...........ccdddddddddddddddddddccc.............",
+"............ccdddddddddddddddddcc...............",
+"............ccccddddddddddddddcc................",
+"..............cccdddddddccdddcc.................",
+"................ccddcccccccdccc.................",
+".................ccccccc..cccc..................",
+"..................cc......cc....................",
+"................................................",
+"................................................",
+"................................................"};
+
+static const char* const select_icon_data[] = { 
+
+"48 48 4 1",
+". c None",
+"b c #000000",
+"# c #800000",
+"a c #ff0000",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+".................#####..........................",
+"................#######.........................",
+"...............#########........................",
+"..............###########.......................",
+"..............###########.......................",
+"..............###########.......................",
+"..............###########.......................",
+"..............###########.......................",
+"...............#########........................",
+"................#######.........................",
+".................#####..........................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+".................aaaaa..........................",
+"................aaaaaaa.........................",
+"...............aaaaaaaaa........................",
+"..............aaaaaaaaaaa.......................",
+"..............aaaaaaaaaaa.......................",
+"..............aaaaaaaaaaa.......................",
+"..............aaaaaaaaaaa.......................",
+"..............aaaaaaabbbbb......................",
+"...............aaaaaabbbbb......................",
+"................aaaaabbbb.......................",
+".................aaaabbbbb......................",
+".....................bb.bbb.....................",
+".........................bbb....................",
+"..........................bbb...................",
+"...........................bb...................",
+".................#####..........................",
+"................#######.........................",
+"...............#########........................",
+"..............###########.......................",
+"..............###########.......................",
+"..............###########.......................",
+"..............###########.......................",
+"..............###########.......................",
+"...............#########........................",
+"................#######.........................",
+".................#####..........................",
+"................................................",
+"................................................",
+"................................................"};
+
+static const char* const stop_icon_data[] = { 
+"48 48 6 1",
+". c None",
+"b c #c00000",
+"c c #cf3f3f",
+"a c #df7f7f",
+"d c #efbfbf",
+"# c #ffffff",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"...........##########################...........",
+".........#abbbbbbbbbbbbbbbbbbbbbbbbbba#.........",
+".........acbbbbbbbbbbbbbbbbbbbbbbbbbbca.........",
+"........#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#........",
+"......#abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#......",
+"......acbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbca......",
+".....#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#.....",
+"...#abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#...",
+"...acbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbca...",
+"..#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#..",
+"..#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#..",
+"..#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#..",
+"..#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#..",
+"..#ba#######bbb#######abba#######bbb#######ab#..",
+"..#ba#aaaaaabbbaaa#daacbba#aaaad#bbb#daaaa#ab#..",
+"..#ba#bbbbbbbbbbbb#abbbbba#bbbba#bbb#abbbb#ab#..",
+"..#ba#bbbbbbbbbbbb#abbbbba#bbbba#bbb#abbbb#ab#..",
+"..#ba#bbbbbbbbbbbb#abbbbba#bbbba#bbb#abbbb#ab#..",
+"..#ba#bbbbbbbbbbbb#abbbbba#bbbba#bbb#abbbb#ab#..",
+"..#ba#bbbbbbbbbbbb#abbbbba#bbbba#bbb#abbbb#ab#..",
+"..#ba#aaaaaabbbbbb#abbbbba#bbbba#bbb#daaaa#ab#..",
+"..#ba#######bbbbbb#abbbbba#bbbba#bbb#######ab#..",
+"..#bbbbbbba#bbbbbb#abbbbba#bbbba#bbb#abbbbbbb#..",
+"..#bbbbbbba#bbbbbb#abbbbba#bbbba#bbb#abbbbbbb#..",
+"..#bbbbbbba#bbbbbb#abbbbba#bbbba#bbb#abbbbbbb#..",
+"..#bbbbbbba#bbbbbb#abbbbba#bbbba#bbb#abbbbbbb#..",
+"..#bbbbbbba#bbbbbb#abbbbba#bbbba#bbb#abbbbbbb#..",
+"..#bbbbbbba#bbbbbb#abbbbba#bbbba#bbb#abbbbbbb#..",
+"..#ba#######bbbbbb#abbbbba#######bbb#abbbbbbb#..",
+"..#bcaaaaaaabbbbbbacbbbbbcaaaaaaabbbacbbbbbbb#..",
+"..#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#..",
+"..#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#..",
+"..#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#..",
+"..#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#..",
+"...#abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#...",
+".....abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba.....",
+".....#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#.....",
+"......#abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#......",
+"........abbbbbbbbbbbbbbbbbbbbbbbbbbbbbba........",
+"........#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb#........",
+".........##############################.........",
+"................................................",
+"................................................"};
+
+static const char* const super_icon_data[] = {
+"48 48 3 1",
+"w c None",
+"r c #ff0000",
+"y c #ffff00",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrwwwwwww",
+"wwwwwwwrryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrwwwwww",
+"wwwwwwrryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrwwwww",
+"wwwwwrryyrrrrrryyyyyrrrrryyyyyyyrrrryyyyyyrrwwww",
+"wwwwrryyrrrrryyyyrrrrrrrrrrrryyyyrrryyyrryyrrwww",
+"wwwrryyrrrryyyyrrrrrrrrrrrrrrryyyyrryyyrrryyrrww",
+"wwrryyrrrryyyyrrrrrrrrrrrrrrrrryyyyyyyyyrrryyrrw",
+"wrryyrrrrryyyyrrrrrrrrrrrrrrrrrryyyyyyyrrrrryyrw",
+"rryyrrrrryyyyyrrrrrrrrrrrrrrrrrryyyyyyyrrrrrryyr",
+"ryyrrrrryyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrrrrryyr",
+"rryyrrrryyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrrrrryyyr",
+"wrryyrrryyyyyyyyyyrrrrrrrrrrrrrrrrrrrrrrrrryyyrr",
+"wwryyyrryyyyyyyyyyyyyyyyyyyyyyyyyrrrrrrrrrryyrrw",
+"wwwryyyryyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrrrryyrrww",
+"wwwwryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrrrryyyrwww",
+"wwwwrryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrryyyrwwww",
+"wwwwwrryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrwwwww",
+"wwwwwwrryyyrrryyyyyyyyyyyyyyyyyyyyyyyyyyyrrwwwww",
+"wwwwwwwrryyrrrrrrrrrrrrrrrrrrrryyyyyyyyyrrwwwwww",
+"wwwwwwwwrryyrrrrrrrrrrrrrrrrrrrrryyyyyyrrwwwwwww",
+"wwwwwwwwwrryyrrrrrrrrrrrrrrrrrrrrryyyyrrwwwwwwww",
+"wwwwwwwwwwrryyrryyyyyrrrrrrrrrrrrryyyrrwwwwwwwww",
+"wwwwwwwwwwwryyyyyyyyyyyrrrrrrrrrryyyrrwwwwwwwwww",
+"wwwwwwwwwwwwryyyyyyyyyyyrrrryyyyyyyyrwwwwwwwwwww",
+"wwwwwwwwwwwwrryyyyyyyyyyyyyyyyyyyyyrwwwwwwwwwwww",
+"wwwwwwwwwwwwwrryyyyyyyyyyyyyyyryyyrwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwrryyrrrrrrrrrrrryyyrrwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwryyyrrrrrrrrrrryyrrwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwryyyrrrrrrrrryyrrwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwryyyrrrrrrryyyrwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwrryyyrrrrryyyrwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwrryyyrrryyyrwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwrryyyryyyrrwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwrryyyyyrrwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwrryyyrrwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwrryrrwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwryrwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwrwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"};
+
+static const char* const execute_icon_data[] = { 
+"48 48 9 1",
+". c None",
+"a c #000000",
+"g c #303000",
+"e c #373737",
+"c c #606000",
+"# c #6e6e6e",
+"d c #909000",
+"f c #a5a5a5",
+"b c #c0c000",
+"...................#abbba#......................",
+"...................#acdba#......................",
+"...................#aacba#......................",
+"...................#abcaa#......................",
+"...................#abdca#......................",
+"...................#abbba#......................",
+"...................#aacba#......................",
+"...................#accca#......................",
+"...................#abcaa#......................",
+"...................#abbba#......................",
+"..................#eacccae#.....................",
+"..................aaaaaaaaa.....................",
+"................#abcabbbacba#...................",
+"................f#cgacccagc#f...................",
+"..................aaaaaaaaa.....................",
+"................#aacbbcabbba#...................",
+"................f#agccgaccc#f...................",
+"..................aaaaaaaaa.....................",
+"................#abcabbbacba#...................",
+"................#acgacccagca#...................",
+"................#aaaaaaaaaaa#...................",
+"................#abca...acba#...................",
+"................#acga...acbae#..................",
+"................#aaaa...acbaaa..................",
+"...............aaabca...aaabca..................",
+".............f#aaabca...agcbca#f................",
+".............#aaaabca...acbbcaa#................",
+"............aaabbbaaa....#abcaaaa...............",
+"............aaabdcae#....f#ccccga...............",
+"............aaabcaa#.......acbbca...............",
+"..........#abbbaaa.........aaabcaa#.............",
+"..........#abdcae#.........#eaccca#.............",
+"..........#abcaa#...........#aacba#.............",
+"..........#aaaa...............acbaaa............",
+"..........#acga...............acbcga............",
+"..........#abca...............acbbca............",
+"..........#abca................#aaaa............",
+"..........#acga................#acga............",
+"..........#aaaa................#abca............",
+"..........#abcaa#.............acbbca............",
+"..........#abdca#.............agccga............",
+"..........#abbba#.............aaaaaa............",
+"..........#aaaaaaa..........#abbba#.............",
+"..........f#agccga##########eaccca#.............",
+"............acbbcaaaaaaaaaaaaaaaaa#.............",
+"............aaabcabbbacbbcabbbbca...............",
+"............#eacgacccagccgaccccga...............",
+".............#aaaaaaaaaaaaaaaaaaa..............."};
+
+static const char* const evaluate_icon_data[] = { 
+"48 48 589 2",
+"ak c None",
+".A c #000000",
+"fM c #010100",
+"fr c #010101",
+"fu c #020201",
+"ae c #040200",
+"d8 c #040404",
+"fb c #050503",
+"dK c #060504",
+"dp c #060505",
+"fN c #070706",
+"#D c #080400",
+"c5 c #080504",
+"eO c #090909",
+"fc c #0a0a0a",
+"cq c #0b0503",
+"cJ c #0c0805",
+"fs c #0d0c0a",
+"bw c #0d0d0d",
+"#1 c #0e0700",
+"fv c #121212",
+"fO c #141414",
+"e9 c #161511",
+"eH c #161615",
+"cr c #161616",
+"du c #170d1a",
+"fQ c #171717",
+"b9 c #190e06",
+"gX c #190e1c",
+"fP c #191919",
+"a3 c #1a0c00",
+"ez c #1a0e1d",
+"fw c #1a1a1a",
+"eg c #1b0e1e",
+"d. c #1b0f1e",
+"fm c #1c0f1f",
+"g3 c #1c101f",
+"dZ c #1c1c1c",
+"bI c #1d0e00",
+"gY c #1d1020",
+"dV c #1d1021",
+"fx c #1d1d1d",
+"bf c #1e0d00",
+"g4 c #1e1021",
+"f3 c #1e1e17",
+"eP c #1e1e1e",
+"fH c #1f1122",
+"cP c #1f1123",
+"er c #1f1f1f",
+"g5 c #201123",
+"cC c #201d18",
+"fd c #202020",
+"g2 c #211224",
+"dv c #211225",
+"cl c #211c15",
+"eQ c #212121",
+"g6 c #221325",
+"fX c #221326",
+"cu c #231327",
+"fe c #232323",
+"f9 c #241428",
+"eA c #25142a",
+"gR c #25152a",
+"ft c #25231a",
+"f2 c #25251e",
+"dq c #252525",
+"#i c #261300",
+"d# c #26152a",
+"ep c #26251a",
+"eR c #262626",
+"aS c #271300",
+"e0 c #27152a",
+"c# c #27162b",
+"dD c #272727",
+"aq c #281400",
+"ge c #28152b",
+"g7 c #28162c",
+"bZ c #28162d",
+"f4 c #282824",
+"ek c #282825",
+"eS c #282828",
+"fn c #29162d",
+"h. c #29172e",
+"eM c #292926",
+"fy c #292929",
+"dW c #2a172e",
+"bK c #2a172f",
+"bW c #2b1400",
+"#h c #2b1709",
+"cQ c #2b1730",
+"gZ c #2b182f",
+"h# c #2b1830",
+"eT c #2b2b2b",
+"fI c #2c1830",
+"bh c #2c1831",
+"g8 c #2c1931",
+"dU c #2c242d",
+"b4 c #2c2921",
+"fR c #2c2c2c",
+"bV c #2d1600",
+"dw c #2d1932",
+"eN c #2d2d23",
+"#O c #2e1700",
+"#C c #2e1704",
+"ha c #2e1933",
+"a4 c #2e1a33",
+"fz c #2e2e2e",
+"bv c #2f1500",
+"#N c #2f1704",
+"gL c #2f1a34",
+"fY c #2f1a35",
+"eq c #2f1e0d",
+"ff c #2f2f2f",
+"g0 c #301b35",
+"cv c #301b36",
+"cK c #303030",
+"ey c #312c32",
+"hb c #321c37",
+"eZ c #322c32",
+"bH c #331900",
+"da c #331c38",
+"g. c #331c39",
+"ca c #331c3a",
+"gQ c #332935",
+"cZ c #332e26",
+"fA c #333333",
+"eB c #341d39",
+"eh c #341d3a",
+"ef c #342e35",
+"bD c #343029",
+"eU c #343434",
+"b8 c #351a00",
+"e1 c #351d3a",
+"gv c #351d3b",
+"gf c #351e3b",
+"dX c #361d3b",
+".I c #361e3c",
+"fS c #363636",
+"#2 c #371b00",
+"g9 c #371e3c",
+"fo c #371e3d",
+"cR c #371e3e",
+"hc c #371f3d",
+"bL c #371f3e",
+"fg c #373737",
+"hf c #381f3e",
+"hg c #381f3f",
+"a# c #38352c",
+"fB c #383838",
+"by c #391f40",
+"he c #39203f",
+"hd c #392040",
+"ba c #393429",
+"cp c #3a1c00",
+"cI c #3a1d00",
+"bi c #3a2040",
+"fJ c #3a2041",
+"dx c #3a2141",
+"bp c #3a362d",
+"do c #3b1c00",
+"gM c #3b2141",
+"a5 c #3b2142",
+"c4 c #3c1d00",
+"cw c #3c2142",
+"aT c #3c2143",
+"hh c #3c2243",
+"gK c #3c2e40",
+"d9 c #3c3c3c",
+"d7 c #3d2004",
+"#d c #3d210e",
+"fZ c #3d2144",
+"es c #3d3d3d",
+"ap c #3e1e00",
+"db c #3e2244",
+".C c #3e2245",
+"g1 c #3e2345",
+"gu c #3e2f42",
+"di c #3e3e3e",
+"hi c #3f2345",
+"bC c #3f2346",
+"cb c #3f2347",
+"ei c #402347",
+"bN c #402447",
+"dL c #404040",
+"cf c #412448",
+"et c #414141",
+"dJ c #422406",
+"b0 c #42244a",
+"cz c #422549",
+"eV c #424242",
+"cS c #43254a",
+"hk c #43254b",
+"fl c #433f44",
+"cY c #434343",
+"bM c #44264b",
+"hj c #44264c",
+"fh c #444444",
+"bz c #45264c",
+".9 c #45264d",
+"dy c #45274d",
+"e. c #454545",
+"cx c #46264d",
+".z c #46274d",
+".N c #46274e",
+"bj c #47274e",
+"#4 c #47274f",
+"ag c #47284f",
+".G c #48284f",
+"as c #482850",
+"bR c #484236",
+"eW c #484848",
+"dc c #492850",
+"aX c #492851",
+"a7 c #492951",
+"fL c #49493b",
+"c6 c #494949",
+"gD c #4a2951",
+"bl c #4a2952",
+"cc c #4a2a53",
+"gW c #4a424d",
+"aP c #4a453b",
+"ej c #4b2952",
+"e2 c #4b2953",
+".B c #4b2a53",
+".m c #4b2a54",
+"eu c #4b4b4b",
+".n c #4c2a54",
+"cT c #4c2a55",
+"cU c #4c2b55",
+"f5 c #4c4c4c",
+"gn c #4d2a55",
+"de c #4d2b55",
+".r c #4d2b56",
+"fT c #4d4d4d",
+".o c #4e2b56",
+"bA c #4e2b57",
+"eD c #4e2c57",
+"cy c #4f2b57",
+"e4 c #4f2c57",
+".p c #4f2c58",
+"e8 c #4f4f47",
+"dO c #4f4f4f",
+"bk c #502c58",
+"dd c #502c59",
+"aU c #502d59",
+"aZ c #504a3e",
+"fq c #505040",
+"eX c #505050",
+"fK c #512c59",
+".q c #512d5a",
+"fC c #515151",
+".x c #522d5a",
+"cd c #522d5b",
+"gF c #522e5b",
+"eC c #522e5c",
+"dN c #525252",
+"b1 c #532e5c",
+"ao c #533715",
+"e# c #535353",
+"dY c #542e5c",
+"e3 c #542e5d",
+"gw c #542f5d",
+"go c #542f5e",
+"bm c #543b59",
+"gG c #543b5a",
+"fa c #545453",
+"eY c #545454",
+"Qt c #552f5e",
+"bu c #553413",
+"fU c #555555",
+"a6 c #56305f",
+"aV c #563060",
+"ev c #565656",
+"d6 c #572b00",
+"ar c #573060",
+"b2 c #573161",
+"a2 c #57330e",
+"aD c #575144",
+"fi c #575757",
+"dI c #582c00",
+"af c #583055",
+"f0 c #583161",
+".s c #583162",
+"ad c #583b16",
+"dz c #593162",
+"fp c #593163",
+"dn c #59320a",
+"bB c #593263",
+"ew c #595959",
+"aW c #5a3263",
+".t c #5a3264",
+"dP c #5a5a5a",
+"#3 c #5b3259",
+"gA c #5b3264",
+"ce c #5b3265",
+".u c #5b3365",
+".v c #5c3366",
+"be c #5c3814",
+"ea c #5c5c5c",
+".w c #5d3467",
+"eb c #5d5d5d",
+"#0 c #5e3e19",
+".l c #5e4165",
+"fD c #5e5e5e",
+"#P c #5f3344",
+"fj c #5f5f5f",
+"#E c #603344",
+"ec c #606060",
+"gV c #635d65",
+"gp c #636363",
+"gP c #645d65",
+"ed c #646464",
+"al c #655e50",
+"cH c #663a0c",
+"c3 c #663c11",
+"ex c #666666",
+"cj c #676767",
+"fk c #686868",
+"ck c #696969",
+"dM c #6a6a6a",
+"fG c #6b686b",
+"gj c #6b6b6b",
+"ee c #6c6c6c",
+"ci c #6d6d6d",
+"dj c #6e6e6c",
+"gz c #6f6372",
+"aw c #6f6f6f",
+"gk c #707070",
+"aH c #715230",
+"gH c #716575",
+"dR c #717171",
+"dQ c #727272",
+"dS c #737373",
+"b# c #747474",
+"co c #754f26",
+"#m c #757575",
+"dT c #777777",
+"ay c #787878",
+"#M c #79581f",
+"aC c #797979",
+"fE c #7a7a7a",
+"#B c #7b5921",
+"ch c #7b7b7b",
+"#Q c #7c6b80",
+"#5 c #7c6b81",
+"gU c #7c777d",
+"fW c #7c787c",
+"#k c #7c7c7c",
+"ah c #7d6b81",
+"aI c #7d6b82",
+"fV c #7d7d7d",
+"aY c #7e6b82",
+"gB c #7e6b83",
+"a8 c #7e6c83",
+"#n c #7e7e7e",
+"#l c #7f7f7f",
+"ax c #808080",
+"gJ c #817982",
+"dg c #818181",
+"av c #828282",
+"#g c #835e23",
+"au c #838383",
+".f c #846f89",
+"eG c #848484",
+".g c #856f89",
+".h c #856f8a",
+".i c #856f8b",
+".j c #85708b",
+"cg c #858585",
+".k c #86708b",
+"gC c #867d89",
+"at c #868686",
+"b. c #888888",
+"eL c #89847b",
+"e7 c #898989",
+"#c c #8a6722",
+"fF c #8a8a8a",
+"d5 c #8b6325",
+".8 c #8b6822",
+"#r c #8b8b8b",
+"f. c #8c7c59",
+"a9 c #8c8c8c",
+"f8 c #8d898d",
+"dt c #8d8d8d",
+"b7 c #8e6433",
+"ga c #8e8e8e",
+"bt c #8f6828",
+".4 c #8f8f8f",
+"ds c #909090",
+"#u c #919191",
+"d0 c #929291",
+"cB c #929292",
+"dr c #939393",
+"az c #949494",
+"gO c #959197",
+"aB c #959595",
+"gr c #969696",
+"bU c #986e32",
+".0 c #989898",
+"f6 c #999999",
+".2 c #9a9a9a",
+"dH c #9b7335",
+"f7 c #9b9b9b",
+"cW c #9c9c9c",
+".3 c #9d9d9d",
+"eo c #9e9a88",
+".Z c #9e9e9e",
+"gb c #9f9f9f",
+"#7 c #a0a0a0",
+".Y c #a2a2a2",
+"bG c #a37f47",
+"gq c #a3a3a3",
+"dh c #a4a4a4",
+"bO c #a5a5a5",
+"f# c #a69c88",
+"#G c #a6a6a6",
+"aA c #a8a8a8",
+"c9 c #a9a9a9",
+"#s c #aaaaaa",
+"cV c #ababab",
+"bd c #ac8438",
+"bY c #aca7ad",
+"dC c #acacac",
+"dm c #ad7f2d",
+"#W c #adadad",
+"bQ c #aeaeae",
+"bJ c #afaab0",
+"b3 c #afafaf",
+"gT c #b0adb0",
+"gN c #b0adb1",
+"#q c #b0b0b0",
+"gs c #b1b1b1",
+"bx c #b2adb3",
+"aj c #b2b2b2",
+".F c #b38f47",
+"bg c #b3afb4",
+"c8 c #b3b3b3",
+"#o c #b4b4b4",
+"#p c #b5b5b5",
+"#j c #b7b7b7",
+"a1 c #b88d3c",
+"c7 c #b8b8b8",
+"#S c #b9b9b9",
+"#V c #bababa",
+"dA c #bcb4be",
+"eE c #bcb4bf",
+"#x c #bcbcbc",
+".X c #bdb4bf",
+".O c #bdb5bf",
+"gc c #bdbdbd",
+"c2 c #be903a",
+".H c #beb5c0",
+".1 c #bebebe",
+".y c #c00000",
+"cG c #c08d2d",
+".b c #c0b6c3",
+"#H c #c0c0c0",
+".c c #c1b6c3",
+".d c #c1b7c3",
+".e c #c1b7c4",
+"#J c #c1c1c1",
+"cA c #c2c2c2",
+"eK c #c3b597",
+"dG c #c3b786",
+"#I c #c3c3c3",
+"cX c #c4c4c4",
+"#8 c #c5c5c5",
+"cO c #c6c6c6",
+"#T c #c7c7c7",
+"#v c #c8c8c8",
+"gi c #c9c9c9",
+"gI c #cac8cb",
+".5 c #cacaca",
+".M c #cc9933",
+"d4 c #cc9e3e",
+"#w c #cccccc",
+"dE c #cdcdc5",
+"cN c #cdcdcd",
+"d3 c #cec69d",
+"gE c #cecacf",
+".P c #cecece",
+"#9 c #cfcfcf",
+"#F c #d1d1d1",
+"eI c #d2c2a1",
+"cM c #d2d2d2",
+"#t c #d3d3d3",
+"gd c #d4d4d4",
+"aR c #d5aa55",
+"a0 c #d5ab57",
+"#y c #d5d5d5",
+"bc c #d6b26c",
+"cL c #d6d6d6",
+"aL c #d7d7d7",
+"bs c #d8b061",
+"c0 c #d8b46d",
+"gl c #d8d8d8",
+"en c #d9caaa",
+"#U c #d9d9d9",
+"aG c #dab365",
+"aK c #dadada",
+"cF c #dbb770",
+"gh c #dbdbdb",
+"#b c #dcb569",
+"an c #dcb76f",
+"ac c #dcb871",
+"bT c #dcb973",
+".W c #ddaa44",
+"#f c #ddb566",
+"#Z c #ddb669",
+"gt c #dddddd",
+"aN c #dedede",
+"bF c #dfbe7d",
+"cn c #dfc081",
+"e6 c #dfdfdf",
+"b6 c #e0c183",
+"eJ c #e0cfab",
+"#6 c #e0e0e0",
+"#A c #e1b967",
+"ct c #e1e1e1",
+"dk c #e2b962",
+"aJ c #e2e2e2",
+"cs c #e3e3e3",
+"gS c #e3e3e4",
+".7 c #e4bd6e",
+"bo c #e4e4e4",
+".L c #e5be70",
+"#L c #e5c27d",
+"gg c #e5e5e5",
+"em c #e6d6b3",
+"el c #e6ddc4",
+"aM c #e6e6e6",
+"eF c #e7e7e7",
+"d2 c #e8d8b5",
+"dF c #e8e3ca",
+"df c #e8e5e8",
+"bP c #e8e8e8",
+".a c #e9e6ea",
+".Q c #e9e9e9",
+"#R c #ebebeb",
+"c. c #ececec",
+"cE c #eddab2",
+"ai c #ededed",
+"cm c #eed5a3",
+"f1 c #eeeeee",
+"c1 c #efdcb4",
+"bn c #efefef",
+".D c #f0c060",
+"gm c #f0f0f0",
+"aE c #f1c05f",
+"bS c #f1d8a6",
+"dl c #f1dfbe",
+".S c #f1f1f1",
+"g# c #f2f2f2",
+"b5 c #f3daa6",
+".R c #f3f3f3",
+"#X c #f4c361",
+"gx c #f4f4f4",
+"aa c #f5c361",
+"aO c #f5f5f5",
+"d1 c #f6f1e5",
+"e5 c #f6f6f6",
+"## c #f7f7f7",
+"bE c #f8e1b2",
+"bX c #f8f8f8",
+".T c #f9f9f9",
+"aF c #fada9b",
+"gy c #fafafa",
+"ab c #fbdb9c",
+"am c #fbdc9e",
+"aQ c #fbdca0",
+"br c #fbe0aa",
+"#Y c #fbe0ab",
+"bb c #fbe5b9",
+"#. c #fbfbfb",
+"bq c #fcc964",
+"a. c #fcfcfc",
+".U c #fdfdfd",
+"dB c #fefefe",
+".J c #ffcc66",
+"cD c #ffcd6a",
+"#z c #ffe1a8",
+"#K c #ffe1a9",
+".6 c #ffe3ac",
+"#e c #ffe3ae",
+"#a c #ffe4b0",
+".K c #ffe5b1",
+".V c #ffe5b2",
+".E c #fff5e1",
+".# c #ffffff",
+"Qt.#.#.#.#.#.a.b.b.c.c.d.d.d.d.d.e.e.f.g.h.h.i.i.i.j.j.k.k.l.m.n.o.p.q.r.qQt.s.t.u.v.w.w.w.w.w.w",
+".x.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y.y.z.n.q.A.A.A.v.w.w.w.w.w.w",
+".B.a.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y.y.#.y.y.#.C.z.A.D.E.F.A.v.w.w.w.w.w",
+".G.H.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y.y.y.#.#.y.y.y.#.#.I.A.J.K.L.M.M.A.w.w.w.w.w",
+".N.O.#.#.#.#.P.Q.R.S.R.T.U.#.#.#.#.#.#.#.#.#.#.#.#.y.#.y.#.#.y.y.#.#.#.A.J.V.W.M.M.M.M.A.w.w.w.w",
+".z.X.#.#.#.#.Y.Z.0.1.2.3.4.Y.5.#.#.#.#.#.#.#.#.#.#.y.#.y.y.#.#.#.#.#.A.J.6.7.M.M.M.M.8.A.w.w.w.w",
+".9.X.#.#.#.#.#.#.#.#.#.##..T##.#.#.#.#.#.#.#.#.#.#.y.y.#.y.#.#.#.#.A.J#a#b.M.M.M.M#c#d.A.w.w.w.w",
+".9.X.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.y.y.#.#.y.#.#.#.A.J#e#f.M.M.M.M#g#h#i.A.w.w.w.w",
+".z.X.#.#.#.##j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#t.#.#.#.#.#.#.#.#.A.J#z#A.M.M.M.M#B#C#D.A#E.w.w.w.w",
+".z.X.#.#.#.##F#G#j#w#H#I#o#I#w.1#t#p#j#J#H#j#o.U.#.#.#.#.U.#.A.J#K#L.M.M.M.M#M#N#O.A#P.w.w.w.w.w",
+".N#Q.#.#.#.##R#S#T#T#x#w.1.P#J#q#s#u#U#p#V#W.Y.3#s.Z.#.#.#.A#X#Y#Z.M.M.M.M#0#1#2.A#3.v.w.w.w.w.w",
+"#4#5.#.#.#.##6#G.1#x#V#7#I#H#y#8#r#x#T#T#w#8#m#9.T##.#a.a#aaabac.M.M.M.Mad#2ae.Aaf.t.v.w.w.w.w.w",
+"agah.#.#.#.#aiajak#x#t#F#s.1#U#x#q#H#j#T#8ak#H#y##.U.#alaaaman.M.M.M.Maoapaq.A.qar.t.v.v.w.w.w.w",
+"asah.#.#.#.#.Ratauavawax.Yat.1#u#layazaAaB#kav#uaC.1aDaEaFaG.M.M.M.MaHaqae.Aas.qar.t.u.v.w.w.w.w",
+"asaI.#.#.#.#.##vaJaKaKaL#takaMaN.P#U#6aLak#vaO#w#UaP.DaQaR.M.M.M.MaHaS#D.AaT.GaUaVaW.u.v.w.w.w.w",
+"aXaY.#.#.#.#.#aLak#t#x#Iak#o.P.P#w#T#F#F#8#F#9#JaZ#XaFa0.M.M.Ma1a2a3.A.Aa4a5#4aUa6aW.u.v.w.w.w.w",
+"a7a8.#.#.#.#.#aya9.2awaAa9b.#Vb#a9#ub.#Wat#r.Yba.Jbbbc.M.M.Mbdbebf.A.Abgbhbibjbka6aW.u.v.w.w.w.w",
+"blbm.#.#.#.#.#ai.Qai.Q.Sbn#RaO.Sbn.Tai##aibobpbqbrbs.M.M.Mbtbubv.Abw##bxbhbybzbAQtbB.u.v.w.w.w.w",
+"blbC.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#aibD.JbEbF.M.M.MbGbHbI.A.A#6#.bJbKbLbM.rQt.s.u.v.w.w.w.w",
+".BbN.#.#.#.#.#bO#9.SaiboaJbPaN#U.PbP#sbQbR.JbSbT.M.M.MbUbVbW.Abw##bXaObYbZ.Ib0.nb1b2.t.v.w.w.w.w",
+".mbN.#.#.#.#.##S#7.1ajb3.1.1#T#W#8bob.b4.Jb5b6.M.M.Mb7b8b9.Abw##aO.Sbnc.c#cacbcccdar.tce.w.w.w.w",
+".ncf.#.#.#.#.#cgaCchavb##lb#cicj#nckcl.Jcmcn.M.M.Mcocpcq.Acrc..QcsctakaKcucvcwcxcyQt.sce.w.w.w.w",
+".ncz.#.#.#.#.#aJ#Rbo#R#RaKbPcAbocBcCcDcEcF.M.McGcHcIcJ.AcKcL#ycM#wcN#8cOcPcQcRcScTb1b2.t.w.w.w.w",
+"cUcz.#.#.#.#.#cV#GcWcX#8#p#v.5cYcZc0c1.M.M.Mc2c3c4c5.Ac6c7ajc8#Wb3#WaAc9d.d#dadbdcdda6.t.v.w.w.w",
+"decSdf.#.#.#.#cW#HcOdgcVdhazdidjdkdl.M.M.Mdmdndodp.AdqcB.0azdrdra9dsdtcBdudvdwdxdy.pQtdz.v.v.w.w",
+".rcSdA.#.#.#dB#8aj#H#G#G.YdCdDdEdFdG.M.MdHdIdJdK.AdLdMdNdOdPdMdQdRdSdTchdUdVdWdXcf.mdY.s.u.v.w.w",
+".obMdA.#.#dB.U#pdh#sdr#kcidZd0d1d2d3d4d5d6d7d8.AdDd9e.dLdLe.e#eaebecedeeefegd#eheiejb1.s.u.v.w.w",
+".obMdA.#.#dB#.bP#yaL#9cXe#ekelemeneoepdIeq.A.Aeresesd9esete.eudOdNevewexeyezeAeBbCbleCdz.u.v.w.w",
+"eDbzeE.#dB.U.T.SeFcL#TeGeHeIeJeKeLeMeN.A.AeOePeQeReSeTcKeUeseVeWeXeYebcjeZeze0e1cze2e3dz.u.v.w.w",
+"e4.9.X.#dBa.e5e6e7cVaue8e9f.f#fafb.A.A.AfcbwcrePfdfeeSfffgdifheufifjfkdQflfmfnfocS.oQtfp.u.v.w.w",
+".p.z.X.#dB#.e5bobO#xfqfrfsftd8fufrfcfvfwfxfddqfyfzfAfBeteWfCfifDdMdSfEfFfGfHfIfJ#4fKaVbBce.v.w.w",
+".p.z.X.#dBa.aOctfEfLfM.AfrfNfOfwfPfQfdfRfSdLeWfTfCfUfDckaw#mfEfVaua9dr.ZfWfXfYfZbl.qf0.tce.w.w.w",
+"bk.N#Q.#.#a.e5f1#Wf2f3f4dLe.f5eWeWfTfifDexdRaydgeGe7#u#uf6f7.2#7#G#saj#xf8f9g.cf.mb1.s.t.v.w.w.w",
+"bk#4#5.#.#a.bXg#cBexexfieYeWdO#mga#ucBf6gb#7dhcVdC#q#p#x#SgccA#I#I#wcNgde6gegfb0deQtbB.u.v.w.w.w",
+"aUagah.#.#dBa.e5ggghgic7#qaAf6ay#ndTdPcjgjecaxgkdg#t#yaLglaNghe6e6aJbPc.gmbZ.IcSgngodz.u.v.w.w.w",
+".qasah.#.#.#.U#.gpb#gqcOgrbO.Ygs#x#T.5cLglgl#6ctgtbn.S.S.Rg#.Sf1g#.R.SaObXgugvcSdegw.s.u.v.w.w.w",
+".qasaI.#.#.#dB.Ue5bPg#bnc.f1bnbngmg#gxgxe5gxaObX##.TbXbX.T.TbXgy.T.T#.a.a.gzgvcz.nb1.sgA.v.w.w.w",
+".qaXgB.#.#.#.#.#.Ua.#.#.#.####bXgya.dB.UdBdBdBa.a.a.a..U#.#.a.a..U.U.UdB.#gCe1cf.mb1f0gA.v.w.w.w",
+".xgDa8.#.#.#.#.#.#.#.#.UdBdB.#.#.#.#.#.#.#dBdBdBdB.#.#.#.#.#.#.#.#.#.#.#.#gEgvcf.mb1f0.t.v.w.w.w",
+"gFblgG.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#gHfocz.nb1f0gA.v.w.w.w",
+"b1.BbN.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#gIgJgKgLgMbz.ogw.sgA.v.w.w.w",
+"b1cUcS.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#gNgOgPgQcPgRdw.IeiasaUa6dz.u.v.w.w.w",
+"goeD.9.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#gSgTgNgNgNgUgVgPgWgXd.gYcPfXd#gZg0fog1.z.rb1ar.t.u.v.w.w.w",
+"a6aUaXei.Idwd#g2dVfmd.d.d.d.d.d.d.d.fmg3gYg4fHg5g2g6cuf9d#g7dWg8gLdag9a5cfbjcU.xa6dzgA.v.w.w.w.w",
+"b2b1de.zdb.Icvg8dWbZg7g7g7g7g7g7g7g7bZh.dWh#fIdwhagLcvhbg.gvhchdaTbCcS.NbleDgFa6.s.t.u.v.w.w.w.w",
+"dza6.q.n.zbNaThefo.Igfgfgfgfgfgfgf.I.IfohfhghefJa5hhdbhibNczbM.z.Gbl.ne4.xgwaV.s.t.u.v.w.w.w.w.w",
+".tf0Qt.q.rgDbjhjhkcSczczczczczczczcScShkbMhj.9.N#4.GaXbl.B.n.o.paUgFb1Qtar.saWgA.u.v.w.w.w.w.w.w",
+".u.t.sa6b1.q.peD.odedededededededede.r.o.oeD.p.paUaU.qgFb1gwgoQtaVar.sdz.tgA.u.v.v.w.w.w.w.w.w.w"};
+
+static const char* const display_icon_data[] = {
+"48 48 252 2",
+"Qt c None",
+".N c #0000c0",
+"aY c #3f574f",
+"aZ c #405452",
+"a1 c #41413b",
+"a0 c #414441",
+"bg c #4b4b45",
+"a2 c #4d4d47",
+"bd c #4e4a48",
+"a5 c #4e4e48",
+"bf c #524f4b",
+"be c #52504c",
+"bi c #52524c",
+"bj c #525652",
+"bm c #535653",
+"ax c #536b67",
+"bb c #54564d",
+"aX c #55634e",
+"aw c #575951",
+"bq c #595952",
+"a9 c #5a5b53",
+"bc c #5c5855",
+"a6 c #5c5c55",
+"av c #5c6455",
+"br c #5d5f57",
+"bN c #5e5e55",
+"bn c #5f5c52",
+"bO c #5f5f57",
+"bh c #5f5f59",
+"#Z c #619757",
+"#3 c #62665b",
+"#Y c #639c5a",
+"#0 c #648f5a",
+"aW c #65725e",
+"aV c #677160",
+"as c #67865e",
+"at c #687f60",
+"bl c #696259",
+"bM c #696663",
+"bk c #69695f",
+"au c #6a7462",
+"#1 c #6a8362",
+"#X c #6a9960",
+"b. c #6b655a",
+"an c #6d7066",
+"aU c #6d7765",
+"b5 c #6e6c63",
+"bL c #6e6c68",
+"#r c #6e8265",
+"#p c #6e8465",
+"#n c #6e8766",
+"b4 c #6f6b69",
+"#2 c #6f7769",
+"bo c #706960",
+"bp c #706a6a",
+"ba c #70726a",
+"#v c #707d68",
+"aT c #71756a",
+"a4 c #726d61",
+"a3 c #726f6c",
+"#j c #72886a",
+"bK c #73736d",
+"#o c #73786d",
+"#w c #74746d",
+"#q c #74776c",
+"ar c #74a637",
+"#s c #75766d",
+"#W c #75966c",
+"b3 c #76736f",
+"#k c #767a6f",
+"#m c #767b6f",
+".X c #7685a3",
+"b# c #77786b",
+"#i c #777e70",
+"a8 c #78796c",
+"aS c #787b71",
+"bJ c #79736d",
+"a7 c #79766d",
+"bH c #797673",
+"bG c #797773",
+"b2 c #797972",
+"bI c #7a7773",
+".Z c #7b809d",
+".V c #7b89a4",
+"#h c #7b8a72",
+".u c #7d7a76",
+"bD c #7e7c78",
+"ao c #7e8677",
+"aR c #7f7978",
+"bF c #7f7979",
+"#g c #7f7c77",
+"bs c #7f7f78",
+"#f c #7f8772",
+"ap c #7f9951",
+"bE c #807c79",
+"aQ c #807d79",
+"#l c #817a73",
+"aP c #817d7a",
+".S c #818ca5",
+"#e c #827d76",
+"am c #827f7b",
+".M c #827f7c",
+".Y c #828693",
+".0 c #838590",
+".W c #838a93",
+"#S c #83967e",
+"aq c #83be21",
+"#c c #847a76",
+"aM c #84837d",
+"#Q c #84a07d",
+"#O c #84a278",
+".1 c #857e91",
+"bt c #85857f",
+"#P c #85a07d",
+"#d c #867f71",
+"bC c #867f79",
+"aO c #86807f",
+"aN c #86817f",
+"bB c #86837f",
+"aL c #86857f",
+"bz c #86867f",
+"#V c #86907e",
+"b0 c #878080",
+".5 c #878281",
+"bA c #878480",
+"ak c #87877f",
+"bP c #878e87",
+"#T c #879480",
+".2 c #888084",
+"bZ c #888481",
+"ay c #888561",
+"b1 c #898282",
+"#U c #899183",
+"#R c #89a082",
+"aG c #8b9085",
+"## c #8c7b74",
+".7 c #8c7f7c",
+"aK c #8c887e",
+".T c #8c8f91",
+".P c #8d8885",
+"bx c #8d8986",
+"by c #8d8b80",
+"aI c #8d8b86",
+"bw c #8d8d87",
+"ag c #8d9286",
+".9 c #8e7f7b",
+"bX c #8e8b80",
+"aH c #8e8b87",
+"aJ c #8e8c87",
+"bQ c #8e8e87",
+".R c #8e8f94",
+"bY c #8f8881",
+"bW c #8f8b88",
+".t c #8f8c81",
+"al c #908b88",
+"ad c #908d81",
+".Q c #9093a0",
+"aj c #927e6b",
+"bv c #928b84",
+"ah c #929484",
+".4 c #937980",
+"#b c #937b6f",
+"bu c #938f85",
+"bU c #949287",
+"aD c #94948d",
+"#M c #94a38e",
+"#N c #94a48d",
+"aF c #95928e",
+"bT c #95958f",
+".6 c #967977",
+"af c #967d6d",
+"aE c #96928f",
+"bV c #969389",
+".O c #97969c",
+"ai c #996f5c",
+"#. c #997872",
+"#L c #99a292",
+"bS c #9a938d",
+".s c #9a9a94",
+".8 c #9b7672",
+"#4 c #9b978c",
+"aB c #9c988e",
+"bR c #9c998f",
+"aC c #9d968f",
+"aA c #9d9a96",
+"az c #9d9d96",
+".J c #9ea5ad",
+".L c #9f9e99",
+"a# c #9f9f98",
+".K c #a0a1a6",
+"ac c #a19992",
+"#K c #a2a594",
+"#J c #a2a99c",
+"#I c #a3aa9e",
+"#H c #a3ac9c",
+".I c #a4a6b2",
+"ae c #a66f67",
+"ab c #a78a82",
+"a. c #a7a098",
+"#9 c #a8a499",
+".H c #a8adb4",
+"#8 c #a9a5a1",
+"#7 c #a9a9a2",
+".G c #a9aebd",
+".F c #a9b1bd",
+"#G c #acae9d",
+"#F c #adae9e",
+"#E c #aeafa7",
+"aa c #af7b6f",
+"#D c #afb2a7",
+"#6 c #b2aea3",
+"#5 c #b2aeaa",
+".D c #b2b7c4",
+"#x c #b3afa3",
+".r c #b4ada7",
+".E c #b4b3bc",
+".C c #b4bbc3",
+"#C c #b8b3a9",
+"#B c #b8b8a9",
+"#A c #b8b9b1",
+".q c #bab6ab",
+"#z c #babab2",
+".p c #bbb7b4",
+".o c #bcbcb5",
+".B c #c0bec2",
+".A c #c0c2c2",
+"#y c #c3bfb2",
+".z c #c4c4c1",
+"#t c #c6c6bd",
+".n c #c7beb6",
+"#u c #c7c3b6",
+".m c #c7c3be",
+".l c #c7c7be",
+".y c #c8cbc8",
+".x c #cbccc7",
+".k c #cfc7be",
+".j c #cfcbbe",
+".i c #cfcfc7",
+".w c #d5d2c7",
+".v c #d6d6cf",
+".h c #d7cfc7",
+".g c #d7d3c7",
+".# c #d7d7cf",
+".f c #dfd7cf",
+"#a c #dfdbcf",
+".e c #dfdbd7",
+".d c #dfdfd7",
+".3 c #e7dfd7",
+".c c #e7e3d7",
+".b c #e7e7df",
+".U c #edebde",
+".a c #efebdf",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQt.#.a.a.a.a.a.b.b.c.c.d.d.e.f.#.#.g.h.i.j.j.k.l.m.n.o.p.q.r.s.t.uQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.#.a.a.a.a.a.b.b.c.c.d.d.e.f.#.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.MQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.a.a.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.O.PQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.a.a.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.Q.RQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.a.a.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.S.TQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.a.U.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.V.WQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.a.b.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.X.YQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.b.b.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.Z.0QtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.c.c.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.1.2QtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.c.3.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.4.5QtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.3.d.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.6.7QtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.d.e.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.8.9QtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.e.d.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#.##QtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt#a.#.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#b#cQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.#.#.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#d#eQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.#.g.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#f#gQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.g.h.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#h#iQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.h.i.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#j#kQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.i.j.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#l#mQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.j.j.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#n#oQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.j.k.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#p#qQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.k.l.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#r#sQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt#t#u.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N#v#wQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#0#1#2#3QtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQt#4#5#6#7#7#8#9a.a#aaabacadaeafagahaiajakalamanaoapaqarasatauavawQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtaxayazazaAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaPaQaRaSaTaUaVaWaXaYaZQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQta0a1a2a3a4a5a6a7a8a9b.b#babbbca6bdbeQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtbfbgbhbhbibibhbhbjbhbkblbmbnbobpbqbrQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtbsbtbubvbwbxbybzbAbBbBbCbDbEbFbGbHbIbJbKbLbMbNbOQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtbPbQbRbSbTbUbVbQbQbWbXbYbBbZb0b1aQaQ#lb2b3b4b5QtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"};
+
+static const char* const punch_icon_data[] = {
+"48 48 14 1",
+". c None",
+"a c #000000",
+"c c #200000",
+"e c #373737",
+"g c #3f3f3f",
+"d c #400000",
+"i c #573737",
+"h c #600000",
+"# c #6e6e6e",
+"f c #7f7f7f",
+"b c #800000",
+"j c #a5a5a5",
+"l c #bfbfbf",
+"k c #ffffff",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+".....................#########..................",
+".....................aaaaaaaaa..................",
+"...............aaaaaabbbbbbbbbaaaaaaa#..........",
+".........######acddddbbbbbbbbbddddddae#.........",
+".........aaaaaaadbbbbbbbbbbbbbbbbbbbaaa.........",
+".#aaaaaaaadbbbbbbbbbbbbbbbbbbbbbbbbbbbba#.......",
+".#affffgadhbbbbbbbbbbbbbbbbbbbbbbbbbbbbdi##j....",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbdaa#....",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#....",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbae##j.",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaa#.",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#.",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#.",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#.",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#.",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#.",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba#.",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaa",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbdca",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbda",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbda",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbda",
+".#akkkkfabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbda",
+".#akkkkfabbbbbbbbbbbbadbbbbbbbbbbbbbbbbbbbbbbbda",
+".#affffgabbbbbbbbbbbbacdbbbbbbbbbbbbbbbbbbbbbbda",
+".#aaaaaaabbbbbbbbbbbbaaabbbbbbbbbbbbbbbbbbbbbbda",
+".#akkkkfabbbbbbbbbbbbaaabbbbbbbbbbbbbbbbbbbbbbda",
+".#aflkfgabbbbbbbbbbbbaaadhbbbbbbbbbbbbbbbbbbbbda",
+".#aafkaaabbbbbbbbbbbbaaaadbbbbbbbbbbbbbbbbbbbbda",
+".#akfakfabbbbbbbbbbbbbdaadbbbbbbbbbbbbbbbbbbbbda",
+".#affffgabbbbbbbbbbbbbdaacdbbbbbbbbbbbbbbbbbbbda",
+".#aafkaaabbbbbbbbbbbbbdaaaabbbbbbbbbbbbbbbbbbbda",
+".#aafkaaabbbbbbbbbbbbbbbaaaadbbbbbbbbbbbbbbbbbda",
+".#aagfaaadddddddddbbbbbbaaaacdbbbbbbbbbbbbbbbdca",
+".#aaaaaaaaaaaaaaaabbbbbbaaaaaabbbbbbbbbbbbbbbaaa",
+"................#aadbbbbbda.#abbbbbbbbbbbbbbba#.",
+"................j#adbbbbbda.#abbbbbbbbbbbbbhda#.",
+"..................adbbbbbda.#abbbbbbbbbbbbbdaa#.",
+"..................aaabbbbda.#abbbbbbbbbbbbbda...",
+"..................#eadhbbda.#adhbbbbbbbbbbbda...",
+"...................#aadbbda.#aadbbbbbbbbbbbda...",
+".....................aaaaaa...aaaaaabbbbdaaaa...",
+".....................######...####eaddddca###...",
+"..................................#aaaaaaa......"};
+
+static const char* const skunk_icon_data[] = { 
+"48 48 60 1",
+". c None",
+"R c #000000",
+"b c #050505",
+"i c #0b0b0b",
+"n c #0e0e0e",
+"p c #101010",
+"c c #161616",
+"A c #1b1b1b",
+"W c #202020",
+"f c #212121",
+"Z c #262626",
+"d c #292929",
+"h c #2c2c2c",
+"S c #313131",
+"e c #373737",
+"5 c #3a3a3a",
+"D c #3c3c3c",
+"V c #3f3f3f",
+"O c #404040",
+"z c #424242",
+"m c #474747",
+"v c #4d4d4d",
+"l c #525252",
+"g c #585858",
+"Q c #595959",
+"3 c #5d5d5d",
+"J c #5f5f5f",
+"k c #606060",
+"s c #626262",
+"U c #6b6b6b",
+"q c #6c6c6c",
+"w c #6d6d6d",
+"F c #6e6e6e",
+"P c #707070",
+"Y c #717171",
+"N c #777777",
+"t c #7c7c7c",
+"G c #7f7f7f",
+"r c #818181",
+"j c #898989",
+"T c #8a8a8a",
+"1 c #8b8b8b",
+"L c #8f8f8f",
+"C c #969696",
+"E c #a0a0a0",
+"a c #a5a5a5",
+"H c #ababab",
+"4 c #b0b0b0",
+"u c #b2b2b2",
+"K c #bfbfbf",
+"# c #c0c0c0",
+"M c #c4c4c4",
+"o c #cecece",
+"0 c #cfcfcf",
+"x c #d5d5d5",
+"B c #dfdfdf",
+"I c #eaeaea",
+"X c #efefef",
+"2 c #f4f4f4",
+"y c #ffffff",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"...............................#abccdaa.........",
+"..............................#efegghhij........",
+".............................kdflgggggmnj.......",
+"...........................olpgqrrrrrrsmitu.....",
+"...........................lcvwxyyyyyy#gzhAa....",
+"...........................pvgByyyyyyyyxCgzDu...",
+"......aaa..................cqByyyyyyyyyyyEger...",
+"...#FFGGGFa...............jcHyIHHHHH#yyyyyCgc...",
+"...aJKyyyLAu..............eMIENgggggsrryyyxgc...",
+".#aOINgHyyyPQaaa#.......olROEzmvzzzzzzlxIyy#Se..",
+".FJTUhgrHyyyBGGJeFFFFj.jlVWWVliclFFFFefgrIyyre..",
+".FKNhRgggEyyyyyXKKKKKnenKBYRloaao....#dZgNyyrVj.",
+"aW0gggggggCxyyyyyyyyyyyyyINRRt.........dhgByrzF.",
+"aG#ggggggggg#yyyyyyyyyxHHrgfRRj........acvwx#zF.",
+"aWWgggggggggsrrrrrrrrrqgggglfRnj.......olpgHyzF.",
+"aRRpzzmggggggggggggggggggggggcmit........kp12zF.",
+"aRRFFFizgggggggggggggggggggggcgzi.........lhxzF.",
+"oaa...a3mggggggggggggggggggggcZgc.........ahxzAu",
+"......timgggggggggggggvzmgggggfvc.........ahxxha",
+"......izggggggggggggggzhcgggggzhc.........ahx1ca",
+"......cgggggggggggggggggcgggggzhck........ahxzlo",
+"....#dZgggggggggggggggggpflgggzhge........uD4nj.",
+"....FfgggggghhhggggggvhhfRfeggzcve.........Fze..",
+"....FzgggmccdadcccZgZ5aaaaacgglfze.........Fpe..",
+"....FzggmbiR......eee......5vgghze..............",
+"....Fzggcehl...............acvghze..............",
+"....Fzggcgha...............olzghze..............",
+"....Fzggcghd................FzghSd#.............",
+"....Fzggcgha................FfgziRF.............",
+"....Fzgebgha................#dggcRF.............",
+"....FSzfSzfa.................ezzpej.............",
+"....FRRRRRe#.................eRRl...............",
+"....#dRldRF..................eRRa...............",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................"};
+
+
+static const char* const lines_icon_data[] = { 
+"48 48 5 1",
+". c None",
+"# c #000000",
+"c c #373737",
+"a c #6e6e6e",
+"b c #a5a5a5",
+"................................................",
+"................................................",
+"................................................",
+"...............#a...............................",
+"......aaa......#a.....ba.......ba...............",
+"......###......#a.....a#.......a#...............",
+".........###...#a.....a#......#a................",
+".........aaaaaa#a.....a#....baab................",
+"............####a.....a#....a#..................",
+".............a##a.....a#...#a...................",
+".............a#aaaab..a#.baab.......ab..........",
+".............a#.a##a..a#.a#.........#a..........",
+".............a#....a#####a..........#a..........",
+".............a#....baac#ab........baab..........",
+".............a#.......a#..........a#............",
+"............#a.......######......#a.............",
+"............#a.....baac#aaaaaa.baab.............",
+"............#a.....a#.a#...###.a#...............",
+"......###...#a....#a..a#......#a..........###...",
+"......aaaab.#a..baab..a#....baaaaab.....baaaa...",
+".........#a.#a..a#....a#....a#.a##a.....a#......",
+"..........a#...#a.....a#...#a.....a##a.#a.......",
+"..........a#aaaab.....a#.baab.....ba#caab.......",
+"..........a####.......a#.a#.........###.........",
+"..........a####.......a##a........a#...#a.......",
+"..........a#aaaab.....a##a.......aaa...ab.......",
+"..........a#...#a.....a##a.......#a.............",
+".........#a.....a##a..a#......###...............",
+".......ba#a.....baaaaac#....baaaa...............",
+".......a##a........a####....a#..................",
+".........#a........a####...#a...................",
+".........#a.......aaaac#aaaab...................",
+".........#a.......#a..a####.....................",
+".......a#.......a#....a##a......................",
+".......a#......aaa...ac#aaa.....................",
+".......a#......#a....###.a#.....................",
+".......a#....a#...###.a#...###..................",
+".......a#...aaa.baaaa.a#...aaaab................",
+".......a#...#a..a#....a#......#a................",
+"......#a.......#a.....a#.......a#...............",
+"......#a.....baab.....a#.......baab.............",
+"......#a.....a#.......a#.........#a.............",
+"......#a..........................a#............",
+"....baab..........................baab..........",
+"....a#..............................#a..........",
+".....................................a#.........",
+".....................................baab.......",
+".......................................#a......."};
+
+static const char* const basis_icon_data[] = { 
+"48 48 4 1",
+"#     c None",
+".     c #000000",
+"+     c #470000",
+"@     c #001F50",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++########################",
+"++++++++++++++++++++++++#@@@@@@@@@@#############",
+"++++++++++++++++++++++++@@@@@@@@@@@@@.##########",
+"++++++++++++++++++++++++@@@@@@@@@@@@@@@.########",
+"++++++++++++++++++++++++@@@@@@@@@@@@@@@@@#######",
+"++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@######",
+"++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@#####",
+"++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@####",
+"++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@.###",
+"++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@###",
+"++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@##",
+"++++++++++++++++++++++++@@@@@@@@@@@@@@@@@@@@@@##",
+"#############.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##",
+"#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"############.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"############.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"#############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#",
+"##############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##",
+"##############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##",
+"###############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###",
+"###############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###",
+"################@@@@@@@@@@@@@@@@@@@@@@@@@@@@####",
+"#################@@@@@@@@@@@@@@@@@@@@@@@@@@#####",
+"##################@@@@@@@@@@@@@@@@@@@@@@@@.#####",
+"###################@@@@@@@@@@@@@@@@@@@@@@#######",
+"####################@@@@@@@@@@@@@@@@@@@@########",
+"#####################.@@@@@@@@@@@@@@@@##########",
+"########################@@@@@@@@@@@@############",
+"############################....################"};
+
+/* end icon */
+static const char* end_icon_data[] = {
+"    48    48        2            1",
+". c #000000",
+"# c #b2c0dc",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"###............##.....#####................#####",
+"#####....###...####....#####...##............###",
+"#####...####...####.....#####.####....####...###",
+"####....#####..###......####..####....####....##",
+"####....##..#.####..#...####..####....####....##",
+"####...##..#######.##....###..###....#####....##",
+"###........#######.##....##..####....#####....##",
+"###....##..#######.###....#..####....#####....##",
+"###...###.##.####.#####......####...######...###",
+"###...###.##..###.######....#####...#####....###",
+"###...###.##.####.######....#####...#####....###",
+"##....####...###..######...#####....###....#####",
+"##....###....##...#######..###............######",
+"#...........##......#####..###...........#######",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################",
+"################################################"
+};
+
+/* open icon */
+static const char* open_icon_data[] = {
+"32 32 386 2",
+"Qt c None",
+"bj c #242420",
+"b5 c #25251b",
+"bI c #27281b",
+"bb c #272821",
+"co c #2a2b1f",
+"bc c #2a2c23",
+"aY c #2b2c24",
+"ba c #2c2e24",
+"be c #2d2f26",
+"bd c #2d3026",
+"#t c #302f2d",
+"aD c #323426",
+"bE c #363430",
+"b# c #3d3e37",
+"b4 c #424d16",
+"#q c #494949",
+"#W c #495523",
+"bi c #49581c",
+"#r c #4a4a49",
+"#s c #4b4a47",
+"dT c #4f4a41",
+"#a c #4f5a2b",
+"cV c #504c42",
+"dG c #504d43",
+"cA c #514c43",
+"#x c #515933",
+"dd c #524e45",
+"bH c #52641a",
+"bD c #53504a",
+"ag c #535c34",
+"d2 c #544e44",
+"dr c #544e45",
+"bC c #55524d",
+"aX c #576526",
+"cf c #59554b",
+"cn c #5a5e4b",
+"cB c #5b564b",
+"bU c #5c574c",
+"cW c #5c574d",
+"dq c #5d574a",
+".H c #5d5f50",
+".V c #5f6644",
+"aC c #5f6c36",
+"bB c #61605c",
+"b2 c #65625a",
+"bf c #656d4e",
+"dc c #676150",
+"bJ c #676359",
+"cC c #686458",
+"ce c #6c6454",
+"bu c #6e6657",
+"cI c #6e6b65",
+"bG c #6e871e",
+"cg c #6f6a5d",
+"cp c #6f6c61",
+"bV c #70695c",
+"dH c #706d66",
+"bF c #707759",
+"b3 c #71775f",
+"bh c #718f20",
+"aB c #728e23",
+"aW c #738d20",
+"#T c #739021",
+"dS c #746d5c",
+"bg c #749221",
+"aT c #749422",
+"ab c #749425",
+".U c #757f53",
+"#U c #759021",
+"aS c #759121",
+"aa c #759223",
+"a# c #759324",
+"b6 c #767267",
+"aZ c #767268",
+"aR c #769121",
+"aA c #769122",
+"ac c #769426",
+"#v c #769628",
+"bk c #777268",
+"ae c #779121",
+"ad c #779223",
+"at c #779522",
+"ax c #779622",
+"as c #779623",
+"aQ c #789121",
+"au c #789322",
+"av c #789422",
+"aw c #789522",
+"aV c #789622",
+"#u c #79825d",
+"aP c #799221",
+"az c #799522",
+"ay c #799622",
+"a. c #799627",
+"aU c #799823",
+"bv c #7a7366",
+"#V c #7a952d",
+"#. c #7b835f",
+"cm c #7c7973",
+"#w c #7d9731",
+"af c #7f9735",
+"dF c #807760",
+"bW c #837c6d",
+"b7 c #848074",
+"bA c #848483",
+"bK c #858075",
+"aO c #858877",
+"## c #859e3d",
+"cq c #868275",
+"ar c #868a77",
+"ah c #878177",
+"cU c #887f6a",
+"#X c #888379",
+"#y c #88857b",
+"#9 c #888b7a",
+"bl c #898578",
+"bT c #8a8169",
+"ch c #8a857b",
+"#b c #8b877e",
+"d3 c #908d88",
+".9 c #918f89",
+"d7 c #92886f",
+"#L c #929292",
+"#M c #92938a",
+"bz c #939393",
+"cr c #999485",
+".W c #99968f",
+".T c #999791",
+"bL c #9a9586",
+"cK c #9c9990",
+"dp c #9d937a",
+"#S c #9dae64",
+"b8 c #9e988a",
+"b1 c #9e9a90",
+"d8 c #a09e99",
+"d1 c #a19679",
+".I c #a28b74",
+"a0 c #a29c8d",
+"a9 c #a29d90",
+"bX c #a29e95",
+"b0 c #a29e96",
+"bt c #a59b82",
+"cJ c #a5a199",
+"cX c #a5a39e",
+"cL c #a6a194",
+"bm c #a7a091",
+".M c #a94900",
+".N c #a94a00",
+"cz c #ab9f83",
+"#p c #ababab",
+".L c #ac5511",
+"dW c #aca38b",
+"aE c #aca596",
+"bw c #aea9a3",
+"d6 c #afa58c",
+"bZ c #afaca8",
+"ds c #afadaa",
+"d5 c #b0a791",
+"dR c #b1a68b",
+".K c #b26a2f",
+"d4 c #b2aa99",
+"b9 c #b2ab9a",
+".D c #b35502",
+"cM c #b3ad9d",
+"#R c #b3bd8d",
+"db c #b4a98f",
+"bM c #b4ac9b",
+"#P c #b4bf8f",
+".C c #b55402",
+".B c #b55403",
+".A c #b55603",
+".z c #b55704",
+"#O c #b5c091",
+"#Q c #b5c092",
+".E c #b65703",
+"de c #b6b0a2",
+"c3 c #b6b1a8",
+"cD c #b6b4b0",
+"#N c #b6c194",
+"c0 c #b7b09d",
+"dK c #b7b09e",
+".y c #b85b08",
+"df c #b8b0a0",
+"a1 c #b8b2a1",
+"c2 c #b8b4a9",
+"c1 c #b9b2a1",
+".t c #ba5f11",
+".s c #ba6111",
+".r c #ba6113",
+".q c #ba6213",
+"cd c #baaf96",
+"dX c #bab39d",
+"e# c #bab6b0",
+".p c #bb6213",
+"bn c #bbb4a1",
+"cT c #bcb199",
+"dE c #bdb39b",
+"a8 c #bdb39c",
+"#Y c #bdb6a7",
+"dD c #bfb59c",
+"do c #bfb59d",
+"cs c #bfb8a5",
+"ai c #bfb8a8",
+"aF c #bfb9a7",
+"dv c #bfb9a8",
+"bY c #bfbeb9",
+".u c #c06210",
+".i c #c06b20",
+".J c #c08f65",
+"dn c #c0b69f",
+"#c c #c0baac",
+"c4 c #c0bbb0",
+"cl c #c0bbb2",
+".O c #c1804a",
+"dC c #c1b69e",
+"da c #c1b69f",
+"dw c #c1b8a4",
+"cN c #c1baa6",
+"c. c #c1baa7",
+".h c #c26d22",
+"dm c #c2b8a0",
+"cS c #c2b8a1",
+"bN c #c2baa6",
+"#z c #c2bbad",
+"ck c #c2beb3",
+".o c #c36b1d",
+"cy c #c3b9a2",
+"cR c #c3b9a3",
+"d# c #c3baa4",
+"dB c #c3bba5",
+"e. c #c3beb5",
+"by c #c3c3c3",
+"#8 c #c4baa4",
+"bS c #c4bba5",
+"d0 c #c4bba7",
+"dL c #c4bcae",
+"dg c #c4bdab",
+"cF c #c4bdb0",
+".F c #c58750",
+"cx c #c5baa4",
+"aM c #c5bca4",
+"d. c #c5bca5",
+"cw c #c5bca6",
+"c9 c #c5bda7",
+"cc c #c6bca6",
+"bs c #c6bda7",
+"ci c #c6c1b5",
+"cv c #c7bda7",
+"br c #c7bea8",
+"bR c #c7bfa7",
+"a7 c #c7bfa9",
+"ct c #c7bfac",
+"cO c #c7c0ac",
+"dM c #c7c0af",
+".j c #c8762a",
+"cQ c #c8bea8",
+"cb c #c8bfa9",
+"cP c #c8bfaa",
+"c# c #c8c0ac",
+"cH c #c8c1b1",
+"cG c #c8c2b3",
+"cj c #c8c4bb",
+".X c #c9bbab",
+"bQ c #c9bfa9",
+"c8 c #c9bfaa",
+"a6 c #c9c0ab",
+"cu c #c9c1aa",
+"bP c #c9c1ac",
+"bo c #c9c1ad",
+"a2 c #c9c2af",
+"aL c #cac0ab",
+"bq c #cac1ab",
+"ap c #cac1ac",
+"bO c #cac2ae",
+"dQ c #cac4af",
+"a5 c #cbc1ac",
+"#7 c #cbc2ad",
+"ao c #cbc3ac",
+"ca c #cbc3ad",
+"an c #cbc3ae",
+"bp c #cbc3af",
+"aj c #cbc3b2",
+"dA c #cbc4b1",
+"c5 c #cbc5b8",
+"dV c #cbc8c0",
+"d9 c #cbc8c2",
+"#6 c #ccc4ae",
+"aK c #ccc4b0",
+"aG c #ccc4b1",
+"#Z c #ccc4b5",
+"a4 c #ccc5af",
+"am c #ccc5b1",
+"aq c #ccc7bb",
+"#5 c #cdc4b0",
+"a3 c #cdc5b1",
+"dl c #cdc5b3",
+"dY c #cdc7b6",
+"du c #cdcac2",
+"bx c #cdccc9",
+".k c #ce8340",
+"aJ c #cec6b1",
+"#4 c #cec6b2",
+"aH c #cec6b3",
+"c7 c #cec6b4",
+"#A c #cec7b7",
+"dI c #cecdcc",
+".Z c #cfa484",
+"aI c #cfc6b2",
+"#3 c #cfc7b4",
+"dZ c #cfc9b8",
+"cZ c #cfccc5",
+"dJ c #cfccc7",
+"#H c #d0c7b4",
+"al c #d0c9b5",
+"#G c #d0c9b6",
+"dP c #d0caba",
+"dt c #d0cec8",
+"#I c #d1c8b5",
+"ak c #d1c9b6",
+"#0 c #d1c9b8",
+"#2 c #d1cab7",
+"c6 c #d1cab9",
+"#F c #d1cbb8",
+"dN c #d1ccbd",
+".Y c #d2b7a1",
+"aN c #d2cfc7",
+"#1 c #d3cbb8",
+"#k c #d3cbb9",
+"dh c #d3ccbd",
+"dx c #d3cebd",
+".x c #d49f6d",
+".0 c #d4ae91",
+"#j c #d4ccbb",
+"#B c #d4cdbd",
+"#d c #d4cdc0",
+"dO c #d4cebf",
+".G c #d4d2cd",
+"cE c #d4d3cf",
+".v c #d57b27",
+"#E c #d5ccba",
+"#D c #d5cdbc",
+"#i c #d5cebc",
+"#C c #d5cebd",
+"dk c #d5cebf",
+"dU c #d5d3d0",
+"#h c #d6cebd",
+"#l c #d6cfbe",
+"#J c #d6d1c3",
+"#f c #d7cfbf",
+"#g c #d7d0bf",
+"dz c #d7d1c3",
+"cY c #d7d6d4",
+"dy c #d8d3c5",
+"di c #d8d3c6",
+".Q c #d9b490",
+"dj c #d9d3c6",
+"#m c #d9d6d0",
+".3 c #dbd4c4",
+"b. c #dbdbdb",
+".d c #dc9f65",
+".w c #dca36c",
+".e c #dcc2a8",
+".a c #dcdbdb",
+".# c #dcdcdb",
+".c c #dd8e41",
+".l c #dda772",
+".R c #ddccbb",
+".4 c #ddd8c9",
+"#e c #ddd8cc",
+".7 c #dddcdc",
+"#K c #dedbd4",
+".5 c #dedcd3",
+"#n c #dfdedb",
+".g c #e09041",
+".n c #e0cdb9",
+"#o c #e0e0de",
+".f c #e1d0bf",
+".2 c #e1dcd1",
+".b c #e3b88c",
+".8 c #e3e1dc",
+".m c #e4c09d",
+".S c #e4e4e2",
+".P c #e5d1be",
+".6 c #e6e4df",
+".1 c #e8dccf",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQt.#.a.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.#.b.c.d.e.fQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.a.g.h.i.j.k.l.m.a.aQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.n.o.p.q.r.s.t.u.v.wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.x.y.z.A.A.B.C.D.E.F.aQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.G.H.I.J.K.L.M.N.O.P.Q.RQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQt.S.T.U.V.W.X.Y.Z.0.1.2.3.4.5.6.#QtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQt.7.8.9#.###a#b#c#d#e#f#g#h#i#j#k#l.2#m#n#oQtQtQtQtQtQtQt",
+"#p#q#q#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#k#F#G#H#I#l#J#KQtQtQtQtQtQt",
+"#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#0#k#1#2#G#3#4#5#6#7#8QtQtQtQtQtQt",
+"#L#9a.a#aaabacadae#Uadafagahaiaj#Gakal#H#4amanaoapaqQtQtQtQtQtQt",
+"#LarasatauavawaxayazaAaBaCaDaEaFaGaHaIaJaKanapaLaMaNQtQtQtQtQtQt",
+"#LaOaPaeaQaRaSaTaUaVaWaXaYaZa0a1a2a3a3a4ana5a6a7a8a9b.b.QtQtQtQt",
+"#Lb#babbbcbdbebfbgbhbibjbkblbmbnbobpbp#7bqa6brbsbtbubvbwbxQtQtQt",
+"bybzbAbBbCbDbEbFbGbHbIbJbKbLbMbNbOan#7bPbQbRbsbSbTbUbVbWbXQtQtQt",
+"QtQtbYbZb0b1b2b3b4b5b6b7b8b9c.c#ca#7a6cbbsccbScdcecfcgchQtQtQtQt",
+"QtQtcicjckclcmcncocpcqcrb9csctbPa5cucbcvcwcxcyczcAcBcCcDQtQtQtQt",
+"QtQtcEcFcGcHaqcIcJcKcLcMcNcOapapcPcQbscwcRcScTcUcVcWcXQtQtQtQtQt",
+"QtQtQtQtcYcZc0c1c2c3c4c5c6c7bPc8brc9d.d#cSdadbdcddcfQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtb.dedfdgdhdidjdkdlbr#8cydmdndodpdqdrdsQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtdtdudvdwdxdydzc6dAdBdCdDdEdFdGdHdIQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtdJdKdLdMdNdOdPdQdndRdSdTQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtdUdVdWdXdYdZd0d1d2d3QtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtb.d4d5d6d7d8QtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtd9e.e#QtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"};
+
+/* new file icon */
+static const char* newfile_icon_data[] = {
+"32 32 267 2",
+"Qt c None",
+"bE c #141414",
+"au c #151515",
+"## c #161616",
+"aw c #191919",
+"ai c #1b1b1b",
+"#7 c #1e1e1e",
+"#W c #242424",
+".z c #252525",
+"#L c #292929",
+"ci c #2d2a28",
+"cg c #2e2b29",
+"cf c #2e2b2a",
+"ce c #2e2c2a",
+"cd c #2e2c2b",
+"cc c #2e2d2c",
+"c. c #2e2e2e",
+"cb c #2f2d2d",
+"ca c #2f2e2d",
+"c# c #2f2e2e",
+"#A c #2f2f2f",
+".l c #323232",
+"ch c #332c27",
+".m c #333333",
+"#s c #343434",
+"#. c #383838",
+"#k c #3a3a3a",
+".k c #3e3e3e",
+".A c #3f3f3f",
+"#c c #404040",
+".j c #434343",
+".6 c #454545",
+".K c #464646",
+".i c #4b4b4b",
+".Y c #4c4c4c",
+".h c #505050",
+".P c #515151",
+"#i c #54504d",
+".g c #565656",
+".V c #595959",
+".B c #5a5a5a",
+".f c #5b5b5b",
+".o c #5d5d5d",
+".e c #616161",
+".N c #636363",
+".8 c #646464",
+".d c #666666",
+".5 c #6a6a6a",
+".c c #6c6c6c",
+".1 c #6d6d6d",
+"#h c #6f6a66",
+".b c #707070",
+".L c #737373",
+".C c #747474",
+".9 c #757575",
+".a c #7b7b7b",
+".7 c #7d7d7d",
+".y c #878787",
+"#g c #888580",
+".x c #919191",
+"b9 c #937660",
+"b8 c #947964",
+"b7 c #957c68",
+"b6 c #967f6c",
+"#r c #96918d",
+"b5 c #978170",
+".W c #979797",
+"b4 c #998473",
+"b3 c #9a8778",
+"b2 c #9a897b",
+"b1 c #9c8d80",
+"b0 c #9c8e83",
+".M c #9c9c9c",
+"bZ c #9d9087",
+"bY c #9e938b",
+"#f c #9e9c9a",
+".2 c #9e9e9e",
+"bX c #a0968f",
+"bW c #a09893",
+"bU c #a0a0a0",
+"bV c #a19b97",
+".w c #a1a1a1",
+"bo c #a2a2a2",
+"ba c #a3a3a3",
+"aY c #a4a4a4",
+".4 c #a5a5a5",
+"av c #a6a6a6",
+".v c #a7a7a7",
+"ah c #a8a8a8",
+"ag c #a9a9a9",
+".u c #aaaaaa",
+"#V c #ababab",
+".t c #acacac",
+".s c #aeaeae",
+"#a c #afafaf",
+"#z c #b0a9a3",
+".r c #b0b0b0",
+"#e c #b1b1b0",
+"#j c #b1b1b1",
+".q c #b2b2b2",
+"#b c #b3b3b3",
+".p c #b4b4b4",
+".Z c #b6b6b6",
+".O c #b7b7b7",
+"#q c #b9b2ac",
+".D c #b9b9b9",
+".n c #bbbbbb",
+"#K c #c2b6ad",
+".# c #c3c3c3",
+"bT c #c7a386",
+"bD c #c9a78c",
+"bn c #caab91",
+"b# c #ccaf97",
+"#U c #ccbcaf",
+"#d c #cdcdcd",
+"aX c #ceb39e",
+"aJ c #cfb7a3",
+"at c #d0b9a6",
+"af c #d0bba9",
+"#6 c #d1bfaf",
+"#y c #d2c8c0",
+"#p c #d4cec8",
+".X c #d6d6d6",
+".J c #d7d7d7",
+"bS c #d9b596",
+".3 c #dddddd",
+"bF c #dedbda",
+"bC c #e0bc9e",
+"bR c #e0bc9f",
+"bp c #e0dfdf",
+".E c #e0e0e0",
+"bm c #e1c0a4",
+".Q c #e1e1e1",
+"bQ c #e3c3a9",
+"b. c #e3c4ab",
+"#J c #e3d6cb",
+"bP c #e5c7af",
+"aW c #e5c9b2",
+"aI c #e6cdb8",
+"bO c #e7cbb5",
+"bN c #e7ceb9",
+"as c #e7d0bb",
+"ae c #e7d2bf",
+"bB c #e8c5a9",
+"bA c #e9c9ae",
+"#5 c #e9d6c6",
+"#T c #e9d9cb",
+"#x c #e9e1da",
+"bl c #eacab0",
+"bM c #ead4c1",
+"bL c #ead6c6",
+"#o c #eae7e2",
+"bz c #ebcdb4",
+"bk c #ebceb6",
+".U c #ebebeb",
+"a9 c #eccfb7",
+"bK c #ecdacc",
+"bG c #ece5e0",
+"by c #edd1ba",
+"bj c #edd1bb",
+"a8 c #edd3bc",
+"aV c #edd4be",
+"bJ c #edded2",
+"bx c #eed5c0",
+"bi c #eed5c1",
+"a7 c #eed7c2",
+"aU c #eed8c3",
+"bw c #efd7c4",
+"aH c #efd8c5",
+"bI c #efe2d7",
+"bh c #f0d9c7",
+"a6 c #f0dac8",
+"aT c #f0dbc9",
+"aG c #f0dcca",
+"bg c #f0dccb",
+"bH c #f0e5dd",
+".F c #f0f0f0",
+"ar c #f1dbc8",
+"ad c #f1ddcc",
+"bv c #f1decc",
+"aF c #f1dfd0",
+"a5 c #f2dece",
+"aq c #f2dfce",
+"aS c #f2dfcf",
+"bu c #f2e0d1",
+"ac c #f2e1d2",
+"#4 c #f3e1d3",
+"ap c #f3e2d4",
+"aE c #f3e3d6",
+"ab c #f3e4d8",
+"bq c #f3ede9",
+".I c #f3f3f3",
+"aR c #f4e3d5",
+"bt c #f4e4d7",
+"#3 c #f4e5d8",
+"aQ c #f4e5d9",
+"#S c #f4e6da",
+"#I c #f4e9df",
+"bb c #f4f1ee",
+"ao c #f5e6d9",
+"a4 c #f5e7da",
+"aD c #f5e7dc",
+"aa c #f5e8dd",
+"bf c #f5e8de",
+"#2 c #f5e9de",
+"aC c #f5e9e0",
+"#R c #f5eae0",
+"#w c #f5efea",
+".H c #f5f5f5",
+"a3 c #f6eadf",
+"bs c #f6ebe2",
+"be c #f6ece4",
+"aZ c #f6f4f4",
+".G c #f6f6f6",
+"an c #f7eadf",
+"aP c #f7ece1",
+"a# c #f7ece3",
+"#1 c #f7ece4",
+"a2 c #f7ede5",
+"#Q c #f7ede6",
+"#H c #f7eee7",
+"aK c #f7f6f6",
+".R c #f7f7f7",
+"aO c #f8efe6",
+"br c #f8efe8",
+"bd c #f8efe9",
+"aB c #f8f0e8",
+"#0 c #f8f0ea",
+"a1 c #f8f1eb",
+"#P c #f8f1ec",
+"#n c #f8f7f5",
+"#G c #f9f1ec",
+"aN c #f9f2ec",
+"aA c #f9f3ed",
+"#Z c #f9f3ee",
+".0 c #f9f9f9",
+"am c #faf3ec",
+"bc c #faf4ef",
+"a. c #faf4f0",
+"al c #faf5f0",
+"#O c #faf5f1",
+"#F c #faf6f2",
+"az c #faf6f3",
+"#9 c #faf7f3",
+"#v c #fbf6f3",
+"#N c #fbf7f5",
+"#Y c #fbf8f6",
+"ay c #fbf9f8",
+"a0 c #fcf8f5",
+"ak c #fcf8f6",
+"aM c #fcf9f6",
+"#8 c #fcf9f8",
+"#E c #fcfaf7",
+"#u c #fcfaf8",
+"#X c #fcfaf9",
+"aj c #fcfbfa",
+"#M c #fcfcfa",
+"#D c #fdfbfb",
+"aL c #fdfcfa",
+"#m c #fdfcfc",
+"#t c #fdfdfc",
+"#l c #fdfdfd",
+"#C c #fefdfd",
+"ax c #fefefd",
+".T c #fefefe",
+"#B c #fffefe",
+".S c #ffffff",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.#.a.b.c.d.e.f.g.h.i.j.k.l.m.aQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.CQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.D.g.E.F.G.G.G.G.H.I.E.J.K.L.M.N.dQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.O.P.Q.R.S.S.S.S.S.T.G.U.V.W.X.w.e.YQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.Z.i.Q.R.S.S.S.S.S.S.T.0.1.2.U.3.4.1.5QtQtQtQtQtQtQt",
+"QtQtQtQtQtQt.p.6.Q.R.S.S.S.S.S.S.S.T.7.8.9.5.Y#.###aQtQtQtQtQtQt",
+"QtQtQtQtQtQt#b#c.Q.R.S.S.S.S.S.S.S.T#d#e#f#g#h#i###aQtQtQtQtQtQt",
+"QtQtQtQtQtQt#j#k.Q.R.S.S.S.S.S.S.T#l#m#n#o#p#q#r##.sQtQtQtQtQtQt",
+"QtQtQtQtQtQt.r#s.Q.R.S.S.S.S.S.S.T#t#u#v#w#x#y#z##.tQtQtQtQtQtQt",
+"QtQtQtQtQtQt.r#A.Q.R.S.S.S#B.T#C#D#E#F#G#H#I#J#K##.tQtQtQtQtQtQt",
+"QtQtQtQtQtQt.s#L.Q.R.S.S.S#B#C#M#N#O#P#Q#R#S#T#U###VQtQtQtQtQtQt",
+"QtQtQtQtQtQt.t#W.Q.R.S.T.T#m#X#Y#Z#0#1#2#3#4#5#6##.uQtQtQtQtQtQt",
+"QtQtQtQtQtQt.u#7.Q.R.S.T#m#8#9a.#Ha#aaabacadaeaf##agQtQtQtQtQtQt",
+"QtQtQtQtQtQtahai.Q.R.T#lajakalama#anaoapaqarasatauahQtQtQtQtQtQt",
+"QtQtQtQtQtQtavaw.Q.Rax#DayazaAaBaCaDaEaFaGaHaIaJau.vQtQtQtQtQtQt",
+"QtQtQtQtQtQt.4au.QaKaLaM#FaNaOaPaQaRaSaTaUaVaWaXauavQtQtQtQtQtQt",
+"QtQtQtQtQtQtaY##.EaZa0a.a1a2a3a4aca5a6a7a8a9b.b#auavQtQtQtQtQtQt",
+"QtQtQtQtQtQtba##.Ebbbcbdbebf#3apbgbhbibjbkblbmbnau.4QtQtQtQtQtQt",
+"QtQtQtQtQtQtboaubpbqbrbsaabtbubvbwbxbybzbAbBbCbDaubaQtQtQtQtQtQt",
+"QtQtQtQtQtQt.wbEbFbGbHbIbJbKbLbMbNbObPbQbmbRbSbTauboQtQtQtQtQtQt",
+"QtQtQtQtQtQtbUbEbVbVbWbXbYbZb0b1b2b3b4b5b6b7b8b9auboQtQtQtQtQtQt",
+"QtQtQtQtQtQtavc.c#c#cacbcbcccccdcdcecfcgchcicici#A.tQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"};
+
+/* save icon */
+static const char* save_icon_data[] = {
+"32 32 175 2",
+".# c None",
+"aP c #000000",
+"#o c #020202",
+"aG c #060606",
+"aH c #080808",
+"aB c #090909",
+"#a c #0a0a0a",
+"aq c #0d0d0d",
+".q c #0e0e0e",
+"aK c #101010",
+"#O c #131313",
+"#g c #141414",
+"#G c #161616",
+".C c #191919",
+"aM c #1a1a1a",
+"#i c #1d1d1d",
+".w c #1e1e1e",
+"aN c #1f1f1f",
+".1 c #212121",
+"ay c #242424",
+"#u c #262626",
+".o c #272727",
+"ax c #2d2d2d",
+".n c #303030",
+"#1 c #313131",
+"aI c #323232",
+".B c #333333",
+"aL c #343434",
+".p c #363636",
+"#0 c #383838",
+"a. c #393939",
+"#n c #3a3a3a",
+"#2 c #3c3c3c",
+"#z c #3d3d3d",
+".9 c #3e3e3e",
+".N c #3f3f3f",
+".2 c #414141",
+".O c #434343",
+".I c #454545",
+"ao c #464646",
+".r c #474747",
+"#t c #484848",
+".H c #494949",
+".s c #4a4a4a",
+"aO c #4b4b4b",
+"#F c #4c4c4c",
+".M c #4e4e4e",
+"#p c #4f4f4f",
+"#N c #505050",
+"ak c #515151",
+".8 c #525252",
+"aj c #535353",
+"#3 c #545454",
+"aA c #555555",
+"#Q c #575757",
+".x c #585858",
+"#y c #5a5a5a",
+"av c #5b5b5b",
+".L c #5c5c5c",
+".0 c #5d5d5d",
+".y c #5e5e5e",
+"#x c #5f5f5f",
+"al c #606060",
+".z c #616161",
+"#4 c #626262",
+"#h c #636363",
+"#7 c #646464",
+"#U c #666666",
+".A c #676767",
+"#9 c #686868",
+"#Z c #696969",
+"#M c #6a6a6a",
+".D c #6b6b6b",
+"#s c #6c6c6c",
+"#f c #6d6d6d",
+"#8 c #6e6e6e",
+"#6 c #6f6f6f",
+"#R c #707070",
+"#E c #717171",
+"#m c #727272",
+"#T c #737373",
+"af c #747474",
+"#L c #757575",
+"#e c #757777",
+"ae c #767676",
+".P c #777777",
+"am c #797979",
+"#l c #7b7b7b",
+"#5 c #7c7c7c",
+"#Y c #7d7d7d",
+"#b c #7e7e7e",
+".K c #818181",
+"au c #828282",
+"at c #848484",
+"#. c #858585",
+"#I c #868686",
+"ad c #888888",
+"#v c #898989",
+"ab c #8a8a8a",
+"#S c #8b8b8b",
+"aR c #8c8c8c",
+"a# c #8d8d8d",
+"#H c #8e8e8e",
+".T c #909090",
+".g c #929292",
+"ac c #939393",
+"aC c #949494",
+".h c #959595",
+".i c #9d9d9d",
+"az c #a2a2a2",
+"#P c #a3a3a3",
+"#J c #a5a5a5",
+".Z c #a6a6a6",
+"#w c #a7a7a7",
+".E c #a8a8a8",
+".v c #aaaaaa",
+".3 c #ababab",
+".7 c #b8b8b8",
+"ai c #b9b9b9",
+"aF c #bcbcbc",
+"#D c #c0c0c0",
+"#X c #c1c1c1",
+".J c #c2c2c2",
+".f c #c3c3c3",
+"#W c #c5c5c5",
+"#C c #c6c6c6",
+"#j c #c7c7c7",
+"#A c #c8c8c8",
+".S c #c9c9c9",
+"#V c #cbcbcb",
+"aw c #cccccc",
+".6 c #cdcdcd",
+"aS c #cecece",
+"aQ c #cfcfcf",
+"as c #d0d0d0",
+"an c #d1d1d1",
+"ar c #d2d2d2",
+"aE c #d3d3d3",
+"aJ c #d4d4d4",
+"aD c #d5d5d5",
+"#q c #d6d6d6",
+"ap c #d7d7d7",
+".Q c #d8d8d8",
+".4 c #d9d9d9",
+"aa c #dadada",
+".F c #dbdbdb",
+"## c #dddddd",
+".Y c #dedede",
+"#B c #dfdfdf",
+".m c #e0e0e0",
+".G c #e1e1e1",
+".b c #e2e2e2",
+".e c #e3e3e3",
+".u c #e4e4e4",
+"#d c #e4e6e6",
+".j c #e5e5e5",
+".R c #e6e6e6",
+".k c #e7e7e7",
+"ah c #e8e8e8",
+".t c #e9e9e9",
+".c c #eaeaea",
+".l c #ebebeb",
+".d c #ececec",
+".a c #eeeeee",
+".5 c #efefef",
+"Qt c #f0f0f0",
+"ag c #f3f3f3",
+"#K c #f4f4f4",
+"#c c #f5f5f5",
+".V c #f8f8f8",
+"#r c #fafafa",
+".W c #fcfcfc",
+"#k c #fdfdfd",
+".U c #fefefe",
+".X c #ffffff",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#",
+".a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.#",
+".a.a.a.a.a.a.a.a.a.a.b.c.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.#",
+".d.d.d.d.d.d.d.d.d.e.f.g.h.i.j.k.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.#",
+".l.l.l.l.l.l.l.l.l.m.n.o.p.q.r.s.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.#",
+".t.t.k.k.t.t.t.t.u.v.w.x.y.z.A.B.C.D.E.F.G.b.t.t.t.t.t.t.t.t.t.#",
+".t.t.k.k.t.t.t.t.u.H.I.x.x.v.J.K.L.M.N.O.P.Q.b.t.t.t.t.t.t.t.t.#",
+".k.k.k.k.k.k.k.R.S.n.x.x.T.U.V.W.X.Y.Z.0.H.1.2.g.3.Y.e.j.k.k.k.#",
+".R.R.R.R.R.R.R.m.g.o.x.x.4.X.X.X.X.X.5.6.S.7.8.9.C.H#.##.R.R.R.#",
+".j.j.j.j.j.j.j.Y#a.I.x#b.X.X.X.X.X.X.X.X.W#c#d#e#f.A#g#h.G.j.j.#",
+".u.u.u.u.u.u.u###i.x.x#j.X.X.X.X.X.X.X.X.U#k.F#l#m.z#n#o.m.u.u.#",
+".e.e.e.e.e.e.#.H#p.x.D#q.X.X.X.X.X.X.X.X#k#r.i#s.x#t#u#v.e.e.e.#",
+".G.G.G.G.G.G#w.H.x.x#x#q.X.X.X.X.X.X.X.X#r.l#y#s.x#z.B#A.G.G.G.#",
+".m.m.m.m.m#B.y#n.x.x#s#m#C#D.X.X.X.X.X.X.X.Q#s#E.x#z#F.m.m.m.m.#",
+"#B#B#B#B#B.##G#F.x#E#H#I#m#s#J#J.U.U.X.W#K#.#L#M#N#O#P#B#B#B#B.#",
+".Y.Y.Y.Y.Y.s.x.x#Q#h.A#R#I#S.K#T#U#M#V#W#X#Y#Z.x#0#1.Y.Y.Y.Y.Y.#",
+"########.3#2#3.x.L#4#I.P.D.D#E#l.K#5#6#7.L#8#9.xa.a###########.#",
+".F.F.Faa#9#z.x.x#4ab.t#Wacadae.A#7#f.Paf#R#f#7.p.C#w.F.F.F.F.F.#",
+"aaaaaa.4.C#3.x#y#9.7ag.tah.Gai#Yajak#xal.A#9.x#i.saaaaaaaaaaaa.#",
+".4.4.4am#a#1.r.x#R##.m.4aaanan.7#M.y.Mao.y#h.M#g.F.4.4.4.4.4.#.#",
+".Q.Q.Qap#Iacaq#n#N.Earas#A.Janat#Uau#E.Hav#ya.#oaw.Q.Q.Q.Q.Q.#.#",
+"apapapapapap#waoaxay#Y.gazaw#X#L.D#5#M#3aA#QaBaC.Qapapapapap.#.#",
+"aDaDaDaDaDaEaEaEaFacaGaH.y.g#U#Q#b#EaoajaA#QaI#X#qaDaDaDaDaD.#.#",
+"aJaJaJaJaJaJaJaJaJaJapae.O#GaKaL#Ual.B.MakaMamapaJaJaJaJaJaJ.#.#",
+"aEaEaEaEaEaEaEaEaEaEaEaE.6az.yaMaN#0.paO.BaH.4aEaEaEaEaEaEaE.#.#",
+"arararararararararararararararar#P.r#g#naPaC.Qararararararar.#.#",
+"asasasasasasasasasasasasasasasasasaQaR#S.naFarasasasasasasas.#.#",
+"aQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQ.#.#",
+"aSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaSaS.#.#",
+"ananananananananananananananananananananananananananananananan.#",
+".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#"};
+
+/* save as icon */
+static const char* saveas_icon_data[] = {
+"32 32 206 2",
+".# c None",
+"#D c #020202",
+"b. c #060606",
+"b# c #080808",
+"a6 c #090909",
+"aP c #0a0a0a",
+"aU c #0d0d0d",
+".q c #0e0e0e",
+"bd c #101010",
+"#4 c #131313",
+"#q c #141414",
+"bc c #161616",
+".C c #191919",
+"bf c #1a1a1a",
+"aN c #1d1d1d",
+".w c #1e1e1e",
+"bg c #1f1f1f",
+".3 c #212121",
+"al c #232323",
+"a2 c #242424",
+"#K c #262626",
+".o c #272727",
+"#. c #282728",
+"a1 c #2d2d2d",
+".n c #303030",
+"ai c #313131",
+"aQ c #323232",
+".B c #333333",
+"be c #343434",
+".p c #363636",
+"ah c #383838",
+"#T c #390f39",
+"at c #393939",
+"#C c #3a3a3a",
+"#P c #3d3d3d",
+"#9 c #3e143e",
+"#e c #3e3e3e",
+".O c #3f3f3f",
+".4 c #414141",
+".P c #434343",
+"#k c #444444",
+".J c #454545",
+"aS c #464646",
+"#Y c #471d47",
+".r c #474747",
+"#J c #484848",
+".I c #494949",
+".s c #4a4a4a",
+"bh c #4b4b4b",
+"#t c #4c4c4c",
+"an c #4d244d",
+".N c #4e4e4e",
+"aw c #502650",
+"#3 c #505050",
+"aF c #512751",
+"aK c #515151",
+"#d c #525252",
+"aJ c #535353",
+"aD c #545454",
+"a4 c #555555",
+"a5 c #575757",
+".x c #585858",
+"#O c #5a5a5a",
+"aZ c #5b5b5b",
+".M c #5c5c5c",
+".2 c #5d5d5d",
+".y c #5e5e5e",
+"aL c #5f5f5f",
+"aM c #606060",
+".z c #616161",
+"ak c #626262",
+"#r c #636363",
+"aq c #646464",
+"ab c #666666",
+".A c #676767",
+"as c #686868",
+"ag c #696969",
+"#2 c #6a6a6a",
+".D c #6b6b6b",
+".T c #6c5e6c",
+"#I c #6c6c6c",
+"#p c #6d6d6d",
+"ar c #6e6e6e",
+"ao c #6f6f6f",
+"aB c #707070",
+".9 c #715571",
+"#U c #717171",
+"#B c #727272",
+"#7 c #736573",
+"aa c #737373",
+"aA c #747474",
+"#1 c #757575",
+"#o c #757777",
+"az c #767676",
+".Q c #777777",
+"aO c #797979",
+"#x c #7b5f7b",
+"#A c #7b7b7b",
+"ap c #7c7c7c",
+"af c #7d7d7d",
+"#l c #7e7e7e",
+".L c #818181",
+"aY c #828282",
+"aX c #848484",
+"#f c #858585",
+"a. c #868686",
+"ay c #888888",
+"#L c #898989",
+"a# c #8b8b8b",
+"aE c #8c2a8c",
+"bk c #8c8c8c",
+"#j c #8d558d",
+"#N c #8d718d",
+"au c #8d8d8d",
+"#F c #8e558e",
+".V c #909090",
+".g c #929292",
+"ax c #939393",
+"#V c #949494",
+".h c #959595",
+"#M c #969696",
+".U c #979797",
+"#h c #989898",
+".7 c #999999",
+"#u c #9a8c9a",
+".i c #9d9d9d",
+"a3 c #a2a2a2",
+"#5 c #a3a3a3",
+"#Z c #a5a5a5",
+".1 c #a6a6a6",
+"aC c #a7a7a7",
+".E c #a8a8a8",
+"#W c #a97fa9",
+"aG c #a9a9a9",
+".8 c #aa80aa",
+".v c #aaaaaa",
+".5 c #ababab",
+"bi c #acacac",
+"#s c #b1b1b1",
+"#y c #b4b4b4",
+"#c c #b8b8b8",
+"aI c #b9b9b9",
+"a9 c #bcbcbc",
+"ae c #c1c1c1",
+".K c #c2c2c2",
+".f c #c3c3c3",
+"aj c #c4c4c4",
+"#8 c #c500c5",
+"#S c #c554c5",
+"ad c #c5c5c5",
+"#G c #c6c6c6",
+"#Q c #c8c8c8",
+"#b c #c9c9c9",
+"ac c #cbcbcb",
+"a0 c #cccccc",
+".S c #cdcdcd",
+"bl c #cecece",
+"bj c #cfcfcf",
+"aW c #d0d0d0",
+"aR c #d1d1d1",
+"aV c #d2d2d2",
+"a8 c #d3d3d3",
+"bb c #d4d4d4",
+"a7 c #d5d5d5",
+"ba c #d6d6d6",
+"aT c #d7d7d7",
+".R c #d8d8d8",
+"## c #d9d9d9",
+"av c #dadada",
+".F c #dbdbdb",
+"#g c #dddddd",
+".0 c #dedede",
+"#6 c #dfdfdf",
+"am c #e000e0",
+".m c #e0e0e0",
+"#X c #e100e1",
+".G c #e1e1e1",
+".b c #e2e2e2",
+".e c #e3e3e3",
+".u c #e4e4e4",
+"#n c #e4e6e6",
+".j c #e5e5e5",
+".6 c #e6e6e6",
+".k c #e7e7e7",
+".H c #e8e8e8",
+".t c #e9e9e9",
+".c c #eaeaea",
+".l c #ebebeb",
+".d c #ececec",
+".a c #eeeeee",
+"#a c #efefef",
+"Qt c #f0f0f0",
+"aH c #f3f3f3",
+"#0 c #f4f4f4",
+"#m c #f5f5f5",
+".X c #f8f8f8",
+"#H c #fafafa",
+".Y c #fcfcfc",
+"#z c #fdfdfd",
+"#R c #fe00fe",
+"#w c #fe2afe",
+".W c #fefefe",
+"#v c #ff00ff",
+"#i c #ff2bff",
+"#E c #ff7fff",
+".Z c #ffffff",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#",
+".a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.#",
+".a.a.a.a.a.a.a.a.a.a.b.c.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.#",
+".d.d.d.d.d.d.d.d.d.e.f.g.h.i.j.k.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.#",
+".l.l.l.l.l.l.l.l.l.m.n.o.p.q.r.s.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.#",
+".t.t.t.t.t.t.t.t.u.v.w.x.y.z.A.B.C.D.E.F.G.b.t.t.t.t.t.t.t.t.t.#",
+".t.t.t.t.t.t.t.H.u.I.J.x.x.v.K.L.M.N.O.P.Q.R.b.t.t.t.t.t.t.t.t.#",
+".k.k.k.k.k.k.S.T.U.n.x.x.V.W.X.Y.Z.0.1.2.I.3.4.g.5.0.e.j.k.k.k.#",
+".6.6.6.6.6.6.7.8.9#..x.x##.Z.Z.Z.Z.Z#a.S#b#c#d#e.C.I#f#g.6.6.6.#",
+".j.j.j.j.j.j#h.8#i#j#k#l.Z.Z.Z.Z.Z.Z.Z.Z.Y#m#n#o#p.A#q#r.G.j.j.#",
+"#s#t#t#t#t#t.B#u#v#w#x#y.Z.Z.Z.Z.Z.Z.Z.Z.W#z.F#A#B.z#C#D.m.u.u.#",
+".U.8#E#E#E#E#E#E#v#v#i#F#G.Z.Z.Z.Z.Z.Z.Z#z#H.i#I.x#J#K#L.e.e.e.#",
+"#M.8#v#v#v#v#v#v#v#v#v#w#N#G.Z.Z.Z.Z.Z.Z#H.l#O#I.x#P.B#Q.G.G.G.#",
+".h.8#v#v#v#v#v#v#v#v#v#R#S#T.Z.Z.Z.Z.Z.Z.Z.R#I#U.x#P#t.m.m.m.m.#",
+"#V#W#R#R#R#R#R#R#v#v#R#X#Y#r#Z#Z.W.W.Z.Y#0#f#1#2#3#4#5#6#6#6#6.#",
+"#V.o#C#C#C#C#C#7#v#R#8#9a.a#.Laaab#2acadaeafag.xahai.0.0.0.0.0.#",
+"aj#V#V#Vakal.o.8#Ramanao.D.D#U#A.Lapaoaq.Maras.xatau#g#g#g#g#g.#",
+".F.F.Favas#P#C.8#8aw.tadaxayaz.Aaq#p.QaAaB#paq.p.CaC.F.F.F.F.F.#",
+"avavav##.CaD#CaEaFaGaH.t.H.GaIafaJaKaLaM.Aas.xaN.savavavavavav.#",
+"######aOaPai.raQaB#g.m##avaRaR#c#2.y.NaS.y#r.N#q.F############.#",
+".R.R.RaTa.axaU#C#3.EaVaW#Q.KaRaXabaY#U.IaZ#Oat#Da0.R.R.R.R.R.R.#",
+"aTaTaTaTaTaTaCaSa1a2af.ga3a0ae#1.Dap#2aDa4a5a6#V.RaTaTaTaTaTaT.#",
+"a7a7a7a7a7a8a8a8a9axb.b#.y.gaba5#l#UaSaJa4a5aQaebaa7a7a7a7a7a7.#",
+"bbbbbbbbbbbbbbbbbbbbaTaz.PbcbdbeabaM.B.NaKbfaOaTbbbbbbbbbbbbbb.#",
+"a8a8a8a8a8a8a8a8a8a8a8a8.Sa3.ybfbgah.pbh.Bb###a8a8a8a8a8a8a8a8.#",
+"aVaVaVaVaVaVaVaVaVaVaVaVaVaVaVaV#5.r#q#C.Cbi.RaVaVaVaVaVaVaVa7.#",
+"aWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWbjbkbkaGbbaVaWaWaWaWaWaWaWbb.#",
+"bjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjaR.#",
+"blblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbl.#",
+"aRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaRaR.#",
+".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#"};
+
+/* run SNARK icon */
+static const char* run_icon_data[] = {
+"    48    64       61            1",
+". c #ffffff",
+"# c #edebe9",
+"a c #d3c2b8",
+"b c #c2a799",
+"c c #e0e0de",
+"d c #b9978e",
+"e c #a68b81",
+"f c #907a74",
+"g c #fceeda",
+"h c #896f66",
+"i c #d2d0cd",
+"j c #776159",
+"k c #8f8886",
+"l c #a2a09f",
+"m c #382c25",
+"n c #66544d",
+"o c #b6a7a0",
+"p c #a59590",
+"q c #a08278",
+"r c #cbb7ae",
+"s c #e0d6d3",
+"t c #776e69",
+"u c #b0b0ae",
+"v c #7c7977",
+"w c #584941",
+"x c #513f34",
+"y c #433631",
+"z c #bdb9b6",
+"A c #29211d",
+"B c #d2b078",
+"C c #c4c3c0",
+"D c #e2a266",
+"E c #d19964",
+"F c #a26d2c",
+"G c #feaf41",
+"H c #f2a43d",
+"I c #b28d80",
+"J c #7a5523",
+"K c #febd46",
+"L c #ba8a4e",
+"M c #8c6126",
+"N c #e79b36",
+"O c #926e3c",
+"P c #ce8a32",
+"Q c #bb946b",
+"R c #a48956",
+"S c #da963b",
+"T c #a6783a",
+"U c #b77d2e",
+"V c #533719",
+"W c #6a4b25",
+"X c #493f3b",
+"Y c #e0ceb7",
+"Z c #666662",
+"0 c #d4b48a",
+"1 c #8e7646",
+"2 c #feca46",
+"3 c #d0a571",
+"4 c #bda672",
+"5 c #eddecb",
+"6 c #999998",
+/* pixels */
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"..................ab............................",
+".................bdha...........................",
+"................#jkhh...........................",
+".................nopq#..........................",
+".................eddhj..........................",
+"................#qeqhn..........................",
+"................uhfjym..........................",
+"................gxhxAv..........................",
+".................hjAyu..........................",
+".................ipxhfBotlg.....................",
+"..................lneHdddehp....................",
+".................#njDqdddqhj....................",
+".................nwqNddIefhn....................",
+"................aEQGeehfffhjg...................",
+"................zRSHhjwhhfhja...................",
+".................jPPJxAxnhhjp...................",
+".................kTUFmmmywjhh...................",
+"..................MFFJnymmjeh...................",
+".................gWMMJJOqdfnn...................",
+".................CyJJJMIdfnyt...................",
+".................jxVMfqhwmAX....................",
+".................jhnnnyAAAmC....................",
+"................gjhwyAVUPWmX....................",
+"................axwyAFPPUJmmt...................",
+"...............YdnXZ0SHPFMVy1#..................",
+"..............chnw..KKGUMMMarQ..................",
+"..............hhjj..22HJMUH3CF..................",
+"..............fhhh.g22PJMNHECT..................",
+"...............vxx.K2KWJFNHSCTs.................",
+".................cg22NAyFNNSabT5.........ci.....",
+"..................K2GVmmxPSPLuRTY......giCC.....",
+"..................jOxmmmtFTFFRujw...Yqhz6uzg....",
+".................symAAwn#.JJJJkywziIfjnliZ6i....",
+".................bnmAAyg...JxVAwwnddjwu..l6u....",
+".................dejyA......zyyyxwhhxl...#C6....",
+"................sdfnmk.......kmyXwjnn.....ul....",
+"...............#ddhyv.........uymyyk............",
+"...............ddqnZ.............u..............",
+"...............ddhw.............................",
+"..............dddjt.............................",
+"..............dehx#.............................",
+".............bdhnm..............................",
+".............dqwy...............................",
+".............dhyt...............................",
+"............seng...z666ui.......................",
+"............ahl....66666666..........zu.........",
+".......cg....l...C6..6666666#......u6g..........",
+".......rzzi#Cu.....i6666l66666lz666#............",
+".......gRk66k.....u66c......#...................",
+".........1vkt...c66z............................",
+"..........1tl..66l..............................",
+"..........4Zg.66u...............................",
+".............6i.................................",
+".......gu6666g..................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................",
+"................................................"
+};
diff --git a/tools/Input/lines.cpp b/tools/Input/lines.cpp
new file mode 100755 (executable)
index 0000000..d8befb3
--- /dev/null
@@ -0,0 +1,264 @@
+/** @file lines.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "lines.h"
+#include "misc.h"
+#include "variables.h"
+
+#include <qcheckbox.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a lineswindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+lineswindow::lineswindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "lineswindow" );
+    resize( 400, 350 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 400, 350 ) );
+    setMaximumSize( QSize( 400, 350 ) );
+    setCaption( tr( "Lines Window" ) );
+
+    lineslabel = new QLabel( this, "lineslabel" );
+    lineslabel->setGeometry( QRect( 10, 10, 70, 30 ) ); 
+    lineslabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, lineslabel->sizePolicy().hasHeightForWidth() ) );
+    lineslabel->setMinimumSize( QSize( 70, 30 ) );
+    lineslabel->setMaximumSize( QSize( 70, 30 ) );
+    lineslabel->setText( tr( "LINES" ) );
+
+    scalebox = new QCheckBox( this, "scalebox" );
+    scalebox->setGeometry( QRect( 30, 60, 80, 30 ) ); 
+    scalebox->setText( tr( "SCALE" ) );
+    QObject::connect(scalebox,SIGNAL(clicked()),this,SLOT(activateScaleFields()));
+
+    scale = new QLineEdit( this, "scale" );
+    scale->setGeometry( QRect( 150, 60, 50, 30 ) ); 
+    scale->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, scale->sizePolicy().hasHeightForWidth() ) );
+    scale->setEnabled(FALSE);
+
+    scalelabel = new QLabel( this, "scalelabel" );
+    scalelabel->setGeometry( QRect( 150, 40, 40, 20 ) ); 
+    scalelabel->setText( tr( "scale" ) );
+    scalelabel->setEnabled(FALSE);
+
+    columnslabel = new QLabel( this, "columnslabel" );
+    columnslabel->setGeometry( QRect( 30, 130, 100, 30 ) ); 
+    columnslabel->setText( tr( "COLUMNS" ) );
+
+    col1 = new QLineEdit( this, "col1" );
+    col1->setGeometry( QRect( 150, 130, 50, 30 ) ); 
+    col1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, col1->sizePolicy().hasHeightForWidth() ) );
+
+    col1label = new QLabel( this, "col1label" );
+    col1label->setGeometry( QRect( 160, 110, 30, 20 ) ); 
+    col1label->setText( tr( "col1" ) );
+
+    col2 = new QLineEdit( this, "col2" );
+    col2->setGeometry( QRect( 210, 130, 50, 30 ) ); 
+    col2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, col2->sizePolicy().hasHeightForWidth() ) );
+
+    col2label = new QLabel( this, "col2label" );
+    col2label->setGeometry( QRect( 220, 110, 30, 20 ) ); 
+    col2label->setText( tr( "col2" ) );
+
+    col3 = new QLineEdit( this, "col3" );
+    col3->setGeometry( QRect( 270, 130, 50, 30 ) ); 
+    col3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, col3->sizePolicy().hasHeightForWidth() ) );
+
+    col3label = new QLabel( this, "col3label" );
+    col3label->setGeometry( QRect( 280, 110, 30, 20 ) ); 
+    col3label->setText( tr( "col3" ) );
+
+    col4 = new QLineEdit( this, "col4" );
+    col4->setGeometry( QRect( 330, 130, 50, 30 ) ); 
+    col4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, col4->sizePolicy().hasHeightForWidth() ) );
+
+    col4label = new QLabel( this, "col4label" );
+    col4label->setGeometry( QRect( 340, 110, 30, 20 ) ); 
+    col4label->setText( tr( "col4" ) );
+
+    iterationflaglabel = new QLabel( this, "iterationflaglabel" );
+    iterationflaglabel->setGeometry( QRect( 135, 190, 130, 20 ) ); 
+    iterationflaglabel->setText( tr( "iteration_flag_line" ) );
+
+    iterationflagline = new QLineEdit( this, "iterationflagline" );
+    iterationflagline->setGeometry( QRect( 50, 210, 310, 30 ) ); 
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 290, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 290, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+
+    Line7 = new QFrame( this, "Line7" );
+    Line7->setGeometry( QRect( 0, 275, 400, 1 ) ); 
+    Line7->setFrameStyle( QFrame::HLine | QFrame::Sunken ); 
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+lineswindow::~lineswindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Activates scale subfields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void lineswindow::activateScaleFields()
+{
+  if(scalebox->isChecked()) {
+    scale->setEnabled(TRUE);
+    scalelabel->setEnabled(TRUE);
+  }
+  else {
+    scale->setEnabled(FALSE);
+    scalelabel->setEnabled(FALSE);
+  }
+}
+
+/** Returns a string for LINES input sequence
+@param void
+@return lines
+@author Bruno M. Carvalho
+@version 1.0 */
+QString lineswindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("LINES ");
+  if(scalebox->isChecked()) {
+    output.append("SCALE ");
+    output+=scale->text();
+    output.append(" ");
+  }
+  output.append("COLUMNS ");
+  output+=col1->text();
+  output.append(" ");
+  output+=col2->text();
+  output.append(" ");
+  output+=col3->text();
+  output.append(" ");
+  output+=col4->text();
+  output.append(" ");
+  output.append("\n");
+  output+=iterationflagline->text();
+  //output.append("\n");
+
+  return output;
+}
+
+void lineswindow::checkValues()
+{
+  int f=0,c1,c2,c3,c4;
+  float s=0;
+  
+  if(scalebox->isChecked()) {
+    s=strtof((const char *)scale->text());
+    if(errnum) 
+      f=1;
+    if(s<=0)
+      f=2;
+  }
+  c1=strtoi((const char *)col1->text());
+  if(errnum) 
+    f=3;
+  c2=strtoi((const char *)col2->text());
+  if(errnum==1) 
+    f=4;
+  c3=strtoi((const char *)col3->text());
+  if(errnum==1) 
+    f=5;
+  c4=strtoi((const char *)col4->text());
+  if(errnum==1) 
+    f=6;
+  if(c1<0)
+    f=7;
+  if(c2<0)
+    f=8;
+  if(c3<0)
+    f=9;
+  if(c4<0)
+    f=10;
+  if(!isintspace(iterationflagline->text()))
+    f=11;
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid scale format");
+          scale->setFocus();
+    break;
+  case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "scale should be positive");
+          scale->setFocus();
+    break;
+  case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid col1 format");
+          col1->setFocus();
+    break;
+  case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid col2 format");
+          col2->setFocus();
+    break;
+  case 5: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid col3 format");
+          col3->setFocus();
+    break;
+  case 6: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid col4 format");
+          col4->setFocus();
+    break;
+  case 7: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "col1 must be positive");
+          col1->setFocus();
+    break;
+  case 8: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "col2 must be positive or empty");
+          col2->setFocus();
+    break;
+  case 9: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "col3 must be positive or empty");
+          col3->setFocus();
+    break;
+  case 10: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "col4 must be positive or empty");
+          col4->setFocus();
+    break;
+  case 11: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "iteration_flag_line must contain\n"
+                                   "only 0-9 and spaces and must\n"
+                                   "be non-empty");
+          iterationflagline->setFocus();
+    break;
+  }
+}
diff --git a/tools/Input/lines.h b/tools/Input/lines.h
new file mode 100755 (executable)
index 0000000..6449013
--- /dev/null
@@ -0,0 +1,56 @@
+/** @file lines.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef LINESWINDOW_H
+#define LINESWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QCheckBox;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+
+class lineswindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    lineswindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~lineswindow();
+    QString getOutput();
+
+    QLabel* lineslabel;
+    QCheckBox* scalebox;
+    QLabel* columnslabel;
+    QLineEdit* col4;
+    QLineEdit* col3;
+    QLineEdit* col2;
+    QLineEdit* col1;
+    QLabel* col1label;
+    QLabel* col2label;
+    QLabel* col3label;
+    QLabel* col4label;
+    QLineEdit* scale;
+    QLabel* scalelabel;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+    QFrame* Line7;
+    QLabel* iterationflaglabel;
+    QLineEdit* iterationflagline;
+private slots:
+      //void activateFields();
+    void activateScaleFields();
+    void checkValues();
+};
+
+#endif // LINESWINDOW_H
diff --git a/tools/Input/misc.cpp b/tools/Input/misc.cpp
new file mode 100755 (executable)
index 0000000..916fd68
--- /dev/null
@@ -0,0 +1,258 @@
+/** @file misc.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "variables.h"
+#include "misc.h"
+#include <string.h>
+#include <cstdio>
+#include <cmath>
+
+int toint(const char c);
+
+// Deniz thought this was overly buggy
+/** Extracts a float from a string
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+// float strtof(const char *str) {
+//   printf("string `%s' passed to strtof() defined in misc.cpp\n", str);
+//   float result=0,fraction=0,s=1,sexp=1;
+//   int i=0,nf=0,exp=0;
+
+//   result=0;
+//   errnum=0;
+//   if(str[i]=='\0') {
+//     errnum=2;
+//     return result;
+//   }
+//   while(str[i]!='-' && !isdigit(str[i])) {
+//     i++;
+//   }
+//   if(str[i]=='-') {
+//     s=-1;
+//     i++;
+//   }
+//   while(isdigit(str[i])) {
+//     result=result*10+toint(str[i]);
+//     i++;
+//   }
+//   if(str[i]=='.') {
+//     i++;
+//   }
+//   if( (str[i]=='e') || (str[i]=='E') )  {
+//     i++;
+//     exp=1;
+//     if(str[i]=='-') {
+//       sexp=-1;
+//       i++;
+//     }
+//   }
+//   while(isdigit(str[i])) {
+//     fraction=fraction*10+toint(str[i]);
+//     i++;
+//     nf++;
+//   }
+//   while(str[i]) {
+//     if(str[i]!=32) errnum=1;
+//     i++;
+//   }
+//   if(nf>0)
+//     if(exp)
+//       result=s*result*pow(10,sexp*fraction);
+//     else 
+//       result=s*(result+fraction/(10*nf));
+//   else
+//     result=s*result;
+//   return result;
+// }
+
+
+/* @author deniz
+   @version 3.0
+   will implement:
+   [-]{digit+[.digit*],.digit+}[{E,e}[+,-]digit[digit]]
+   as decided on 2005.08.11 in group meeting
+*/
+float strtof(const char *str) {
+  //  printf("string `%s' passed to strtof() defined in misc.cpp\n", str);
+  // new parse 'philosophy': get the number as integer
+  // if there is stuff after the period, count them
+  int mainval=0, mainsign=1;
+  int expval=0, expsign=1;
+  int pos=0, numdigitsafterdot=0;
+  errnum=0;
+  while(isspace(str[pos])) {
+    pos++;
+  }
+  if(str[pos]=='-') {  //  [-]
+    mainsign= -1;
+    pos++;
+  }
+  // adjust at the end
+  // now get:  {digit+[.digit*],.digit+}
+  if(isdigit(str[pos])) { // try to parse (digit+[.digit*])
+    while(isdigit(str[pos])) {
+      mainval = mainval*10 + toint(str[pos]);
+      pos++;
+    }
+    if(str[pos]=='.') {
+      pos++;
+      while(isdigit(str[pos])) { // try to parse (digit*)      
+       mainval = mainval*10 + toint(str[pos]);
+       numdigitsafterdot++;  // number of digits after '.'
+       pos++;
+      }
+    } // --period read after digit
+  } // --digit read before (if at all) period
+  else if(str[pos]=='.') { // parse (.digit+)
+    pos++;
+    if(!isdigit(str[pos])) {
+      errnum = 2; // need a digit there
+      return 0.0;
+    }
+    while(isdigit(str[pos])) {
+      mainval = mainval*10 + toint(str[pos]);
+      numdigitsafterdot++;  // number of digits after '.'
+      pos++;
+    }
+  } // --period read before any digit
+  else {   // {digit+[.digit*],.digit+} not found
+    errnum = 1;
+    return 0.0;
+  }
+  if( (str[pos]=='e') || (str[pos]=='E') )  { // try to parse ([+,-]digit[digit])
+    pos++;
+    if(str[pos]=='-') {
+      expsign= -1;
+      pos++;
+    } else if(str[pos]=='+') { 
+      pos++; 
+    }
+    if(!isdigit(str[pos])) { // try to parse (digit[digit])
+      errnum = 4; // no exp digit
+      return 0.0;
+    } else {
+      expval = toint(str[pos]);
+      pos++;
+    }
+    if(isdigit(str[pos])) { // second possible digit
+      expval = expval*10 + toint(str[pos]);
+      pos++;
+    }
+  }
+  while(isspace(str[pos])) {
+    pos++;
+  }
+  if('\0' != str[pos]) {  // there is junk
+    errnum = 5;
+    return 0.0;
+  }
+  float retval = mainsign*mainval * pow(10, (expsign*expval - numdigitsafterdot));
+  //  printf("%8.8f\n", retval);
+  return retval; // (mainsign*mainval * pow(10, (expsign*expval - numdigitsafterdot) ) );
+} // strtof()
+
+
+/** Extracts an int from a string
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int strtoi(const char *str) {
+  int result=0,i=0,t;
+
+  result=0;
+  errnum=0;
+  if(str[i]=='\0') {
+    errnum=2;
+    return result;
+  }
+  t=strcmp(str,"");
+  if(t) {
+    while(!isdigit(str[i])) {
+      i++;
+    }
+    while(isdigit(str[i])) {
+      result=result*10+toint(str[i]);
+      i++;
+    }
+    while(str[i]) {
+      if(str[i]!=32) errnum=1;
+      i++;
+    }
+  }
+  return result;
+}
+
+/** checks if there are leading spaces
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int isintspace(const char *str) {
+  int i=0;
+
+  errnum=0;
+  if(!strcmp(str,""))
+    return 0;
+  while(isdigit(str[i]) || str[i]==' ') {
+    i++;
+  }
+  if(str[i]) return 0;
+  else  return 1;
+}
+
+/** Checks if line is a snark14 formatline
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int isformatline(const char *str) {
+  int i=0;
+
+  errnum=0;
+  while(str[i]!='(')  i++;
+  i++;
+  while(isdigit(str[i]))  i++;
+  if(stolower(str[i])!='f')
+    errnum=1;
+  if(errnum) return 0;
+  else  {
+    i++;
+    while(isdigit(str[i]))  i++;
+    if(str[i]!='.') {
+      errnum=1;
+      return 0;
+    }
+    i++;
+    while(isdigit(str[i]))  i++;
+    if(str[i]!=')') {
+      errnum=1;
+      return 0;
+    }
+    i++;
+  if(str[i]) return 0;
+  else  return 1;
+  }
+}
+
+/** Converts a char into an int 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int toint(const char c) {
+
+  if(c>='0' && c<= '9') return c - '0';
+  else return 0;
+}
+
+/** converts a char into lower case
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+int stolower(char c) {
+
+  if(isupper(c)) return tolower(c);
+  else return c;
+}
diff --git a/tools/Input/misc.h b/tools/Input/misc.h
new file mode 100755 (executable)
index 0000000..1dc4cb6
--- /dev/null
@@ -0,0 +1,15 @@
+/** @file misc.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include <ctype.h>
+#include <math.h>
+
+float strtof(const char *str);
+int strtoi(const char *str);
+int stolower(char c);
+int isintspace(const char *str);
+int isformatline(const char *str);
diff --git a/tools/Input/mode.cpp b/tools/Input/mode.cpp
new file mode 100755 (executable)
index 0000000..64a5210
--- /dev/null
@@ -0,0 +1,217 @@
+/** @file mode.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "mode.h"
+#include "misc.h"
+#include "variables.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#include <qcheckbox.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a modewindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+modewindow::modewindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "modewindow" );
+    resize( 400, 250 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 400, 250 ) );
+    setMaximumSize( QSize( 400, 250 ) );
+    setCaption( tr( "Mode Window" ) );
+
+    modelabel = new QLabel( this, "modelabel" );
+    modelabel->setGeometry( QRect( 10, 10, 70, 30 ) ); 
+    modelabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, modelabel->sizePolicy().hasHeightForWidth() ) );
+    modelabel->setMinimumSize( QSize( 70, 30 ) );
+    modelabel->setMaximumSize( QSize( 70, 30 ) );
+    modelabel->setText( tr( "MODE" ) );
+
+    lowerbox = new QCheckBox( this, "lowerbox" );
+    lowerbox->setGeometry( QRect( 30, 60, 80, 30 ) ); 
+    lowerbox->setText( tr( "LOWER" ) ); 
+    QObject::connect(lowerbox,SIGNAL(clicked()),this,SLOT(activateLowerFields()));
+
+    lowervalue = new QLineEdit( this, "lowervalue" );
+    lowervalue->setGeometry( QRect( 130, 60, 110, 30 ) ); 
+    lowervalue->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, lowervalue->sizePolicy().hasHeightForWidth() ) );
+    lowervalue->setEnabled(FALSE);
+
+    lowervaluelabel = new QLabel( this, "lowervaluelabel" );
+    lowervaluelabel->setEnabled( FALSE );
+    lowervaluelabel->setGeometry( QRect( 140, 40, 90, 20 ) ); 
+    lowervaluelabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, lowervaluelabel->sizePolicy().hasHeightForWidth() ) );
+    lowervaluelabel->setText( tr( "lower_value" ) );
+    lowervaluelabel->setEnabled(FALSE);
+
+    upperbox = new QCheckBox( this, "upperbox" );
+    upperbox->setGeometry( QRect( 30, 130, 80, 30 ) ); 
+    upperbox->setText( tr( "UPPER" ) ); 
+    QObject::connect(upperbox,SIGNAL(clicked()),this,SLOT(activateUpperFields()));
+
+    uppervalue = new QLineEdit( this, "uppervalue" );
+    uppervalue->setGeometry( QRect( 130, 130, 110, 30 ) ); 
+    uppervalue->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, uppervalue->sizePolicy().hasHeightForWidth() ) );
+    uppervalue->setEnabled(FALSE);
+
+    uppervaluelabel = new QLabel( this, "uppervaluelabel" );
+    uppervaluelabel->setGeometry( QRect( 140, 110, 90, 20 ) ); 
+    uppervaluelabel->setText( tr( "upper_value" ) ); 
+    uppervaluelabel->setEnabled(FALSE);
+
+    Line9 = new QFrame( this, "Line9" );
+    Line9->setGeometry( QRect( -10, 175, 420, 16 ) ); 
+    Line9->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 190, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 190, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+modewindow::~modewindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/* Activates lower and upper fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+/* void modewindow::activateFields()
+{
+  if(modelabel->isChecked()) {
+    lowerbox->setEnabled(TRUE);
+    upperbox->setEnabled(TRUE);
+  }
+  else {
+    lowerbox->setEnabled(FALSE);
+    upperbox->setEnabled(FALSE);
+    lowervalue->setEnabled(FALSE);
+    lowervaluelabel->setEnabled(FALSE);
+    uppervalue->setEnabled(FALSE);
+    uppervaluelabel->setEnabled(FALSE);
+  }
+} */
+
+/** Activates lower subfields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void modewindow::activateLowerFields()
+{
+  if(lowerbox->isChecked()) {
+    lowervalue->setEnabled(TRUE);
+    lowervaluelabel->setEnabled(TRUE);
+  }
+  else {
+    lowervalue->setEnabled(FALSE);
+    lowervaluelabel->setEnabled(FALSE);
+  }
+}
+
+/** Activates upper subfields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void modewindow::activateUpperFields()
+{
+  if(upperbox->isChecked()) {
+    uppervalue->setEnabled(TRUE);
+    uppervaluelabel->setEnabled(TRUE);
+  }
+  else {
+    uppervalue->setEnabled(FALSE);
+    uppervaluelabel->setEnabled(FALSE);
+  }
+}
+
+/** Returns a string for MODE input sequence
+@param void
+@return mode
+@author Bruno M. Carvalho
+@version 1.0 */
+QString modewindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("MODE ");
+  if(lowerbox->isChecked()) {
+    output.append("LOWER ");
+    output+=lowervalue->text();
+    output.append(" ");
+  }
+  if(upperbox->isChecked()) {
+    output.append("UPPER ");
+    output+=uppervalue->text();
+  }
+
+  return output;
+}
+
+void modewindow::checkValues()
+{
+  int f=0;
+  float l=0,u=0;
+  
+  if(lowerbox->isChecked()) {
+    l=strtof((const char *)lowervalue->text());
+    if(errnum) 
+      f=1;
+    if(upperbox->isChecked()) {
+      u=strtof((const char *)uppervalue->text());
+      if(errnum) 
+        f=2;
+      if(l>u && !f) 
+        f=3;
+    }
+  }
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid lower_value format.");
+  lowerbox->setFocus();
+    break;
+  case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid upper_value format.");
+  upperbox->setFocus();
+    break;
+  case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "lower_value bigger than upper_value.");
+  lowerbox->setFocus();
+    break;
+  }
+}
diff --git a/tools/Input/mode.h b/tools/Input/mode.h
new file mode 100755 (executable)
index 0000000..633dbe5
--- /dev/null
@@ -0,0 +1,49 @@
+/** @file mode.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef MODEWINDOW_H
+#define MODEWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QCheckBox;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+
+class modewindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    modewindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~modewindow();
+    QString getOutput();
+
+    QLabel* modelabel;
+    QCheckBox* lowerbox;
+    QCheckBox* upperbox;
+    QLabel* uppervaluelabel;
+    QLineEdit* uppervalue;
+    QLineEdit* lowervalue;
+    QLabel* lowervaluelabel;
+    QFrame* Line9;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+      //void activateFields();
+    void activateLowerFields();
+    void activateUpperFields();
+    void checkValues();
+};
+
+#endif // MODEWINDOW_H
diff --git a/tools/Input/picture.cpp b/tools/Input/picture.cpp
new file mode 100755 (executable)
index 0000000..4204791
--- /dev/null
@@ -0,0 +1,230 @@
+/** @file picture.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "picture.h"
+#include "variables.h"
+#include "misc.h"
+
+#include <qbuttongroup.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a picturewindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+picturewindow::picturewindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "picturewindow" );
+    resize( 400, 250 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 400, 250 ) );
+    setMaximumSize( QSize( 400, 250 ) );
+    setCaption( tr( "Picture Window" ) );
+
+    picturelabel = new QLabel( this, "picturelabel" );
+    picturelabel->setGeometry( QRect( 10, 10, 100, 30 ) ); 
+    picturelabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, picturelabel->sizePolicy().hasHeightForWidth() ) );
+    picturelabel->setMinimumSize( QSize( 100, 30 ) );
+    picturelabel->setMaximumSize( QSize( 100, 30 ) );
+    picturelabel->setText( tr( "PICTURE" ) );
+
+    picturebuttongroup = new QButtonGroup( this, "picturebuttongroup" );
+    picturebuttongroup->setGeometry( QRect( 5, 35, 385, 130 ) ); 
+    picturebuttongroup->setTitle( tr( "type" ) );
+    picturebuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    reconstructionbutton = new QRadioButton( picturebuttongroup, "reconstructionbutton" );
+    reconstructionbutton->setGeometry( QRect( 10, 40, 180, 24 ) ); 
+    reconstructionbutton->setText( tr( "RECONSTRUCTION" ) );
+    QObject::connect(reconstructionbutton,SIGNAL(clicked()),this,SLOT(activateReconstructionFields()));
+
+    testbutton = new QRadioButton( picturebuttongroup, "testbutton" );
+    testbutton->setGeometry( QRect( 10, 80, 65, 24 ) ); 
+    testbutton->setText( tr( "TEST" ) );
+    QObject::connect(testbutton,SIGNAL(clicked()),this,SLOT(deactivateReconstructionFields()));
+
+    nelem = new QLineEdit( picturebuttongroup, "nelem" );
+    nelem->setGeometry( QRect( 200, 35, 80, 30 ) ); 
+    nelem->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, nelem->sizePolicy().hasHeightForWidth() ) );
+    nelem->setEnabled(FALSE);
+
+    nelemlabel = new QLabel( picturebuttongroup, "nelemlabel" );
+    nelemlabel->setGeometry( QRect( 220, 15, 50, 20 ) ); 
+    nelemlabel->setText( tr( "nelem" ) );
+    nelemlabel->setEnabled(FALSE);
+
+    pixelsize = new QLineEdit( picturebuttongroup, "pixelsize" );
+    pixelsize->setGeometry( QRect( 295, 35, 80, 30 ) ); 
+    pixelsize->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, pixelsize->sizePolicy().hasHeightForWidth() ) );
+    pixelsize->setEnabled(FALSE);
+
+    pixelsizelabel = new QLabel( picturebuttongroup, "pixelsizelabel" );
+    pixelsizelabel->setGeometry( QRect( 305, 15, 70, 20 ) ); 
+    pixelsizelabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, pixelsizelabel->sizePolicy().hasHeightForWidth() ) );
+    pixelsizelabel->setMinimumSize( QSize( 70, 20 ) );
+    pixelsizelabel->setMaximumSize( QSize( 70, 20 ) );
+    pixelsizelabel->setText( tr( "pixel-size" ) );
+    pixelsizelabel->setEnabled(FALSE);
+
+    Line10 = new QFrame( this, "Line10" );
+    Line10->setGeometry( QRect( 0, 175, 420, 16 ) ); 
+    Line10->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 195, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 195, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+picturewindow::~picturewindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Activates type fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+/* void picturewindow::activateFields()
+{
+  if(picturebutton->isChecked()) {
+    reconstructionbutton->setEnabled(TRUE);
+    testbutton->setEnabled(TRUE);
+    picturebuttongroup->setEnabled(TRUE);
+  }
+  else {
+    picturebuttongroup->setEnabled(FALSE);
+    reconstructionbutton->setEnabled(FALSE);
+    testbutton->setEnabled(FALSE);
+    nelem->setEnabled(FALSE);
+    pixelsize->setEnabled(FALSE);
+    nelemlabel->setEnabled(FALSE);
+    pixelsizelabel->setEnabled(FALSE);
+  }
+} */
+
+/** Activates reconstruction fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void picturewindow::activateReconstructionFields()
+{
+  if(reconstructionbutton->isChecked()) {
+    nelem->setEnabled(TRUE);
+    pixelsize->setEnabled(TRUE);
+    nelemlabel->setEnabled(TRUE);
+    pixelsizelabel->setEnabled(TRUE);
+  }
+  else {
+    nelem->setEnabled(FALSE);
+    pixelsize->setEnabled(FALSE);
+    nelemlabel->setEnabled(FALSE);
+    pixelsizelabel->setEnabled(FALSE);
+  }
+}
+
+/** Deactivates reconstruction fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void picturewindow::deactivateReconstructionFields()
+{
+  if(testbutton->isChecked()) {
+    nelem->setEnabled(FALSE);
+    pixelsize->setEnabled(FALSE);
+    nelemlabel->setEnabled(FALSE);
+    pixelsizelabel->setEnabled(FALSE);
+  }
+}
+
+/** Returns a string for PICTUE input sequence
+@param void
+@return picture
+@author Bruno M. Carvalho
+@version 1.0 */
+QString picturewindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("PICTURE ");
+  if(reconstructionbutton->isChecked()) {
+    output.append("RECONSTRUCTION ");
+    output+=nelem->text();
+    output.append(" ");
+    output+=pixelsize->text();
+    output.append(" ");
+  }
+  if(testbutton->isChecked()) 
+    output.append("TEST");
+  //output.append("\n");
+
+  return output;
+}
+
+
+void picturewindow::checkValues()
+{
+  int f=0,n=0;
+  float p=0;
+
+  if(reconstructionbutton->isChecked()) {
+    n=strtoi((const char *)nelem->text());
+    if(errnum) 
+      f=1;
+    if(n<1 || !(n%2))
+      f=2;
+    p=strtof((const char *)pixelsize->text());
+    if(errnum) 
+      f=3;
+    if(p<=0)
+      f=4;
+  }
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid nelem format.");
+          nelem->setFocus();
+    break;
+  case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "nelem must be positive and odd.");
+          nelem->setFocus();
+    break;
+  case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid pixel-size format.");
+          pixelsize->setFocus();
+    break;
+  case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "pixel-size must be greater than 0.");
+          pixelsize->setFocus();
+    break;
+  }
+}
diff --git a/tools/Input/picture.h b/tools/Input/picture.h
new file mode 100755 (executable)
index 0000000..54daf6e
--- /dev/null
@@ -0,0 +1,50 @@
+/** @file picture.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef PICTUREWINDOW_H
+#define PICTUREWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+
+class picturewindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    picturewindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~picturewindow();
+    QString getOutput();
+
+    QLabel* picturelabel;
+    QButtonGroup* picturebuttongroup;
+    QRadioButton* reconstructionbutton;
+    QRadioButton* testbutton;
+    QLineEdit* nelem;
+    QLabel* nelemlabel;
+    QLineEdit* pixelsize;
+    QLabel* pixelsizelabel;
+    QFrame* Line10;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+      //void activateFields();
+    void activateReconstructionFields();
+    void deactivateReconstructionFields();
+    void checkValues();
+};
+
+#endif // PICTUREWINDOW_H
diff --git a/tools/Input/projection.cpp b/tools/Input/projection.cpp
new file mode 100755 (executable)
index 0000000..e91fa2b
--- /dev/null
@@ -0,0 +1,1445 @@
+/** @file projection.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "projection.h"
+#include "variables.h"
+#include "misc.h"
+
+#include <qbuttongroup.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qmultilineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qregexp.h>
+#include <qstringlist.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+#include <qtabwidget.h>
+
+/** populates the tab inside the pseudo tab corresponding to create set 1 *
+    @author DS
+*/
+void projectionwindow::populate_idheader() {
+  idheaderlabel = new QLabel( idheaderWidget, "idheaderlabel" );
+  idheaderlabel->setGeometry( QRect( 20, 30, 90, 20 ) ); 
+  idheaderlabel->setText( tr( "ID HEADER" ) );
+  idheader = new QLineEdit( idheaderWidget, "idheader" );
+  idheader->setGeometry( QRect( 120, 20, 500, 28 ) ); 
+}
+
+bool projectionwindow::check_idheader(QString& errs) {
+  errs = "";
+  QString idText = idheader->text();
+  QString simpleIdText = idText.simplifyWhiteSpace();
+  if(simpleIdText.isEmpty()) {
+    pseudoCommandsWidget->setCurrentPage(0);
+    idheader->setFocus();
+    errs = "Make sure that id header is not blank.";
+    return false;
+  } else {
+    return true;
+  }
+}
+
+QString projectionwindow::get_idheader() {
+  QString idOut;
+  idOut.append(idheader->text());
+  return idOut;
+}
+
+// set 6
+void projectionwindow::populate_geometry() {
+    geometrylabel = new QLabel( geometryWidget, "geometrylabel" );
+    geometrylabel->setGeometry( QRect( 10, 20, 100, 20 ) ); 
+    geometrylabel->setText( tr( "GEOMETRY" ) );
+
+    geometrybuttongroup = new QButtonGroup( geometryWidget, "geometrybuttongroup" );
+    geometrybuttongroup->setGeometry( QRect( 120, 10, 570, 160 ) ); 
+    geometrybuttongroup->setTitle( tr( "" ) );
+    geometrybuttongroup->setEnabled(true);
+
+    parallelbutton = new QRadioButton( geometrybuttongroup, "parallelbutton" );
+    parallelbutton->setGeometry( QRect( 10, 20, 100, 24 ) ); 
+    parallelbutton->setText( tr( "PARALLEL" ) );
+    parallelbutton->setChecked(true);
+    QObject::connect(parallelbutton,SIGNAL(clicked()),this,SLOT(activateParallelFields()));
+
+    parallelbuttongroup = new QButtonGroup( geometrybuttongroup, "parallelbuttongroup" );
+    parallelbuttongroup->setGeometry( QRect( 130, 10, 120, 70 ) ); 
+    parallelbuttongroup->setTitle( tr( "" ) );
+    parallelbuttongroup->setEnabled(true);
+
+    uniformbutton = new QRadioButton( parallelbuttongroup, "uniformbutton" );
+    uniformbutton->setGeometry( QRect( 10, 10, 100, 24 ) ); 
+    uniformbutton->setText( tr( "UNIFORM" ) ); 
+    uniformbutton->setChecked(true);
+
+    variablebutton = new QRadioButton( parallelbuttongroup, "variablebutton" );
+    variablebutton->setGeometry( QRect( 10, 40, 100, 24 ) ); 
+    variablebutton->setText( tr( "VARIABLE" ) );
+
+    parallelbuttongroup2 = new QButtonGroup( geometrybuttongroup, "parallelbuttongroup2" );
+    parallelbuttongroup2->setGeometry( QRect( 260, 10, 90, 70 ) ); 
+    parallelbuttongroup2->setTitle( tr( "" ) ); 
+    parallelbuttongroup2->setEnabled(true);
+
+    stripbutton = new QRadioButton( parallelbuttongroup2, "stripbutton" );
+    stripbutton->setGeometry( QRect( 10, 10, 70, 24 ) ); 
+    stripbutton->setText( tr( "STRIP" ) );
+
+    linebutton = new QRadioButton( parallelbuttongroup2, "linebutton" );
+    linebutton->setGeometry( QRect( 10, 40, 70, 24 ) ); 
+    linebutton->setText( tr( "LINE" ) );
+    linebutton->setChecked(true);
+
+    divergentbutton = new QRadioButton( geometrybuttongroup, "divergentbutton" );
+    divergentbutton->setGeometry( QRect( 10, 100, 120, 24 ) ); 
+    divergentbutton->setText( tr( "DIVERGENT" ) );    
+    QObject::connect(divergentbutton,SIGNAL(clicked()),this,SLOT(activateDivergentFields()));
+
+    divergentbuttongroup = new QButtonGroup( geometrybuttongroup, "divergentbuttongroup" );
+    divergentbuttongroup->setGeometry( QRect( 130, 80, 120, 70 ) ); 
+    divergentbuttongroup->setTitle( tr( "" ) ); 
+    divergentbuttongroup->setEnabled(false);
+
+    arcbutton = new QRadioButton( divergentbuttongroup, "arcbutton" );
+    arcbutton->setGeometry( QRect( 10, 10, 60, 24 ) ); 
+    arcbutton->setText( tr( "ARC" ) );
+
+    tangentbutton = new QRadioButton( divergentbuttongroup, "tangentbutton" );
+    tangentbutton->setGeometry( QRect( 10, 40, 100, 20 ) ); 
+    tangentbutton->setText( tr( "TANGENT" ) );
+
+    sourcetoorigin = new QLineEdit( geometrybuttongroup, "sourcetoorigin" );
+    sourcetoorigin->setGeometry( QRect( 260, 100, 140, 28 ) ); 
+    sourcetoorigin->setEnabled(false);
+
+    sourcetooriginlabel = new QLabel( geometrybuttongroup, "sourcetooriginlabel" );
+    sourcetooriginlabel->setGeometry( QRect( 270, 80, 120, 20 ) ); 
+    sourcetooriginlabel->setText( tr( "source_to_origin" ) );
+    sourcetooriginlabel->setEnabled(false);
+
+    sourcetodetector = new QLineEdit( geometrybuttongroup, "sourcetodetector" );
+    sourcetodetector->setGeometry( QRect( 410, 100, 140, 28 ) ); 
+    sourcetodetector->setEnabled(false);
+
+    sourcetodetectorlabel = new QLabel( geometrybuttongroup, "sourcetodetectorlabel" );
+    sourcetodetectorlabel->setGeometry( QRect( 410, 80, 140, 20 ) ); 
+    sourcetodetectorlabel->setText( tr( "source_to_detector" ) );
+    sourcetodetectorlabel->setEnabled(false);
+
+    raysumslabel = new QLabel( geometryWidget, "raysumslabel" );
+    raysumslabel->setGeometry( QRect( 10, 180, 90, 20 ) ); 
+    raysumslabel->setText( tr( "RAYSUMS" ) );
+
+    raysumsbuttongroup = new QButtonGroup( geometryWidget, "raysumsbuttongroup" );
+    raysumsbuttongroup->setGeometry( QRect( 120, 180, 570, 120 ) ); 
+    raysumsbuttongroup->setTitle( tr( "" ) );
+    //    raysumsbuttongroup->setEnabled(false);
+
+    userbutton = new QRadioButton( raysumsbuttongroup, "userbutton" );
+    userbutton->setGeometry( QRect( 10, 40, 70, 24 ) ); 
+    userbutton->setText( tr( "USER" ) ); 
+    userbutton->setChecked(true);
+    QObject::connect(userbutton,SIGNAL(clicked()),this,SLOT(activateUserFields()));
+
+    userrays = new QLineEdit( raysumsbuttongroup, "userrays" );
+    userrays->setGeometry( QRect( 130, 30, 90, 28 ) ); 
+    userrays->setEnabled(true);
+
+    userrayslabel = new QLabel( raysumsbuttongroup, "userrayslabel" );
+    userrayslabel->setGeometry( QRect( 140, 10, 70, 20 ) ); 
+    userrayslabel->setText( tr( "user_rays" ) );
+    userrayslabel->setEnabled(true);
+
+    programbutton = new QRadioButton( raysumsbuttongroup, "programbutton" );
+    programbutton->setGeometry( QRect( 10, 90, 110, 24 ) ); 
+    programbutton->setText( tr( "PROGRAM" ) );
+    QObject::connect(programbutton,SIGNAL(clicked()),this,SLOT(activateProgramFields()));
+
+    raysumsnelem = new QLineEdit( raysumsbuttongroup, "raysumsnelem" );
+    raysumsnelem->setGeometry( QRect( 130, 80, 90, 28 ) ); 
+    raysumsnelem->setEnabled(false);
+
+    raysumsnelemlabel = new QLabel( raysumsbuttongroup, "raysumsnelemlabel" );
+    raysumsnelemlabel->setGeometry( QRect( 150, 60, 50, 20 ) ); 
+    raysumsnelemlabel->setText( tr( "nelem" ) );
+    raysumsnelemlabel->setEnabled(false);
+
+    raysumspixelsize = new QLineEdit( raysumsbuttongroup, "raysumspixelsize" );
+    raysumspixelsize->setGeometry( QRect( 240, 80, 90, 28 ) ); 
+    raysumspixelsize->setEnabled(false);
+
+    raysumspixelsizelabel = new QLabel( raysumsbuttongroup, "raysumspixelsizelabel" );
+    raysumspixelsizelabel->setGeometry( QRect( 250, 60, 70, 20 ) ); 
+    raysumspixelsizelabel->setText( tr( "pixel_size" ) );
+    raysumspixelsizelabel->setEnabled(false);
+
+    detectorspacing = new QLineEdit( raysumsbuttongroup, "detectorspacing" );
+    detectorspacing->setGeometry( QRect( 370, 50, 140, 28 ) ); 
+
+    detectorspacinglabel = new QLabel( raysumsbuttongroup, "detectorspacinglabel" );
+    detectorspacinglabel->setGeometry( QRect( 380, 30, 130, 20 ) ); 
+    detectorspacinglabel->setText( tr( "detector_spacing" ) );
+
+    angleslabel = new QLabel( geometryWidget, "angleslabel" );
+    angleslabel->setGeometry( QRect( 8, 310, 70, 20 ) ); 
+    angleslabel->setText( tr( "ANGLES" ) );
+
+    anglesbuttongroup = new QButtonGroup( geometryWidget, "anglesbuttongroup" );
+    anglesbuttongroup->setGeometry( QRect( 120, 310, 570, 100 ) ); 
+    anglesbuttongroup->setTitle( tr( "" ) );
+
+    prjnum = new QLineEdit( anglesbuttongroup, "prjnum" );
+    prjnum->setGeometry( QRect( 17, 40, 120, 28 ) ); 
+
+    prjnumlabel = new QLabel( anglesbuttongroup, "prjnumlabel" );
+    prjnumlabel->setGeometry( QRect( 50, 20, 50, 20 ) ); 
+    prjnumlabel->setText( tr( "prjnum" ) );
+
+    linobutton = new QRadioButton( anglesbuttongroup, "linobutton" );
+    linobutton->setGeometry( QRect( 160, 10, 60, 24 ) ); 
+    linobutton->setText( tr( "LINO" ) );
+    QObject::connect(linobutton,SIGNAL(clicked()),this,SLOT(deactivateEqualSpacingFields()));
+
+    equalspacingbutton = new QRadioButton( anglesbuttongroup, "equalspacingbutton" );
+    equalspacingbutton->setGeometry( QRect( 160, 40, 160, 24 ) ); 
+    equalspacingbutton->setText( tr( "EQUAL SPACING" ) );
+    QObject::connect(equalspacingbutton,SIGNAL(clicked()),this,SLOT(activateEqualSpacingFields()));
+
+    nonebutton = new QRadioButton( anglesbuttongroup, "nonebutton" );
+    nonebutton->setGeometry( QRect( 160, 70, 70, 24 ) ); 
+    nonebutton->setText( tr( "NONE" ) );
+    nonebutton->setChecked(true);
+    QObject::connect(nonebutton,SIGNAL(clicked()),this,SLOT(deactivateEqualSpacingFields()));
+
+    firstangle = new QLineEdit( anglesbuttongroup, "firstangle" );
+    firstangle->setGeometry( QRect( 340, 40, 80, 28 ) ); 
+    firstangle->setEnabled(false);
+
+    firstanglelabel = new QLabel( anglesbuttongroup, "firstanglelabel" );
+    firstanglelabel->setGeometry( QRect( 345, 20, 80, 20 ) ); 
+    firstanglelabel->setText( tr( "first_angle" ) ); 
+    firstanglelabel->setEnabled(false);
+
+    lastangle = new QLineEdit( anglesbuttongroup, "lastangle" );
+    lastangle->setGeometry( QRect( 440, 40, 80, 28 ) );
+    lastangle->setEnabled(false); 
+
+    lastanglelabel = new QLabel( anglesbuttongroup, "lastanglelabel" );
+    lastanglelabel->setGeometry( QRect( 445, 20, 80, 20 ) ); 
+    lastanglelabel->setText( tr( "last_angle" ) );
+    lastanglelabel->setEnabled(false);
+
+    angles = new QLineEdit( geometryWidget, "angles" );
+    angles->setGeometry( QRect( 120, 415, 570, 105 ) ); 
+    angles->setEnabled(true);
+
+}
+
+// bool projectionwindow::check_geometry(QString& errs) {
+//   errs = "";
+//   return true;
+// }
+
+/** Returns a string for set 6 of CREATE input sequence
+i.e., geometry
+@param void
+@return projection geometry specification
+@author Bruno M. Carvalho
+@version 1.0 */
+//QString createwindow::getOutput6()
+QString projectionwindow::get_geometry() {
+
+  QString output;
+
+  output.sprintf("GEOMETRY\n");
+  if(parallelbutton->isChecked()) {
+    output.append("PARALLEL ");
+    if(uniformbutton->isChecked()) {
+      output.append("UNIFORM ");
+    }
+    else
+      if(variablebutton->isChecked()) {
+        output.append("VARIABLE ");
+      }
+    if(stripbutton->isChecked()) {
+      output.append("STRIP ");
+    }
+    else
+      if(linebutton->isChecked()) {
+        output.append("LINE ");
+      }
+  } // -- if parallel
+  else
+    if(divergentbutton->isChecked()) {
+      output.append("DIVERGENT ");
+      if(arcbutton->isChecked()) {
+        output.append("ARC ");
+      }
+      else
+        if(tangentbutton->isChecked()) {
+          output.append("TANGENT ");
+        }
+      output+=sourcetoorigin->text();
+      output.append(" ");
+      output+=sourcetodetector->text();
+    }
+  output.append("\n");
+  output.append("RAYS ");
+  if(userbutton->isChecked()) {
+    output.append("USER ");
+    output+=userrays->text();
+    output.append(" ");
+  }
+  else
+    if(programbutton->isChecked()) {
+      output.append("PROGRAM ");
+      output+=raysumsnelem->text();
+      output.append(" ");
+      output+=raysumspixelsize->text();
+      output.append(" ");
+    }
+  output+=detectorspacing->text();
+  output.append("\n");
+  output.append("ANGLES ");
+  output+=prjnum->text();
+  output.append(" ");
+  if(linobutton->isChecked()) {
+    output.append("LINO ");
+    //output.append("\n");
+  }
+  else
+    if(equalspacingbutton->isChecked()) {
+      output.append("EQUAL SPACING ");
+      output.append("\n");
+      output+=firstangle->text();
+      output.append(" ");
+      output+=lastangle->text();
+      //output.append("\n");
+    }
+    else {
+      output.append("\n");
+      output+=angles->text();
+      //output.append("\n");
+    }
+  return output;
+}
+
+
+// set 7
+void projectionwindow::populate_measurement() {
+  measurementlabel = new QLabel( measurementWidget, "measurementlabel" );
+  measurementlabel->setGeometry( QRect( 10, 20, 130, 20 ) ); 
+  measurementlabel->setText( tr( "MEASUREMENT" ) );
+  
+  measurementbuttongroup = new QButtonGroup( measurementWidget, "measurementbuttongroup" );
+  measurementbuttongroup->setGeometry( QRect( 20, 50, 710, 410 ) ); 
+  measurementbuttongroup->setTitle( tr( "" ) );
+  measurementbuttongroup->setEnabled( true );
+  
+  perfectbutton = new QRadioButton( measurementbuttongroup, "perfectbutton" );
+  perfectbutton->setGeometry( QRect( 10, 10, 100, 24 ) ); 
+  perfectbutton->setText( tr( "PERFECT" ) ); 
+  perfectbutton->setChecked(true);
+  QObject::connect(perfectbutton,SIGNAL(clicked()),this,SLOT(deactivateNoisyFields()));
+  
+  noisybutton = new QRadioButton( measurementbuttongroup, "noisybutton" );
+  noisybutton->setGeometry( QRect( 10, 40, 70, 24 ) ); 
+  noisybutton->setText( tr( "NOISY" ) );
+  QObject::connect(noisybutton,SIGNAL(clicked()),this,SLOT(activateNoisyFields()));
+  
+  noisyframe = new QFrame( measurementbuttongroup, "noisyframe" );
+  noisyframe->setGeometry( QRect( 90, 40, 570, 250 ) ); 
+  noisyframe->setFrameStyle( 49 );
+  noisyframe->setEnabled(false);
+  
+  quantumbutton = new QCheckBox( noisyframe, "quantumbutton" );
+  quantumbutton->setGeometry( QRect( 20, 30, 110, 24 ) ); 
+  quantumbutton->setText( tr( "QUANTUM" ) );
+  quantumbutton->setEnabled(false);
+  QObject::connect(quantumbutton,SIGNAL(clicked()),this,SLOT(activateQuantumFields()));
+  
+  quanmn = new QLineEdit( noisyframe, "quanmn" );
+  quanmn->setGeometry( QRect( 180, 30, 80, 28 ) ); 
+  quanmn->setEnabled(false);
+  
+  quanmnlabel = new QLabel( noisyframe, "quanmnlabel" );
+  quanmnlabel->setGeometry( QRect( 190, 10, 60, 20 ) ); 
+  quanmnlabel->setText( tr( "quanmn" ) ); 
+  quanmnlabel->setEnabled(false);
+  
+  quancm = new QLineEdit( noisyframe, "quancm" );
+  quancm->setGeometry( QRect( 270, 30, 80, 28 ) ); 
+  quancm->setEnabled(false);
+  
+  quancmlabel = new QLabel( noisyframe, "quancmlabel" );
+  quancmlabel->setGeometry( QRect( 280, 10, 60, 20 ) ); 
+  quancmlabel->setText( tr( "quancm" ) );
+  quancmlabel->setEnabled(false);
+  
+  calibrationlabel = new QLabel( noisyframe, "calibrationlabel" );
+  calibrationlabel->setGeometry( QRect( 360, 30, 110, 20 ) ); 
+  calibrationlabel->setText( tr( "CALIBRATION" ) ); 
+  calibrationlabel->setEnabled(false);
+  
+  quanin = new QComboBox( noisyframe, "quanin" );
+  quanin->setGeometry( QRect( 480, 30, 80, 28 ) );
+  quanin->insertItem("1",-1);
+  quanin->insertItem("2",-1);
+  quanin->insertItem("3",-1);
+  quanin->insertItem("4",-1);
+  quanin->setEnabled(false); 
+  
+  quaninlabel = new QLabel( noisyframe, "quaninlabel" );
+  quaninlabel->setGeometry( QRect( 490, 10, 50, 20 ) ); 
+  quaninlabel->setText( tr( "quanin" ) );
+  quaninlabel->setEnabled(false);
+  
+  scatterbutton = new QCheckBox( noisyframe, "scatterbutton" );
+  scatterbutton->setGeometry( QRect( 20, 90, 100, 24 ) ); 
+  scatterbutton->setText( tr( "SCATTER" ) );
+  QObject::connect(scatterbutton,SIGNAL(clicked()),this,SLOT(activateScatterFields()));
+  
+  sctnpk = new QLineEdit( noisyframe, "sctnpk" );
+  sctnpk->setGeometry( QRect( 180, 90, 80, 28 ) );
+  sctnpk->setEnabled(false); 
+  
+  sctnpklabel = new QLabel( noisyframe, "sctnpklabel" );
+  sctnpklabel->setGeometry( QRect( 190, 70, 50, 20 ) ); 
+  sctnpklabel->setText( tr( "sctnpk" ) ); 
+  sctnpklabel->setEnabled(false);
+  
+  sctnwd = new QLineEdit( noisyframe, "sctnwd" );
+  sctnwd->setGeometry( QRect( 270, 90, 80, 28 ) ); 
+  sctnwd->setEnabled(false);
+
+  sctnwdlabel = new QLabel( noisyframe, "sctnwdlabel" );
+  sctnwdlabel->setGeometry( QRect( 280, 70, 60, 20 ) ); 
+  sctnwdlabel->setText( tr( "sctnwd" ) );  
+  sctnwdlabel->setEnabled(false);
+  
+  additivebutton = new QCheckBox( noisyframe, "additivebutton" );
+  additivebutton->setGeometry( QRect( 20, 150, 90, 24 ) ); 
+  additivebutton->setText( tr( "ADDITIVE" ) );
+  additivebutton->setChecked(false);
+  QObject::connect(additivebutton,SIGNAL(clicked()),this,SLOT(activateAdditiveFields()));
+  
+  addnmn = new QLineEdit( noisyframe, "addnmn" );
+  addnmn->setGeometry( QRect( 180, 150, 80, 28 ) ); 
+  addnmn->setEnabled(false);
+  
+  addnmnlabel = new QLabel( noisyframe, "addnmnlabel" );
+  addnmnlabel->setGeometry( QRect( 190, 130, 60, 20 ) ); 
+  addnmnlabel->setText( tr( "addnmn" ) ); 
+  addnmnlabel->setEnabled(false);
+  
+  addnsd = new QLineEdit( noisyframe, "addnsd" );
+  addnsd->setGeometry( QRect( 270, 150, 80, 28 ) ); 
+  addnsd->setEnabled(false);
+  
+  addnsdlabel = new QLabel( noisyframe, "addnsdlabel" );
+  addnsdlabel->setGeometry( QRect( 280, 130, 60, 20 ) ); 
+  addnsdlabel->setText( tr( "addnsd" ) );
+  addnsdlabel->setEnabled(false);
+  
+  multiplicativebutton = new QCheckBox( noisyframe, "multiplicativebutton" );
+  multiplicativebutton->setGeometry( QRect( 20, 210, 150, 24 ) ); 
+  multiplicativebutton->setText( tr( "MULTIPLICATIVE" ) );
+  QObject::connect(multiplicativebutton,SIGNAL(clicked()),this,SLOT(activateMultiplicativeFields()));
+  
+  multnmn = new QLineEdit( noisyframe, "multnmn" );
+  multnmn->setGeometry( QRect( 180, 210, 80, 28 ) );
+  multnmn->setEnabled(false);
+  
+  multnmnlabel = new QLabel( noisyframe, "multnmnlabel" );
+  multnmnlabel->setGeometry( QRect( 190, 190, 70, 20 ) ); 
+  multnmnlabel->setText( tr( "multnmn" ) );
+  multnmnlabel->setEnabled(false);
+  
+  multnsd = new QLineEdit( noisyframe, "multnsd" );
+  multnsd->setGeometry( QRect( 270, 210, 80, 28 ) ); 
+  multnsd->setEnabled(false);
+  
+  multnsdlabel = new QLabel( noisyframe, "multnsdlabel" );
+  multnsdlabel->setGeometry( QRect( 280, 190, 70, 20 ) ); 
+  multnsdlabel->setText( tr( "multnsd" ) ); 
+  multnsdlabel->setEnabled(false);
+  
+  seedlabel = new QLabel( measurementbuttongroup, "seedlabel" );
+  seedlabel->setGeometry( QRect( 10, 310, 110, 20 ) ); 
+  seedlabel->setText( tr( "SEED" ) ); 
+  seedlabel->setEnabled(false);
+  
+  seed = new QLineEdit( measurementbuttongroup, "seed" );
+  seed->setGeometry( QRect( 140, 310, 70, 28 ) );  
+  seed->setEnabled(false);
+  
+  seedlabel1 = new QLabel( measurementbuttongroup, "seedlabel1" );
+  seedlabel1->setGeometry( QRect( 155, 290, 70, 20 ) ); 
+  seedlabel1->setText( tr( "seed" ) );  
+  seedlabel1->setEnabled(false);
+  
+  backgroundlabel = new QLabel( measurementbuttongroup, "backgroundlabel" );
+  backgroundlabel->setGeometry( QRect( 10, 370, 120, 20 ) ); 
+  backgroundlabel->setText( tr( "BACKGROUND" ) );
+  
+  backgr1 = new QLineEdit( measurementbuttongroup, "backgr1" );
+  backgr1->setGeometry( QRect( 140, 370, 70, 28 ) ); 
+
+  backgr1label = new QLabel( measurementbuttongroup, "backgr1label" );
+  backgr1label->setGeometry( QRect( 145, 350, 70, 20 ) ); 
+  backgr1label->setText( tr( "backgr(1)" ) ); 
+
+}
+
+// bool projectionwindow::check_measurement(QString& errs) {
+//   errs = "";
+//   return true;
+// }
+
+
+/** Returns a string for set 7 of CREATE input sequence
+    i.e., measurement
+@param void
+@return measurement statistics
+@author Bruno M. Carvalho
+@version 1.0 */
+// QString createwindow::getOutput7()
+QString projectionwindow::get_measurement() {
+  QString output,t;
+
+  output.sprintf("MEASUREMENT ");
+  if(perfectbutton->isChecked()) {
+    output.append("PERFECT ");
+    output.append("\n");
+  }
+  else
+    if(noisybutton->isChecked()) {
+      output.append("NOISY ");
+      output.append("\n");
+      if(quantumbutton->isChecked()) {
+       output.append("QUANTUM ");
+       output+=quanmn->text();
+       output.append(" ");
+       output+=quancm->text();
+       output.append(" ");
+        t.sprintf("CALIBRATION %d \n",quanin->currentItem()+1);
+        output.append(t);
+        output.append("SEED ");
+       output+=seed->text();
+        output.append("\n");
+      }
+      else 
+       if(scatterbutton->isChecked()) {
+         output.append("SCATTER ");
+         output+=sctnpk->text();
+          output.append(" ");
+         output+=sctnwd->text();
+         output.append("\n");
+       }
+       else 
+         if(additivebutton->isChecked()) {
+           output.append("ADDITIVE ");
+           output+=addnmn->text();
+            output.append(" ");
+           output+=addnsd->text();
+           output.append("\n");
+            output.append("SEED ");
+           output+=seed->text();
+           output.append("\n");
+          }
+         else 
+           if(multiplicativebutton->isChecked()) {
+             output.append("MULTIPLICATIVE ");
+             output+=multnmn->text();
+              output.append(" ");
+             output+=multnsd->text();
+             output.append("\n");
+              output.append("SEED ");
+             output+=seed->text();
+             output.append("\n");
+           }
+    }
+  output.append("BACKGROUND ");
+  output+=backgr1->text();
+  output.append(" ");
+  // assume single energy with NERGY = 1 in pseudo projections
+//   if(polychromaticbutton->isChecked()) {
+//     output+=backgr2->text();
+//     output.append(" ");
+//     output+=backgr3->text();
+//     output.append(" ");
+//     output+=backgr4->text();
+//     output.append(" ");
+//     output+=backgr5->text();
+//     output.append(" ");
+//     output+=backgr6->text();
+//     output.append(" ");
+//     output+=backgr7->text();
+//   }
+  //output.append("\n");
+  return output;
+}
+
+/** 
+ *  Constructs a projectionwindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho / DS
+@version 1.0 */
+projectionwindow::projectionwindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "projectionwindow" );
+    resize( 750, 630 );
+    setMinimumSize( QSize( 730, 630 ) );
+    setMaximumSize( QSize( 730, 630 ) );
+    setCaption( tr( "Projection Window" ) );
+
+    tabwidget1 = new QTabWidget( this, "tabwidget1" );
+    tabwidget1->setGeometry( QRect( 0, 0, 750, 550 ) ); 
+    tabwidget1->setMinimumSize( QSize( 750, 550 ) );
+    tabwidget1->setMaximumSize( QSize( 750, 550 ) );
+    tabwidget1->setTabPosition( QTabWidget::Top );
+    tabwidget1->setTabShape( QTabWidget::Triangular );
+
+    /* Create tab 1 -- projection type widget */
+
+    projTypeWidget = new QWidget( tabwidget1, "projection type" );
+
+    projTypeLabel = new QLabel( projTypeWidget, "projtypelabel" );
+    projTypeLabel->setGeometry( QRect( 10, 20, 120, 20 ) ); 
+    projTypeLabel->setText( tr( "Projection Type" ) );
+
+    projectionbuttongroup = new QButtonGroup( projTypeWidget, "projectionbuttongroup" );
+    projectionbuttongroup->setGeometry( QRect( 25, 40, 690, 480 ) ); 
+    //    projectionbuttongroup->setTitle( tr( "Projection Type" ) );
+    projectionbuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    oldbutton = new QRadioButton( projectionbuttongroup, "oldbutton" );
+    oldbutton->setGeometry( QRect( 10, 20, 95, 24 ) ); 
+    oldbutton->setText( tr( "OLD" ) );
+    oldbutton->toggle();
+    QObject::connect(oldbutton,SIGNAL(clicked()),this,SLOT(deactivateFields()));
+    
+    tabwidget1->insertTab( projTypeWidget, "Projection Type" );
+
+    /** Create tab 2 -- PseudoProjection Commands */
+    pseudoCommandsWidget = new QTabWidget( tabwidget1, "pseudo commands" );
+
+    pseudobutton = new QRadioButton( projectionbuttongroup, "pseudobutton" );
+    pseudobutton->setGeometry( QRect( 10, 60, 95, 24 ) ); 
+    pseudobutton->setText( tr( "PSEUDO" ) );
+    QObject::connect(pseudobutton,SIGNAL(clicked()),this,SLOT(activatePseudoFields()));
+
+    tabwidget1->insertTab( pseudoCommandsWidget, "Pseudo Commands" );
+    tabwidget1->setTabEnabled(pseudoCommandsWidget, false);
+
+    // Make the create-like command sets 1,6,7 under the pseudo commands tab!
+
+    // set 1: idheader
+    idheaderWidget = new QWidget( pseudoCommandsWidget, "ID Header" );
+    populate_idheader();
+    pseudoCommandsWidget->insertTab( idheaderWidget, "ID Header" );
+
+    // set 6: geometry
+    geometryWidget = new QWidget( pseudoCommandsWidget, "Geometry" );
+    populate_geometry();
+    pseudoCommandsWidget->insertTab( geometryWidget, "Geometry" );
+
+    // set 7: measurement
+    measurementWidget = new QWidget( pseudoCommandsWidget, "Measurement" );
+    populate_measurement();
+    pseudoCommandsWidget->insertTab( measurementWidget, "Measurement" );
+    
+    
+    /** Create the options to real for beam hardening correction */
+    realbutton = new QRadioButton( projectionbuttongroup, "realbutton" );
+    realbutton->setGeometry( QRect( 10, 100, 95, 24 ) ); 
+    realbutton->setText( tr( "REAL" ) );
+    QObject::connect(realbutton,SIGNAL(clicked()),this,SLOT(deactivateFields()));
+    
+    bhcbutton = new QCheckBox( projectionbuttongroup, "bhcbutton");
+    bhcbutton->setGeometry ( QRect( 130, 90, 500, 60) );
+    bhcbutton->setText( tr( "BEAM HARDENING CORRECTION\n(Fill in the window below.)" ) );
+    bhcbutton->setEnabled(false);
+    QObject::connect(realbutton,SIGNAL(clicked()),this,SLOT(activateRealOptions()));
+
+    bhcwindow = new QMultiLineEdit( projectionbuttongroup, "bhcwindow");
+    bhcwindow->setGeometry( QRect( 130, 155, 500, 300 ) );
+    bhcwindow->setEnabled(false);
+    QObject::connect(bhcbutton,SIGNAL(clicked()),this,SLOT(activateRealOptions()));
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 100, 560, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 510, 560, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+projectionwindow::~projectionwindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Deactivates pseudo and rebin fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::deactivateFields()
+{
+  if(oldbutton->isChecked() || realbutton->isChecked()) {
+    //    tabwidget1->deleteTab( 1 );
+    tabwidget1->setTabEnabled(pseudoCommandsWidget, false);
+  }
+  if(oldbutton->isChecked() || pseudobutton->isChecked()) {
+    bhcwindow->setEnabled(false);
+    bhcbutton->setEnabled(false);
+    //bhcbutton->setOn(false);
+  }
+  if( ! bhcbutton->isChecked() ) {
+    bhcwindow->setEnabled(false);
+  }
+}
+
+/** Activates real options
+@param void
+@author Joanna Klukowska
+@version 1.0 */
+void projectionwindow::activateRealOptions()
+{
+  deactivateFields();
+  if(realbutton->isChecked()) {
+    bhcbutton->setEnabled(true);
+    if (bhcbutton->isChecked() ) {
+        bhcwindow->setEnabled(true);
+    }
+  }
+  else {
+  }
+}
+
+
+/** Activates pseudo fields "recursively"
+@param void
+@author Bruno M. Carvalho / DS
+@version 1.0 */
+void projectionwindow::activatePseudoFields()
+{
+  deactivateFields();
+  if(pseudobutton->isChecked()) {
+    //bhcwindow->setEnabled(false);
+    //bhcbutton->setEnabled(false);
+    tabwidget1->setTabEnabled(pseudoCommandsWidget, true);
+    tabwidget1->setCurrentPage( 1 );
+    pseudoCommandsWidget->setTabEnabled(idheaderWidget, true);
+    pseudoCommandsWidget->setTabEnabled(geometryWidget, true);
+    pseudoCommandsWidget->setTabEnabled(measurementWidget, true);
+  }
+  else {
+    //    tabwidget1->setTabEnabled(pseudoCommandsWidget, false);
+    //    pseudoCommandsWidget->setEnabled(FALSE);
+  }
+}
+
+
+/** Activates parallel fields and deactivates divergent fields
+@param void
+@author Bruno M. Carvalho (copied over by DS from create.cpp)
+@version 1.0 */
+void projectionwindow::activateParallelFields()
+{
+  if(parallelbutton->isChecked()) {
+    parallelbuttongroup->setEnabled(true);
+    parallelbuttongroup2->setEnabled(true);
+    divergentbuttongroup->setEnabled(false);
+    sourcetoorigin->setEnabled(false);
+    sourcetooriginlabel->setEnabled(false);
+    sourcetodetector->setEnabled(false);
+    sourcetodetectorlabel->setEnabled(false);
+    //    activateOKButton();
+  }
+  else {
+    parallelbuttongroup->setEnabled(false);
+    parallelbuttongroup2->setEnabled(false);
+    //    activateOKButton();
+  }
+}
+
+/** Activates divergent fields and deactivates parallel fields
+@param void
+@author Bruno M. Carvalho (copied over by DS from create.cpp)
+@version 1.0 */
+void projectionwindow::activateDivergentFields()
+{
+  if(divergentbutton->isChecked()) {
+    divergentbuttongroup->setEnabled(true);
+    sourcetoorigin->setEnabled(true);
+    sourcetooriginlabel->setEnabled(true);
+    sourcetodetector->setEnabled(true);
+    sourcetodetectorlabel->setEnabled(true);
+    parallelbuttongroup->setEnabled(false);
+    parallelbuttongroup2->setEnabled(false);
+    //    activateOKButton();
+  }
+  else {
+    divergentbuttongroup->setEnabled(false);
+    sourcetoorigin->setEnabled(false);
+    sourcetooriginlabel->setEnabled(false);
+    sourcetodetector->setEnabled(false);
+    sourcetodetectorlabel->setEnabled(false);
+    //    activateOKButton();
+  }
+}
+
+
+/** Activates user fields and deactivates program fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::activateUserFields()
+{
+  if(userbutton->isChecked()) {
+    userrays->setEnabled(true);
+    userrayslabel->setEnabled(true);
+    raysumsnelem->setEnabled(false);
+    raysumsnelemlabel->setEnabled(false);
+    raysumspixelsize->setEnabled(false);
+    raysumspixelsizelabel->setEnabled(false);
+    //    activateOKButton();
+  }
+  else {
+    userrays->setEnabled(false);
+    userrayslabel->setEnabled(false);
+    //    activateOKButton();
+  }
+}
+
+/** Activates program fields and deactivates user fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::activateProgramFields()
+{
+  if(programbutton->isChecked()) {
+    raysumsnelem->setEnabled(true);
+    raysumsnelemlabel->setEnabled(true);
+    raysumspixelsize->setEnabled(true);
+    raysumspixelsizelabel->setEnabled(true);
+    userrays->setEnabled(false);
+    userrayslabel->setEnabled(false);
+    //    activateOKButton();
+  }
+  else {
+    raysumsnelem->setEnabled(false);
+    raysumsnelemlabel->setEnabled(false);
+    raysumspixelsize->setEnabled(false);
+    raysumspixelsizelabel->setEnabled(false);
+    //    activateOKButton();
+  }
+}
+
+/** Activates equal spacing fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::activateEqualSpacingFields()
+{
+  if(equalspacingbutton->isChecked()) {
+    firstangle->setEnabled(true);
+    firstanglelabel->setEnabled(true);
+    lastangle->setEnabled(true);
+    lastanglelabel->setEnabled(true);
+    angles->setEnabled(false);
+    //    activateOKButton();
+  }
+  else {
+    firstangle->setEnabled(false);
+    firstanglelabel->setEnabled(false);
+    lastangle->setEnabled(false);
+    lastanglelabel->setEnabled(false);
+    angles->setEnabled(true);
+    //    activateOKButton();
+  }
+}
+
+
+/** Deactivates equal spacing fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::deactivateEqualSpacingFields()
+{
+  firstangle->setEnabled(false);
+  firstanglelabel->setEnabled(false);
+  lastangle->setEnabled(false);
+  lastanglelabel->setEnabled(false);
+  if(linobutton->isChecked()) 
+    angles->setEnabled(false);
+  else
+    if(nonebutton->isChecked()) 
+      angles->setEnabled(true);
+  //  activateOKButton();
+}
+
+
+
+/** Activates noisy fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::activateNoisyFields()
+{
+  if(noisybutton->isChecked()) {
+    noisyframe->setEnabled(true);
+    quantumbutton->setChecked(true);
+    quantumbutton->setEnabled(true);
+    quanmn->setEnabled(true);
+    quanmnlabel->setEnabled(true);
+    quancm->setEnabled(true);
+    quancmlabel->setEnabled(true);
+    calibrationlabel->setEnabled(true);
+    quanin->setEnabled(true); 
+    quaninlabel->setEnabled(true);
+    seedlabel->setEnabled(true);
+    seed->setEnabled(true);
+    seedlabel1->setEnabled(true);
+    //    activateOKButton();
+  }
+  else {
+    noisyframe->setEnabled(false);
+    //    activateOKButton();
+  }
+}
+
+/** Deactivates noisy fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::deactivateNoisyFields()
+{
+  noisyframe->setEnabled(false);
+  seedlabel->setEnabled(false);
+  seed->setEnabled(false);
+  seedlabel1->setEnabled(false);
+  //  activateOKButton();
+}
+
+/** Activates quantum fields and deactivates scatter, additive and 
+multiplicative fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::activateQuantumFields()
+{
+  if(quantumbutton->isChecked()) {
+    quanmn->setEnabled(true);
+    quanmnlabel->setEnabled(true);
+    quancm->setEnabled(true);
+    quancmlabel->setEnabled(true);
+    calibrationlabel->setEnabled(true);
+    quanin->setEnabled(true);
+    quaninlabel->setEnabled(true);
+    seed->setEnabled(true);
+    seedlabel->setEnabled(true);
+    seedlabel1->setEnabled(true);
+    //    activateOKButton();
+  }
+  else {
+    quanmn->setEnabled(false);
+    quanmnlabel->setEnabled(false);
+    quancm->setEnabled(false);
+    quancmlabel->setEnabled(false);
+    calibrationlabel->setEnabled(false);
+    quanin->setEnabled(false);
+    quaninlabel->setEnabled(false);
+    if(!additivebutton->isChecked() && !multiplicativebutton->isChecked()) {
+      seed->setEnabled(false);
+      seedlabel->setEnabled(false);
+      seedlabel1->setEnabled(false);
+    }
+    //    activateOKButton();
+  }
+}
+
+/** Activates scatter fields and deactivates quantum, additive and 
+multiplicative fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::activateScatterFields()
+{
+  if(scatterbutton->isChecked()) {
+    sctnpk->setEnabled(true);
+    sctnpklabel->setEnabled(true);
+    sctnwd->setEnabled(true);
+    sctnwdlabel->setEnabled(true);
+    //    activateOKButton();
+  }
+  else {
+    sctnpk->setEnabled(false);
+    sctnpklabel->setEnabled(false);
+    sctnwd->setEnabled(false);
+    sctnwdlabel->setEnabled(false);
+    //    activateOKButton();
+  }
+}
+
+/** Activates additive fields and deactivates quantum, scatter and 
+multiplicative fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::activateAdditiveFields()
+{
+  if(additivebutton->isChecked()) {
+    addnmn->setEnabled(true);
+    addnmnlabel->setEnabled(true);
+    addnsd->setEnabled(true);
+    addnsdlabel->setEnabled(true);
+    seed->setEnabled(true);
+    seedlabel->setEnabled(true);
+    seedlabel1->setEnabled(true);
+    //    activateOKButton();
+  }
+  else {
+    addnmn->setEnabled(false);
+    addnmnlabel->setEnabled(false);
+    addnsd->setEnabled(false);
+    addnsdlabel->setEnabled(false);
+    if(!quantumbutton->isChecked() && !multiplicativebutton->isChecked()) {
+      seed->setEnabled(false);
+      seedlabel->setEnabled(false);
+      seedlabel1->setEnabled(false);
+    }
+    //    activateOKButton();
+  }
+}
+
+/** Activates multiplicative fields and deactivates quantum, scatter and 
+additive fields
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void projectionwindow::activateMultiplicativeFields()
+{
+  if(multiplicativebutton->isChecked()) {
+    multnmn->setEnabled(true);
+    multnmnlabel->setEnabled(true);
+    multnsd->setEnabled(true);
+    multnsdlabel->setEnabled(true);
+    seed->setEnabled(true);
+    seedlabel->setEnabled(true);
+    seedlabel1->setEnabled(true);
+    //    activateOKButton();
+  }
+  else {
+    multnmn->setEnabled(false);
+    multnmnlabel->setEnabled(false);
+    multnsd->setEnabled(false);
+    multnsdlabel->setEnabled(false);
+    if(!quantumbutton->isChecked() && !additivebutton->isChecked()) {
+      seed->setEnabled(false);
+      seedlabel->setEnabled(false);
+      seedlabel1->setEnabled(false);
+    }
+    //    activateOKButton();
+  }
+}
+
+
+/** Returns a string for PROJECTION input sequence
+@param void
+@return projection
+@author Bruno M. Carvalho / DS
+@version 1.0 */
+QString projectionwindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("PROJECTION ");
+  if(oldbutton->isChecked()) {
+    output.append("OLD ");
+  }
+  if(realbutton->isChecked()) {
+    output.append("REAL ");
+    if (bhcbutton->isChecked() ) {
+      output += "BEAM HARDENING CORRECTION\n";
+      output += bhcwindow->text();
+    }
+  }
+  if(pseudobutton->isChecked()) {
+    output += "PSEUDO\n";
+    output += get_idheader();
+    output += "\n";
+    output += get_geometry();
+    output += "\n";
+    output += get_measurement();
+  }
+  return output;
+} // --projectionwindow::getOutput()
+
+void projectionwindow::checkValues()
+{
+  QString err;// contains the error string
+  if(!pseudobutton->isChecked()) {
+    accept(); // that was easy.
+  } else {
+    if (!check_idheader(err)) {   //  don't accept, show why
+      QMessageBox::information(this,"SnarkInput",err);
+    } else {
+      // i was going to do this more elegantly using
+      // check_geometry(err) and check_measurement(err) but realized
+      // how much code would have to be rewritten...
+      // just stole the part below from bruno's create.cpp  --deniz
+      int f=0;
+      int usr=0,pnlm,pn,sed;
+      float stoo,stod=0,ppxls,decs,fa,la,qm,qc,sw,sp,am,as,mm,ms;
+      float b1;
+
+      /* Consistency check for geometry section */
+      if(divergentbutton->isChecked()) {
+       stoo=strtof((const char *)sourcetoorigin->text());
+       if(errnum) 
+         f=21;
+       stod=strtof((const char *)sourcetodetector->text());
+       if(errnum) 
+         f=22;
+       if(stoo<0)
+         f=30;
+       if(stod<0)
+         f=31;
+      }
+      if(userbutton->isChecked()) {
+       usr=strtoi((const char *)userrays->text());
+       if(errnum) 
+         f=23;
+       if(usr<1 || !(usr%2))
+         f=34;
+      }
+      if(programbutton->isChecked()) {
+       pnlm=strtoi((const char *)raysumsnelem->text());
+       if(errnum) 
+         f=24;
+       if(pnlm<1 || !(pnlm%2))
+         f=35;
+       ppxls=strtof((const char *)raysumspixelsize->text());
+       if(errnum) 
+         f=25;
+       if(ppxls<=0)
+         f=32;
+       else 
+         if(divergentbutton->isChecked() && pnlm*ppxls*M_SQRT1_2 >= stoo)
+           f=37;
+      }
+      decs=strtof((const char *)detectorspacing->text());
+      if(errnum) 
+       f=26;
+      if(decs<0)
+       f=33;
+      if(divergentbutton->isChecked() && userbutton->isChecked()) 
+       if((usr-1)*decs>=stod*M_PI)
+         f=38;
+      pn=strtoi((const char *)prjnum->text());
+      if(errnum) 
+       f=27;
+      if(pn<1)
+       f=36;
+      if(linobutton->isChecked())
+       if(pn<2)
+         f=36;
+      if(equalspacingbutton->isChecked()) {
+       fa=strtof((const char *)firstangle->text());
+       if(errnum) 
+         f=28;
+       la=strtof((const char *)lastangle->text());
+       if(errnum) 
+         f=29;
+       if(pn<2)
+         f=36;
+      }
+      if(nonebutton->isChecked()) {
+       QString angst = angles->text();
+       //Splits angst into strings wherever the regular expression sep occurs, and return the list of those strings.
+       // If allowEmptyEntries is TRUE, a null string is inserted in the list wherever the separator matches twice without intervening text.
+       QRegExp sep("\\s+");
+       // whitespace.  the first '\' is for escaping '\'
+       QStringList angleStringList = QStringList::split(sep, angst);
+       int angleCount = 0;
+       bool ok;
+       for ( QStringList::Iterator it = angleStringList.begin(); 
+             it != angleStringList.end(); ++it ) {
+         // check (*it) is really a float
+         // double QString::toDouble ( bool * ok = 0 ) const
+         ok = true;
+       (*it).toDouble(&ok);
+       if(!ok) f=39;
+       angleCount++;
+       }
+       // pn is already numerified value in prjnum field
+       if(angleCount != pn) f=39;
+      }
+      
+      /* Consistency check for measurement section */
+      
+      if(noisybutton->isChecked()) {
+       if(scatterbutton->isChecked()) {
+         sp=strtof((const char *)sctnpk->text());
+         if(errnum) 
+           f=42;
+         if(sp<=0)
+           f=51;
+         sw=strtof((const char *)sctnwd->text());
+         if(errnum) 
+           f=43;
+         if(sw<decs)
+           f=53;
+       }
+       else {
+         if(quantumbutton->isChecked() || additivebutton->isChecked() || multiplicativebutton->isChecked()) {
+           sed=strtoi((const char *)seed->text());
+           if(errnum) 
+             f=48;
+         }
+         if(quantumbutton->isChecked()) {
+           qm=strtof((const char *)quanmn->text());
+           if(errnum) 
+             f=40;
+           qc=strtof((const char *)quancm->text());
+           if(errnum) 
+             f=41;
+           if(qc<=0)
+             f=50;
+         }
+         if(additivebutton->isChecked()) {
+           am=strtof((const char *)addnmn->text());
+           if(errnum) 
+             f=44;
+           as=strtof((const char *)addnsd->text());
+           if(errnum) 
+             f=45;
+         }
+         if(multiplicativebutton->isChecked()) {
+           mm=strtof((const char *)multnmn->text());
+           if(errnum) 
+             f=46;
+           if(mm==0)
+             f=52;
+           ms=strtof((const char *)multnsd->text());
+           if(errnum) 
+             f=47;
+         }
+       }
+       if(!quantumbutton->isChecked() && !scatterbutton->isChecked() && !additivebutton->isChecked() && !multiplicativebutton->isChecked())
+         f=54;
+      }
+      
+      b1=strtof((const char *)backgr1->text());
+      if(errnum) 
+       f=49;
+
+      // and then do something based on value of error flag f
+      switch(f) {
+      case 0: accept();
+       break;
+       
+      case 21: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid source_to_origin format.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       sourcetoorigin->setFocus();
+       break;
+      case 22: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid source_to_detector format.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       sourcetodetector->setFocus();
+       break;
+      case 23: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid user_rays format.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       userrays->setFocus();
+       break;
+      case 24: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid nelem format.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       raysumsnelem->setFocus();
+       break;
+      case 25: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid pixel_size format.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       raysumspixelsize->setFocus();
+       break;
+      case 26: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid detector_spacing format.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       detectorspacing->setFocus();
+       break;
+      case 27: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid prjnum format.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       prjnum->setFocus();
+       break;
+      case 28: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid first_angle format.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       firstangle->setFocus();
+       break;
+      case 29: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid last_angle format.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       lastangle->setFocus();
+       break;
+      case 30: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "source_to_origin must be positive.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       sourcetoorigin->setFocus();
+       break;
+      case 31: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "source_to_detector must be positive.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       sourcetodetector->setFocus();
+       break;
+      case 32: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "pixel_size must be positive.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       raysumspixelsize->setFocus();
+       break;
+      case 33: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "detector_spacing must be equal or greater than 0.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       detectorspacing->setFocus();
+       break;
+      case 34: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "user_rays must be positive and odd.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       userrays->setFocus();
+       break;
+      case 35: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "nelem must be positive and odd.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       raysumsnelem->setFocus();
+       break;
+      case 36: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "projnum must be positive, and greater than 1\n"
+                                       "if LINO or EQUAL_SPACING is selected.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       prjnum->setFocus();
+       break;
+      case 37: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "nelem * pixel_size/sqrt(2) must be smaller than source_to_detector.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       raysumsnelem->setFocus();
+       break;
+      case 38: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "(user_rays-1) * detector_spacing must be smaller than source_to_detector * PI.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       detectorspacing->setFocus();
+       break;
+       // case 39 is never reached, since this was only half implemented.
+      case 39: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "number of angles must be equal to prjnum and each angle must be a floating-point number.");
+       pseudoCommandsWidget->setCurrentPage(1);
+       angles->setFocus();
+       break;
+      case 40: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid quanmn format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       quanmn->setFocus();
+       break;
+      case 41: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid quancm format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       quancm->setFocus();
+       break;
+      case 42: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid sctnpk format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       sctnpk->setFocus();
+       break;
+      case 43: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid sctnwd format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       sctnwd->setFocus();
+       break;
+      case 44: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid addnmn format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       addnmn->setFocus();
+       break;
+      case 45: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid addnsd format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       addnsd->setFocus();
+       break;
+      case 46: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid multnmn format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       multnmn->setFocus();
+       break;
+      case 47: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid multnsd format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       multnsd->setFocus();
+       break;
+      case 48: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid seed format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       seed->setFocus();
+       break;
+      case 49: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "Invalid backgr(i) format.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       backgr1->setFocus();
+       break;
+      case 50: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "quancm must be positive.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       quancm->setFocus();
+       break;
+      case 51: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "sctnpk must be positive");
+       pseudoCommandsWidget->setCurrentPage(2);
+       sctnpk->setFocus();
+       break;
+      case 52: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "multnmn must be nonzero.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       multnmn->setFocus();
+       break;
+      case 53: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "sctnwd must be greater than detector_spacing.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       sctnwd->setFocus();
+       break;
+      case 54: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                       "if NOISY is selected at least one of the options\n"                                   
+                                       " QUANTUM, SCATTER, ADDITIVE OR MULTIPLICATIVE must be selected too.");
+       pseudoCommandsWidget->setCurrentPage(2);
+       quantumbutton->setFocus();
+       break;
+      } // -- switch(f)
+    } // -- if didn't fail at the idheader    
+  } // -- if pseudo /was/ checked
+} // --projectionwindow::checkValues()
diff --git a/tools/Input/projection.h b/tools/Input/projection.h
new file mode 100755 (executable)
index 0000000..17409e5
--- /dev/null
@@ -0,0 +1,189 @@
+/** @file projection.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef PROJECTIONWINDOW_H
+#define PROJECTIONWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout;  
+class QCheckBox; 
+class QComboBox;
+class QButtonGroup;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QMultiLineEdit;
+class QPushButton;
+class QRadioButton;
+class QTabWidget;
+
+class projectionwindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    projectionwindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~projectionwindow();
+    QString getOutput();
+
+    QTabWidget* tabwidget1;
+
+    QWidget* projTypeWidget;
+    QLabel* projTypeLabel;
+
+    QLabel* projectionlabel;
+    QButtonGroup* projectionbuttongroup;
+    QRadioButton* oldbutton;
+    QRadioButton* realbutton;
+    QCheckBox* bhcbutton;
+    QMultiLineEdit * bhcwindow;
+    QRadioButton* pseudobutton;
+
+    QTabWidget* pseudoCommandsWidget;
+
+    QWidget* idheaderWidget;
+    QLineEdit* idheader;
+    QLabel* idheaderlabel;
+
+    QWidget* geometryWidget;
+    QLabel* geometrylabel;
+    QButtonGroup* geometrybuttongroup;
+    QRadioButton* parallelbutton;
+    QRadioButton* divergentbutton;
+    QButtonGroup* parallelbuttongroup;
+    QRadioButton* uniformbutton;
+    QRadioButton* variablebutton;
+    QButtonGroup* parallelbuttongroup2;
+    QRadioButton* stripbutton;
+    QRadioButton* linebutton;
+    QButtonGroup* divergentbuttongroup;
+    QRadioButton* arcbutton;
+    QRadioButton* tangentbutton;
+    QLineEdit* sourcetoorigin;
+    QLabel* sourcetooriginlabel;
+    QLineEdit* sourcetodetector;
+    QLabel* sourcetodetectorlabel;
+    QLabel* raysumslabel;
+    QButtonGroup* raysumsbuttongroup;
+    QRadioButton* userbutton;
+    QLineEdit* userrays;
+    QLabel* userrayslabel;
+    QRadioButton* programbutton;
+    QLineEdit* raysumsnelem;
+    QLabel* raysumsnelemlabel;
+    QLineEdit* raysumspixelsize;
+    QLabel* raysumspixelsizelabel;
+    QLineEdit* detectorspacing;
+    QLabel* detectorspacinglabel;
+    QLabel* angleslabel;
+    QButtonGroup* anglesbuttongroup;
+    QLineEdit* prjnum;
+    QLabel* prjnumlabel;
+    QRadioButton* linobutton;
+    QRadioButton* equalspacingbutton;
+    QLineEdit* firstangle;
+    QLabel* firstanglelabel;
+    QLineEdit* lastangle;
+    QLabel* lastanglelabel;
+    QRadioButton* nonebutton;
+    QLineEdit* angles;  // DS: make it a regular line edit
+    QWidget* measurementWidget;
+
+    // set 7
+    QWidget* measurementRun;
+    QLabel* measurementlabel;
+    QButtonGroup* measurementbuttongroup;
+    QRadioButton* perfectbutton;
+    QRadioButton* noisybutton;
+    QFrame* noisyframe;
+    QCheckBox* quantumbutton;
+    QLineEdit* quanmn;
+    QLabel* quanmnlabel;
+    QLineEdit* quancm;
+    QLabel* quancmlabel;
+    QLabel* calibrationlabel;
+    QComboBox* quanin;
+    QLabel* quaninlabel;
+    QCheckBox* scatterbutton;
+    QLineEdit* sctnpk;
+    QLabel* sctnpklabel;
+    QLineEdit* sctnwd;
+    QLabel* sctnwdlabel;
+    QCheckBox* additivebutton;
+    QLineEdit* addnmn;
+    QLabel* addnmnlabel;
+    QLineEdit* addnsd;
+    QLabel* addnsdlabel;
+    QCheckBox* multiplicativebutton;
+    QLineEdit* multnmn;
+    QLabel* multnmnlabel;
+    QLineEdit* multnsd;
+    QLabel* multnsdlabel;
+    QLabel* seedlabel;
+    QLineEdit* seed;
+    QLabel* seedlabel1;
+    QLabel* backgroundlabel;
+    QLineEdit* backgr1;
+    QLabel* backgr1label;
+    QLineEdit* backgr2;
+    QLabel* backgr2label;
+    QLineEdit* backgr3;
+    QLabel* backgr3label;
+    QLineEdit* backgr4;
+    QLabel* backgr4label;
+    QLineEdit* backgr5;
+    QLabel* backgr5label;
+    QLineEdit* backgr6;
+    QLabel* backgr6label;
+    QLineEdit* backgr7;
+    QLabel* backgr7label; 
+
+    QFrame* Line4;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+ private:
+    void populate_idheader();
+    void populate_geometry();
+    void populate_measurement();
+
+    bool check_idheader(QString& errs);
+    //    bool check_geometry(QString& errs);
+    //    bool check_measurement(QString& errs);
+
+    QString get_idheader();
+    QString get_geometry();
+    QString get_measurement();
+
+private slots:
+    void deactivateFields();
+    void activatePseudoFields();
+    void activateRealOptions();
+
+    // for set 6
+    void activateParallelFields();
+    void activateDivergentFields();
+    void activateUserFields();
+    void activateProgramFields();
+    void activateEqualSpacingFields();
+    void deactivateEqualSpacingFields();
+    void deactivateNoisyFields();
+    void activateNoisyFields();
+    void activateQuantumFields();
+    void activateScatterFields();
+    void activateAdditiveFields();
+    void activateMultiplicativeFields();
+
+    // for set 7
+
+    // for everything (mainly if pseudo)
+    void checkValues();
+};
+
+#endif // PROJECTIONWINDOW_H
diff --git a/tools/Input/punch.cpp b/tools/Input/punch.cpp
new file mode 100755 (executable)
index 0000000..0c9fbe5
--- /dev/null
@@ -0,0 +1,129 @@
+/** @file punch.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/****************************************************************************
+** Form implementation generated from reading ui file 'punch.ui'
+**
+** Created: Wed May 15 18:20:01 2002
+**      by:  The User Interface Compiler (uic)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+#include "punch.h"
+#include "misc.h"
+#include "variables.h"
+
+#include <qcheckbox.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a punchwindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+punchwindow::punchwindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "punchwindow" );
+    resize( 400, 300 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 400, 240 ) );
+    setMaximumSize( QSize( 400, 240 ) );
+    setCaption( tr( "Punch Window" ) );
+
+    punchlabel = new QLabel( this, "punchlabel" );
+    punchlabel->setGeometry( QRect( 10, 10, 100, 30 ) ); 
+    punchlabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, punchlabel->sizePolicy().hasHeightForWidth() ) );
+    punchlabel->setMinimumSize( QSize( 100, 30 ) );
+    punchlabel->setMaximumSize( QSize( 100, 30 ) );
+    punchlabel->setText( tr( "PUNCH" ) );
+
+    phantombox = new QCheckBox( this, "phantombox" );
+    phantombox->setGeometry( QRect( 30, 60, 110, 30 ) ); 
+    phantombox->setText( tr( "PHANTOM" ) );
+
+    iterationflaglabel = new QLabel( this, "iterationflaglabel" );
+    iterationflaglabel->setGeometry( QRect( 130, 100, 130, 20 ) ); 
+    iterationflaglabel->setText( tr( "iteration_flag_line" ) );
+
+    iterationflagline = new QLineEdit( this, "iterationflagline" );
+    iterationflagline->setGeometry( QRect( 50, 120, 290, 30 ) ); 
+    iterationflagline->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, iterationflagline->sizePolicy().hasHeightForWidth() ) ); 
+
+    Line11 = new QFrame( this, "Line11" );
+    Line11->setGeometry( QRect( 0, 165, 400, 16 ) ); 
+    Line11->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 180, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 180, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+punchwindow::~punchwindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+
+/** Returns a string for PUNCH input sequence
+@param void
+@return punch
+@author Bruno M. Carvalho
+@version 1.0 */
+QString punchwindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("PUNCH ");
+  if(phantombox->isChecked()) {
+    output.append("PHANTOM ");
+  }
+  output.append("\n");
+  output+=iterationflagline->text();
+  
+  return output;
+}
+
+void punchwindow::checkValues()
+{
+  int f=0;
+
+  if(!isintspace(iterationflagline->text()))
+    f=1;
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "iteration_flag_line must contain\n"
+                                   "only 0-9 and spaces and must\n"
+                                   "be non-empty");
+    break;
+  }
+}
diff --git a/tools/Input/punch.h b/tools/Input/punch.h
new file mode 100755 (executable)
index 0000000..acf92df
--- /dev/null
@@ -0,0 +1,53 @@
+/** @file punch.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/****************************************************************************
+** Form interface generated from reading ui file 'punch.ui'
+**
+** Created: Wed May 15 18:14:08 2002
+**      by:  The User Interface Compiler (uic)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+#ifndef PUNCHWINDOW_H
+#define PUNCHWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QCheckBox;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+
+class punchwindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    punchwindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~punchwindow();
+    QString getOutput();
+
+    QLabel* punchlabel;
+    QCheckBox* phantombox;
+    QLabel* formatlinelabel;
+    QLineEdit* formatline;
+    QLabel* iterationflaglabel;
+    QLineEdit* iterationflagline;
+    QFrame* Line11;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+    void checkValues();
+};
+
+#endif // PUNCHWINDOW_H
diff --git a/tools/Input/select.cpp b/tools/Input/select.cpp
new file mode 100755 (executable)
index 0000000..2e6d887
--- /dev/null
@@ -0,0 +1,361 @@
+/** @file select.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "select.h"
+#include "variables.h"
+#include "misc.h"
+#include <stdio.h>
+
+#include <qbuttongroup.h>
+#include <qcombobox.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a selectwindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+selectwindow::selectwindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "selectwindow" );
+    resize( 400, 350 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 390, 350 ) );
+    setMaximumSize( QSize( 390, 350 ) );
+    setCaption( tr( "Select Window" ) );
+
+    selectlabel = new QLabel( this, "selectlabel" );
+    selectlabel->setGeometry( QRect( 10, 10, 90, 30 ) ); 
+    selectlabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, selectlabel->sizePolicy().hasHeightForWidth() ) );
+    selectlabel->setMinimumSize( QSize( 90, 30 ) );
+    selectlabel->setMaximumSize( QSize( 90, 30 ) );
+    selectlabel->setText( tr( "SELECT" ) );
+
+    selectbuttongroup = new QButtonGroup( this, "selectbuttongroup" );
+    selectbuttongroup->setGeometry( QRect( 20, 40, 110, 90 ) ); 
+    selectbuttongroup->setTitle( tr( "type" ) );
+    selectbuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    userbutton = new QRadioButton( selectbuttongroup, "userbutton" );
+    userbutton->setGeometry( QRect( 10, 20, 80, 24 ) ); 
+    userbutton->setText( tr( "USER" ) ); 
+
+    snarkbutton = new QRadioButton( selectbuttongroup, "snarkbutton" );
+    snarkbutton->setGeometry( QRect( 10, 50, 80, 24 ) ); 
+    snarkbutton->setText( tr( "SNARK" ) ); 
+    snarkbutton->setChecked(true);
+
+    //    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    type1 = new QComboBox( this, "type1" );
+    type1->setGeometry( QRect( 20, 170, 120, 28 ) ); 
+    type1->insertItem("RAYSEQ",-1);
+    type1->insertItem("PROJSEQ",-1);
+    type1->insertItem("RANDOM",-1);
+
+    type1label = new QLabel( this, "type1label" );
+    type1label->setGeometry( QRect( 50, 150, 40, 20 ) ); 
+    type1label->setText( tr( "type1" ) ); 
+
+    n1 = new QLineEdit( this, "n1" );
+    n1->setGeometry( QRect( 150, 170, 40, 28 ) ); 
+
+    n1label = new QLabel( this, "n1label" );
+    n1label->setGeometry( QRect( 160, 150, 20, 20 ) ); 
+    n1label->setText( tr( "n1" ) ); 
+
+    type2 = new QComboBox( this, "type2" );
+    type2->setGeometry( QRect( 200, 170, 120, 28 ) );  
+    type2->insertItem("",-1);
+    type2->insertItem("RAYSEQ",-1);
+    type2->insertItem("PROJSEQ",-1);
+    type2->insertItem("RANDOM",-1);
+
+    type2label = new QLabel( this, "type2label" );
+    type2label->setGeometry( QRect( 230, 150, 40, 20 ) ); 
+    type2label->setText( tr( "type2" ) ); 
+
+    n2 = new QLineEdit( this, "n2" );
+    n2->setGeometry( QRect( 330, 170, 40, 28 ) );
+
+    n2label = new QLabel( this, "n2label" );
+    n2label->setGeometry( QRect( 340, 150, 20, 20 ) ); 
+    n2label->setText( tr( "n2" ) ); 
+
+    steplabel = new QLabel( this, "steplabel" );
+    steplabel->setGeometry( QRect( 20, 245, 50, 20 ) ); 
+    steplabel->setText( tr( "STEP" ) ); 
+
+    mod1 = new QLineEdit( this, "mod1" );
+    mod1->setGeometry( QRect( 80, 240, 40, 28 ) ); 
+
+    mod1label = new QLabel( this, "mod1label" );
+    mod1label->setGeometry( QRect( 80, 220, 40, 20 ) ); 
+    mod1label->setText( tr( "mod1" ) ); 
+
+    mod2 = new QLineEdit( this, "mod2" );
+    mod2->setGeometry( QRect( 130, 240, 40, 28 ) );
+
+    mod2label = new QLabel( this, "mod2label" );
+    mod2label->setGeometry( QRect( 130, 220, 40, 20 ) ); 
+    mod2label->setText( tr( "mod2" ) ); 
+
+    Line12 = new QFrame( this, "Line12" );
+    Line12->setGeometry( QRect( 0, 275, 405, 16 ) ); 
+    Line12->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    efficientcb = new QCheckBox( this, "efficientcb" );
+    efficientcb->setGeometry( QRect( 147, 90, 100, 24 ) );
+    efficientcb->setText( "EFFICIENT" );
+    efficientcb->setChecked(true);
+    QObject::connect(efficientcb,SIGNAL(clicked()),this,SLOT(grayOrNot()));
+    grayOrNot();
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 290, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 290, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+
+}
+
+/** @author deniz
+    @description grays out or ungrays out fields based on EFFICIENT
+*/
+void selectwindow::grayOrNot() {
+  bool enab = (! (efficientcb->isChecked()));
+
+  type1->setEnabled(enab);
+  type1label->setEnabled(enab);
+  type2->setEnabled(enab);
+  type2label->setEnabled(enab);
+  n1->setEnabled(enab);
+  n2->setEnabled(enab);
+  n1label->setEnabled(enab);
+  n2label->setEnabled(enab);
+  steplabel->setEnabled(enab);
+  mod1->setEnabled(enab);
+  mod2->setEnabled(enab);
+  mod1label->setEnabled(enab);
+  mod2label->setEnabled(enab);
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+selectwindow::~selectwindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Returns a string for SELECT input sequence
+    pre: assume checkValues() accepts
+@param void
+@return select
+@author Bruno M. Carvalho [simplified / fixed bug #118 by Deniz]
+@version 1.0 */
+QString selectwindow::getOutput()
+{
+  QString output = "SELECT ";
+  if(userbutton->isChecked()) {
+    output += userbutton->text() + " ";
+  } else {
+    if(snarkbutton->isChecked()) {
+      output += snarkbutton->text() + " ";
+    }
+  }
+  if(efficientcb->isChecked()) {
+    output += efficientcb->text();
+  } else {
+    output += type1->currentText() + " ";
+    output += n1->text().simplifyWhiteSpace() + " ";
+    if(type2->currentItem()) {
+      output += type2->currentText() + " ";
+      output += n2->text().simplifyWhiteSpace() + " ";
+    }
+    //  if passed checkValues(), add the next line iff mod1 is non-whitespace
+    if (! (mod1->text().simplifyWhiteSpace().isEmpty())) {
+      output += "\nSTEP " + 
+       mod1->text().simplifyWhiteSpace() + " " +
+       mod2->text().simplifyWhiteSpace();
+    }
+  }
+  return output;
+} // --selectwindow::getOutput()
+
+/** @author deniz -- totally rewrote it while fixing bug #118
+*/
+void selectwindow::checkValues()
+{
+
+  if(efficientcb->isChecked()) { accept(); return; } // nothing can go wrong
+  // otherwise...
+
+  /**  the grammar of SELECT looks like:
+    >  SELECT {USER, SNARK} [type1 [n1 type2 [n2] ] ]
+      (where of course args in [] are optional and nesting them has the usual meaning)
+      (this means that n1 is there iff type2 is there)
+      cond, that is, ((type1==RANDOM) && (type2 does not appear)) XOR
+      this line is followed by a line:
+    >  STEP mod1 mod2
+    (all textbox arguments must be positive integers)
+    The new behavior coded by deniz:
+      selectwindow forces user to choose exactly one of USER and SNARK, so ignore those.
+      last 6 values: first check for existence and if exist, parse.
+      if exist, report parse errors first depending on desired types ranges etc
+      THEN check grammar (i.e., are "existences" compatible) and report grammar errors
+  */
+  // existence vars:
+  bool n1E = false, type2E = false, n2E = false, mod1E = false, mod2E = false;
+  bool type1isRandom = false, type2isRandom = false;
+  int n1i, n2i, mod1i, mod2i; // integers to read values into for range checking
+
+  type1isRandom = (type1->currentText().contains("RANDOM") ); // do NOT rely on position in combobox
+  
+  QString n1simple = n1->text().simplifyWhiteSpace();
+  // strs in textboxes: first check if empty, then check if type and rangewise valid
+  if (!n1simple.isEmpty()) {
+    n1E = true;
+    bool ok = true;
+    n1i = n1simple.toInt(&ok);
+    if(!ok) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "Invalid n1 format (must be positive integer).");
+      n1->setFocus();
+      return;
+    } else if(n1i < 1) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "n1 must be greater than 0.");
+      n1->setFocus();
+      return;
+    }
+  }
+  
+  if(type2->currentItem()) { // if something is selected at all in combobox for type 2...
+    type2E = true;
+    type2isRandom = (type2->currentText().contains("RANDOM") ); // do NOT rely on position in combobox    
+  }
+
+  QString n2simple = n2->text().simplifyWhiteSpace();
+  if(!n2simple.isEmpty()) {
+    n2E = true;
+    bool ok = true;
+    n2i = n2simple.toInt(&ok);
+    if(!ok) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "Invalid n2 format (must be positive integer).");
+      n2->setFocus();
+      return;
+    } else if(n2i < 1) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "n2 must be greater than 0.");
+      n2->setFocus();
+      return;
+    }
+  }
+  
+  QString mod1simple = mod1->text().simplifyWhiteSpace();
+  if(!mod1simple.isEmpty()) {
+    mod1E = true;
+    bool ok = true;
+    mod1i = mod1simple.toInt(&ok);
+    if(!ok) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "Invalid mod1 format (must be positive integer).");
+      mod1->setFocus();
+      return;
+    } else if(mod1i < 1) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "mod1 must be greater than 0.");
+      mod1->setFocus();
+      return;
+    }
+  }
+  
+  QString mod2simple = mod2->text().simplifyWhiteSpace();
+  if(!mod2simple.isEmpty()) {
+    mod2E = true;
+    bool ok = true;
+    mod2i = mod2simple.toInt(&ok);
+    if(!ok) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "Invalid mod2 format (must be positive integer).");
+      mod2->setFocus();
+      return;
+    } else if(mod2i < 1) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "mod2 must be greater than 0.");
+      mod2->setFocus();
+      return;
+    }
+  }
+
+  // check the grammar for "first line", from the outside in
+  // if control reaches here, EFFICIENT not selected and type1 necessarily there
+  if(  
+     ( n2E && (!n1E))     || 
+     ( type2E != n1E )
+     ) {
+    QMessageBox::information(this,"SnarkInput","Error!\n"
+                            "Check your grammar--optional parameter dependencies are like:\n"
+                            "[type1 [n1 type2 [n2] ] ]");
+    return;
+  }
+
+  if(type2E) { // which of course implies type1E since we got here
+    if(type1isRandom == type2isRandom) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "Since both type1 and type2 are present,\n"
+                              "exactly one of them must be RANDOM");
+      return;
+    }
+  }
+
+  //  bool cond = (type1isRandom && (!type2E));
+  if(! (type1isRandom && (!type2E)) )  { // "Unless cond, 'STEP' line must follow"
+    if (! (mod1E && mod2E)) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "Check your grammar: "
+                              "since it's not the case that type1 is random and type2 blank, \n"
+                              "values must be entered for both mod1 and mod2");
+      mod1->setFocus();
+      return;
+    }
+  } else { // "Restrictions: 'STEP' must be absent if cond "
+    if (mod1E || mod2E) {
+      QMessageBox::information(this,"SnarkInput","Error!\n"
+                              "Check your grammar: "
+                              "since type1 is random and type2 is blank, \n"
+                              "both mod1 and mod2 must be blank");
+      mod1->setFocus();
+      return;
+    }
+  }
+
+  // control getting here implies the arguments were valid
+  accept();    
+
+} // --selectwindow::checkValues()
diff --git a/tools/Input/select.h b/tools/Input/select.h
new file mode 100755 (executable)
index 0000000..cd7e362
--- /dev/null
@@ -0,0 +1,61 @@
+/** @file select.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef SELECTWINDOW_H
+#define SELECTWINDOW_H
+
+#include <qcheckbox.h>
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QComboBox;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+
+class selectwindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    selectwindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~selectwindow();
+    QString getOutput();
+
+    QLabel* selectlabel;
+    QButtonGroup* selectbuttongroup;
+    QRadioButton* snarkbutton;
+    QRadioButton* userbutton;
+    QCheckBox* efficientcb;
+    QLabel* steplabel;
+    QLineEdit* mod2;
+    QLineEdit* mod1;
+    QLabel* mod1label;
+    QLabel* mod2label;
+    QLineEdit* n2;
+    QComboBox* type2;
+    QLineEdit* n1;
+    QComboBox* type1;
+    QLabel* type1label;
+    QLabel* n1label;
+    QLabel* type2label;
+    QLabel* n2label;
+    QFrame* Line12;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+   // void activateFields();
+   void checkValues();
+   void grayOrNot(); 
+};
+
+#endif // SELECTWINDOW_H
diff --git a/tools/Input/skunk.cpp b/tools/Input/skunk.cpp
new file mode 100755 (executable)
index 0000000..608d515
--- /dev/null
@@ -0,0 +1,284 @@
+/** @file skunk.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/****************************************************************************
+** Form implementation generated from reading ui file 'skunk.ui'
+**
+** Created: Wed May 15 18:20:06 2002
+**      by:  The User Interface Compiler (uic)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+#include "skunk.h"
+#include "misc.h"
+#include "variables.h"
+
+#include <qbuttongroup.h>
+#include <qframe.h>
+#include <qlineedit.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a skunkwindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+skunkwindow::skunkwindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+       setName( "skunkwindow" );
+    resize( 400, 450 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( 400, 450 ) );
+    setMaximumSize( QSize( 400, 450 ) );
+    setCaption( tr( "Skunk Window" ) );
+
+    skunklabel = new QLabel( this, "skunklabel" );
+    skunklabel->setGeometry( QRect( 10, 10, 90, 30 ) ); 
+    skunklabel->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, skunklabel->sizePolicy().hasHeightForWidth() ) );
+    skunklabel->setMinimumSize( QSize( 90, 30 ) );
+    skunklabel->setMaximumSize( QSize( 90, 30 ) );
+    skunklabel->setText( tr( "SKUNK" ) );
+
+    skunkbuttongroup = new QButtonGroup( this, "skunkbuttongroup" );
+    skunkbuttongroup->setGeometry( QRect( 40, 40, 160, 120 ) ); 
+    skunkbuttongroup->setTitle( tr( "type" ) );
+    skunkbuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    phantombutton = new QRadioButton( skunkbuttongroup, "phantombutton" );
+    phantombutton->setGeometry( QRect( 10, 20, 110, 24 ) ); 
+    phantombutton->setText( tr( "PHANTOM" ) ); 
+
+    differencebutton = new QRadioButton( skunkbuttongroup, "differencebutton" );
+    differencebutton->setGeometry( QRect( 10, 50, 130, 24 ) ); 
+    differencebutton->setText( tr( "DIFFERENCE" ) );
+
+    nonebutton = new QRadioButton( skunkbuttongroup, "nonebutton" );
+    nonebutton->setGeometry( QRect( 10, 80, 80, 24 ) ); 
+    nonebutton->setText( tr( "NONE" ) );
+    nonebutton->setChecked(true);
+
+    minimumbutton = new QRadioButton( this, "minimumbutton" );
+    minimumbutton->setGeometry( QRect( 210, 50, 100, 30 ) ); 
+    minimumbutton->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, minimumbutton->sizePolicy().hasHeightForWidth() ) );
+    minimumbutton->setMinimumSize( QSize( 100, 30 ) );
+    minimumbutton->setMaximumSize( QSize( 100, 30 ) );
+    minimumbutton->setText( tr( "MINIMUM" ) );
+    QObject::connect(minimumbutton,SIGNAL(clicked()),this,SLOT(activateMinimumFields()));
+
+    min = new QLineEdit( this, "min" );
+    min->setGeometry( QRect( 320, 50, 60, 28 ) ); 
+    min->setEnabled(FALSE);
+
+    minlabel = new QLabel( this, "min" );
+    minlabel->setGeometry( QRect( 335, 30, 40, 20 ) ); 
+    minlabel->setText( tr( "min" ) );
+    minlabel->setEnabled(FALSE);
+
+    maximumbutton = new QRadioButton( this, "maximumbutton" );
+    maximumbutton->setGeometry( QRect( 210, 100, 100, 30 ) ); 
+    maximumbutton->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, maximumbutton->sizePolicy().hasHeightForWidth() ) );
+    maximumbutton->setMinimumSize( QSize( 100, 30 ) );
+    maximumbutton->setMaximumSize( QSize( 100, 30 ) );
+    maximumbutton->setText( tr( "MAXIMUM" ) );
+    QObject::connect(maximumbutton,SIGNAL(clicked()),this,SLOT(activateMaximumFields()));
+
+    max = new QLineEdit( this, "max" );
+    max->setGeometry( QRect( 320, 100, 60, 28 ) ); 
+    max->setEnabled(FALSE);
+
+    maxlabel = new QLabel( this, "max" );
+    maxlabel->setGeometry( QRect( 335, 80, 40, 20 ) ); 
+    maxlabel->setText( tr( "max" ) );
+    maxlabel->setEnabled(FALSE);
+
+    skunkbuttongroup2 = new QButtonGroup( this, "skunkbuttongroup2" );
+    skunkbuttongroup2->setGeometry( QRect( 40, 170, 160, 100 ) ); 
+    skunkbuttongroup2->setTitle( tr( "" ) );
+    skunkbuttongroup2->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    amplitudebutton = new QRadioButton( skunkbuttongroup2, "amplitudebutton" );
+    amplitudebutton->setGeometry( QRect( 10, 10, 110, 24 ) ); 
+    amplitudebutton->setText( tr( "AMPLITUDE" ) );
+
+    intensitybutton = new QRadioButton( skunkbuttongroup2, "intensitybutton" );
+    intensitybutton->setGeometry( QRect( 10, 40, 130, 24 ) ); 
+    intensitybutton->setText( tr( "INTENSITY" ) ); 
+
+    nonebutton2 = new QRadioButton( skunkbuttongroup2, "nonebutton2" );
+    nonebutton2->setGeometry( QRect( 10, 70, 80, 24 ) ); 
+    nonebutton2->setText( tr( "NONE" ) ); 
+    nonebutton2->setChecked(true);
+
+//     fuzzbutton = new QRadioButton( this, "fuzzbutton" );
+//     fuzzbutton->setGeometry( QRect( 210, 190, 90, 30 ) ); 
+//     fuzzbutton->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, fuzzbutton->sizePolicy().hasHeightForWidth() ) );
+//     fuzzbutton->setMinimumSize( QSize( 90, 30 ) );
+//     fuzzbutton->setMaximumSize( QSize( 90, 30 ) );
+//     fuzzbutton->setText( tr( "FUZZ" ) );
+
+    iterationflaglabel = new QLabel( this, "iterationflaglabel" );
+    iterationflaglabel->setGeometry( QRect( 130, 275, 130, 20 ) ); 
+    iterationflaglabel->setText( tr( "iteration_flag_line" ) );
+
+    iterationflagline = new QLineEdit( this, "iterationflagline" );
+    iterationflagline->setGeometry( QRect( 50, 295, 290, 30 ) ); 
+    iterationflagline->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, iterationflagline->sizePolicy().hasHeightForWidth() ) ); 
+
+    Line16 = new QFrame( this, "Line16" );
+    Line16->setGeometry( QRect( 0, 375, 400, 16 ) ); 
+    Line16->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 390, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(checkValues()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( 250, 390, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+skunkwindow::~skunkwindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+
+/** Activates minimum fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void skunkwindow::activateMinimumFields()
+{
+  if(minimumbutton->isChecked()) {
+    min->setEnabled(TRUE);
+    minlabel->setEnabled(TRUE);
+  }
+  else {
+    min->setEnabled(FALSE);
+    minlabel->setEnabled(FALSE);
+  }
+}
+
+/** Activates maximum fields 
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+void skunkwindow::activateMaximumFields()
+{
+  if(maximumbutton->isChecked()) {
+    max->setEnabled(TRUE);
+    maxlabel->setEnabled(TRUE);
+  }
+  else {
+    max->setEnabled(FALSE);
+    maxlabel->setEnabled(FALSE);
+  }
+}
+
+
+/** Returns a string for SKUNK input sequence
+@param void
+@return skunk
+@author Bruno M. Carvalho
+@version 1.0 */
+QString skunkwindow::getOutput()
+{
+  QString output;
+
+  output.sprintf("SKUNK ");
+  if(phantombutton->isChecked()) {
+    output.append("PHANTOM ");
+  }
+  else
+    if(differencebutton->isChecked()) {
+      output.append("DIFFERENCE ");
+    }
+  if(minimumbutton->isChecked()) {
+    output.append("MINIMUM ");
+    output+=min->text();
+    output.append(" ");
+  }
+  if(maximumbutton->isChecked()) {
+    output.append("MAXIMUM ");
+    output+=max->text();
+    output.append(" ");
+  }
+  if(amplitudebutton->isChecked()) {
+    output.append("AMPLITUDE ");
+  }
+  else
+    if(intensitybutton->isChecked()) {
+      output.append("INTENSITY ");
+    }
+  //  if(fuzzbutton->isChecked()) {
+  //      output.append("FUZZ ");
+  //  }
+  output.append("\n");
+  output+=iterationflagline->text();
+
+  return output;
+}
+
+void skunkwindow::checkValues()
+{
+  int f=0;
+  float mi=0,ma=0;
+  
+  if(minimumbutton->isChecked()) {
+    mi=strtof((const char *)min->text());
+    if(errnum) 
+      f=1;
+  }
+  if(maximumbutton->isChecked()) {
+    ma=strtof((const char *)max->text());
+    if(errnum) 
+      f=2;
+    if(minimumbutton->isChecked()) {
+      if(mi>=ma && !f) 
+        f=3;
+    }
+  }
+  if(!isintspace(iterationflagline->text()))
+    f=4;
+  switch(f) {
+  case 0: accept();
+    break;
+  case 1: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid min format");
+    break;
+  case 2: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "Invalid max format");
+    break;
+  case 3: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "min bigger than or equal to max");
+    break;
+  case 4: QMessageBox::information(this,"SnarkInput","Error!\n"
+                                   "iteration_flag_line must contain\n"
+                                   "only 0-9 and spaces and must\n"
+                                   "be non-empty");
+    break;
+  }
+}
+
diff --git a/tools/Input/skunk.h b/tools/Input/skunk.h
new file mode 100755 (executable)
index 0000000..de65653
--- /dev/null
@@ -0,0 +1,67 @@
+/** @file skunk.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+/****************************************************************************
+** Form interface generated from reading ui file 'skunk.ui'
+**
+** Created: Wed May 15 18:14:08 2002
+**      by:  The User Interface Compiler (uic)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+#ifndef SKUNKWINDOW_H
+#define SKUNKWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QFrame;
+class QLineEdit;
+class QLabel; 
+class QPushButton;
+class QRadioButton;
+
+class skunkwindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    skunkwindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~skunkwindow();
+    QString getOutput();
+
+    QLabel* skunklabel;
+    QButtonGroup* skunkbuttongroup;
+    QRadioButton* phantombutton;
+    QRadioButton* differencebutton;
+    QRadioButton* nonebutton;
+    QRadioButton* minimumbutton;
+    QRadioButton* maximumbutton;
+    QLineEdit* max;
+    QLabel* maxlabel;
+    QLineEdit* min;
+    QLabel* minlabel;
+    QButtonGroup* skunkbuttongroup2;
+    QRadioButton* amplitudebutton;
+    QRadioButton* intensitybutton;
+    QRadioButton* nonebutton2;
+    //    QRadioButton* fuzzbutton;
+    QLabel* iterationflaglabel;
+    QLineEdit* iterationflagline;
+    QFrame* Line16;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+    void activateMinimumFields();
+    void activateMaximumFields();
+    void checkValues();
+};
+
+#endif // SKUNKWINDOW_H
diff --git a/tools/Input/stop.cpp b/tools/Input/stop.cpp
new file mode 100755 (executable)
index 0000000..77d05e1
--- /dev/null
@@ -0,0 +1,391 @@
+/** @file stop.cpp
+ @package snark14Input
+ @author Bruno M. Carvalho and Deniz Sarioz
+ licensed under (open-source) QPL v1.0
+ which accompanies this distribution in the file QPL
+ */
+
+#include "stop.h"
+#include "variables.h"
+#include "misc.h"
+#include <stdio.h>
+
+#include <qbuttongroup.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qcombobox.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+/** 
+ *  Constructs a stopwindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ @param void
+ @author Bruno M. Carvalho
+ @version 1.0 */
+stopwindow::stopwindow(QWidget* parent, const char* name, bool modal, WFlags fl) :
+               QDialog(parent, name, modal, fl)
+{
+       if (!name)
+               setName("stopwindow");
+       resize(600, 340);
+       setSizePolicy(
+                       QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,
+                                       sizePolicy().hasHeightForWidth()));
+       setMinimumSize(QSize(600, 340));
+       setMaximumSize(QSize(600, 340));
+       setCaption(tr("Stop Window"));
+
+       stoplabel = new QLabel(this, "stoplabel");
+       stoplabel->setGeometry(QRect(10, 10, 70, 30));
+       stoplabel->setSizePolicy(
+                       QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,
+                                       stoplabel->sizePolicy().hasHeightForWidth()));
+       stoplabel->setMinimumSize(QSize(70, 30));
+       stoplabel->setMaximumSize(QSize(70, 30));
+       stoplabel->setText(tr("STOP"));
+
+       stopbuttongroup = new QButtonGroup(this, "stopbuttongroup");
+       stopbuttongroup->setGeometry(QRect(15, 45, 575, 205));
+       stopbuttongroup->setTitle(tr("type"));
+       stopbuttongroup->setAlignment(int(QButtonGroup::AlignHCenter));
+
+       iterationbutton = new QRadioButton(stopbuttongroup, "iterationbutton");
+       iterationbutton->setGeometry(QRect(10, 45, 118, 24));
+       iterationbutton->setText(tr("ITERATION"));
+       QObject::connect(iterationbutton, SIGNAL(clicked()), this,
+                       SLOT(activateIterationFields()));
+
+       terminationbutton = new QRadioButton(stopbuttongroup, "terminationbutton");
+       terminationbutton->setGeometry(QRect(10, 100, 135, 24));
+       terminationbutton->setText(tr("TERMINATION"));
+       QObject::connect(terminationbutton, SIGNAL(clicked()), this,
+                       SLOT(activateTerminationFields()));
+
+       nonebutton = new QRadioButton(stopbuttongroup, "nonebutton");
+       nonebutton->setGeometry(QRect(10, 150, 75, 24));
+       nonebutton->setText(tr("NONE"));
+       QObject::connect(nonebutton, SIGNAL(clicked()), this,
+                       SLOT(deactivateFields()));
+
+       iter = new QLineEdit(stopbuttongroup, "iter");
+       iter->setGeometry(QRect(150, 40, 80, 30));
+       iter->setSizePolicy(
+                       QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,
+                                       iter->sizePolicy().hasHeightForWidth()));
+       iter->setEnabled(FALSE);
+
+       iterlabel = new QLabel(stopbuttongroup, "iterlabel");
+       iterlabel->setGeometry(QRect(180, 20, 40, 20));
+       iterlabel->setText(tr("iter"));
+       iterlabel->setEnabled(FALSE);
+
+       testname = new QComboBox(stopbuttongroup, "testname");
+       testname->setGeometry(QRect(150, 100, 130, 30));
+       testname->setSizePolicy(
+                       QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,
+                                       testname->sizePolicy().hasHeightForWidth()));
+       testname->insertItem("VARIANCE", -1);
+       testname->insertItem("MLST", -1);
+       testname->insertItem("KLDS", -1);
+       testname->insertItem("RESI", -1);
+       testname->insertItem("WSQD", -1);
+       testname->insertItem("TRM1", -1);
+       testname->insertItem("TRM2", -1);
+       testname->setEnabled(FALSE);
+       QObject::connect(testname,SIGNAL(activated(int)),this,SLOT(setEpsilon()));
+
+       testnamelabel = new QLabel(stopbuttongroup, "testnamelabel");
+       testnamelabel->setGeometry(QRect(175, 80, 80, 20));
+       testnamelabel->setText(tr("test_name"));
+       testnamelabel->setEnabled(FALSE);
+
+       epsilon = new QLineEdit(stopbuttongroup, "epsilon");
+       epsilon->setGeometry(QRect(290, 100, 80, 30));
+       epsilon->setSizePolicy(
+                       QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,
+                                       epsilon->sizePolicy().hasHeightForWidth()));
+       epsilon->setEnabled(FALSE);
+
+       epsilonlabel = new QLabel(stopbuttongroup, "epsilonlabel");
+       epsilonlabel->setGeometry(QRect(305, 80, 60, 20));
+       epsilonlabel->setText(tr("epsilon"));
+       epsilonlabel->setEnabled(FALSE);
+
+       rprtcb = new QCheckBox( this, "rprtcb" );
+       rprtcb->setGeometry(QRect(400, 145, 80, 30));
+       rprtcb->setText( "RPRT" );
+       rprtcb->setChecked(false);
+       rprtcb->setEnabled(FALSE);
+       QObject::connect(rprtcb,SIGNAL(clicked()),this,SLOT(setSkips()));
+
+       skips = new QLineEdit(stopbuttongroup, "skips");
+       skips->setGeometry(QRect(470, 100, 80, 30));
+       skips->setSizePolicy(
+                       QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,
+                                       skips->sizePolicy().hasHeightForWidth()));
+       skips->setEnabled(FALSE);
+
+       skipslabel = new QLabel(stopbuttongroup, "skipslabel");
+       skipslabel->setGeometry(QRect(485, 80, 60, 20));
+       skipslabel->setText(tr("skips"));
+       skipslabel->setEnabled(FALSE);
+
+       Line17 = new QFrame(this, "Line17");
+       Line17->setGeometry(QRect(-5, 265, 415, 16));
+       Line17->setFrameStyle(QFrame::HLine | QFrame::Sunken);
+
+       okbutton = new QPushButton(this, "okbutton");
+       okbutton->setGeometry(QRect(50, 290, 100, 40));
+       okbutton->setText(tr("OK"));
+       QObject::connect(okbutton, SIGNAL(clicked()), this, SLOT(checkValues()));
+
+       cancelbutton = new QPushButton(this, "cancelbutton");
+       cancelbutton->setGeometry(QRect(280, 290, 100, 40));
+       cancelbutton->setText(tr("Cancel"));
+       QObject::connect(cancelbutton, SIGNAL(clicked()), this, SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+stopwindow::~stopwindow()
+{
+       // no need to delete child widgets, Qt does it all for us
+}
+
+/** Activates iteration fields 
+ @param void
+ @author Bruno M. Carvalho
+ @version 1.0 */
+void stopwindow::activateIterationFields()
+{
+       if (iterationbutton->isChecked())
+       {
+               iter->setEnabled(TRUE);
+               iterlabel->setEnabled(TRUE);
+               testname->setEnabled(FALSE);
+               testnamelabel->setEnabled(FALSE);
+               epsilon->setEnabled(FALSE);
+               epsilonlabel->setEnabled(FALSE);
+       }
+       else
+       {
+               iter->setEnabled(FALSE);
+               iterlabel->setEnabled(FALSE);
+       }
+}
+
+/** Activates termination fields 
+ @param void
+ @author Bruno M. Carvalho
+ @version 1.0 */
+void stopwindow::activateTerminationFields()
+{
+       if (terminationbutton->isChecked())
+       {
+               testname->setEnabled(TRUE);
+               testnamelabel->setEnabled(TRUE);
+               iter->setEnabled(FALSE);
+               iterlabel->setEnabled(FALSE);
+               setEpsilon();
+       }
+       else
+       {
+               testname->setEnabled(FALSE);
+               epsilon->setEnabled(FALSE);
+               epsilonlabel->setEnabled(FALSE);
+               testnamelabel->setEnabled(FALSE);
+       }
+}
+
+/** Deactivates iteration and termination subfields 
+ @param void
+ @author Bruno M. Carvalho
+ @version 1.0 */
+void stopwindow::deactivateFields()
+{
+       if (nonebutton->isChecked())
+       {
+               iter->setEnabled(FALSE);
+               iterlabel->setEnabled(FALSE);
+               testname->setEnabled(FALSE);
+               epsilon->setEnabled(FALSE);
+               epsilonlabel->setEnabled(FALSE);
+               testnamelabel->setEnabled(FALSE);
+       }
+       else
+       {
+               iter->setEnabled(TRUE);
+               iterlabel->setEnabled(TRUE);
+               testname->setEnabled(TRUE);
+               testnamelabel->setEnabled(TRUE);
+               setEpsilon();
+       }
+}
+
+void stopwindow::setEpsilon()
+{
+       if (testname->currentText().contains("VARIANCE") || testname->currentText().contains("KLDS") || testname->currentText().contains("RESI") || testname->currentText().contains("WSQD"))
+       {
+               epsilon->setEnabled(TRUE);
+               epsilonlabel->setEnabled(TRUE);
+       }
+       else
+       {
+               epsilon->setEnabled(FALSE);
+               epsilonlabel->setEnabled(FALSE);
+       }
+
+       if (testname->currentText().contains("MLST") || testname->currentText().contains("KLDS") || testname->currentText().contains("RESI") || testname->currentText().contains("WSQD"))
+       {
+               rprtcb->setEnabled(TRUE);
+       }
+       else
+       {
+               rprtcb->setEnabled(FALSE);
+       }
+}
+
+void stopwindow::setSkips()
+{
+       if (rprtcb->isChecked())
+       {
+               skips->setEnabled(TRUE);
+               skipslabel->setEnabled(TRUE);
+       }
+       else
+       {
+               skips->setEnabled(FALSE);
+               skipslabel->setEnabled(FALSE);
+       }
+}
+
+/** Returns a string for STOP input sequence
+ @param void
+ @return stop
+ @author Bruno M. Carvalho
+ @version 1.0 */
+QString stopwindow::getOutput()
+{
+       QString output;
+
+       output.sprintf("STOP ");
+       if (iterationbutton->isChecked())
+       {
+               output.append("ITERATION ");
+               output += iter->text();
+               output.append(" ");
+       }
+       if (terminationbutton->isChecked())
+       {
+               output.append("TERMINATION ");
+               switch (testname->currentItem())
+               {
+               case 0:
+                       output.append("VARIANCE");
+                       break;
+               case 1:
+                       output.append("MLST");
+                       break;
+               case 2:
+                       output.append("KLDS");
+                       break;
+               case 3:
+                       output.append("RESI");
+                       break;
+               case 4:
+                       output.append("WSQD");
+                       break;
+               case 5:
+                       output.append("TRM1");
+                       break;
+               case 6:
+                       output.append("TRM2");
+                       break;
+               }
+               output.append(" ");
+               if (testname->currentText().contains("VARIANCE") || testname->currentText().contains("KLDS") || testname->currentText().contains("RESI") || testname->currentText().contains("WSQD"))
+               {
+                       output += epsilon->text();
+               }
+
+               if (rprtcb->isChecked())
+               {
+                       output.append(" RPRT");
+
+                       float s = strtof((const char *) skips->text());
+                       if (s>1)
+                       {
+                               output.append(" ");
+                               output += skips->text();
+                       }
+               }
+       }
+
+       return output;
+}
+
+void stopwindow::checkValues()
+{
+       int f = 0, i = 0;
+       float e = 0;
+       char str1[5];
+
+       str1[4] = 0;
+       if (iterationbutton->isChecked())
+       {
+               i = strtoi((const char *) iter->text());
+               if (errnum)
+                       f = 1;
+               if (i < 1)
+                       f = 2;
+       }
+       if (terminationbutton->isChecked())
+       {
+               if (testname->currentText().contains("VARIANCE") || testname->currentText().contains("KLDS") || testname->currentText().contains("RESI") || testname->currentText().contains("WSQD"))
+               {
+                       e = strtof((const char *) epsilon->text());
+                       if (errnum)
+                               f = 3;
+                       if (e <= 0)
+                               f = 4;
+               }
+       }
+
+       switch (f)
+       {
+       case 0:
+               accept();
+               break;
+       case 1:
+               QMessageBox::information(this, "SnarkInput", "Error!\n"
+                               "Invalid iter format.");
+               iter->setFocus();
+               break;
+       case 2:
+               QMessageBox::information(this, "SnarkInput", "Error!\n"
+                               "iter must be greater than 0.");
+               iter->setFocus();
+               break;
+       case 3:
+               QMessageBox::information(this, "SnarkInput", "Error!\n"
+                               "Invalid epsilon format.");
+               epsilon->setFocus();
+               break;
+       case 4:
+               QMessageBox::information(this, "SnarkInput", "Error!\n"
+                               "epsilon must be greater than 0.");
+               epsilon->setFocus();
+               break;
+       }
+}
diff --git a/tools/Input/stop.h b/tools/Input/stop.h
new file mode 100755 (executable)
index 0000000..ec937be
--- /dev/null
@@ -0,0 +1,61 @@
+/** @file stop.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef STOPWINDOW_H
+#define STOPWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+#include <qcheckbox.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QComboBox;
+class QPushButton;
+class QRadioButton;
+
+class stopwindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    stopwindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~stopwindow();
+    QString getOutput();
+
+    QLabel* stoplabel;
+    QButtonGroup* stopbuttongroup;
+    QRadioButton* iterationbutton;
+    QRadioButton* terminationbutton;
+    QRadioButton* nonebutton;
+    QCheckBox* rprtcb;
+    QLineEdit* iter;
+    QLabel* iterlabel;
+    QComboBox* testname;
+    QLabel* testnamelabel;
+    QLineEdit* epsilon;
+    QLineEdit* skips;
+    QLabel* skipslabel;
+    QLabel* epsilonlabel;
+    QFrame* Line17;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+      //void activateFields();
+    void activateIterationFields();
+    void activateTerminationFields();
+    void deactivateFields();
+    void checkValues();
+    void setEpsilon();
+    void setSkips();
+};
+
+#endif // STOPWINDOW_H
diff --git a/tools/Input/super.cpp b/tools/Input/super.cpp
new file mode 100755 (executable)
index 0000000..bc385f5
--- /dev/null
@@ -0,0 +1,260 @@
+#include "super.h"
+#include "variables.h"
+#include "misc.h"
+#include <stdio.h>
+
+#include <qbuttongroup.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qcombobox.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qmessagebox.h>
+
+superwindow::superwindow(QWidget* parent, const char* name, bool modal, WFlags fl) : QDialog(parent, name, modal, fl)
+{
+       if (!name) setName("superwindow");
+       resize(600, 340);
+       setSizePolicy( QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0, sizePolicy().hasHeightForWidth()));
+       setMinimumSize(QSize(600, 280));
+       setMaximumSize(QSize(600, 280));
+       setCaption(tr("Superiorize Window"));
+
+       superlabel = new QLabel(this, "superlabel");
+       superlabel->setGeometry(QRect(10, 10, 150, 30));
+       superlabel->setSizePolicy(QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0, superlabel->sizePolicy().hasHeightForWidth()));
+       superlabel->setMinimumSize(QSize(150, 30));
+       superlabel->setMaximumSize(QSize(150, 30));
+       superlabel->setText(tr("SUPERIORIZE"));
+
+       superbuttongroup = new QButtonGroup(this, "superbuttongroup");
+       superbuttongroup->setGeometry(QRect(15, 45, 575, 155));
+       superbuttongroup->setTitle(tr("options"));
+       superbuttongroup->setAlignment(int(QButtonGroup::AlignHCenter));
+
+       N = new QLineEdit(superbuttongroup, "N");
+       N->setGeometry(QRect(10, 45, 80, 24));
+       N->setSizePolicy(QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,N->sizePolicy().hasHeightForWidth()));
+       N->setEnabled(true);
+
+       Nlabel = new QLabel(superbuttongroup, "Nlabel");
+       Nlabel->setGeometry(QRect(45, 20, 40, 20));
+       Nlabel->setText(tr("N"));
+       Nlabel->setEnabled(true);
+
+       a = new QLineEdit(superbuttongroup, "a");
+       a->setGeometry(QRect(100, 45, 80, 24));
+       a->setSizePolicy(QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,a->sizePolicy().hasHeightForWidth()));
+       a->setEnabled(true);
+
+       alabel = new QLabel(superbuttongroup, "alabel");
+       alabel->setGeometry(QRect(135, 20, 40, 20));
+       alabel->setText(tr("a"));
+       alabel->setEnabled(true);
+
+       b = new QLineEdit(superbuttongroup, "b");
+       b->setGeometry(QRect(190, 45, 80, 24));
+       b->setSizePolicy(QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,b->sizePolicy().hasHeightForWidth()));
+       b->setEnabled(true);
+
+       blabel = new QLabel(superbuttongroup, "blabel");
+       blabel->setGeometry(QRect(225, 20, 40, 20));
+       blabel->setText(tr("b"));
+       blabel->setEnabled(true);
+
+       sec_cri = new QComboBox(superbuttongroup, "sec_cri");
+       sec_cri->setGeometry(QRect(15, 100, 130, 30));
+       sec_cri->setSizePolicy(QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,sec_cri->sizePolicy().hasHeightForWidth()));
+       sec_cri->insertItem("TVAR", -1);
+       sec_cri->insertItem("SMOO", -1);
+       sec_cri->insertItem("SCR3", -1);
+       sec_cri->insertItem("SCR4", -1);
+       sec_cri->insertItem("SCR5", -1);
+       sec_cri->setEnabled(true);
+       //QObject::connect(sec_cri,SIGNAL(activated(int)),this,SLOT(setEpsilon()));
+
+       sec_crilabel = new QLabel(superbuttongroup, "sec_crilabel");
+       sec_crilabel->setGeometry(QRect(10, 80, 145, 20));
+       sec_crilabel->setText(tr("secondary criterion"));
+       sec_crilabel->setEnabled(true);
+
+       altl = new QComboBox(superbuttongroup, "altl");
+       altl->setGeometry(QRect(195, 100, 130, 30));
+       altl->setSizePolicy(QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,altl->sizePolicy().hasHeightForWidth()));
+       altl->insertItem("NONE", -1);
+       altl->insertItem("ATL1", -1);
+       altl->insertItem("ATL2", -1);
+       altl->setEnabled(true);
+       //QObject::connect(sec_cri,SIGNAL(activated(int)),this,SLOT(setEpsilon()));
+
+       altllabel = new QLabel(superbuttongroup, "altllabel");
+       altllabel->setGeometry(QRect(215, 80, 100, 20));
+       altllabel->setText(tr("alternative l"));
+       altllabel->setEnabled(true);
+
+       rprtcb = new QCheckBox( this, "rprtcb" );
+       rprtcb->setGeometry(QRect(380, 145, 80, 30));
+       rprtcb->setText( "RPRT" );
+       rprtcb->setChecked(false);
+       rprtcb->setEnabled(true);
+       QObject::connect(rprtcb,SIGNAL(clicked()),this,SLOT(setSkips()));
+
+       skips = new QLineEdit(superbuttongroup, "skips");
+       skips->setGeometry(QRect(450, 100, 80, 30));
+       skips->setSizePolicy(QSizePolicy((QSizePolicy::SizeType) 0, (QSizePolicy::SizeType) 0,skips->sizePolicy().hasHeightForWidth()));
+       skips->setEnabled(false);
+
+       skipslabel = new QLabel(superbuttongroup, "skipslabel");
+       skipslabel->setGeometry(QRect(465, 80, 60, 20));
+       skipslabel->setText(tr("skips"));
+       skipslabel->setEnabled(false);
+
+       okbutton = new QPushButton(this, "okbutton");
+       okbutton->setGeometry(QRect(50, 230, 100, 40));
+       okbutton->setText(tr("OK"));
+       QObject::connect(okbutton, SIGNAL(clicked()), this, SLOT(checkValues()));
+
+       cancelbutton = new QPushButton(this, "cancelbutton");
+       cancelbutton->setGeometry(QRect(280, 230, 100, 40));
+       cancelbutton->setText(tr("Cancel"));
+       QObject::connect(cancelbutton, SIGNAL(clicked()), this, SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+superwindow::~superwindow()
+{
+       // no need to delete child widgets, Qt does it all for us
+}
+
+void superwindow::setSkips()
+{
+       if (rprtcb->isChecked())
+       {
+               skips->setEnabled(TRUE);
+               skipslabel->setEnabled(TRUE);
+       }
+       else
+       {
+               skips->setEnabled(FALSE);
+               skipslabel->setEnabled(FALSE);
+       }
+}
+
+QString superwindow::getOutput()
+{
+       QString output;
+
+       output.sprintf("SUPERIORIZE ");
+
+       output += N->text();
+       output.append(" ");
+       output += a->text();
+       output.append(" ");
+       output += b->text();
+       output.append(" ");
+
+       switch (sec_cri->currentItem())
+       {
+       case 0:
+               output.append("TVAR");
+               break;
+       case 1:
+               output.append("SMOO");
+               break;
+       case 2:
+               output.append("SCR3");
+               break;
+       case 3:
+               output.append("SCR4");
+               break;
+       case 4:
+               output.append("SCR5");
+               break;
+       }
+
+       switch (altl->currentItem())
+       {
+       case 0:
+               // "none" is selected
+               break;
+       case 1:
+               output.append(" ATL1");
+               break;
+       case 2:
+               output.append(" ATL2");
+               break;
+       }
+
+       if (rprtcb->isChecked())
+       {
+               output.append(" RPRT");
+
+               float s = strtof((const char *) skips->text());
+               if (s>1)
+               {
+                       output.append(" ");
+                       output += skips->text();
+               }
+       }
+
+       return output;
+}
+
+void superwindow::checkValues()
+{
+       int f = 0;
+       int iN = 0;
+       float fa = 0;
+       float fb = 0;
+       int is = 0;
+
+       iN = strtoi((const char *) N->text());
+       if (errnum) f = 1;
+       if (iN < 1) f = 2;
+
+       fa = strtof((const char *) a->text());
+       if (errnum) f = 3;
+       if ( fa <= 0 || fa>=1 ) f = 4;
+
+       fb = strtof((const char *) b->text());
+       if (errnum) f = 5;
+       if ( fb <= 0 || fb>1 ) f = 6;
+
+       switch (f)
+       {
+       case 0:
+               accept();
+               break;
+       case 1:
+               QMessageBox::information(this, "SnarkInput", "Error!\n" "Invalid N format.");
+               N->setFocus();
+               break;
+       case 2:
+               QMessageBox::information(this, "SnarkInput", "Error!\n" "N must be >0.");
+               N->setFocus();
+               break;
+       case 3:
+               QMessageBox::information(this, "SnarkInput", "Error!\n" "Invalid a format.");
+               a->setFocus();
+               break;
+       case 4:
+               QMessageBox::information(this, "SnarkInput", "Error!\n" "a must be >0 and <1.");
+               a->setFocus();
+               break;
+       case 5:
+               QMessageBox::information(this, "SnarkInput", "Error!\n" "Invalid b format.");
+               b->setFocus();
+               break;
+       case 6:
+               QMessageBox::information(this, "SnarkInput", "Error!\n" "b must be >0 and <=1.");
+               b->setFocus();
+               break;
+       }
+}
diff --git a/tools/Input/super.h b/tools/Input/super.h
new file mode 100755 (executable)
index 0000000..d9000c9
--- /dev/null
@@ -0,0 +1,50 @@
+#ifndef SUPERWINDOW_H
+#define SUPERWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+#include <qcheckbox.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QFrame;
+class QLabel;
+class QLineEdit;
+class QComboBox;
+class QPushButton;
+class QRadioButton;
+
+class superwindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    superwindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~superwindow();
+    QString getOutput();
+
+    QLabel* superlabel;
+    QButtonGroup* superbuttongroup;
+    QCheckBox* rprtcb;
+    QLineEdit* N;
+    QLabel* Nlabel;
+    QLineEdit* a;
+    QLabel* alabel;
+    QLineEdit* b;
+    QLabel* blabel;
+    QComboBox* sec_cri;
+    QLabel* sec_crilabel;
+    QComboBox* altl;
+    QLabel* altllabel;
+    QLineEdit* skips;
+    QLabel* skipslabel;
+    QFrame* Line17;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+    void checkValues();
+    void setSkips();
+};
+
+#endif
diff --git a/tools/Input/trace.cpp b/tools/Input/trace.cpp
new file mode 100755 (executable)
index 0000000..33f40ce
--- /dev/null
@@ -0,0 +1,116 @@
+/** @file trace.cpp
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#include "trace.h"
+
+#include <qbuttongroup.h>
+#include <qlabel.h>
+#include <qframe.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qvariant.h>
+
+/** 
+ *  Constructs a tracewindow which is a child of 'parent', with the 
+ *  name 'name' and widget flags set to 'f' 
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+@param void
+@author Bruno M. Carvalho
+@version 1.0 */
+tracewindow::tracewindow( QWidget* parent,  const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+  int width = 340;
+    if ( !name )
+       setName( "tracewindow" );
+    resize( width, 270 ); 
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sizePolicy().hasHeightForWidth() ) );
+    setMinimumSize( QSize( width, 270 ) );
+    setMaximumSize( QSize( width, 270 ) );
+    setCaption( tr( "Trace Window" ) );
+
+    tracelabel = new QLabel( this, "tracelabel" );
+    tracelabel->setGeometry( QRect( 10, 10, 90, 30 ) ); 
+    tracelabel->setMinimumSize( QSize( 90, 30 ) );
+    tracelabel->setMaximumSize( QSize( 90, 30 ) );
+    tracelabel->setText( tr( "TRACE" ) );
+
+    Line18 = new QFrame( this, "Line18" );
+    Line18->setGeometry( QRect( -5, 190, width + 10, 16 ) ); 
+    Line18->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+
+    tracebuttongroup = new QButtonGroup( this, "tracebuttongroup" );
+    tracebuttongroup->setGeometry( QRect( 80, 10, 200, 180 ) ); 
+    tracebuttongroup->setTitle( tr( "trace_level" ) );
+    tracebuttongroup->setAlignment( int( QButtonGroup::AlignHCenter ) );
+
+    tracebuttonslayout = new QGridLayout( tracebuttongroup, 5, 2 );
+
+    tl0button = new QRadioButton( tracebuttongroup, "tl0button" );
+    tl0button->setChecked( TRUE );
+    tl0button->setText( tr( "0 (unspecified)" ) );
+    // rows start from 0: leave some space on top
+    tracebuttonslayout->addMultiCellWidget(tl0button, 1, 1, 0, 1, Qt::AlignHCenter | Qt::AlignTop );
+
+    tl1button = new QRadioButton( tracebuttongroup, "tl1button" );
+    tl1button->setText( tr( "1" ) );
+    tracebuttonslayout->addWidget(tl1button, 2, 0, Qt::AlignHCenter | Qt::AlignVCenter );
+
+    tl5button = new QRadioButton( tracebuttongroup, "tl5button" );
+    tl5button->setText( tr( "5" ) );
+    tracebuttonslayout->addWidget(tl5button, 2, 1, Qt::AlignHCenter | Qt::AlignVCenter );
+
+    tl6button = new QRadioButton( tracebuttongroup, "tl6button" );
+    tl6button->setText( tr( "6" ) );
+    tracebuttonslayout->addWidget(tl6button, 3, 0, Qt::AlignHCenter | Qt::AlignVCenter );
+
+    tl7button = new QRadioButton( tracebuttongroup, "tl7button" );
+    tl7button->setText( tr( "7" ) );
+    tracebuttonslayout->addWidget(tl7button, 3, 1, Qt::AlignHCenter | Qt::AlignVCenter );
+
+    tl8button = new QRadioButton( tracebuttongroup, "tl8button" );
+    tl8button->setText( tr( "8" ) );
+    tracebuttonslayout->addWidget(tl8button, 4, 0, Qt::AlignHCenter | Qt::AlignVCenter );
+
+    tl10button = new QRadioButton( tracebuttongroup, "tl10button" );
+    tl10button->setText( tr( "10" ) );
+    tracebuttonslayout->addWidget(tl10button, 4, 1, Qt::AlignHCenter | Qt::AlignVCenter );
+
+    okbutton = new QPushButton( this, "okbutton" );
+    okbutton->setGeometry( QRect( 50, 210, 100, 40 ) ); 
+    okbutton->setText( tr( "OK" ) );
+    QObject::connect(okbutton,SIGNAL(clicked()),this,SLOT(accept()));
+
+    cancelbutton = new QPushButton( this, "cancelbutton" );
+    cancelbutton->setGeometry( QRect( width - 150, 210, 100, 40 ) ); 
+    cancelbutton->setText( tr( "Cancel" ) );
+    QObject::connect(cancelbutton,SIGNAL(clicked()),this,SLOT(reject()));
+}
+
+/**  
+ *  Destroys the object and frees any allocated resources
+ */
+tracewindow::~tracewindow()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/** Returns a string for TRACE input sequence
+@param void
+@return trace
+@author Bruno M. Carvalho
+@version 1.0 */
+QString tracewindow::getOutput()
+{
+  QString selectedText = tracebuttongroup->selected()->text();
+  QString traceText = (selectedText.startsWith("0")) ? "0" : selectedText;
+  QString output = "TRACE " + traceText + " ";
+  return output;
+}
diff --git a/tools/Input/trace.h b/tools/Input/trace.h
new file mode 100755 (executable)
index 0000000..d070716
--- /dev/null
@@ -0,0 +1,51 @@
+/** @file trace.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifndef TRACEWINDOW_H
+#define TRACEWINDOW_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+class QVBoxLayout; 
+class QHBoxLayout; 
+class QGridLayout; 
+class QButtonGroup;
+class QFrame;
+class QLabel;
+class QPushButton;
+class QRadioButton;
+
+class tracewindow : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    tracewindow( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~tracewindow();
+    QString getOutput();
+
+    QLabel* tracelabel;
+    QFrame* Line18;
+    QGridLayout* tracebuttonslayout;
+    QButtonGroup* tracebuttongroup;
+    QRadioButton* tl0button;
+    QRadioButton* tl1button;
+    //    QRadioButton* tl2button;
+    //    QRadioButton* tl4button;
+    QRadioButton* tl5button;
+    QRadioButton* tl6button;
+    QRadioButton* tl7button;
+    QRadioButton* tl8button;
+    QRadioButton* tl10button;
+    QPushButton* okbutton;
+    QPushButton* cancelbutton;
+private slots:
+      //void activateFields();
+  //    void setTraceLevel(int l);
+};
+
+#endif // TRACEWINDOW_H
diff --git a/tools/Input/variables.h b/tools/Input/variables.h
new file mode 100755 (executable)
index 0000000..4b2874d
--- /dev/null
@@ -0,0 +1,19 @@
+/** @file variables.h
+    @package snark14Input
+    @author Bruno M. Carvalho and Deniz Sarioz
+    licensed under (open-source) QPL v1.0
+    which accompanies this distribution in the file QPL
+*/
+
+#ifdef SNARKINPUT_H
+int errnum,entries;
+QStringList inputbuffer;
+#else
+extern int errnum;
+#endif
+#ifndef M_PI
+#define M_PI 3.1415926535897932385
+#endif
+#ifndef M_SQRT1_2
+#define M_SQRT1_2 0.70710678118654752440
+#endif
diff --git a/tools/Makefile b/tools/Makefile
new file mode 100755 (executable)
index 0000000..9cbab39
--- /dev/null
@@ -0,0 +1,12 @@
+all: snark14Input snark14Display
+
+snark14Input:
+       cd Input ; make
+
+snark14Display:
+       cd Display ; make
+
+clean:
+       cd Input ; make clean
+       cd Display ; make clean
+