Imported Upstream version 4.6.0 upstream/4.6.0
authorBdale Garbee <bdale@gag.com>
Mon, 26 Dec 2011 07:06:56 +0000 (00:06 -0700)
committerBdale Garbee <bdale@gag.com>
Mon, 26 Dec 2011 07:06:56 +0000 (00:06 -0700)
619 files changed:
AUTHORS [new file with mode: 0644]
BUGS [new file with mode: 0644]
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0644]
INSTALL [new file with mode: 0644]
Makefile.am [new file with mode: 0644]
Makefile.in [new file with mode: 0644]
NEWS [new file with mode: 0644]
README [new file with mode: 0644]
README.cvs [new file with mode: 0644]
README.hardware-info [new file with mode: 0644]
README.help [new file with mode: 0644]
README.mpi [new file with mode: 0644]
README.solaris [new file with mode: 0644]
README.support [new file with mode: 0644]
README.threads [new file with mode: 0644]
README.windows [new file with mode: 0644]
THANKS [new file with mode: 0644]
TODO [new file with mode: 0644]
aclocal.m4 [new file with mode: 0644]
compile [new file with mode: 0644]
config.guess [new file with mode: 0644]
config.h.in [new file with mode: 0644]
config.sub [new file with mode: 0644]
configure [new file with mode: 0755]
configure.ac [new file with mode: 0644]
depcomp [new file with mode: 0644]
docs/Makefile.am [new file with mode: 0644]
docs/Makefile.in [new file with mode: 0644]
docs/README [new file with mode: 0644]
docs/html-docs/BUGS.html [new file with mode: 0644]
docs/html-docs/FAQ.html [new file with mode: 0644]
docs/html-docs/IMPORTANT.html [new file with mode: 0644]
docs/html-docs/Makefile.am [new file with mode: 0644]
docs/html-docs/Makefile.in [new file with mode: 0644]
docs/html-docs/NEWS.html [new file with mode: 0644]
docs/html-docs/accuracy.html [new file with mode: 0644]
docs/html-docs/an_example_of_using_design_coupler.html [new file with mode: 0644]
docs/html-docs/atlc.1.html [new file with mode: 0644]
docs/html-docs/banner.html [new file with mode: 0644]
docs/html-docs/bmp.html [new file with mode: 0644]
docs/html-docs/building.html [new file with mode: 0644]
docs/html-docs/calculate_zodd_and_zeven.html [new file with mode: 0644]
docs/html-docs/colours.html [new file with mode: 0644]
docs/html-docs/couplers.html [new file with mode: 0644]
docs/html-docs/create_bmp_for_circ_in_circ.1.html [new file with mode: 0644]
docs/html-docs/create_bmp_for_circ_in_rect.1.html [new file with mode: 0644]
docs/html-docs/create_bmp_for_rect_cen_in_rect.1.html [new file with mode: 0644]
docs/html-docs/create_bmp_for_rect_cen_in_rect_coupler.1 [new file with mode: 0644]
docs/html-docs/create_bmp_for_rect_in_circ.1.html [new file with mode: 0644]
docs/html-docs/create_bmp_for_rect_in_rect.1.html [new file with mode: 0644]
docs/html-docs/create_bmp_for_stripline_coupler.1.html [new file with mode: 0644]
docs/html-docs/create_bmp_for_symmetrical_stripline.1.html [new file with mode: 0644]
docs/html-docs/design_coupler.1.html [new file with mode: 0644]
docs/html-docs/determine_dimensions_of_couplers.html [new file with mode: 0644]
docs/html-docs/errors.html [new file with mode: 0644]
docs/html-docs/examples.html [new file with mode: 0644]
docs/html-docs/fileformat.html [new file with mode: 0644]
docs/html-docs/generate_for_coupler.html [new file with mode: 0644]
docs/html-docs/generators.html [new file with mode: 0644]
docs/html-docs/index.html [new file with mode: 0644]
docs/html-docs/index2.html [new file with mode: 0644]
docs/html-docs/installing.html [new file with mode: 0644]
docs/html-docs/jpgs/000000.jpg [new file with mode: 0644]
docs/html-docs/jpgs/0000ff.jpg [new file with mode: 0644]
docs/html-docs/jpgs/00ff00.jpg [new file with mode: 0644]
docs/html-docs/jpgs/00ffff.jpg [new file with mode: 0644]
docs/html-docs/jpgs/1aefb3.jpg [new file with mode: 0644]
docs/html-docs/jpgs/3dcoup.jpg [new file with mode: 0644]
docs/html-docs/jpgs/50.jpg [new file with mode: 0644]
docs/html-docs/jpgs/696969.jpg [new file with mode: 0644]
docs/html-docs/jpgs/8235ef.jpg [new file with mode: 0644]
docs/html-docs/jpgs/8e8e8e.jpg [new file with mode: 0644]
docs/html-docs/jpgs/Makefile.am [new file with mode: 0644]
docs/html-docs/jpgs/Makefile.in [new file with mode: 0644]
docs/html-docs/jpgs/aliased.jpg [new file with mode: 0644]
docs/html-docs/jpgs/bc7f60.jpg [new file with mode: 0644]
docs/html-docs/jpgs/bluefish.jpg [new file with mode: 0644]
docs/html-docs/jpgs/central.jpg [new file with mode: 0644]
docs/html-docs/jpgs/centred.jpg [new file with mode: 0644]
docs/html-docs/jpgs/cir.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coax2.E.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coax2.Er.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coax2.Ex.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coax2.Ey.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coax2.U.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coax2.V.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coax2.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coaxial1.jpg [new file with mode: 0644]
docs/html-docs/jpgs/cop1.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coupler.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coupler3.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coupler4.jpg [new file with mode: 0644]
docs/html-docs/jpgs/coupler9.jpg [new file with mode: 0644]
docs/html-docs/jpgs/d5a04d.jpg [new file with mode: 0644]
docs/html-docs/jpgs/dcdcdc.jpg [new file with mode: 0644]
docs/html-docs/jpgs/dff788.jpg [new file with mode: 0644]
docs/html-docs/jpgs/eccentric_coax.jpg [new file with mode: 0644]
docs/html-docs/jpgs/eccentric_coax2.jpg [new file with mode: 0644]
docs/html-docs/jpgs/efcc1a.jpg [new file with mode: 0644]
docs/html-docs/jpgs/elliptical.jpg [new file with mode: 0644]
docs/html-docs/jpgs/enclosed-microstrip.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ff0000.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ff0001.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ff00ff.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ffcaca.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ffff00.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ffffff.jpg [new file with mode: 0644]
docs/html-docs/jpgs/full-size.jpg [new file with mode: 0644]
docs/html-docs/jpgs/home-email.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ms_coupler.jpg [new file with mode: 0644]
docs/html-docs/jpgs/multi-dielectric.E.jpg [new file with mode: 0644]
docs/html-docs/jpgs/multi-dielectric.Er.jpg [new file with mode: 0644]
docs/html-docs/jpgs/multi-dielectric.Ex.jpg [new file with mode: 0644]
docs/html-docs/jpgs/multi-dielectric.Ey.jpg [new file with mode: 0644]
docs/html-docs/jpgs/multi-dielectric.U.jpg [new file with mode: 0644]
docs/html-docs/jpgs/multi-dielectric.V.jpg [new file with mode: 0644]
docs/html-docs/jpgs/multi-dielectric.jpg [new file with mode: 0644]
docs/html-docs/jpgs/not-aliased.jpg [new file with mode: 0644]
docs/html-docs/jpgs/off-centre.jpg [new file with mode: 0644]
docs/html-docs/jpgs/off-centre2.jpg [new file with mode: 0644]
docs/html-docs/jpgs/pcb.E.jpg [new file with mode: 0644]
docs/html-docs/jpgs/pcb.Er.jpg [new file with mode: 0644]
docs/html-docs/jpgs/pcb.Ex.jpg [new file with mode: 0644]
docs/html-docs/jpgs/pcb.Ey.jpg [new file with mode: 0644]
docs/html-docs/jpgs/pcb.U.jpg [new file with mode: 0644]
docs/html-docs/jpgs/pcb.V.jpg [new file with mode: 0644]
docs/html-docs/jpgs/pcb.jpg [new file with mode: 0644]
docs/html-docs/jpgs/pcb2.jpg [new file with mode: 0644]
docs/html-docs/jpgs/rect.jpg [new file with mode: 0644]
docs/html-docs/jpgs/rect2.jpg [new file with mode: 0644]
docs/html-docs/jpgs/rect9.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ric.jpg [new file with mode: 0644]
docs/html-docs/jpgs/symmetrical_strip.jpg [new file with mode: 0644]
docs/html-docs/jpgs/test.jpg [new file with mode: 0644]
docs/html-docs/jpgs/too-small.jpg [new file with mode: 0644]
docs/html-docs/jpgs/twin-wire.E.jpg [new file with mode: 0644]
docs/html-docs/jpgs/twin-wire.Er.jpg [new file with mode: 0644]
docs/html-docs/jpgs/twin-wire.Ex.jpg [new file with mode: 0644]
docs/html-docs/jpgs/twin-wire.Ey.jpg [new file with mode: 0644]
docs/html-docs/jpgs/twin-wire.U.jpg [new file with mode: 0644]
docs/html-docs/jpgs/twin-wire.V.jpg [new file with mode: 0644]
docs/html-docs/jpgs/twin-wire.jpg [new file with mode: 0644]
docs/html-docs/jpgs/twin-wire2.E.jpg [new file with mode: 0644]
docs/html-docs/jpgs/twin-wire2.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ushape.E.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ushape.Er.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ushape.Ex.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ushape.Ey.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ushape.U.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ushape.V.jpg [new file with mode: 0644]
docs/html-docs/jpgs/ushape.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd-dark.E.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd-dark.Ex.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd-dark.Ey.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd-light.E.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd-light.Ex.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd-light.Ey.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd.E.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd.Er.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd.Ex.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd.Ey.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd.U.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd.V.jpg [new file with mode: 0644]
docs/html-docs/jpgs/very-odd.jpg [new file with mode: 0644]
docs/html-docs/jpgs/wide.jpg [new file with mode: 0644]
docs/html-docs/make-check.html [new file with mode: 0644]
docs/html-docs/man-pages.html [new file with mode: 0644]
docs/html-docs/options.html [new file with mode: 0644]
docs/html-docs/readbin.1.html [new file with mode: 0644]
docs/html-docs/rect_in_rect.html [new file with mode: 0644]
docs/html-docs/sysdata.1.html [new file with mode: 0644]
docs/html-docs/theory.html [new file with mode: 0644]
docs/html-docs/todo.html [new file with mode: 0644]
docs/html-docs/tutorial.html [new file with mode: 0644]
docs/html-docs/usage_design_coupler.html [new file with mode: 0644]
docs/html-docs/valid-html40.gif [new file with mode: 0644]
docs/qex-december-1996/ATLC.C [new file with mode: 0644]
docs/qex-december-1996/Makefile.am [new file with mode: 0644]
docs/qex-december-1996/Makefile.in [new file with mode: 0644]
docs/qex-december-1996/README [new file with mode: 0644]
docs/qex-december-1996/atlc.pdf [new file with mode: 0644]
docs/theory/Makefile.am [new file with mode: 0644]
docs/theory/Makefile.in [new file with mode: 0644]
docs/theory/README [new file with mode: 0644]
docs/theory/atlc-theory1.doc [new file with mode: 0644]
docs/theory/atlc-theory2.doc [new file with mode: 0644]
docs/theory/ideas-for-gui.sxw [new file with mode: 0644]
examples/100ohm-201h.bmp [new file with mode: 0644]
examples/100ohm-201h.bmp.txt [new file with mode: 0644]
examples/100ohm-401h.bmp [new file with mode: 0644]
examples/100ohm-401h.bmp.txt [new file with mode: 0644]
examples/100ohm-801h.bmp [new file with mode: 0644]
examples/100ohm-801h.bmp.txt [new file with mode: 0644]
examples/200ohm-201h.bmp [new file with mode: 0644]
examples/200ohm-201h.bmp.txt [new file with mode: 0644]
examples/200ohm-401h.bmp [new file with mode: 0644]
examples/200ohm-401h.bmp.txt [new file with mode: 0644]
examples/200ohm-801h.bmp [new file with mode: 0644]
examples/200ohm-801h.bmp.txt [new file with mode: 0644]
examples/25ohm-201h.E.bmp [new file with mode: 0644]
examples/25ohm-201h.Er.bmp [new file with mode: 0644]
examples/25ohm-201h.Ex.bmp [new file with mode: 0644]
examples/25ohm-201h.Ey.bmp [new file with mode: 0644]
examples/25ohm-201h.U.bmp [new file with mode: 0644]
examples/25ohm-201h.V.bmp [new file with mode: 0644]
examples/25ohm-201h.bmp [new file with mode: 0644]
examples/25ohm-201h.bmp.txt [new file with mode: 0644]
examples/25ohm-401h.bmp [new file with mode: 0644]
examples/25ohm-401h.bmp.txt [new file with mode: 0644]
examples/25ohm-801h.bmp [new file with mode: 0644]
examples/400ohm-1551h.bmp [new file with mode: 0644]
examples/400ohm-1551h.bmp.txt [new file with mode: 0644]
examples/50ohm-201h.E.bmp [new file with mode: 0644]
examples/50ohm-201h.Er.bmp [new file with mode: 0644]
examples/50ohm-201h.Ex.bmp [new file with mode: 0644]
examples/50ohm-201h.Ey.bmp [new file with mode: 0644]
examples/50ohm-201h.U.bmp [new file with mode: 0644]
examples/50ohm-201h.V.bmp [new file with mode: 0644]
examples/50ohm-201h.bmp [new file with mode: 0644]
examples/50ohm-401h.bmp [new file with mode: 0644]
examples/50ohm-401h.bmp.txt [new file with mode: 0644]
examples/50ohm-801h.bmp [new file with mode: 0644]
examples/50ohm-801h.bmp.txt [new file with mode: 0644]
examples/Makefile.am [new file with mode: 0644]
examples/Makefile.in [new file with mode: 0644]
examples/README [new file with mode: 0644]
examples/aliased.bmp [new file with mode: 0644]
examples/an_odd_er.bmp [new file with mode: 0644]
examples/bigger_not_in_centre.bmp [new file with mode: 0644]
examples/bigger_not_in_centre.bmp.txt [new file with mode: 0644]
examples/coax-500-100.bmp [new file with mode: 0644]
examples/coax-500-100.bmp.txt [new file with mode: 0644]
examples/coax-500-200-Er=100.bmp [new file with mode: 0644]
examples/coax-500-200-Er=100.bmp.txt [new file with mode: 0644]
examples/coax-500-200.E.bmp [new file with mode: 0644]
examples/coax-500-200.Er.bmp [new file with mode: 0644]
examples/coax-500-200.Ex.bmp [new file with mode: 0644]
examples/coax-500-200.Ey.bmp [new file with mode: 0644]
examples/coax-500-200.U.bmp [new file with mode: 0644]
examples/coax-500-200.V.bmp [new file with mode: 0644]
examples/coax-500-200.bmp [new file with mode: 0644]
examples/coax-500-200.bmp.txt [new file with mode: 0644]
examples/coax-500-25.bmp [new file with mode: 0644]
examples/coax-500-25.bmp.txt [new file with mode: 0644]
examples/coax-500-400.bmp [new file with mode: 0644]
examples/coax-500-400.bmp.txt [new file with mode: 0644]
examples/coax-500-50.bmp [new file with mode: 0644]
examples/coax-500-50.bmp.txt [new file with mode: 0644]
examples/coax2.E.bmp [new file with mode: 0644]
examples/coax2.Er.bmp [new file with mode: 0644]
examples/coax2.Ex.bmp [new file with mode: 0644]
examples/coax2.Ey.bmp [new file with mode: 0644]
examples/coax2.U.bmp [new file with mode: 0644]
examples/coax2.V.bmp [new file with mode: 0644]
examples/coax2.bmp [new file with mode: 0644]
examples/coax2.bmp.txt [new file with mode: 0644]
examples/coaxtest.bmp [new file with mode: 0644]
examples/coaxtest.bmp.txt [new file with mode: 0644]
examples/coaxtest2.bmp [new file with mode: 0644]
examples/coaxtest2.bmp.txt [new file with mode: 0644]
examples/coupler.bmp [new file with mode: 0644]
examples/coupler.bmp.txt [new file with mode: 0644]
examples/create_for_Makefile.am [new file with mode: 0644]
examples/cvsignore [new file with mode: 0644]
examples/dual-dielectric-coax.bmp [new file with mode: 0644]
examples/ground-negative-short.bmp [new file with mode: 0644]
examples/ground-negative-short.bmp.txt [new file with mode: 0644]
examples/microstrip_coupler.bmp [new file with mode: 0644]
examples/microstrip_coupler.bmp.txt [new file with mode: 0644]
examples/multi-dielectric.bmp [new file with mode: 0644]
examples/multi-dielectric.bmp.txt [new file with mode: 0644]
examples/not-aliased.bmp [new file with mode: 0644]
examples/not-aliased.bmp.txt [new file with mode: 0644]
examples/not_in_centre.bmp [new file with mode: 0644]
examples/not_in_centre.bmp.txt [new file with mode: 0644]
examples/odd-coupler.bmp [new file with mode: 0644]
examples/off-centre-coax.bmp [new file with mode: 0644]
examples/offset.bmp [new file with mode: 0644]
examples/offset.bmp.txt [new file with mode: 0644]
examples/pcb-coupler.bmp [new file with mode: 0644]
examples/pcb-coupler.bmp.txt [new file with mode: 0644]
examples/pcb.bmp [new file with mode: 0644]
examples/pcb.bmp.txt [new file with mode: 0644]
examples/positive-ground-short.bmp [new file with mode: 0644]
examples/positive-negative-short.bmp [new file with mode: 0644]
examples/test-coupler1.E.even.bmp [new file with mode: 0644]
examples/test-coupler1.E.odd.bmp [new file with mode: 0644]
examples/test-coupler1.Er.bmp [new file with mode: 0644]
examples/test-coupler1.Ex.even.bmp [new file with mode: 0644]
examples/test-coupler1.Ex.odd.bmp [new file with mode: 0644]
examples/test-coupler1.Ey.even.bmp [new file with mode: 0644]
examples/test-coupler1.Ey.odd.bmp [new file with mode: 0644]
examples/test-coupler1.U.even.bmp [new file with mode: 0644]
examples/test-coupler1.U.odd.bmp [new file with mode: 0644]
examples/test-coupler1.V.even.bmp [new file with mode: 0644]
examples/test-coupler1.V.odd.bmp [new file with mode: 0644]
examples/test-coupler1.bmp [new file with mode: 0644]
examples/test-coupler1.bmp.txt [new file with mode: 0644]
examples/test-coupler2.E.even.bmp [new file with mode: 0644]
examples/test-coupler2.E.odd.bmp [new file with mode: 0644]
examples/test-coupler2.Er.bmp [new file with mode: 0644]
examples/test-coupler2.Ex.even.bmp [new file with mode: 0644]
examples/test-coupler2.Ex.odd.bmp [new file with mode: 0644]
examples/test-coupler2.Ey.even.bmp [new file with mode: 0644]
examples/test-coupler2.Ey.odd.bmp [new file with mode: 0644]
examples/test-coupler2.U.even.bmp [new file with mode: 0644]
examples/test-coupler2.U.odd.bmp [new file with mode: 0644]
examples/test-coupler2.V.even.bmp [new file with mode: 0644]
examples/test-coupler2.V.odd.bmp [new file with mode: 0644]
examples/test-coupler2.bmp [new file with mode: 0644]
examples/test-coupler2.bmp.txt [new file with mode: 0644]
examples/test.E.bmp [new file with mode: 0644]
examples/test.Er.bmp [new file with mode: 0644]
examples/test.Ex.bmp [new file with mode: 0644]
examples/test.Ey.bmp [new file with mode: 0644]
examples/test.U.bmp [new file with mode: 0644]
examples/test.V.bmp [new file with mode: 0644]
examples/test.bmp [new file with mode: 0644]
examples/test.bmp.txt [new file with mode: 0644]
examples/test3.bmp [new file with mode: 0644]
examples/test3.bmp.txt [new file with mode: 0644]
examples/test4.bmp [new file with mode: 0644]
examples/test4.bmp.txt [new file with mode: 0644]
examples/test5.bmp [new file with mode: 0644]
examples/test6.bmp [new file with mode: 0644]
examples/test6.bmp.txt [new file with mode: 0644]
examples/test7.bmp [new file with mode: 0644]
examples/test7.bmp.txt [new file with mode: 0644]
examples/test_rect_in_rect.E.bmp [new file with mode: 0644]
examples/test_rect_in_rect.Er.bmp [new file with mode: 0644]
examples/test_rect_in_rect.Ex.bmp [new file with mode: 0644]
examples/test_rect_in_rect.Ey.bmp [new file with mode: 0644]
examples/test_rect_in_rect.U.bmp [new file with mode: 0644]
examples/test_rect_in_rect.V.bmp [new file with mode: 0644]
examples/test_rect_in_rect.bmp [new file with mode: 0644]
examples/test_rect_in_rect.bmp.txt [new file with mode: 0644]
examples/test_stripline_coupler.E.even.bmp [new file with mode: 0644]
examples/test_stripline_coupler.E.odd.bmp [new file with mode: 0644]
examples/test_stripline_coupler.Er.bmp [new file with mode: 0644]
examples/test_stripline_coupler.Ex.even.bmp [new file with mode: 0644]
examples/test_stripline_coupler.Ex.odd.bmp [new file with mode: 0644]
examples/test_stripline_coupler.Ey.even.bmp [new file with mode: 0644]
examples/test_stripline_coupler.Ey.odd.bmp [new file with mode: 0644]
examples/test_stripline_coupler.U.even.bmp [new file with mode: 0644]
examples/test_stripline_coupler.U.odd.bmp [new file with mode: 0644]
examples/test_stripline_coupler.V.even.bmp [new file with mode: 0644]
examples/test_stripline_coupler.V.odd.bmp [new file with mode: 0644]
examples/test_stripline_coupler.bmp [new file with mode: 0644]
examples/test_stripline_coupler.bmp.txt [new file with mode: 0644]
examples/test_stripline_coupler2.bmp [new file with mode: 0644]
examples/test_sym_strip.Ex.bmp [new file with mode: 0644]
examples/test_sym_strip.U.bmp [new file with mode: 0644]
examples/test_sym_strip.V.bmp [new file with mode: 0644]
examples/test_sym_strip.bmp [new file with mode: 0644]
examples/test_sym_strip.bmp.txt [new file with mode: 0644]
examples/twin-wire.bmp [new file with mode: 0644]
examples/twin-wire.bmp.txt [new file with mode: 0644]
examples/twin-wire2.bmp [new file with mode: 0644]
examples/twin-wire2.bmp.txt [new file with mode: 0644]
examples/twin-wire3.bmp [new file with mode: 0644]
examples/twin-wire3.bmp.txt [new file with mode: 0644]
examples/twin-wire4.bmp [new file with mode: 0644]
examples/twin-wire4.bmp.txt [new file with mode: 0644]
examples/ushape.bmp [new file with mode: 0644]
examples/ushape.bmp.txt [new file with mode: 0644]
examples/very-odd.bmp [new file with mode: 0644]
examples/very-odd.bmp.txt [new file with mode: 0644]
examples/wide-9pixel.bmp [new file with mode: 0644]
examples/wide-9pixel.bmp.txt [new file with mode: 0644]
install-sh [new file with mode: 0644]
m4/Makefile.am [new file with mode: 0644]
m4/Makefile.in [new file with mode: 0644]
m4/README [new file with mode: 0644]
m4/acx_mpi.m4 [new file with mode: 0644]
m4/acx_pthread.m4 [new file with mode: 0644]
m4/gtk.m4 [new file with mode: 0644]
man/Makefile.am [new file with mode: 0644]
man/Makefile.in [new file with mode: 0644]
man/man1/Makefile.am [new file with mode: 0644]
man/man1/Makefile.in [new file with mode: 0644]
man/man1/atlc.1 [new file with mode: 0644]
man/man1/coax.1 [new file with mode: 0644]
man/man1/create_bmp_for_circ_in_circ.1 [new file with mode: 0644]
man/man1/create_bmp_for_circ_in_rect.1 [new file with mode: 0644]
man/man1/create_bmp_for_microstrip_coupler.1 [new file with mode: 0644]
man/man1/create_bmp_for_rect_cen_in_rect.1 [new file with mode: 0644]
man/man1/create_bmp_for_rect_cen_in_rect_coupler.1 [new file with mode: 0644]
man/man1/create_bmp_for_rect_in_circ.1 [new file with mode: 0644]
man/man1/create_bmp_for_rect_in_rect.1 [new file with mode: 0644]
man/man1/create_bmp_for_stripline_coupler.1 [new file with mode: 0644]
man/man1/create_bmp_for_symmetrical_stripline.1 [new file with mode: 0644]
man/man1/design_coupler.1 [new file with mode: 0644]
man/man1/dualcoax.1 [new file with mode: 0644]
man/man1/find_optimal_dimensions_for_microstrip_coupler.1 [new file with mode: 0644]
man/man1/readbin.1 [new file with mode: 0644]
man/man1/sysdata.1 [new file with mode: 0644]
missing [new file with mode: 0644]
mkinstalldirs [new file with mode: 0644]
src/Makefile.am [new file with mode: 0644]
src/Makefile.in [new file with mode: 0644]
src/README [new file with mode: 0644]
src/non_gui/Erdata.h [new file with mode: 0644]
src/non_gui/Makefile.am [new file with mode: 0644]
src/non_gui/Makefile.in [new file with mode: 0644]
src/non_gui/README [new file with mode: 0644]
src/non_gui/align_bitmap_image.c [new file with mode: 0644]
src/non_gui/atlc.c [new file with mode: 0644]
src/non_gui/bmp.h [new file with mode: 0644]
src/non_gui/byteswap.c [new file with mode: 0644]
src/non_gui/calculate_Zodd_and_Zeven.c [new file with mode: 0644]
src/non_gui/calculate_colour_data.c [new file with mode: 0644]
src/non_gui/calculate_impedance_for_create_bmp_for_symmetrical_stripline.c [new file with mode: 0644]
src/non_gui/calculate_integer_values.c [new file with mode: 0644]
src/non_gui/check_error.c [new file with mode: 0644]
src/non_gui/check_for_boundaries.c [new file with mode: 0644]
src/non_gui/check_for_shorts.c [new file with mode: 0644]
src/non_gui/check_parameters_for_find_optimal_dimensions_for_microstrip_coupler.c [new file with mode: 0644]
src/non_gui/check_parameters_of_create_bmp_for_circ_in_circ.c [new file with mode: 0644]
src/non_gui/check_parameters_of_create_bmp_for_circ_in_rect.c [new file with mode: 0644]
src/non_gui/check_parameters_of_create_bmp_for_microstrip_coupler.c [new file with mode: 0644]
src/non_gui/check_parameters_of_create_bmp_for_rect_in_circ.c [new file with mode: 0644]
src/non_gui/check_parameters_of_create_bmp_for_rect_in_rect.c [new file with mode: 0644]
src/non_gui/convert_create_bmp_for_circ_in_circ_dimensions_to_integers.c [new file with mode: 0644]
src/non_gui/convert_create_bmp_for_circ_in_rect_dimensions_to_integers.c [new file with mode: 0644]
src/non_gui/convert_create_bmp_for_coupled_microstrip_dimensions_to_integers.c [new file with mode: 0644]
src/non_gui/convert_create_bmp_for_rect_in_circ_dimensions_to_integers.c [new file with mode: 0644]
src/non_gui/convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c [new file with mode: 0644]
src/non_gui/create_any_bitmap.c [new file with mode: 0644]
src/non_gui/create_bmp_for_circ_in_circ.c [new file with mode: 0644]
src/non_gui/create_bmp_for_circ_in_rect.c [new file with mode: 0644]
src/non_gui/create_bmp_for_microstrip_coupler.c [new file with mode: 0644]
src/non_gui/create_bmp_for_rect_cen_in_rect.c [new file with mode: 0644]
src/non_gui/create_bmp_for_rect_cen_in_rect_coupler.c [new file with mode: 0644]
src/non_gui/create_bmp_for_rect_in_circ.c [new file with mode: 0644]
src/non_gui/create_bmp_for_rect_in_rect.c [new file with mode: 0644]
src/non_gui/create_bmp_for_stripline_coupler.c [new file with mode: 0644]
src/non_gui/create_bmp_for_symmetrical_stripline.c [new file with mode: 0644]
src/non_gui/definitions.h [new file with mode: 0644]
src/non_gui/design_coupler.c [new file with mode: 0644]
src/non_gui/do_fd_calculation.c [new file with mode: 0644]
src/non_gui/elliptic_integral.c [new file with mode: 0644]
src/non_gui/exit_codes.h [new file with mode: 0644]
src/non_gui/exit_with_msg_and_exit_code.c [new file with mode: 0644]
src/non_gui/fill_circ_in_circ.c [new file with mode: 0644]
src/non_gui/fill_circ_in_rect.c [new file with mode: 0644]
src/non_gui/fill_image_vector_for_create_bmp_for_microstrip_coupler.c [new file with mode: 0644]
src/non_gui/fill_image_vector_for_create_bmp_for_symmetrical_stripline.c [new file with mode: 0644]
src/non_gui/fill_make_coupler.c [new file with mode: 0644]
src/non_gui/fill_rect_in_circ.c [new file with mode: 0644]
src/non_gui/fill_rect_in_rect.c [new file with mode: 0644]
src/non_gui/find_electric_fields.c [new file with mode: 0644]
src/non_gui/find_energy_per_metre.c [new file with mode: 0644]
src/non_gui/find_maximum_values.c [new file with mode: 0644]
src/non_gui/find_optimal_dimensions_for_microstrip_coupler.c [new file with mode: 0644]
src/non_gui/finite_difference_mpi.c [new file with mode: 0644]
src/non_gui/finite_difference_multi_threaded.c [new file with mode: 0644]
src/non_gui/finite_difference_single_threaded.c [new file with mode: 0644]
src/non_gui/get_Er1_and_Er2_colours.c [new file with mode: 0644]
src/non_gui/get_file_pointer_with_right_filename.c [new file with mode: 0644]
src/non_gui/get_options.c [new file with mode: 0644]
src/non_gui/give_examples_of_using_design_coupler.c [new file with mode: 0644]
src/non_gui/gsl_definitions.h [new file with mode: 0644]
src/non_gui/gsl_sf_ellint_Kcomp.c [new file with mode: 0644]
src/non_gui/gsl_types.h [new file with mode: 0644]
src/non_gui/memory.c [new file with mode: 0644]
src/non_gui/print_copyright.c [new file with mode: 0644]
src/non_gui/print_data_for_directional_couplers.c [new file with mode: 0644]
src/non_gui/print_data_for_two_conductor_lines.c [new file with mode: 0644]
src/non_gui/read_bitmap_file_headers.c [new file with mode: 0644]
src/non_gui/readbin.c [new file with mode: 0644]
src/non_gui/set_data_to_sensible_starting_values.c [new file with mode: 0644]
src/non_gui/set_oddity_from_Greens_paper.c [new file with mode: 0644]
src/non_gui/setup_arrays.c [new file with mode: 0644]
src/non_gui/swap_conductor_voltages.c [new file with mode: 0644]
src/non_gui/update_voltage_array.c [new file with mode: 0644]
src/non_gui/usage_atlc.c [new file with mode: 0644]
src/non_gui/usage_create_any_bitmap.c [new file with mode: 0644]
src/non_gui/usage_create_bmp_for_circ_in_circ.c [new file with mode: 0644]
src/non_gui/usage_create_bmp_for_circ_in_rect.c [new file with mode: 0644]
src/non_gui/usage_create_bmp_for_microstrip_coupler.c [new file with mode: 0644]
src/non_gui/usage_create_bmp_for_rect_cen_in_rect.c [new file with mode: 0644]
src/non_gui/usage_create_bmp_for_rect_cen_in_rect_coupler.c [new file with mode: 0644]
src/non_gui/usage_create_bmp_for_rect_in_circ.c [new file with mode: 0644]
src/non_gui/usage_create_bmp_for_rect_in_rect.c [new file with mode: 0644]
src/non_gui/usage_create_bmp_for_stripline_coupler.c [new file with mode: 0644]
src/non_gui/usage_create_bmp_for_symmetrical_stripline.c [new file with mode: 0644]
src/non_gui/usage_design_coupler.c [new file with mode: 0644]
src/non_gui/usage_find_optimal_dimensions_for_microstrip_coupler.c [new file with mode: 0644]
src/non_gui/usage_readbin.c [new file with mode: 0644]
src/non_gui/write_bitmap.c [new file with mode: 0644]
src/non_gui/write_bitmap_out.c [new file with mode: 0644]
src/non_gui/write_fields_for_directional_couplers.c [new file with mode: 0644]
src/non_gui/write_fields_for_two_conductor_lines.c [new file with mode: 0644]
teston [new file with mode: 0755]
tests/10a-create-lots-of-examples-check-last-one.test [new file with mode: 0755]
tests/10b-create-lots-of-examples-check-last-one.test [new file with mode: 0755]
tests/11a-verify-checksum-of-supplied-test-coupler1.bmp.test [new file with mode: 0755]
tests/11b-verify-checksum-of-created-test-coupler1.Ex.odd.bmp.test [new file with mode: 0755]
tests/11c-verify-checksum-of-created-test-coupler1.Ey.odd.bmp.test [new file with mode: 0755]
tests/11d-verify-checksum-of-created-test-coupler1.E.odd.bmp.test [new file with mode: 0755]
tests/11e-verify-checksum-of-created-test-coupler1.V.odd.bmp.test [new file with mode: 0755]
tests/11f-verify-checksum-of-created-test-coupler1.U.odd.bmp.test [new file with mode: 0755]
tests/11g-verify-checksum-of-created-test-coupler1.Er.bmp.test [new file with mode: 0755]
tests/11h-verify-checksum-of-created-test-coupler1.Ex.even.bmp.test [new file with mode: 0755]
tests/11i-verify-checksum-of-created-test-coupler1.Ey.even.bmp.test [new file with mode: 0755]
tests/11j-verify-checksum-of-created-test-coupler1.E.even.bmp.test [new file with mode: 0755]
tests/11k-verify-checksum-of-created-test-coupler1.U.even.bmp.test [new file with mode: 0755]
tests/11l-verify-checksum-of-created-test-coupler1.V.even.bmp.test [new file with mode: 0755]
tests/13a-check_rect_cen_in_rect.test [new file with mode: 0755]
tests/13b-check_rect_cen_in_rect.test [new file with mode: 0755]
tests/13c-check_rect_cen_in_rect.test [new file with mode: 0755]
tests/13d-check_rect_cen_in_rect.test [new file with mode: 0755]
tests/14a-check-circ-in-rect.test [new file with mode: 0755]
tests/14b-check-circ-in-rect.test [new file with mode: 0755]
tests/14c-check-circ-in-rect.test [new file with mode: 0755]
tests/14d-check-circ-in-rect.test [new file with mode: 0755]
tests/1a-create_bmp_for_symmetrical_stripline.bmp.test [new file with mode: 0755]
tests/1b-create_bmp_for_symmetrical_stripline.txt.test [new file with mode: 0755]
tests/1c-create_bmp_for_symmetrical_stripline.E.bmp.test [new file with mode: 0755]
tests/1d-create_bmp_for_symmetrical_stripline.Er.bmp.test [new file with mode: 0755]
tests/1e-create_bmp_for_symmetrical_stripline.Ey.bmp.test [new file with mode: 0755]
tests/1f-create_bmp_for_symmetrical_stripline.Ex.bmp.test [new file with mode: 0755]
tests/1g-create_bmp_for_symmetrical_stripline.U.bmp.test [new file with mode: 0755]
tests/1h-create_bmp_for_symmetrical_stripline.V.bmp.test [new file with mode: 0755]
tests/1i-create_bmp_for_symmetrical_stripline.E.bin.test [new file with mode: 0755]
tests/1j-create_bmp_for_symmetrical_stripline.Er.bin.test [new file with mode: 0755]
tests/1k-create_bmp_for_symmetrical_stripline.Ey.bin.test [new file with mode: 0755]
tests/1l-create_bmp_for_symmetrical_stripline.Ex.bin.test [new file with mode: 0755]
tests/1m-create_bmp_for_symmetrical_stripline.U.bin.test [new file with mode: 0755]
tests/1n-create_bmp_for_symmetrical_stripline.V.bin.test [new file with mode: 0755]
tests/2a-create_bmp_for_rect_in_rect.bmp.test [new file with mode: 0755]
tests/2b-create_bmp_for_rect_in_rect.txt.test [new file with mode: 0755]
tests/2c-create_bmp_for_rect_in_rect.E.bmp.test [new file with mode: 0755]
tests/2d-create_bmp_for_rect_in_rect.Er.bmp.test [new file with mode: 0755]
tests/2e-create_bmp_for_rect_in_rect.Ey.bmp.test [new file with mode: 0755]
tests/2f-create_bmp_for_rect_in_rect.Ex.bmp.test [new file with mode: 0755]
tests/2g-create_bmp_for_rect_in_rect.U.bmp.test [new file with mode: 0755]
tests/2h-create_bmp_for_rect_in_rect.V.bmp.test [new file with mode: 0755]
tests/3a-create_bmp_for_rect_cen_in_rect.bmp.test [new file with mode: 0755]
tests/3b-create_bmp_for_rect_cen_in_rect.txt.test [new file with mode: 0755]
tests/4a-create_bmp_for_microstrip_coupler.test [new file with mode: 0755]
tests/5a-check-s_and_-S_options_of_atlc-2conductor.test [new file with mode: 0755]
tests/5b-check-s_and_-S_options_of_atlc-3conductor.test [new file with mode: 0755]
tests/5c-check_numeric_data_from_atlc-2conductor.test [new file with mode: 0755]
tests/6a-create_and_check_25ohm_201Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6b-create_25ohm_401Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6c-create_25ohm_801Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6d-create_and_check_50ohm_201Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6e-create_50ohm_401Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6f-create_50ohm_801Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6g-create_100ohm_201Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6h-create_100ohm_401Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6i-create_100ohm_801Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6j-create_200ohm_201Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6k-create_200ohm_401Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6l-create_200ohm_801Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/6m-create_400ohm_1551Pixel_high_symmetrical_stripline.test [new file with mode: 0755]
tests/7a-create_bmp_for_stripline_coupler.bmp.test [new file with mode: 0755]
tests/7b-create_bmp_for_stripline_coupler.txt.test [new file with mode: 0755]
tests/7c-create_bmp_for_stripline_coupler.Ex.odd.bmp.test [new file with mode: 0755]
tests/7d-create_bmp_for_stripline_coupler.Ey.odd.bmp.test [new file with mode: 0755]
tests/7e-create_bmp_for_stripline_coupler.E.odd.bmp.test [new file with mode: 0755]
tests/7f-create_bmp_for_stripline_coupler.V.odd.bmp.test [new file with mode: 0755]
tests/7g-create_bmp_for_stripline_coupler.U.odd.bmp.test [new file with mode: 0755]
tests/7h-create_bmp_for_stripline_coupler.Er.bmp.test [new file with mode: 0755]
tests/7i-create_bmp_for_stripline_coupler.U.even.bmp.test [new file with mode: 0755]
tests/7j-create_bmp_for_stripline_coupler.Ex.even.bmp.test [new file with mode: 0755]
tests/7k-create_bmp_for_stripline_coupler.Ey.even.bmp.test [new file with mode: 0755]
tests/7l-create_bmp_for_stripline_coupler.E.even.bmp.test [new file with mode: 0755]
tests/7m-create_bmp_for_stripline_coupler.V.even.bmp.test [new file with mode: 0755]
tests/7n-create_bmp_for_stripline_coupler.bmp.pre-atlc.txt.test [new file with mode: 0755]
tests/8a-design_coupler.bmp.test [new file with mode: 0755]
tests/9a-create-25-Ohm-201b.bmp.test [new file with mode: 0755]
tests/9b-create-25-Ohm-401b.bmp.test [new file with mode: 0755]
tests/9c-create-50-Ohm-201b.bmp.test [new file with mode: 0755]
tests/9d-create-50-Ohm-401b.bmp.test [new file with mode: 0755]
tests/9e-create-100-Ohm-201b.bmp.test [new file with mode: 0755]
tests/9f-create-100-Ohm-401b.bmp.test [new file with mode: 0755]
tests/9g-create-200-Ohm-201b.bmp.test [new file with mode: 0755]
tests/9h-create-200-Ohm-401b.bmp.test [new file with mode: 0755]
tests/9i-create-200-Ohm-801b.bmp.test [new file with mode: 0755]
tests/MPI_16a_PI.c [new file with mode: 0644]
tests/Makefile.am [new file with mode: 0644]
tests/Makefile.in [new file with mode: 0644]
tests/README [new file with mode: 0644]
tests/Test_threads_a.c [new file with mode: 0644]
tests/Test_threads_b.c [new file with mode: 0644]
tests/WARNING--The-next-test+benchmark-takes-a-long-while.test [new file with mode: 0755]
tests/benchmark.c [new file with mode: 0644]
tests/benchmark.test [new file with mode: 0755]
tests/defs.h [new file with mode: 0644]
tests/find-zero-length.test [new file with mode: 0755]
tests/sysdata.c [new file with mode: 0644]
tests/try_aix.c [new file with mode: 0644]
tests/try_bsd.c [new file with mode: 0644]
tests/try_hpux.c [new file with mode: 0644]
tests/try_irix.c [new file with mode: 0644]
tests/try_linux.c [new file with mode: 0644]
tests/try_portable.c [new file with mode: 0644]
tests/try_solaris.c [new file with mode: 0644]
tests/try_tru64.c [new file with mode: 0644]
tests/try_unicos.c [new file with mode: 0644]
tools/Makefile.am [new file with mode: 0644]
tools/Makefile.in [new file with mode: 0644]
tools/README [new file with mode: 0644]
tools/remoterun [new file with mode: 0644]
tools/src/Makefile.am [new file with mode: 0644]
tools/src/Makefile.in [new file with mode: 0644]
tools/src/README [new file with mode: 0644]
tools/src/coax.c [new file with mode: 0644]
tools/src/dualcoax.c [new file with mode: 0644]
tools/src/get_options.c [new file with mode: 0644]
tools/src/locatediff.c [new file with mode: 0644]
tools/src/md5.h [new file with mode: 0644]
tools/src/myfilelength.c [new file with mode: 0644]
tools/src/mymd5sum.c [new file with mode: 0644]
tools/src/usage_coax.c [new file with mode: 0644]
tools/stoptests [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..92fa75d
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,2 @@
+atlc is written by and supported by Dr. David Kirkby, Ph.D. G8WRB.
+e-mail drkirkby@ntlworld.com
diff --git a/BUGS b/BUGS
new file mode 100644 (file)
index 0000000..5aab23e
--- /dev/null
+++ b/BUGS
@@ -0,0 +1,31 @@
+  1 There was a theoretical risk of an error occurring when running
+    atlc with multi-threaded coded on multi-processor systems. As
+    such, the option to configure atlc for multiple processors has 
+    been disabled. This will be re-enabled asap - by Feb 2004
+  
+  2 Not every version of make will build atlc. GNU make will do, which
+    is of course free. Sun's make will NOT, neighter will that from  
+    SGI under IRIX. There's not much I can do about this, since the 
+    problem is with automake. But GNU make **will** build atlc okay. 
+
+  3 Data on machines is only gathered properly on a few machines (Solaris,
+     Tru64, AIX IRIX and HP-UX). On Linux and  *BSD, it is next to useless. 
+
+  4 Sometimes the CVS is not as current as it should be. 
+
+  5.The lack of any way of changing brightness of images without a 
+    cpu-intensive re-run. 
+
+  6.There are no manual pages for several programs 
+
+  7.HTML versions of the man pages have diagrams that are completely stupid. #
+    This is a problem with the program 'man2html' I'm using - I think so anyway. 
+
+  8 Sometimes documention in one file is out of date with documention in
+    another. The web pages might not agree with those in docs/html-docs.
+    or README's contradict each other. Where possible I've tried to   
+    remember to update the ChangeLog and add a date to a file, but this
+    does not always happen I'm afraid. 
+
+
+Dr. David Kirkby,  December 7th 2003 Re: atlc-4.6.0 
diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..60549be
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is 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.
+
+    This program 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 this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..96ef6ac
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,2000 @@
+****** Version 4.6.0 Realeased ??? November 2003  
+top level directory:
+
+atlc/update 
+has been modified so it updates the NEWS.html file. 
+
+atlc/examples directory.
+Have removed the following files from the distribution:
+atlc/examples/100-Ohm-201b.bmp \
+atlc/examples/100-Ohm-401b.bmp \
+atlc/examples/200-Ohm-201b.E.bmp \
+atlc/examples/200-Ohm-201b.Er.bmp \
+atlc/examples/200-Ohm-201b.Ex.bmp \
+atlc/examples/200-Ohm-201b.Ey.bmp \
+atlc/examples/200-Ohm-201b.U.bmp \
+atlc/examples/200-Ohm-201b.V.bmp \
+atlc/examples/200-Ohm-201b.bmp \
+atlc/examples/200-Ohm-401b.bmp \
+atlc/examples/200-Ohm-801b.bmp \
+atlc/examples/25-Ohm-201b.bmp \
+atlc/examples/25-Ohm-401b.bmp \
+atlc/examples/25-Ohm-401h.bmp \
+atlc/examples/25-Ohm-801h.bmp \
+atlc/examples/50-Ohm-201h.bmp \
+atlc/examples/50-Ohm-401h.bmp 
+
+I'm not sure they were that usful, given there are plenty of 
+files like 50ohm-201h.bmp etc. 
+
+Remove atlc/examples/13inner_22outer_coax.bmp.txt too, as there was
+no 13inner_22outer_coax.bmp to match up with it. 
+
+atlc/docs/html-docs/accuracy.html 
+Completed updated all results to those obtained with ver 4.6.0
+Put into 4 sections detailing:   
+Section 1. Two conductor Transmission Lines with a Uniform Dielectric
+Section 2. Two-conductor Transmission Lines with a non-uniform dielectric
+Section 3. Accuracy of atlc with coupled lines
+Section 4. Conclusions about the accuracy of atlc
+
+Added a completly new section:
+2.1 Comparision of atlc and a dual dielectric coaxial cable
+
+
+
+atlc/src/non_gui/create_bmp_for_symmetrical_stripline.c
+This no longer computes the theretical impedance if the 
+structure is too narrow. Only computes if the -v option
+is added. 
+
+atlc/src/create_bmp_for_circ_in_circ.c
+Will now print sensible error messages if the inner conductor is too big
+or if the inner and outer will touch since the offset is too large
+
+atlc/src/set_oddity_value.c
+This sets a global array unsigned char **oddity; to a value describing
+if the pixel is matallic, has conductors to the right/left etc.
+cell_type was not adequate for this, since once you had set one cell,
+you did not know the result for those around it. #
+
+atlc/src/non_gui/print_data_for_directional_couplers.c
+No longer fails to print intermediate values of impedance if 
+verbose is >2 as it did before. 
+
+atlc/src/non_gui/write_fields_for_two_conductor_lines.c
+This can now write the oddity values from set_oddity_value()
+to a bitmap file, although this has been commented out by default. 
+
+atlc/src/
+A huge number of changes were made to this release. Not every
+one is fully documented, as to do so I would have spent as long
+documenting the code as writing it. 
+****** Version 4.5.1 Released 16th October 2003   ****
+A problem with multiple dielectrics has been discoved, and aslo with 
+multi-threaded operating. As such, both have been disabled. This affects
+many files. 
+
+configure.ac
+changed version to 4.5.1
+No longer accepts the option --with-threads, since I have some
+suspicions about threaded code. 
+
+docs/html-docs/examples.html
+Removed the example of multi-dielectrics, as that is not working
+properly now. 
+
+docs/html-docs/FAQ.html
+Changed the answer to 'No' about the qestion of multi-dielectrics
+
+docs/html-docs/multi-processing.html
+Mentioned this has been disabled. 
+
+docs/html-docs/accuracy.html
+Pointed out multiple dielectrics are not working properly
+
+src/non_gui/definitions.h
+Removed two duplicate function definitions for 
+free_cmatrix and ustring, whilst removing the #define
+around the #ifdef ENABLE_MPI so there is only one  
+definition of do_columns now. 
+
+Added the variable 'size' to several functions - 
+do_fd_calculation.c, write_fields_for_directional_couplers.c,
+write_fields_for_two_conductor_lines.c
+
+
+src/non_gui/do_fd_calculation.c
+Added variable 'size' as a command line argument to stop
+it needing to be declared global. 
+
+src/non_gui/do_fd_calculation.c
+Added variable 'size' as a command line argument to stop
+it needing to be declared global. 
+
+src/non_gui/write_fields_for_two_conductor_lines.c
+Added variable 'size' as a command line argument to stop
+it needing to be declared global. 
+
+src/non_gui/atlc.c
+size_t size is no longer global but local to main. This would at first
+checking appear to stop the issue with all (which was one or two) 
+test failures on AIX 5.2. Later I found this is not so and there
+is a problem in the multi-threaded code for atlc.
+
+tests/WARNING--The-next-test+benchmark-takes-a-long-while.test
+return 0 (pass), as previously it did multi-dielectrics. 
+
+tests/Makefile.am
+Removed 2[b-h]* from the tests. 2a-create_bmp_for_rect_in_rect.bmp.test
+is still used. 
+
+
+****** Version 4.5.0 Released 13th September 2003 ****
+
+The ChangeLog shows version 4.5.0 being released on
+the 13th September, when it fact it was the 11th of 
+October. 
+
+WRONG XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+****** Version 4.5.0 Released 13th September 2003 ****
+WRONG XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+NEWS
+mention lattest news - mainly correction of a few errors
+and the fact its no longer necessary to link in gsl. 
+
+remoterun 
+changed, as the old version was accidently deleted and 
+I could not be bothered to read from tape. Might not be
+100% okay, but it is not needed for use of atlc - only
+during testing. 
+
+'update' added to CVS tree
+Added a file called 'update' that generates docs/html-docs/*.1.html
+and docs/html-docs/BUGS.html This uses header and footer for the 
+generation of docs/html-docs/BUGS.html
+
+'header' and 'footer'' added to CVS tree
+used with 'update' to generate docs/html-docs/BUGS.html
+
+README.checks
+Removed, as information is out of date. 
+
+tests/find-zero-length.test
+Added a file to check for the existance on zero length
+files in the source distribution. 
+
+configure.ac
+Incremented version to 4.5.0
+Removed tests for gsl and all that involved. 
+Removed tets for the sizeof short, int and long
+as they are not needed. 
+
+man/man1/create_bmp_for_stripline_coupler.1
+changed email address to make it less easy for spammers to grab. 
+
+man/man1/man-pages.html 
+Added a new man page for design_coupler.1.html
+
+src/calculate_Zodd_and_Zeven.c:
+Added #include gsl_types.h and #include "gsl_definitions.h"
+
+src/non_gui/usage_create_bmp_for_symmetrical_stripline
+made it print the fact the -v option computes the 
+theoeretical impedance. Before the binary did it, but
+the usage message did not say so. 
+
+docs/html-docs/jpgs/home-email.jpg 
+Added new file with my email address, that is not easy to 
+read automatically. 
+
+Removed all occurance of my email address from the html
+files, so that those published on the web are less likely
+to attract spam. 
+
+src/ 
+All the following had my email address removed
+usage_create_bmp_for_stripline_coupler.c 
+usage_create_bmp_for_rect_in_rect.c 
+usage_create_bmp_for_rect_in_circ.c
+usage_create_bmp_for_rect_cen_in_rect_coupler.c 
+usage_create_bmp_for_rect_cen_in_rect.c 
+usage_create_bmp_for_microstrip_coupler.c
+usage_create_bmp_for_circ_in_rect.c 
+usage_create_bmp_for_circ_in_circ.c 
+usage_atlc.c swap_conductor_voltages.c setup_arrays.c
+read_bitmap_file_headers.c
+print_data_for_two_conductor_lines.c
+print_data_for_directional_couplers.c
+print_copyright.c
+memory.c
+get_options.c
+get_file_pointer_with_right_filename.c
+get_Er1_and_Er2_colours.c
+finite_difference_single_threaded.c 
+finite_difference_multi_threaded.c
+finite_difference_mpi.c
+find_maximum_values.c
+find_energy_per_metre.c
+find_electric_fields.c
+fill_rect_in_rect.c
+fill_rect_in_circ.c
+fill_circ_in_circ.c
+exit_with_msg_and_exit_code.c
+do_fd_calculation.c
+create_bmp_for_rect_in_rect.c
+create_bmp_for_rect_in_circ.c
+create_bmp_for_rect_cen_in_rect_coupler.c
+
+tests/8a-design_coupler.bmp.test
+Removed the test for gsl library and so to exit with 77 if not present. 
+
+Added a second checksum:
+aebd9a6d1c1db548d39723edec454640
+that is acceptable, as this will be produced on 
+Windoze machines.
+
+tests/6e-create_50ohm_401Pixel_high_symmetrical_stripline.test
+
+tests/7n-create_bmp_for_stripline_coupler.bmp.pre-atlc.txt.test
+Removed the test for gsl library and so to exit with 77 if not present. 
+
+tests/10b-create-lots-of-examples-check-last-one.test
+Removed the test for gsl library and so to exit with 77 if not present. 
+
+tests/10a-create-lots-of-examples-check-last-one.test
+Removed the test for gsl library and so to exit with 77 if not present. 
+
+src/non_gui/gsl_sf_ellint_Kcomp.c
+Added new file that basically has the gsl_sf_ellint_Kcomp
+function for computing the elliptic integral. This requires
+several functions for it to opperate, as it calls several 
+functions. These are all in the same file gsl_sf_ellint_Kcomp.c
+
+
+src/non_gui/definitions.h
+Added quite a few function definitions, #defines etc to allow
+the gsl_sf_ellint_Kcomp function to work. It needed several
+other functions added. 
+
+
+****** Version 4.4.4 Released 13th September 2003 ****
+configure.ac
+Version incremented to 4.4.4
+
+NEWS
+mention made of the fact the sources have been
+changed primarily so it should build under Windoze.
+
+docs/html-docs/jpgs/Makefile.am
+added bluefish.jpg properly to the file - it was 
+missing partically before, so bluefish.jpg was
+not included in the distribution. 
+
+docs/html-docs/create_bmp_for_symmetrical_stripline.1.html
+Autogenerated, reflecting changes in man page, which
+was a change in the warning information about the 
+inability of man pages to fully describe the atlc
+project. 
+
+docs/html-docs/create_bmp_for_symmetrical_stripline.1.html
+Autogenerated, reflecting changes in man page, which
+was a change in the warning information about the 
+inability of man pages to fully describe the atlc
+project. 
+
+man/man1/sysdata.1
+Removed text saying man page is not a full set of 
+docs, since in the case of the simple sysdata.1, the
+man page adequately describes the function. This is 
+no so really with some of the other man pages, because
+your can't really describe fully how to use such   
+programs with man pages. 
+
+src/non_gui/create_bmp_for_rect_in_rect.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+src/non_gui/find_optimal_dimensions_for_microstrip_coupler.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+src/non_gui/create_bmp_for_symmetrical_stripline.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+src/non_gui/create_bmp_for_rect_in_circ.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+src/non_gui/create_bmp_for_rect_cen_in_rect_coupler.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+src/non_gui/create_bmp_for_rect_cen_in_rect.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+src/non_gui/create_bmp_for_microstrip_coupler.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+src/non_gui/create_bmp_for_circ_in_rect.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+tests/8a-design_coupler.bmp.test
+Changed so the temporary storage is no longer in /tmp
+but instead in $top_builddir/tmp/results. This should be 
+compatible with Windoze, but I don't know for sure if it is
+yet. I don't build Windoze binaries. 
+
+tools/src/mymd5sum.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+tools/src/myfilelength.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+tools/src/locatediff.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+tests/benchmark.c
+Changed fopen to open in binary mode, to make it work 
+under Windoze. 
+
+
+****** Version 4.4.3 Released 11th September 2003 ****
+
+Replace 'kb' and 'Mb' with 'kB and MB, as I was advised the lower
+case is used for bit and the upper case for byte. These required 
+changes in tests/benchmarks.test
+
+man/man1/sysdata.1
+Added a man page for the program sysdata in man/man1/sysdata.1
+This has about 11 examples, which are there more for my own use
+that anyones elses. When possible I'll try to expand the files
+that gather data about the hardware.
+
+man/man1/*.1
+Corrected many typo, spelling errors etc in all the man pages.
+more significantly, the 
+
+
+docs/html-docs/accuracy.html
+Corrected a few typos and made the page a bit clearer
+I hope. Any HTML that did not strictly follow the stanard has
+been corrected, so it should pass the test at 
+http://validator.w3.org/check/referer
+hence an W3C logo has been added at the bottom of the page.
+
+docs/html-docs/accuracy.html
+A bluefish logo has been added too.
+
+The spamtrap on the page has been changed a bit, which is a bit
+annoying as it is now visable. But the code was not strict 
+HTML before, so there were problems in making it valid 
+otherwise. 
+
+tests/Makefile.am
+References to the gsl library have been removed, so the 
+thread tests will pass if the gsl library is not present.
+This was changed just in case someone runs a binary 
+in pkgadd format on a Sun without having the gsl library
+installed. Some binaries will break, but Test_threads_a
+and Test_threads_b should now still pass, even if 
+the gsl library is not present. No functions from gsl
+are needed on these two files, so it was sensless linking
+them against the library. 
+
+tests/try_portable.c
+The code has been changed a bit so it should now (I hope)
+compile under Windoze too. Someone has done a Windoze port
+but found a bug in the code, which has been corrected. 
+
+tests/try_solaris.c
+Added code to make it cleaner and so no variables 
+get declared if not needed.
+
+****** Version 4.4.2 Released September 6th 2003 ****
+
+src/non_gui/readbin.c
+swapped the second (size) and third (number) arguments around
+on an fread, as were the wrong wary around - not that I think
+it will make any difference. 
+
+src/non_gui/atlc.c
+swapped the second (size) and third (number) arguments around
+on an fread, as were the wrong way around - not that I think
+it will make any difference. 
+
+src/non_gui/check_for_boundaries.c
+put a check in for j=0 which could cause a progrom on the 
+Digital UNIX (spe145.testdrive.compaq.com) system on 
+the HP testdrive site. A real bug found at least!!!!
+
+tests/try_bsd.c
+put some checks for NGROUPS, including a couple more 
+header files if NGROUPS is not defined. This causes a 
+problems on OpenBSD 3.2 for SPARC (my SS20), so was 
+fixed.
+
+
+tests/try_linux.c
+Added a call to get the number of CPUs. Appears not to be
+documented, so a bit risky and gives the number of processors
+configured, rather than online, but its is better than nothing. 
+
+****** Version 4.4.1 Released September 4th 2003 ****
+
+configure.ac
+Changed version to 4.4.1 
+Added sys/sysctl.h and sysctl as these are used on BSD try_bsd.c
+to gather information on a BSD UNIX system. 
+
+docs/html-docs/index2.html
+Changed a typo or two. Added an entry for Unixware, as someone emailed
+me to say iversion 4.0.0 works on UnixWare. 
+
+tools/src/locatediff.c
+Corrected an error so this now works. A change recently caused this to
+break. It now reads both files. 
+
+tests/try_irix.c
+Much improved, finds information about cache and main ram on IRIX now
+Also speed of CPU, and type of CPU and FPU, although the latter are not
+decoded into a sensible number like R10000. 
+
+tests/benchmark.test  
+information now prints the fact the IRIX information is good, not 
+poor as in prior versions. 
+
+THANKS 
+Added new testers and thanks the cray site's administrators. 
+
+Now informs the amount of RAM on Linux and BSD systems is a little
+larger than the value reported.
+
+tests/Makefile.am
+Added a new binary sysdata, which prints data in this format. 
+
+Hardware provider:    Sun_Microsystems
+Hardware platform:    SUNW,Ultra-80
+Machine:              sun4u
+Sysname:              SunOS
+Release:              5.9
+Version:              Generic_112233-06
+Nodename:             sparrow
+#CPUs supported:      4
+#CPUs online:         4
+CPU type:             sparcv9
+FPU type:             sparcv9
+Speed:                450 MHz
+RAM:                  4096 Mb
+L1 data cache         unknown kb
+L1 instruction cache: unknown kb
+L2 cache:             unknown kb
+
+src/non_gui/finite_difference_multi_threaded.c 
+removed the argument 'number_of_iterations' as not used
+
+src/non_gui/write_bitmap_out.c
+added checks for the return value of fwrite
+
+src/non_gui/write_fields_for_two_conductor_lines.c
+added checks for the return value of fwrite
+
+src/non_gui/memory.c
+removed all unneeded functions from this file
+
+src/non_gui/convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c
+removed extern variables Ers, colours and names, as these are defined
+in the header files definitions.h, Ers.h and Erdata.h
+
+src/non_gui/man_functions...
+Tidied up, to keep Sun's lint happier
+
+BUGS
+Removed bug about linking with old versions of gsl. 
+Corrected the fact hardware data is gathered on IRIX
+okay and its only Linux and BSD it fails on. 
+
+
+****** Version 4.4.0 Released August 30th 2003 ****
+BUGS 
+Added  0 - those I don't know about, 
+Added  3 - tools/src/locatediff don't work on AIX. 
+Added 11 - documentation gets out of date
+Added 12 - CVS sometimes get out of date  
+
+configure.ac
+Updated the version to 4.4.0, as there are some major(ish)
+changes to allow compilation on the Cray Y-MP EL, which
+previously atlc would not work on. 
+
+Added a test for the size of a short, since on a Cray Y-MP, an int is 8
+bytes, so this screwed up things in src/non_gui/definitons.h, as 
+it needed to define int32 as something. 
+
+Changed the default from not enabling hardware information to enabling it.
+It can be changed with --disable-hardware-info
+
+Added a test for _SC_CRAY_NCPU and _SC_CRAY_CPCYCLE, which will help
+debugging any problems. 
+
+Added check for sys/vid.h, which I'm hoping is just on IRIX. 
+
+NEWS
+mention atlc now runs on toys and supercomuters and the fact an option has 
+nw become the default. 
+
+README.hardware-info
+new file added, listing information about what hardware data is 
+gathered on what systems. 
+
+README.--enable-hardware-info
+removed, as the option no longer exists - it's the default. 
+
+INSTALL
+Changed install insturctions, as --enable-hardware-info is now the 
+default. 
+
+Makefile.am
+Added README.hardware-info removed README.--enable-hardware-info
+
+tests/Makefile.am
+Added test 5c-check_numeric_data_from_atlc-2conductor.test
+as well as try_irix.c and try_unicos.c
+tests/try_unicos.c
+Added a function try_unicos() to obtain data about the hardware of 
+a Cray supercomputer. 
+
+tests/try_linux.c
+Removed some variables that were now now longer needed and so generated
+a warning from the compiler. Variables were operating_systems, i, ret
+and one other I think. 
+
+tests/try_solaris.c
+Removed some variables that were now now longer needed and so generated
+a warning from the compiler. Variables were operating_systems, i, ret
+and one other I think. 
+
+tests/try_irix.c
+Added a file to find out information on the SGI running IRIX. 
+Currently little information is found. 
+
+tests/try_unicos.c
+Added a file to find out information on the Cray. 
+
+tests/Makefile.am
+Added entries for try_irix.c and try_unicos.c
+
+tests/benchmark.test
+Changed the wording about what data is collected on each system, as
+previously it stated only Solaris was reasonably well supported, but
+that is not true now, so it has been changed. 
+
+tests/1g-create_bmp_for_symmetrical_stripline.U.bmp.test
+Added the md5 checksum 2a9644a0206c2314006e298f07aae233 as being okay,
+since this is generated on the Cray Y-MP and differs by only a single
+pixel and a single gray-level, from that on the Sun, suggesting 
+its just rounding errors. (I don't think the Cray implements IEEE maths
+anyway). 
+tests/7g-create_bmp_for_stripline_coupler.U.odd.bmp.test
+Added a new checksum 09f68e1466d68bf8a03e1f90eff411bb which
+is produced on a Cray. 
+
+src/non_gui/write_bitmap_out.c
+MAJOR change, so this now writes data out in ONE consistant manner
+that should be very portable. Note this is used only for programs 
+like create_bmp_for_*, and it not used by 'atlc' itself. 
+
+src/non_gui/write_fields_for_two_conductor_lines.c
+changed the name 
+extern bitmap_file_buffer to 
+bmp_buff as the latter was
+shorter and space was at a premium, to stop one needing huge long
+lines everywhere. 
+
+src/non_gui/read_bitmap_file_headers.c
+MAJOR change, so this now writes data out in ONE consistant manner
+that should be very portable. This is used only for programs 
+like create_bmp_for_*, AND 'atlc' itself. 
+
+src/non_gui/byteswap.c
+Removed all functions except byteswap_doubles. 
+
+src/non_gui/definitions.h
+Added definition for try_unicos.c
+Removed all entries for byteswap*, except
+byteswap_doubles, which is used by readbin.c
+Changed definitons of Bitmap_Head_Struct + Bitmap_File_Head_Struct
+as these now use just ints for portability. 
+
+src/non_gui/Makefile.am
+Removed byteswap.c from all binaries except readbin
+
+
+****** Version 4.3.8 Released August 21sth 2003 ****
+NOTE THE CHANGELOG FOR VERSION 4.3.8 SHOWS 4.3.7 AT THE TOP. THIS WAS AN
+ERROR. THE DETAILS ARE VALID FOR 4.3.8. 
+configure.ac
+Added the lines
+AC_CHECK_DECL(_SC_PHYS_PAGES,,)
+AC_CHECK_DECL(_SC_PAGESIZE,,)
+to enable me to check if _SC_PHYS_PAGES and _SC_PAGESIZE
+are defined for debugging purposes only. No use of them is 
+made, but it help to determine why code might not work later
+on, if its known whether these are defined or not. Problems
+reported by someone indicate problems, which would be easier
+to track with this option enabled. 
+Added a check for errno.h, as it was needed on Suse. Prior to this
+many files had #ifdef HAVE_ERRNO_H, but obviously the inclusion of
+errno.h was not critical on those systems. On Suse it was. 
+
+tests/try_portable.c
+check the return value or uname, to see if it fails or 
+not. If it does fail, print message and error if errno
+is defined. Replaces any spaces with underscores in the 
+ouputs from any part of the utsname structure.
+
+tests/try_linux.c
+Removed any code to check for systems parameters using 
+uname- it should all be found in try_portable.c, which
+is called before any other try_* functions. 
+
+****** Version 4.3.7 Released August 6th 2003  ********
+
+README.--enable-hardware-info
+New file added, to give information on what data is obtained on what
+hardware platform. 
+
+BUGS
+Added a problem with test failures on IBM's AIX with thread support and
+removed one about teston now working on the local host, as it now does.
+There is a html version of the file in docs/html-docs/BUGS, which should
+really be renamed, or some automated way of generating text from HTML,
+or perhaps just text and a link. No sure how best to do this really, but
+it is not entirely satisfactory. 
+
+configure.ac
+removal of code assocatiated with MPI
+
+teston
+change an example, so it shows how to configure with the
+--enable-hardware-info rather than the --with--mpi, as the former is a
+new option and the latter is now removed. 
+
+README.threads
+More updated information on what atlc has been tested on, and clearer
+infomration on using it. 
+
+README.help
+mention I'd like information on building on MP machines others than for
+AIX, IRIX, Redhat Linux and Solaris, rather than just Solaris, as the
+former have all been tested
+
+README.checks
+Major updates to this, as the data in the file was based on an old
+version of atlc, that failed numerous tests when multi-threaded, due to
+the differing algorithms. Some data on machines has been removed, as it
+some of the machines I no longer have in a running state. 
+
+NEWS
+
+Most other changes are just to keep the compiler a little happier in
+src/non_gui, but some more significant changes in tests subdirectory. 
+
+src/non_gui/readbin
+Forced length to be case to size_t, to make gcc -Wconversion happier.
+
+src/non_gui/design_coupler.c
+changed 10 to 10.0 to make a double and so keep the compiler happier
+when calling pow
+
+src/non_gui/create_bmp_for_stripline_coupler.c
+extra casts and general tidying up, to make compiler give less warnings.
+
+src/non_gui/write_bitmap_out.c
+cast to (size_t) to keep compiler happier. 
+
+src/non_gui/memory.c
+included sys/types.h  and remote the #define of size_t to an int, again
+to keep the compiler happier. 
+
+/src/non_gui/atlc.c
+cast numbers to long, to be consistant with the declaration of ustring()
+and free_ustring().
+
+src/non_gui/convert_create_bmp_for_coupled_microstrip_dimensions_to_integers.c
+changing numbers in the pow(x,y) to force them to be doubles, rather
+than ints to keep the compiler happier. 
+
+src/non_gui/convert_create_bmp_for_circ_in_circ_dimensions_to_integers.c
+changing numbers in the pow(x,y) to force them to be doubles, rather
+than ints to keep the compiler happier. 
+
+src/non_gui/calculate_colour_data.c
+changed type of image_type from char to int. Not sure why this was done,
+but probably to keep compiler happier. 
+
+src/non_gui/definitions.h
+changes to enable strong type-checking in C code. 
+
+
+tests/try_aix.c
+Added string.h to the list of include files.
+Removed need for type long long. 
+
+tests/try_hpux.c
+Removed need for type long long. 
+
+tests/try_solaris.c
+Removed need for type long long. 
+
+tests/try_linux.c
+Added file to get infomation on Linux system, but so far it 
+does not get that much info - only uname stuff and the ram
+in Mb. 
+
+tests/try_tru64.c
+Changed to avoid a compiler warning about not returning anything 
+from the file, despite the fact it is declared to return an 
+integer. 
+Removed need for type long long. 
+
+tests/benchmark.c
+no longer declares opperating_system, which was an integer that was
+
+tools/src/locatediff.c
+forcing variables to be of size (size_t), to reduce compiler warnings. 
+assigned a value, but never used" benchmark.c
+
+tests/benchmark.test
+now writes to text and html files more consistantly.
+
+tests/Makefile.am
+Addes teh file try_linux.c and removes @MPILIBS@, as MPI now removed
+from code. 
+
+docs/html-docs/accuracy.html
+iremoval of incorrect statement that *ohm-*.bmp were not packaged, but
+built. They are now packaged for my convenience. Also mention of make
+check
+
+docs/html-docs/building.html
+several small changes, but main one being removal of any data about MPI
+
+docs/html-docs/make-check.html
+added new file, describing the testing process. 
+
+
+****** Version 4.3.6 Released August 3rd 2003  ********
+The main change is to configure.ac, to remove an unwanted
+(and useless) --with-extra-benchmark-data option.
+
+Many sources have been tidied up, to make gcc -Wconversion
+happy. 
+
+docs/html-docs/accuracy.html
+Removed errors, which incorrectly stated that the lager bitmaps were
+not distributed - they are now. 
+
+
+docs/html-docs/make-check.html.html
+Added a new file, describing how the automatic testing of atlc
+is performed. 
+
+
+****** Version 4.3.5 Released July 26th 2003  ********
+
+src/non_gui/atlc.c
+Changed number_of_workers from static to global, as 
+it did not compile properly. 
+
+tests/benchmark.test
+changed the benchmark so speedup is printed properly
+(T_sequential/T_parallel) and not the other way around. 
+
+changed at t1 to a t2 on the line that is printed so
+the code works okay when compiled multi-threaded. 
+
+changed the conditions under which the efficiency was
+computed so that it works okay when the number of cpus
+is unknown. It no longer prints 'Inf', but instead 'unknown'
+
+
+tests/benchmark.c
+Now calls an AIX specific routine, which does nothing!
+
+tests/try_tru64.c
+Much improved. Gets CPU time now, along with ram and cpu speed.
+
+tests/try_hpux.c
+Minor improvements, works pretty good now. 
+
+****** Version 4.3.4 Never released  ********
+
+README.aix 
+Removed. Works fine under AIX now. Two issues were 
+resolved:
+use of char when I needed signed char. Rounding error
+caused one pixel to change in colour by one graylevel
+
+src/non_gui
+Changed many files in src/non_gui that referenced
+char **cell_type; 
+I was not aware declared in this way, there is no
+standard for whether cell_type consists of signed or 
+unsigned characters. Hence it was not portable. This
+caused a very large number of failures on AIX. This 
+has now been corrected. One failure remains (see above).
+
+Added a file src/non_gui/memory.c to include funtions
+scmatrix and free scharmatrix, which  allocate and 
+deallocate matrixes with signed characters. 
+
+src/non_Gui/Makefile.am
+Removed unnecessary entries of GSL_LIBS, which causes
+the SGI linker to generate a warning, that the gsl
+library was not used to resolve any functions. 
+
+
+
+
+****** Version 4.3.3 Released July 17th 2003  ********
+README.aix 
+Added a new file, highlighting problems on AIX.
+
+configure.ac 
+Added a --enable-debug option, although little use is made
+of this in the code. 
+
+Added --with-extra-benchmark-data which should be an optional
+featuure, not an optional package as the configure script says
+it is. This needs correcting at a later date. 
+
+tests/benchmark.c
+changed the file so that the header file sys/processor.h only
+got included if the file existed and processor_info() was 
+defined
+
+#ifdef HAVE_PROCESSOR_INFO /* function processor_info() is in Solaris */
+#ifdef HAVE_SYS_PROCESSOR_H /* and in OSX */
+#include <sys/processor.h> /* But not on Tru64 */
+#endif /* <sys/processor.h> does not exist on OSX */
+#endif
+
+and made sure that areas of the code that needed aspects of
+processor_info always had this header file. The reason is that OSX seems
+to have the fuction processor_info(), but does not have the header file
+and don't seem to have it defined anywhere. 
+
+Made tests/benchmark.c write benchmark results to tests.log
+
+tests/benchmark.c now gathers information about the processors
+on an HP-UX box. 
+
+src/non_gui/Makefile.am
+Added function error_check()
+
+src/non_gui/reaadbin.c
+Changed an fopen(,"r") to fopen(,"rb"); so it works on
+Windoze based systems. 
+
+docs/html-docs
+BUGS - removed and replaced by docs/html-docs/BUGS.html
+
+****** Version 4.3.2 Released June 12th 2003  ********
+
+Top level
+
+testson. 
+Added a new file 'teston' which allows for rapid testing 
+on a number of remote machines. Developers might find this
+of general use - it is not specific to atlc. 
+
+README
+Correected a couple of typos. Added 'tests' to the list of
+directories, as that was missing. Also tools and tools/src.
+
+definitions.h
+Remoted a few lines which were commented out
+Put void as a function argument - ie foo(void) instead of foo();
+
+
+
+tests subdirectrory.
+
+tests/benchmark.c 
+This should not be able to obtain the number of cpus on a wider range of
+machines, and get the cpu speed on at least some Alpha systems. 
+
+Should be able to determine the RAM on Solaris and Tru64 UNIX.
+
+tests/benchmark.tests
+Supplied with the new information from tests/benchmark.c
+this should now display more sensible information. 
+
+****** Version 4.3.1 Released June 7th 2003  ********
+Unfortunately, the ChangeLog for 4.3.1 was never updated. 
+
+
+****** Version 4.3.0 Released April 5th 2003  ********
+
+Top level directory
+
+Added a new directory 'm4' to hold autoconf macros.
+Moved the top level autoconf macros to 'm4'
+
+Added file 'benchmark' to run a test. It takes 
+about 1:17 on Ultra 80 with no thread support. 
+
+ChangeLog
+Updated the ChangeLog of course!!
+
+configure.in changed to configure.ac
+Renamed configure.in to configure.ac, as this is now the preferable
+name for the old configure.in
+Significan chanes made to this. Now there is an m4 macro to check for
+gsl library and the optimal way to link for threads and the optimal 
+way to link for MPI. 
+Now accepts gsl version of 0.8 and above. It works on 0.8 but not 0.5. I
+don't quite know where the border line lines, but requesting 0.8 dones
+not seem unreasonable.
+
+Added a check for automake 2.57 or above. 
+
+Replaced 'dnl' witrh '#' for a comment.
+
+Added a macro gsl.m4 
+http://www.ugcs.caltech.edu/info/gsl/usage_4.html
+to check for a sepcific version of gsl and to add
+entries on CFLAGS and LD_FLAGS
+
+Directory atlc/src/no_gui
+atlc/src/no_gui/usage_atlc.c
+Removed references to WITH-MP and replaced with ENABLE-POSIX-THREADS
+as this was a bug. Now changed code so that if the -t option is
+disabled, the code prints the reason (Windoze or not configured
+with --with-threads). Previously it gave two possible reasons.
+
+
+atlc/src/no_gui/atlc.c
+removed thr_setconcurrancy and replaced with pthread_setconcurrancy
+as this is portable, whereas the other is Solaris specific. 
+
+atlc/src/do_fd_calculation.c
+This now calls function finite_difference_single_threaded or
+finite_difference_multi_threaded, depending on how the software is
+configured and the presence of -t0 option to atlc. 
+
+atlc/src/non_gui/finite_difference_multi_threaded.c
+The name of the function has been changed from finite_difference to
+finite_difference_multi_threaded - no longer are there two functions
+with the same name. The correct one function is called from
+do_fd_calculation.c, depending on whether the software is configured
+with threads or whether the user has elected to run a single threaded
+algorithm on a multi-threaded system, by passing the option -t0 to atlc,
+which indicates it will use the single threaded algorithm. 
+
+Changed the algorithm considerably. This has several advantages over the
+old one.
+a) The algorithm should be suitable with minor modification for MPI use.
+b) The code now produces exactly the same results whether run for single
+or multi-threaded. finite_difference_single_threaded.c needed to be
+changed to enable this.
+d) A barrier is now used for syncronisation. 
+This algorithm is apparently not very cache friendly, so it could do
+with some teaking, but at least its a decent starting point, producing
+the same data from single threaded or multi-threaded use. 
+
+atlc/src/non_gui/do_fd_calculation.c
+This now calls one of two functions.
+
+a) Code is now inline, rather than a function call.
+Directory atlc/tools/src:
+
+atlc/tools/src/Makefile.am
+Change bin_PROGRAM to noinst_PROGRAMS so that the programs
+used only for testing are not installed. They serve no useful
+function apart from when running the tests in atlc/tests.
+
+atlc/tools/src/memory.c
+Removed 'memalign' since it seems to be in some libraries, but with
+no header files. Also, there seems to be POSIX specific versions of 
+it and finally, the compilers will force this with the right
+switches. Hence overall, it seems more hassle than its worth to 
+have 'memalihn' anywhere. For this reason, the check was removed
+from configure.ac too. 
+
+src/gui/Makefile.am
+Commented out most of the things, so a C++ compiler is not needed. The 
+# files in this directory servered no useful purpose, but the icons at 
+# least might be useful. Whether or not a GUI will be added is anyone's
+# guess. 
+
+MPI code has been almost fully removed, to start this from scratch again.
+
+****** Version 4.2.12 Released 30/3/2003  ********
+
+Top level:
+renamed configure.in to configure.ac, as I gather this is now the 
+prefereed name for the file. 
+
+****** Version 4.2.11 Released 30/3/2003  ********
+Many many changes!! Not all are documented!
+Started to the use autoconf macro acx_pthread.m4 to configure POSIx
+threads properly. 
+
+Implemented an md5 checksum program for testing checksums, as this is
+very accurate. The one I was using (a hacked 'sum' command) is not that
+good and so could miss a change in a file quite easily. 
+
+Spent a lot of time on the test routines. These now always pass and
+will work with a VPATH build too. 'make discheck' works fine now.  
+
+Removed several bugs from the function 'do_fd_calculation' so it now
+does not cause any floating point exceptions cc is configured to not
+implement the IEEE standard. 
+
+Put new algorithms for finding the electric field into find_electric_fields.c,
+but they seem less accurate than the old versions, so these are not used for 
+now at least. 
+
+Change from 'char *foo' to 'const char *foo' in many files, as this
+keeps Sun's compiler a bit happier. Note the Sun compiler (Sun WorkShop
+6 update 2 C 5.3 2001/05/15) still moans about a lot of things that gcc
+thinks is fine. 
+
+Added the following files that were ommited when put into CVS
+
+**top level directory changes made by drkirkby **
+gtk.m4
+depcomp
+src/non_gui/output_from_design_coupler-Sun-Ultra-80.txt
+src/non_gui/Makefile.am
+
+removed a double entry for the header file definitions.h
+in create_bmp_for_stripline_coupler_SOURCES.
+Added a new binary create_bmp_for_rect_cen_in_rect_coupler
+
+
+Makefile.am 
+Remmoved entry for README.alpha. It's contents were out of date but we might 
+want to add a file with the same name later. Who knows?
+
+configure.in 
+Added a line to check for the mpi.h header file, immaterial of whether
+or not the user request MPI support. This will aid debugging. 
+Changed the message about being unable to build 'make_coupler' to
+'design_coupler' since the binary had been renamed.
+
+configure  
+Autogenerated file, needed updating due to change in configure.in
+with reguare to MPI support (see entry for configure.in above.)
+
+**man directory - changed made by drkirkby**
+Renamed many files to take account of the new binary files names. Hence
+they all needed updating. A new man page for design_coupler has 
+been written. Currently there are the following man pages in
+man/man1
+atlc.1
+create_bmp_for_circ_in_circ.1
+create_bmp_for_circ_in_rect.1
+create_bmp_for_microstrip_coupler.1
+create_bmp_for_rect_cen_in_rect.1
+create_bmp_for_rect_cen_in_rect_coupler.1
+create_bmp_for_rect_in_circ.1
+create_bmp_for_rect_in_rect.1
+create_bmp_for_stripline_coupler.1
+create_bmp_for_symmetrical_stripline.1
+design_coupler.1
+find_optimal_dimensions_for_microstrip_coupler.1
+readbin.1
+
+src/non_gui
+usage_create_bmp_for_symmetrical_stripline.c
+corrected a simple spelling error
+
+renamed error_and_exit() to exit_with_msg_and_error_code()
+and are in the process of changing every command to exit
+with that, rather than with exit().     
+
+check_parameters_of_create_bmp_for_microstrip_coupler.c
+Added better error checking, as the orginal code just did one silly 
+check. The improved error checking was done to try to find a 
+reason there are problems on a Dec Alpha running Linux and gcc-2.95.4
+
+do_fd_calculation.c
+changed (on a termporary basis) ITERATIONS from 100 to 10
+Added code so that with -vvvv we can see how many iterations were used
+
+calculate_Zodd_and_Zeven.c
+Added code to check for both the gsl libary AND
+gsl header filess before considering gsl proplerly
+present. A bug was noticed when using Sun's compiler whereby
+the gsl library was found in /usr/local/lib, but the gsl
+header files, which are in /usr/local/include/gsl were not
+found. 
+
+print_data_for_two_conductor_lines.c
+Added option to print data to high-precision
+
+
+Added file convert_doubles_to_integers.c although 
+at present this is not working as planned. It is not
+linked in with any code at present. 
+
+usage_atlc.c no longer exits with 0, but
+returns to the calling routine
+
+atlc.c 
+Now returns OKAY or 
+PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS
+depending on how it was called. 
+Add commments/changes to why the more logical 
+fread was not used
+changed type of cell_type from int to char to save
+ram. 
+
+All files with symmmetrical remaned to 
+symmetrical (not the 3 m's beforehand) 
+
+removed the following files, since they were renamed
+to other file names. 
+convert_circ_in_rect_dimensions_to_integers.c
+convert_circ_in_rect_dimensions_to_integers.c
+
+All files with the name programme have had this changed
+to program. 
+
+create_bmp_for_stripline_coupler.c 
+now the verbose level is working properly
+
+exit_codes.h 
+Added numerous new entries
+
+design_coupler.c 
+Removed the -Q option for very quite and 
+implemented it so -q is quite and -qq is quiter
+still. 
+
+check_error
+Now exits with UNACCEPTABLE_ERROR_WHEN_CONVERTING_TO_INTEGERS 
+rather than 2 which confused matters for me. I need to tidy up
+all the exit codes. 
+check_parameters_of_create_bmp_for_rect_in_rect.c 
+Renamed a function to check_create_bmp_for_rect_in_rect_int
+since it originally had the wrong name. 
+
+Editied create_bmp_for_stripline_coupler.c. so that it only
+prints information about theoretical values if called with the 
+-v option. -vv gives more information and -vvv gives even more.
+
+calculate_impedance_for_create_bmp_for_symmetrical_stripline.c
+now calls usage_calculate_impedance_for_create_bmp_for_symmetrical_stripline  
+
+usage_create_bmp_for_symmmetrical_stripline..c
+now has a new name for the function 'usage_create_bmp_for_symmmetrical_stripline()'
+and mentions the additional -v option 
+Also, the name of the binaries mentioned have changed, to reflect
+the new naming converntion. 
+
+calculate_Zodd_and_Zeven.c now includes #include <stdlib.h>
+
+tests
+These have been modified and should be up to date on CVS
+
+******Version 4.2.8 Released 12 Jan 2003 ********
+Copied onto Sourceforge CVS *all* the 4.2.8 files. Some 
+were missing before. 
+
+examples/Makefile.am
+Changed the CLEANFILE line to DISCLEANFILES, so that
+running 'make clean' will not delete the example files
+created, but running 'make distclean' will. 
+Added a lot of txt files (see note below). 
+
+man
+News names for man pages 
+
+lots of changes to files name 'cvsignore
+
+examples/twin-wire4.bmp
+Added to the CVS repositry. Had prevously ignored this
+large file. 
+
+in examples diretory
+Added ....bmp.txt files, as the output of running atlc
+on each of the .bmp files. 
+
+src/non_gui/usage_atlc.c
+src/non_gui/usage_circ_in_rect.c
+src/non_gui/usage_create_bmp_for_circ_in_circ.c
+src/non_gui/usage_create_bmp_for_circ_in_rect.c
+src/non_gui/usage_create_bmp_for_microstrip_coupler.c
+src/non_gui/usage_create_bmp_for_rect_cen_in_rect.c
+src/non_gui/usage_create_bmp_for_rect_in_circ.c
+src/non_gui/usage_create_bmp_for_rect_in_rect.c
+src/non_gui/usage_create_bmp_for_stripline_coupler.c
+src/non_gui/usage_create_bmp_for_symmmetrical_stripline.c
+src/non_gui/usage_design_coupler.c
+src/non_gui/usage_find_optimal_dimensions_for_microstrip_coupler.c
+src/non_gui/usage_readbin.c
+All above files have been modified to print a version number if 
+run incorrectly. Perhaps adding a -V option that just prints 
+the version and exits would not be a bad idea, at a later date
+
+docs/atlc9.doc docs theory2.doc and design-ideas.sxw moveed to
+docs/theory/atlc9.do docs/theory/theory2.doc and docs/theory/design-ideas.sxw
+
+html-docs/README
+added more informaton about the Word and StarOffice
+files giving information about the theory of the newer versions
+of atlc. 
+
+docs/theory/README 
+Changed to indicate there are now 3 theory files, one PDF and 
+suggesting the use of books.
+
+docs/html-docs/theory.html
+Changed to indicate there are now 3 theory files, one PDF and 
+suggesting the use of books.
+
+docs/html-docs/banner-page.html
+Changed to point to docs/html-docs/theory.html, rather than the
+one pdf file I wrote for QEX back in 1996.
+examples/cvsignore
+Removed *.bmp and added *.bin. Put cvsignore on CVS
+
+src/non_gui/do_fd_calculation 
+added a return(0) to prevent the compiler from preventing a warning.
+
+src/non_gui/setup_arrays.c
+Uncommented the check_for_shorts line, as it does do something 
+very useful. 
+
+src/non_gui/check_for_shorts.c
+Remove remarks about setting a floating conductor to +1 V
+as floating conductors are not supported. 
+
+examples/README
+Updated examples/README, so it is more up to date,
+listing only the files in the 4.2.8 distribution
+and no more. The theretical impedance for some 
+examples are included, where there is an exact
+theoerically answer. Sometimes the structure tries
+to approximate a stucture that has an exact theoreticas
+answer, but never can exactly (we can't make the bitmaps
+infinitely wide!!). There are noted where appropiate.
+Not all the theoretical answers are at this point in the
+README. 
+
+configure.in 
+Changed to look for optimised
+math library (libmopt) and optimised c 
+library (libcopt) as are used on SPARC systems.
+
+Removed one copy of the function 
+get_data_interactively() from definitions.h, as
+it was defined twice. 
+
+tools/README
+corrected a simple spelling error.
+
+configure.in
+Remmoved the extra docs/Makefile in it.
+src/non_gui/setup_arrays.c
+Moved line 'data->dielectrics_in_bitmap=0;' to after declaration of
+local variables.  gcc 2.96 will not accept the initialization as it
+was when compiling c code, and generates an error.
+
+src/non_gui/atlc.c
+Removed extraneous dereference, replacing the line '*end++;' 
+with 'end++;' in the argument processing section.
+
+examples/create
+This was removed from CVS, as 'make check' already did this and
+it has been removed a while ago, but not from the CVS.
+
+src/non_gui/find_optimal_dimensions_for_microstrip_coupler.c
+
+******Version 4.2.7 Released 8/1/03********
+Corrected a bug such that -s and -S did not work.
+
+Corrected a bug in setup_arrays.c wherby the number
+of blue conductors was not set to zero at the start
+so the total number reported was wrong. 
+
+Made changes to write_fields_for_directional_couplers.c
+such that the the images for even mode are now 
+written. 
+
+Further attempts to improve the documentation. 
+
+******Version 4.2.6 Released 1/1/03********
+Corrected a bug in do_do_calculation.c, which
+was bought to my attention by (thanks Dan).
+
+Added two files into the distrtibution from
+former versions 'cop1.bmp' and 'rect9.bmp'
+since these were metnioned in the tutorial,
+but not available. 
+
+Slightly improved the look of the homepage by
+editing index2.html 
+
+Updateed 'tutorial.html' as it was a bit out 
+of date, showing old versions of files. 
+
+Added more tests. Some more could be usefully added,
+but for now this will have to do. All the 11* tests
+have been dropped as for some reason they don't run
+properly. 
+
+******Version 4.2.5 Released 1/1/03********
+Arragned for the Makefile.am's to have a line
+CLEANFILES = ... to remove the example files
+if the user does a 'make clean'.  
+Running 'make distcheck' should now work
+
+Reinstated some more tests.
+
+Corrected a problem with some of the tests
+-create-lots-of-examples-check-last-one.test' such that
+a lot of example files were created with a length of 
+zero bytes. This was becaused I changed the format
+of all the crate_bmp_for_... files so they no longer 
+printed to stdout, but -create-lots-of-examples-check-last-one.test'
+relied on them printing to stdout to work.
+
+Images of permittivity are now okay, but not sure
+about the Ex, Ey, U etc. These have not been checked
+for 2-conductor lines, which needs doing. 
+
+
+******Version 4.2.4 Released 31/12/02********
+
+Changed all the files create_bmp_for_....
+such that they now write to a file on the command
+line, rather than stdout. All programs for the generation 
+of bitmaps now have the same naming converntion 
+(create_bmp_for_.....) and all write to a file and 
+not stdout. 
+
+Changed man pages to reflect the changes in all the 
+create_bmp_for_...
+
+Some half-sensible bitmaps are now produced with atlc
+if the -s option is not present. The binary files
+(.bin) are now printed properly for couplers. It is 
+quite possible this does not work for 2 conductor lines
+(it has not be tested). This needs more testing. 
+
+The files atlc-x.y.z/tests/Makefile.am now has 
+lists of the files to be added to the distribution,
+rathe than just *.test, as the latter caused problems
+with 'make distcheck'.
+
+The file atlc-x.y.z/docs/html-docs/index.html now
+loads index2.html rather than frontpage.html.
+
+added file atlc/docs/html/create_for_Makefile.am to 
+make it easier to generate a list of files that needed
+to be included in atlc/docs/html/Makefile.am
+
+******Version 4.2.2  Released  28/12/02 *****
+Less data is now printed as it was confusing I feel to show too
+much informattion. An option will be added to show more, but at 
+present this is not implemented. 
+
+Added options -s and -S in 'atlc' to enable the bitmap (.bmp) and binary
+(.bmp) files to not be written. The default is to write these files. 
+
+Remove options to write data to a text file and append data to
+a text file from atlc. Changes meant it got more difficult
+to implement and there seems little point when > and
+>> do those functions.
+
+Changed man page on atlc, so reflect changes in the program   
+itself. 
+
+Added the program 'create_bmp_for_coupled_microstrip' which does
+exactly what the name says. Run it to see what options and 
+command line arguments it expects, as there is no man page at 
+the minute. 
+
+*ALL* the files that create bitmaps have been renamed to create_bmp_for_xyz,
+where xyz determines the geometry. There are now the following files
+for creating bitmaps:
+
+create_bmp_for_circ_in_circ
+create_bmp_for_circ_in_rect
+create_bmp_for_coupled_microstrip
+create_bmp_for_coupler
+create_bmp_for_rect_cen_in_rect
+create_bmp_for_rect_in_circ
+create_bmp_for_rect_in_circ.c
+create_bmp_for_sym_strip
+
+Currently some write to stdout, some to files. I will eventually change it 
+so they all write to files, as the data is binary and writing by default
+to stdout is not a great idea. 
+
+Added program 'find_optimal_dimensions_for_microstrip_coupler' which does 
+an exhaustive search of different geometires for microstrip couplers. 
+
+
+********************Version 4.2.0-alpha  Released  24/12/02 ********************
+Made major changes to the code to make it easier to read. Hopefully
+direcitonal couplers are working for multiple-dielectrics now, 
+but I've no idea. The documentation is out of date with the code
+which has undergone major revisions. I will update the docs and correct
+and bugs as soon as I have time. 
+
+********************Version 4.1.6  Released  22/12/02 ********************
+Made it more obvious there is a bug that prevents the use of atlc
+where there is more than one dielectric on a directional coupler.
+
+Updated the documentation so removing references to make_coupler
+
+Changed the atlc homepage a bit, as it was out of date. 
+
+********************Version 4.1.4  Released  15/12/02 ********************
+Corrected bug found in design_coupler.c that prevented it compiling
+under old versions of gcc. 
+
+Added a few more tests that fail if gsl is not included. 
+
+Updated the documentation. Some showed the output from 
+atlc 2.x, which was a lot less accurate than 4.x.
+
+Added a line for pth in Makefile.am. Threads on machines
+othe than Solaris still needs some work. 
+
+Added the file 'IMPORTANT.html' back into the release. For
+some reason this got lost and was not present in any recent 
+release, despite being on the web page and still valid.
+
+Updated the FAQ, as some information was out of date.
+
+********************Version 4.1.1  Released  14/12/02 ********************
+**************************************************************************
+
+Changed the default number of threads a mutli-threaded version of the
+prorgram runs from 2 to 4, as I now own a quad processor machine. It is
+changed in definitions.h
+
+The program 'make_coupler' has been renamed to generate_coupler_bitmap,
+as it never really did make a coupler, but only generate a bitmap for
+one with the dimensions you gave. 
+
+Added a new program 'design_coupler' which is very able. It can find the
+required odd and even mode impedances given the coupling factor and
+frequency range, and then design you a coupler with the right
+dimensions!
+
+Added much better documentation to support the directional couplers. New
+files 'calculate_zodd_and_zeven.html',
+'determine_dimensions_of_couplers.html' have been created. 
+
+No significant changes have taken place to the code for two conductor
+lines. I still need to address the problem of consistancy amoungst some
+of the programs. 
+
+A new directory 'tests' has been set up and automake configured such
+that running 'make check' now performms a lot of checks and creates
+all the examples. 
+
+********************Version 4.0.1  Released  21/4/02 *********************
+**************************************************************************
+
+Added copyright notices to all files and added a -C option on all 
+binaries to print out information on copyright. 
+
+Corrected an error in READED.threads, since it refered to the -p options
+for number of processors, which I later changed to -t threads to be more
+accurate. 
+
+Added my e-mail addres to the AUTHORS file. 
+
+Update the TODO list. 
+
+Remvoed the printing of L and C in the documentation (frontpage.html and
+index2.html) for couplers, as these are mode-dependant and so one value
+is not enough. 
+
+Added a CVS entry on the banner page. 
+
+Spent some time spell checking many of the html documents. 
+
+Made some changes in the rect_in.. circ_in.. so that the integer values
+create on a machine should be exactly the same on each machine. It was
+possible before that some numbers would be generated on one machine and
+some on another, due to rounding errors. This hopefully stops that. 
+
+Changed src/non_gui/tests to point out what a dodgy gcc does. 
+Added a few scrips 'tests' in other directories to src/non_gui, since
+someone was looking for them and could not find them. Hence I've tried to
+make it a bit clearer. 
+
+********************Version 4.0.0 Released 11/4/02  *********************
+**************************************************************************
+Put a bit more info in the README.windows
+Removed check for "intelligent life" in configure.in, as this was not working
+with autoconf 2.13.
+
+Added a function do_fd_calculation() and therefore added the file
+do_fd_calculation.c This helps clean up atlc.c a lot, since a lot of
+repetition has been removed. It needed quite a bit in it to handle the
+case of coupled lines and all the different things that have to be
+printed in this case. 
+
+Changed setup_arrays.c so that it now sets a variable 'coupler' to TRUE
+if there is a blue ( - 1 V) conductor. 
+
+Got resuls out from the coupler. No idea if they are right. Pretty sure
+they are wrong in fact. 
+
+Corrected a typo in FAQ.html which meant the local copy of the QEX
+paper could not be downloaded from the FAQ.
+
+Answered that loss can't be measured in the FAQ.
+
+Wrote a programme 'make_coupler' which writes a bitmap with two striplines 
+between two parallel groundplanes as below.
+
+------------^------------------------------------------------------------------
+            |                                               
+            |              <---w---><-----s----><---w-->
+            H              ---------            --------
+            |                                      
+            |                               
+------------v------------------------------------------------------------------
+This has an exact analystical solution, so the file calculate_Zodd_and_Zeven.c
+was created to find the exact theoretical values. This makes it possible
+to compare the theory with atlc.
+
+I got the equations from an e-mail sent to me by AA1LL / KB1CZP 
+<aa1ll@email.com>. This required elliptic integrals, so its necessary to
+link into the GNU scientific library, gsl to use it fully, although the
+bitmap will be generated without the library.
+
+Added information to accuracy.html on accuaracy with coupled lines. 
+
+Changed finite_difference_multi_threaded.c & finite_difference_multi_threaded.c
+to handle correctly the case of coupled lines - at least for vacuum
+dielectric. 
+
+Added a couple of tests in the file 'tests' to check the coupler 
+related items. 
+
+
+********************Version 3.0.7 Dated 6/4/2002**************************
+**************************************************************************
+Corrected the file man/makehtml, as it was not making an html page for
+rect_cen_in_rect from the rect_cen_in_rect.1 man page. 
+
+Put an error number each time a programme exits, so it is clear what
+error caused it. 
+
+Made a set of diectories called 'binaries' and subdirectories from that.
+Please the latest Windows executables in binaries/Windows. 
+
+Changed the line 
+image_data=ustring(0L,width*height*3); in atlc.c
+to
+image_data=ustring(0L,size);
+Removed all references to stdio.h and math.h in all files, since they
+are included in definitions.h
+
+Changed the line 
+if( (image_data_fp=fopen(output_filename, "r")) == NULL)
+to 
+if( (image_data_fp=fopen(output_filename, "rb")) == NULL)
+in atlc.c, so the bitmap is opened as a binary in Windoze.
+
+put the line 
+if((fp=fopen(temp,"w+b"))==NULL) instead of 
+if((fp=fopen(temp,"w+b"))==NULL)
+in get_file_pointer_with_right_filename.c
+as the bitmaps were screwed up when written to disk in text mode, which
+was happening under Windoze. 
+
+Used a more complex method suggested by AD5GB to get open the bitmap
+file for reading. I don't see why it should be necessary, but it keeps
+Windows happy. 
+
+defined M_PI if not already done so in definitions.h
+
+Changed malloc call to a calloc in string.h
+
+Corrected an error in the docs where it said in accuracy.html that the
+error was 1.8% on the bottom of a table. That may have been so, but it
+is a lot better now. 
+
+
+********************Version 3.0.6 Dated 3/4/2002*************************
+**************************************************************************
+(note there was no release 3.0.5, as it got screwed up going up to
+Sourceforge, after which is is impossible to overwrite the file). 
+
+
+Removed all reference to the voltage v and instead replaced these by
+Vij. The reason being that  Randall DuCharme <ad5gb@yahoo.com> has
+advised me that the symbol v is defined in IBM's AIX operating sysytem.
+Hence it would not compile without some hacking. 
+
+Since the voltage is now called Vij, it makes sense for its indices to
+be i and j and not w and h. Hence I've replaced at least some of the
+v[j][h] to v[i][j]. 
+
+Changed reference to longs and replaced by ints in write_bitmap_out.c,
+since it was clear the longs would break it on 64-bit machines. 
+
+Checked atlc one my Sun Ultra 60 with a 64-bit compiler using Sun's CC
+compiler. All was okay and the generated bitmaps looked fine. 
+
+Found a problem on the Sourforge Compile Farm with the programme
+sym_strip. It crashed at the last but one line, where these is
+flose(fp). Put in code to check if the file pointer was valid. This
+can't be a bad thing, but it did not solve the problem. 
+
+Another bug spotted on Sourceforge's compile farm. rect_in_rect,
+circ_in_circ, circ_in_rect, and beadbin (but not atlc) all declare 
+a character q, then use
+q=get_options
+whereas get_options returns an int, not a character. I don't know why the 
+compiler does not spot that one. Anyway, it caused get_options to loop forever. 
+
+All programme now seem to run okay on drkirkby@usf-cf-ppc-linux-1:,
+which is a linux powered PowerPC RS6000. Not attempted compileing
+multi-threaded. 
+
+
+Attempted compiling on the Sourceforge Sun Ultra 60. This is the same as
+my machine, so one might expect it to work okay. In fact, atlc 
+compiles and runs okay on every machine tests (Dec Alpha, Suns
+running Solaris, Suns running linux, linux PC, ... 
+
+Correct typo, where it said 'is is' in usage_sym_strip.c
+
+Changed the order and name or parameters in rect_cen_in_rect, so
+it now
+
+% rect_cen_in_rect W H w h Er1  > filename.bmp
+
+Changed man page to suite. It was silly before. 
+
+Removed note in the bitmap generators (rect_in_rect, circ_in_circ etc)
+about piping into atlc, since atlc does not support reading from 
+standard input. 
+
+Changed circ_in_circ so the information it can provide about theoretical
+impedances is only produced if the -v flag is given. 
+
+corrected usage_circ_in_rect.c, as information at the bottom on usage
+was all wrong. 
+
+Added a test suite in the script src/tests. I might well add a version of
+sum to the distribution, as it appears to be implementation dependant. 
+
+Removed #include <malloc.h> as it is depricated according to gcc and
+files compile fine without it. Also removed stddef.h from nrutil.c, as
+that too is not needed. 
+
+Changed the names of the variables opterr, optind, optopt and optarg to be
+my_opterr, my_optind, my_optopt and my_optarg in get_options.c This is to
+avoid a warning from one of the compilers (I think on a Mac) about the fact
+that it is defined elsewhere. 
+
+
+********************Version 3.0.4 Dated 1/4/2002*************************
+**************************************************************************
+NOTE 3.0.3 never released, since the upload to sourceforge failed. 
+
+Corrected bug in write_fields.c which caused a crash under Linux
+(as reported by Randall DuCharme <ad5gb@yahoo.com>) and With 
+Borland C++ builder on my SunPCi card. 
+
+Corrected a bug in atlc.c, which was causing a crash on the SunPCi
+card and possibly a crash (not yet confirmed) under Solaris on 
+a Sun Ultra 30 belonging to Randall DuCharme <ad5gb@yahoo.com>
+
+Added an option to atlc.c to avoid writing the bitmap files. 
+
+Corrected a bug in readbin.c, which caused it to report any 
+number >.99 as a one, when it might well be METAL_ER. Also checked more
+carefully for -1 V, by only looking from -0.999999999 to - 1.000000000001
+
+Added the following lines to readbin and atlc.c, which are necessary
+when compiling with C++ Builder version 3. I need to do likewise to the
+rect_in_rect etc, but for now I have not. 
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+(I need to define WINDOWS when compiling on Windoze).
+
+Corrected usage_atlc so it now does not take the filename, but knows it
+is atlc. 
+
+Added (void) to the defintion of any function that takes no arguments. I
+found that while gcc is happy to accept a fuction with an argument that is
+declared like this:
+int somefunction()
+Borland C++ Builder was not happy with that. Hence I now declare functions
+as taking void when they don't take argments. This keeps Borland C++
+builder happy and allows for stricter checking with gcc. 
+
+Added a piece of code 'get_options.c' which was necessary since 
+Borland C++ Builder does not have such a function.  
+
+Stopped print_data taking an argument 'version' and then reading it from
+VERSION. It now just reads from VERSION
+
+Remved 'ER' from check_for_boundaries.c and all references to it, which
+were all in comments. The Borland C++ Builder is better at spotting such
+problems than gcc, so is Sun's C compiler. 
+
+Added code to check if the upper number (eg nh) is less than or equal to
+the lower number (eg nl) in functions free_* in files nrutuil.c and
+string.c This stops the Borland C++ Builder complaining about the
+arguments not being used and also does some sanity checking. 
+
+********************Version 3.0.2 Dated 30/3/2002*************************
+**************************************************************************
+Fixed a problem with the Makefile.am's which meant not all the files were 
+included and the sym_strip.1 was spelt wrong. 
+
+********************Version 3.0.1 Dated 29/3/2002*************************
+**************************************************************************
+SIGNIFICANT IMPROVEMENTS TO ACCURACY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+SIGNIFICANT IMPROVEMENTS TO ACCURACY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+SIGNIFICANT IMPROVEMENTS TO ACCURACY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+In a comparisson of 3 analytic models (coax, eccentric coax and
+stripline), and 31 tests (roughly a third of each), the maximum error
+was only 0.945 % and the RMS error is only 0.259 %. The programme now
+undereads more than overreads, so I still think there may be a
+systematic error, but any problems are now very small. Despite the fact
+atlc is supporting multiple dielectrics, I've not managed to find any
+models with exact analytic solutions to compare against atlc. When
+calculationg the E-field across a dielectric, the method used does not
+properly consider a boundary between two dielectrics. Hence I can expect
+the error with multiple dielectrics to be a bit higher than with one.
+This will be sorted out later. 
+
+Added a man page for sym_strip and updated all other man pages. Keeping
+the documentation up to date is a problem. 
+
+Since many of the bitmaps used in the examples are large, I decided to
+not bother distributing them all, but instead write a script 'create' to
+make them. 'create' may be found in both  the examples and src
+directories. 
+
+Added a small script 'makehtml' in man, to create easily html version of
+the man pages. 
+
+It was necessary to take into account when a dielectric is next to
+metal, as otherwise the E-fields calculated in the dielectric are in
+erro when next to metal. This is done. check_for_boundaries.c has been changed
+to indicate whether a dielectric has metal to the left, right, above or
+below it.  
+
+function calculate_colour_data() added to calculate the colour a pixel
+should be set to - this is called by write_fields(). 
+
+Added a file find_electric_fields.c, which has 3 functions in it -
+find_Ex(), find_Ey() and find_E(). This avoids different parts of the
+programme using different definitions for Ex, Ey and E. 
+
+Changed write_fields almost completely. It now prints more files
+and uses less ram, as not all the data is stored before writing to 
+disk. Now only one set is stored in ram before writing to disk.
+This is a bit slower, but it will save a lot of ram. 
+
+After thinking about it a lot, I feel it is necessary to change the -1 V
+conductor (which has never been used) from black to blue. Since I've
+stated before that black is -1 V and blue is a dielectric with a
+permittivity of 2.1, this is a bit annoying. However, it seems illogical
+to have a negative electric field shown as blue, and negative voltages
+as blue, yet have -1 V as black. Hence the definition of -1 V is changed
+and another colour (a light blue) has been selected to reprsent the
+permittivity of PTFE. 
+
+Made a significant improvement to accuracy, but using the following
+defintion for Ex
+Ex=0.5*(v[i+1][j]-v[i-1][j]);
+but changing it a bit when at a boundary with metal. i.e.
+if((cell_type[i][j]&METAL_LEFT)==METAL_LEFT)
+  Ex=(v[i+1][j]-v[i][j]);
+Same is done in an obvious manner for Ey and the right hand side. This
+has made a significant improvement to accuracy, so html docs have been
+re-written.
+
+Changed the definition of Ex and Ey in write_fields.c, since they were
+defined at dV/dx, and dV/dy, but the electric field is defined as the
+reverse of that. i.e. ex=-dV/dx and Ey is -dV/dy. 
+
+Added some code in write_fields.c to print the energy (CV^2) too. 
+
+********************Version 3.0.0 Dated 24/3/2002*************************
+**************************************************************************
+Added support for multiple dielectrics. More work needs to be done to
+confirm the accuracy of this, but it is now working at least. 
+
+Spent a lot of time thinking carefully about exactly where the voltage
+are defined (top left of a pixel) and exactly where the E-field should
+be calculated (centre of a pixel) and exactly what the E-field is. The
+results seem no more accurate than before (still a small over-estimate
+of Zo), but at least it should give anyone else chance to find a fault.
+Before it was too obvious that a few problems remained on exactly what
+happens on a boundardy. 
+
+Programme should be able to cope with 4 different dielectrics in a
+square - i.e. it can be really arbitrary. 
+
+Changed the value of r in atlc.c from 1.5 to 1.95. This has made a HUGE
+INCREASE IN SPEED!!! The programme is now about 6x quicker than before.
+
+Added a function check_for_boundaries(), which looks for changes of
+index and metals around a pixel. Its not really used now, but it has the
+potential for speeding the code up, since it can avoid a lot of checking
+every time the FD loop executes. It makes sence to do the checking once
+and use those results. 
+
+Removed all C++ commments, as this would stop it compiling on a C
+compiler. One of the Sun compilers I have is only C. 
+
+Added a file 'fd.c' which is not in the makefile. It is included in the
+C functions finite_difference_*.c. It is better to use it like this
+rather than put the code inline, for speed reasons. It is called several
+times. Putting it in one file insures all the times its called are
+calling exactly the same code. It is too easy to have errors otherwise.
+\7f
+
+
+Added a programme 'thin_strip; which produces a stipline like this:
+
+          ------^-------------------------------------
+                |
+                H        -----w------
+                |
+-infinity ------v------------------------------------ +infinity
+
+This has a well defined impedance, which is given in "Field Theory of Guided 
+Waves", Colin R.E., 2nd edition, pp 259-273, IEEE Press, (1990).
+
+I realised the programme was taking too much memory. Reading in a 24 Mb
+bitmap, resulted in the programme using 179 Mb of RAM. It was discoverd
+that the variable 'cell_type' defined in atlc, was an integer array,
+when a character one would have done, saving 3 bytes per pixel of RAM. I
+Added functions charmatrix and freecharmatrix in nrutil.c, for allocation
+and dealocation of the matrix.
+
+Removed the '-m' option from usage_atlc.c, since the option no longer
+worked - it was removed some time ago. 
+
+Removed the '-F' option from usage_atlc.c, since the option  did not 
+work. I decided not to bother fixing it, but instead of writing data
+to a user-specified file name, write it to example.txt, when the 
+bitmap file is example.bmp. 
+
+Removed the handling of option 'h' in atlc.c, since the option no longer
+existed. 
+
+Printed a messge with usage_atlc, so that it indicated that if
+multi-processor support was not compiled into atlc. 
+
+Added a few commments are correct a few typos in other commments, in the
+file finite_difference_multi_threaded.c
+
+Checked the system reasonably well with multi-threading enabled on my
+dual preocessor Sun Ultra 60. The programme speeds up quite a bit,
+depending on the size of the job. Certainly runing with two threads
+(either by defining #define MAX_CPUS 2 in definintions.h, or the -p2
+command line option, seem to work best for my dual processor machine. Running
+a few more threads (up to 5 or so) does not slow the system much, but as
+more and more are added, there is a definate slowdown. 
+
+renamed usage to usage_atlc, to be consistant with all the other
+programmes (usage_rect_in_rect etc) 
+
+Added quit a few comments to atlc.c, and generally made the code tidier,
+with more consistant indenting. 
+
+Added a file/function swap_conductor voltages, which converts +1V to -1V
+and visa-versa. This is needed to compute the impedance of coupled
+lines. 
+
+**************************Version 2.32 Dated 9/3/2002***************************
+********************************************************************************
+Wrote manpage for readbin
+Moved man page from man to man/man1.
+Removed function free_ucmatrix, free_ucmatrix and byteswap, none of which
+were used. 
+Added a new ability to calculate Zo assuming a round conductor - which
+it might not be. Its useful to check the software against coax, which
+has well defined values. Needs -v option to see the result. 
+Added a new programme (only one file) 'readbin' which analyses the .bin
+files and reports on the number of each colour pixel. 
+Corrected write_fields.c, so that a conductor is printed with zero
+E-field. Sometimes this was not so, as there was no check before writing
+the E-fields out that the pixels was not a conductor. 
+Added new file/function check_for_shorts(), which causes the programme to
+exit if a conductor of one voltage is in contact with a conductor of
+another voltage. 
+Compiled with Sun's CC compiler, which threw up a few prolems. It's more
+fussy that gcc!!  Hence made these changes:
+a) Replaced strncmp(bitmap_file_buffer, with strncmp((char *)
+   bitmap_file_buffer, on line 41 of read_bitmap_file_headers.c. 
+b) Changed atlc.c so a fread((void *)... image_data from fread(image_data...
+c) Removed multiple declaration of some variables in rect_in_rect.c,
+circ_in_circ.c
+d) Changed fill_image_vector_with_data in rect_in_rect.c,
+rect_in_circ.c, circ_in_circ.c circ_in_rect.c and definitions.h, such
+that the first argument is an unsigned char *, not char*  as before. 
+e) align_bitmap_image in align_bitmap_image.c changed so its arguments
+are unsigned *char, not *char as before. Updated header file to reflect
+this. 
+f) 
+
+In several C files, changed variables so they were initialised to -1 - it stops
+compiler complaining about possible use of unitialisd variables. 
+Removed multi-line fprintf statement, and made into two statements in rect_in_circ.c
+Changed else if(j=D/2) to else if(j==D/2) in fill_rect_in_circ.c
+Added exit(0) to end of circ_in_circ.c
+Added exit(0) to end of circ_in_rect.c
+Added exit(0) to end of rect_in_circ.c
+Added definition of usage_circ_in_rect() to definitions.h 
+
+Removed the note about version 2.4 from this ChangeLog, as it wasn't released. 
+Corrected a serious bug in setup_arrays.c, where v was set to 0.3 instead of 0 V. 
+Removed 'byteswap' from byteswap.c and definitions.h
+Added code in configure.in to enable -Wall with gcc.
+
+
+************Version 2.2 Dated 2/12/2001**************
+*****************************************************
+Changed some of the html documentation, to be more in line with the
+source and man pages. 
+
+Verion 2.1 Dated 1/12/2001
+Many updates to documentation:
+Added man pages for rect_cen_in_rect
+Added man pages for circ_in_rect
+Added man pages for rect_in_rect
+Added man pages for circ_in_circ
+
+Added binaries for:
+rect_cen_in_rect
+circ_in_rect
+circ_in_circ
+rect_in_circ - this dones NOT work, so it is configured to always exit.
+
+Changed atlc so that it no longer uses the faster convergence algorithm.
+I now know it can fail, so will remove it. 
+
+Changed usage.c and atlc.c so that the -p option is not displayed if not 
+MP enabled.
+usage.c Changed the usage message about '-i fiddle' as it was wrong before, in assuming default to be
+1.
+atlc.c Added a '-c' option, to change the cutoff. 
+atlc.c Changed the reading of the '-i fiddle' option, so its read a double and not a long
+
+25/4/2001, verison 2.01 put on SorgeForce unix only, supports multiple
+CPUs. 
+
+Version 1.09 - Windows verison, put on my web site.
+
+Version 1 - published in QEX, see qex-december-1996/atlc.pdf.
diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..5190683
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,206 @@
+Specific Installation Instructions for atlc. 
+==================
+
+*********************************************************************
+IMPORTANT - if altc won't compile on your system, configure with the 
+option --without-hardware-info. It should then compile. 
+
+The versions of 'make' from Sun and SGI probably won't work - use
+GNU make instead. 
+
+*********************************************************************
+
+See also the file docs/html-docs/building.html
+
+   These are *NOT* generic installation instructions, but have been
+   edited CONSIDERABLY to be specific for atlc. There are a couple of 
+   optional arguments that you can give to the configure script that 
+   will improve functionality, so check read this **carefully**
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to drkirkby@ntlworld.com so they can
+be considered for the next release.  If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+   The file `configure.in' is used to create `configure' by a program
+called `autoconf'.  You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1) Unzip the compressed tar file
+     gzip -d atlc-x.y.tar.gz
+
+  2) Extract the tar archieve
+     tar xvf atlc-x..y.z.tar
+
+  3) Set the varialble CFLAGS to whatever flags are appropiate with
+     your compiler and system. This is particularly important
+     on Alpha platforms, when increases in speed of 3.5x were noticed
+     when running with appropiate flags. 
+
+     A benchmark is provide (see section 8) which can be used
+     as a guide to optimising the compiler flags. 
+
+  4) `cd' to atlc-X.Y.z (whatever X, Y and Z are for the specific
+      vesion) and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes a while.  While running, it prints some
+     messages telling which features it is checking for.
+
+     If atlc compiles and links okay when you run 'make', but fails to compile
+     or link when running 'make check', re-configure with the option 
+     --disable-hardware-info Let me know of any system that need this 
+     option. 
+
+   5) Type `make' to compile the package.
+
+   6) Type 'make check' to run quite a few checks 
+
+     This will also run a benchmark, which will generate so
+     timing information. This can be used to optimise the flags. 
+
+   7) Type 'make install' if you wish to install the programs and 
+     example files. If you don't want to install the examples
+     (they take up about 120 Mb) run 'make install-exec' and 
+     'make install-man'
+
+   8) You can remove the program binaries and object files from the
+     source code directory by typing `make clean'. To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  You can give `configure'
+initial values for variables by setting them in the environment.  Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory.  After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+   By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+specific options are --with-threads to build a threaded version for
+multi-processor machines. The option --with-gui will not build 
+anything useful. I'm new to C++, so there is only a test program or two. 
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on.  Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+     CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+     Use and save the results of the tests in FILE instead of
+     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
+     debugging `configure'.
+
+`--help'
+     Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--version'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..5c59e07
--- /dev/null
@@ -0,0 +1,24 @@
+# This is Makefile.am, which is proceed by automake
+#AUTOMAKE_OPTIONS = gnits
+ACLOCAL_AMFLAGS = -I m4
+
+SUBDIRS =  . src m4 man docs examples tools tests 
+
+EXTRA_DIST = \
+README \
+README.cvs \
+README.help \
+README.mpi \
+README.solaris \
+README.support \
+README.threads \
+README.windows \
+README.hardware-info \
+BUGS \
+compile \
+missing \
+teston \
+TODO
+
+CLEANFILES = examplestest-coupler2.bmp.txt
+DISTCLEANFILES = examplestest-coupler2.bmp.txt tmp/atlc-zero-bytes
diff --git a/Makefile.in b/Makefile.in
new file mode 100644 (file)
index 0000000..72bff5c
--- /dev/null
@@ -0,0 +1,540 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+# This is Makefile.am, which is proceed by automake
+#AUTOMAKE_OPTIONS = gnits
+ACLOCAL_AMFLAGS = -I m4
+
+SUBDIRS = . src m4 man docs examples tools tests 
+
+EXTRA_DIST = \
+README \
+README.cvs \
+README.help \
+README.mpi \
+README.solaris \
+README.support \
+README.threads \
+README.windows \
+README.hardware-info \
+BUGS \
+compile \
+missing \
+teston \
+TODO
+
+
+CLEANFILES = examplestest-coupler2.bmp.txt
+DISTCLEANFILES = examplestest-coupler2.bmp.txt tmp/atlc-zero-bytes
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+       ps-recursive install-info-recursive uninstall-info-recursive \
+       all-recursive install-data-recursive install-exec-recursive \
+       installdirs-recursive install-recursive uninstall-recursive \
+       check-recursive installcheck-recursive
+DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
+       Makefile.in NEWS THANKS TODO aclocal.m4 compile config.guess \
+       config.h.in config.sub configure configure.ac depcomp \
+       install-sh missing mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
+all: config.h
+       $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       $(SHELL) ./config.status --recheck
+$(srcdir)/configure:  $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+       cd $(srcdir) && $(AUTOCONF)
+
+$(ACLOCAL_M4):  configure.ac m4/acx_mpi.m4 m4/acx_pthread.m4 m4/gtk.m4
+       cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+       @if test ! -f $@; then \
+         rm -f stamp-h1; \
+         $(MAKE) stamp-h1; \
+       else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+       @rm -f stamp-h1
+       cd $(top_builddir) && $(SHELL) ./config.status config.h
+
+$(srcdir)/config.h.in:  $(top_srcdir)/configure.ac $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOHEADER)
+       touch $(srcdir)/config.h.in
+
+distclean-hdr:
+       -rm -f config.h stamp-h1
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
+
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = .
+distdir = $(PACKAGE)-$(VERSION)
+
+am__remove_distdir = \
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
+
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+
+distdir: $(DISTFILES)
+       $(am__remove_distdir)
+       mkdir $(distdir)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$(top_distdir)" \
+               distdir=../$(distdir)/$$subdir \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+       -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+         ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+       || chmod -R a+r $(distdir)
+dist-gzip: distdir
+       $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       $(am__remove_distdir)
+
+dist dist-all: distdir
+       $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+       $(am__remove_distdir)
+       GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+       chmod -R a-w $(distdir); chmod a+w $(distdir)
+       mkdir $(distdir)/=build
+       mkdir $(distdir)/=inst
+       chmod a-w $(distdir)
+       dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
+         && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+         && $(mkinstalldirs) $$dc_destdir \
+         && cd $(distdir)/=build \
+         && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+           $(DISTCHECK_CONFIGURE_FLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) dvi \
+         && $(MAKE) $(AM_MAKEFLAGS) check \
+         && $(MAKE) $(AM_MAKEFLAGS) install \
+         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+         && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+         && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+               distuninstallcheck \
+         && chmod -R a-w "$$dc_install_base" \
+         && ({   $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+              && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+              && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+                   distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+             } || { rm -rf "$$dc_destdir"; exit 1; }) \
+         && rm -rf "$$dc_destdir" \
+         && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
+         && rm -f $(distdir).tar.gz \
+         && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+       $(am__remove_distdir)
+       @echo "$(distdir).tar.gz is ready for distribution" | \
+         sed 'h;s/./=/g;p;x;p;x'
+distuninstallcheck:
+       cd $(distuninstallcheck_dir) \
+       && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+          || { echo "ERROR: files left after uninstall:" ; \
+               if test -n "$(DESTDIR)"; then \
+                 echo "  (check DESTDIR support)"; \
+               fi ; \
+               $(distuninstallcheck_listfiles) ; \
+               exit 1; } >&2
+distcleancheck: distclean
+       if test '$(srcdir)' = . ; then \
+         echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+         exit 1 ; \
+       fi
+       test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+         || { echo "ERROR: files left in build directory after distclean:" ; \
+              $(distcleancheck_listfiles) ; \
+              exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+       -rm -rf autom4te.cache
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+       clean-generic clean-recursive ctags ctags-recursive dist \
+       dist-all dist-gzip distcheck distclean distclean-generic \
+       distclean-hdr distclean-recursive distclean-tags distcleancheck \
+       distdir distuninstallcheck dvi dvi-am dvi-recursive info \
+       info-am info-recursive install install-am install-data \
+       install-data-am install-data-recursive install-exec \
+       install-exec-am install-exec-recursive install-info \
+       install-info-am install-info-recursive install-man \
+       install-recursive install-strip installcheck installcheck-am \
+       installdirs installdirs-am installdirs-recursive \
+       maintainer-clean maintainer-clean-generic \
+       maintainer-clean-recursive mostlyclean mostlyclean-generic \
+       mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
+       ps-recursive tags tags-recursive uninstall uninstall-am \
+       uninstall-info-am uninstall-info-recursive uninstall-recursive
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/NEWS b/NEWS
new file mode 100644 (file)
index 0000000..503a98c
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,15 @@
+NEWS for realease 4.6.0  Nobember 2003.
+
+This is a very different from the last release (4.5.1) in
+two very important ways.
+
+1) The basic accuracy for single dielectrics has been improved.
+Now typical errors are only around 0.1%
+
+2) I have re-enabled the calculation of multiple dielectrics
+which were disabled due to accuracy concerns. I'm still not
+100% happy with the algorithms, but on tests with a dual 
+coaxial cable with two dielectrics shows errors of under 2%, 
+I hope to improve this further at a later date. 
+
+Dr. David Kirkby, 7th December 2003. Re: atlc-4.6.0
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..dd95d71
--- /dev/null
+++ b/README
@@ -0,0 +1,46 @@
+atlc - Arbitrary Transmission Line Calculator.
+
+Program for analysing arbitrary transmission lines and directional
+couplers. See HTML documentation in docs/html-docs
+
+*********************************************************************
+IMPORTANT - if altc won't compile on your system, configure with the 
+option --without-hardware-info. It should then compile. 
+*********************************************************************
+
+atlc is available as source code in a file atlc-version.tar.gz. Some
+older binary releases are in existance but I would advise against 
+using version of atlc prior to 4.6.0 for multiple dielectrics. 
+
+See the file INSTALL if building from sources. Online documentation may
+be found at http://atlc.sourceforge.net/
+
+The sources are kept in src/non_gui, as a version with a GUI was
+planned, but I don't think it will happen in the near future.
+
+This is the directory layout. .
+./docs 
+./docs/html-docs         // As on the atlc web site at atlc.sourgeforge.net
+./docs/html-docs/jpgs    // JPGS needed for the html docs above.
+./docs/qex-december-1996 // A old paper I wrote, gives the theory.
+./docs/theory            //  
+./man                    // Standard UNIX man pages.
+./examples               // Some examples
+./tests                  // Self-tests and a benchmark.
+./tools                  // Some tools that are useful for checkign the code
+./tools/src              // Source code for above
+./src                    // Nothing much - see below
+./src/non_gui            // All the C source code.   
+./tmp                    // Used during tests to dump data. 
+
+After building (see INSTALL, which I've modified to be specific to
+atlc) you should run 'make check' after running 'make'. 
+One built, if you want to install the examples and binaries, run
+'make install'. As the examples are large (~220 Mb) you might    
+choose not to install them. In which case run 'make install-exec'
+rather than 'make install'. If you later want to install the 
+examples, run 'make install-data'
+
+If wishing to contact me by email, mail me on drkirkby at ntlworld.com
+
+Dr. David Kirkby, G8WRB. 12th December 2003 Re: atlc-4.6.0
diff --git a/README.cvs b/README.cvs
new file mode 100644 (file)
index 0000000..fe314a1
--- /dev/null
@@ -0,0 +1,6 @@
+This distribution should exactly match the CVS tree at the time
+of generation of the file atlc-4.2.8.tar.gz. This has rarely been
+the case in the past, with the CVS out of date with the 
+.tar.gz's posted, but with another developer now, this 
+should no longer be the case, is it will be necessary 
+for the CVS to be kept up to date. 
diff --git a/README.hardware-info b/README.hardware-info
new file mode 100644 (file)
index 0000000..d977420
--- /dev/null
@@ -0,0 +1,61 @@
+Unless atlc is configured with the --disable-hardware-info option 
+(only do this if it fails to compile properly), a small benchmark at the end 
+tries to gather information about the hardware. The following shows 
+what information is obtained on each system. 
+
+If anyone can add to the information gathered on a system, or add
+information on a new system, please email me and discuss how to 
+do this. Basically a C file in the tests subdirectory needs expanding
+or adding (say try_foo.c), where the system tries to gather data on
+system foo. 
+
+Feature                                 Operating system
+
+                           AIX HP-UX IRIX Linux NetBSD OpenBSD Solaris Tru64
+Harware provider            Y                                     Y      
+Hardware platform                                                 Y      Y
+Machine                     Y    Y          Y                     Y      Y
+Sysname                     Y    Y          Y                     Y      Y
+Release                     #1   Y          Y                     Y      Y
+Nodename                    Y    Y          Y                     Y      Y
+#CPUs supported                  Y                                Y      Y
+#CPUs online                Y    Y                                Y      Y
+CPU type                         #2         Y                     Y      Y
+FPU type                         #3                               Y
+Speed of CPU(s)                  Y                                Y      Y
+RAM size (Mb)               Y    Y          #4                    Y      Y
+L1 data cache size                                                    
+L1 instruction cache size                                            
+L2 cache size
+
+Feature                                 Operating system
+
+                           UNICOS 
+Harware provider            Y      
+Hardware platform            
+Machine                     Y  
+Sysname                     
+Release                  
+Nodename               
+#CPUs supported           
+#CPUs online            
+CPU type                    
+FPU type                   
+Speed of CPU(s)           
+RAM size (Mb)          
+L1 data cache size                                                    
+L1 instruction cache size                                            
+L2 cache size
+
+Notes:
+
+#1 On AIX, the release is reported as 2, not 5.2 as expected. 
+#2 on HP-UX, the CPU is reported as  a number, which might not be that 
+useful.
+#3 on HP-UX, the FPU is reported as  a number, which might not be that 
+useful.
+#4 On a machine with 128 Mb of RAM, the ram is reported on Linux as
+124 Mb, not 128 Mb as expected. 
+
+
+
diff --git a/README.help b/README.help
new file mode 100644 (file)
index 0000000..1105309
--- /dev/null
@@ -0,0 +1,61 @@
+Want to help with atlc? Here's how. 
+
+1) First of all, please test atlc on your platform. Let me know
+if it passes or fails and if possible give me the output
+of a log file 
+configure > log
+make >> log
+make check >> log
+
+and send me the log 
+
+2) If anyone can write any code to obtain information about
+hardware on any systems, it would be much appreciated. 
+The format should be very clear form the file 
+tests/benchmark.c. This looks for a number of files
+try_linux.c, try_solaris.c etc. These files are expected
+to fill in the structure computer_data
+
+
+struct computer_data{
+char mhz[MAX_SIZE];                  /* Speed in MHz. Note its a string */
+char cpus[MAX_SIZE];                 /* Number of CPUs running          */
+char max_cpus[MAX_SIZE];             /* Maximum number of CPUs support by system */
+ char sysname[MAX_SIZE];              /* System name - got by uname */
+ char nodename[MAX_SIZE];             /* nodename - got via uname            */
+ char release[MAX_SIZE];              /* Got via uname, but often wrong      */
+ char version[MAX_SIZE];              /* Version of the OS. Sometimes wrong. */
+ char machine[MAX_SIZE];              /* Machine name                        */
+ char cpu_type[MAX_SIZE*3];           /* The CPU type                        */
+ char fpu_type[MAX_SIZE*3];           /* The FPU type                        */
+ char memory[MAX_SIZE];               /* The memory in Mb                    */ 
+ char hw_provider[MAX_SIZE];          /* The hardware provider - Sun, IBM etc */
+ char hw_platform[MAX_SIZE];          /* The hardware platform - eg sun4u    */
+ char t1[MAX_SIZE];                   /* Time in s to run benchmark single threaded */
+ char t2[MAX_SIZE];                   /* Time in s to run benchmark multi threade
+ d */
+ char speedup[MAX_SIZE];              /* t1/t2 */
+ char eff[MAX_SIZE];                  /* The efficiency - t1/(t2*cpus)     */
+ char L1data[MAX_SIZE];               /* Size of level 1 data cache in kb  */
+ char L1instruction[MAX_SIZE];        /* Size of level 1 instuction cache in kb *
+ /
+ char L2[MAX_SIZE];                   /* Size of L2 cache                  */ 
+ }a;
+
+with missing information. So if you know how to find the speed of
+a linux box, please change try_linux.c so it has the speed in the
+structure element 'data.mhz' All information must be stored as
+one long string. So if fpu type should be a 'Athlon XP2800', this
+then data.fpu_type should say 'Athlon_XP2800', with the underscore
+added. 
+
+This really needs doing for Linux and the BSD versions. IRIX I
+can do myself at some time. 
+
+3) Add a GUI
+
+4) Provide an HP compiler for HP-UX.
+
+5) 
+
+Dr. David Kirkby, 15th August 2003.
diff --git a/README.mpi b/README.mpi
new file mode 100644 (file)
index 0000000..3df79e9
--- /dev/null
@@ -0,0 +1,12 @@
+'atlc' *did* have C code to allow it to use the Message Passing Interface (MPI),
+which whould allow 'atltc' to run on distributed processors on a network
+of computers. In order to do this, you needed to install the MPICH
+library from 
+http://www-unix.mcs.anl.gov/mpi/mpich/indexold.html
+
+However, at the time of writing, This has been disabled and so there
+is not a lot of point in configuring atlc for MPI support. MPI support
+is a number one pririty now, so soon a better implementation will be
+added to atlc. 
+
+Dr. David Kirkby, 15th Auguest 2003, Re: Version 4.3.7
diff --git a/README.solaris b/README.solaris
new file mode 100644 (file)
index 0000000..b29bec1
--- /dev/null
@@ -0,0 +1,25 @@
+1) Sun's make programme in /usr/ccs/bin/make is not able to compile this
+properly, giving an error message like 
+
+mksh: Fatal error in reader: = missing from replacement macro reference
+
+Another problem found on the make in Solaris 2.5 is that it don't know
+how to make acx_mpi.m4. That file is included in the distribution for
+future use, but there is no reason for the program to do anything with
+it. 
+
+Use GNU make to build atlc. This is often installed on systems as gmake.
+Other make versions like smake may work, but I've never tried them. 
+
+3) If you have a copy of Sun's cc compiler, the following 
+CFLAGS are suggested. Using Sun's compiler will give about a 25% reduction 
+in run times. 
+
+'-dalign -fns -fsimple=1 -xalias_level=basic -xdepend -xlibmil -xO5 -I/usr/local/include -R/usr/local/lib'
+
+If you find a better set of options for Sun's cc, that still allow all
+the tests to pass, then please let me know. 
+Dr. David Kirkby, 16th October 2003 Re: atlc-4.5.1
+
+
diff --git a/README.support b/README.support
new file mode 100644 (file)
index 0000000..cb1ade9
--- /dev/null
@@ -0,0 +1,9 @@
+Whenever possible support will be provided free of charge as soon as
+possible for any amaateur or commerical use of this software. Just drop
+me an email at drkirkby@ntlworld.com and/or davek@medphys.ucl.ac.uk
+
+For extended technical support in using the program in a commerical 
+enviroment, I would expect some payment. 
+
+Dr. David Kirkby, 15/12/02.
+
diff --git a/README.threads b/README.threads
new file mode 100644 (file)
index 0000000..7ac7134
--- /dev/null
@@ -0,0 +1,15 @@
+This file is README.threads
+
+Prior to verison 4.5.1, atlc could be configured to use 
+mutltiple-threads to exploit multi-processors. This has 
+been disabled, as I have some concerns the code may not 
+be 100% correct and whilst is it unlikely, the results 
+could be wrong. It is very unlikely, but its a chance
+I don't want to take, so multi-threaded support has 
+been disabled. A new algorithm has been worked out - 
+it just needs to be coded. Howfully this will be done
+by early Feburary 2004 at the latest. 
+
+Dr. David Kirkby, 7th December 2004. Re: atlc-4.6.0
+
+
diff --git a/README.windows b/README.windows
new file mode 100644 (file)
index 0000000..c0b7399
--- /dev/null
@@ -0,0 +1,14 @@
+atlc is primarily a UNIX program. Some Microsoft Windows
+binaries have been produced in the past, one of which
+was atlc-4.4.4_Win32.zip. However, some problems were
+found in atlc with multiple dielectrics. As such I've 
+removed the windows binaries. 
+
+If someone wants to build some, based on the latest
+code I'll put them up again, but whilst the code
+is not working optimally with multi-dielectrics, it 
+is not seriously broken as it was before. 
+
+
+Dr. David Kirkby, G8WRB,  7th Dec, 2003.
+Re: atlc-4.6.0
diff --git a/THANKS b/THANKS
new file mode 100644 (file)
index 0000000..117758b
--- /dev/null
+++ b/THANKS
@@ -0,0 +1,39 @@
+Thanks to everyone who has helped in some way, reporting problems
+etc. Particular thanks are due to 
+
+Holger Waechtler <holger@convergence.de> for spotting several bugs. 
+Randall DuCharme <ad5gb@yahoo.com> much help, especially with WxWindows and 
+building Windoze versions.
+"AA1LL / KB1CZP" <aa1ll@email.com> for help with coupled line. 
+"Treibergs, Valts" <treibev@ectinfo.com> for spotting the bug with -s and -S on 2 conductor lines. 
+Patrick Kelsey <kelsey@ieee.org> for help with MPI support. 
+Eric Sosman for help with porting to the Cray-Y-MP
+Miguel Berg for noticing a bug which caused crashes under Windoze XP  
+
+
+****HELP from testers****
+I'm always willing to know of systems on which atlc either passes or fails 
+its tests. This is particularly so of the uncommon platforms, operating
+systems or versions of Linux. I hope I have not forgotten anyone
+in the list below. If so let me know and I'll add you to the list. 
+
+David Anderson GM4JJJ for testing. 
+Steve Thompson G8GSQ for testing and finding a real bug affecting Suse. 
+Bdale Garbee for finding a bug in the way hardware information was displayed.
+Mark testing on his AMD Barton 2800+. 
+Ron Patterson for also finding a bug about hardware information.
+Paul for testing on 'relic' and 'speedy'
+Theo v. Werkhoven for testing on Linux
+Bob Cole for testing on his UnixWare system.
+Tom Cage K5GI for testing on a number of platforms. 
+Daniel Schafer for testing on Gentoo Linux. 
+Oddbjorn Hansen for testing on Suse Linux 
+Tavis Ormandy for testing on Gentoo Linux for Alpha. 
+
+And last, but my no means least, to those dedicated people at 
+http://www.cray-cyber.org/general/start.php
+for providing access to a Cray supercomputer for testing on that. 
+I never thought I'd be able to test atlc on a Cray. 
+
+Dr. David Kirkby, 4th September 2003. 
diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..0bd2ec3
--- /dev/null
+++ b/TODO
@@ -0,0 +1,35 @@
+TODO List
+
+Here is a list of the ways I would like to expand atlc, in a rough order of time. 
+  1 Re-enable support for multiple processors. 
+
+  2 Improve accuraracy on transmission lines where there is more
+    than one dielectric - e.g air and PTFE sbustrate board. The
+    current code works, but some improvements could be made. 
+
+  3.Determine the processor type a bit more senisbly in the 
+    benchmark called by 'make check'. At present this is likely
+    to return unknown' or a meaningless number on most platforms.
+    It works pretty well on Solaris, Tru64 and HP-UX, but does
+    not on all systems. 
+
+  4.Implement a better way of enabling a user to change the 
+    contrast/brightness in an image. Current, this can
+    only be done with the '-f option to atlc, but this 
+    requires a re-run of atlc to do this, which is hardly
+    very useful, given atlc is so CPU intensive. There are 
+    faster ways of doing this, just from the binary files
+    (example.E.bin, example.Ex.bin, example.Ey.bin, example.U.bin, 
+    example.V.bin and example.Er.bin)..
+
+
+   5.Get the program 'generate_bmp_for_rect_in_circ' working.
+
+   6 Get a decent GUI. 
+
+If anyone has any suggestions for how to improve atlc, please email me. 
+
+atlc is written and supported by Dr. David Kirkby (G8WRB). It it issued under 
+the GNU General Public License
+
+Dr. David Kirkby,   8th December 2003. 
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644 (file)
index 0000000..6cdefc7
--- /dev/null
@@ -0,0 +1,976 @@
+# generated automatically by aclocal 1.7 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# Do all the work for Automake.                            -*- Autoconf -*-
+
+# This macro actually does too much some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 8
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+AC_PREREQ([2.54])
+
+# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
+# the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl
+ AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_CC],
+                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_CXX],
+                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[_am_stamp_count=`expr ${_am_stamp_count-0} + 1`
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright 2002  Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+        [AM_AUTOMAKE_VERSION([1.7])])
+
+# Helper functions for option handling.                    -*- Autoconf -*-
+
+# Copyright 2001, 2002  Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 2
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 3
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+#  -*- Autoconf -*-
+
+
+# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 3
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# AM_AUX_DIR_EXPAND
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+# Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_AUX_DIR_EXPAND], [
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# AM_PROG_INSTALL_STRIP
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# serial 4                                             -*- Autoconf -*-
+
+# Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    echo '#include "conftest.h"' > conftest.c
+    echo 'int i;' > conftest.h
+    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=conftest.c object=conftest.o \
+       depfile=conftest.Po tmpdepfile=conftest.TPo \
+       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+       grep conftest.h conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      am_cv_$1_dependencies_compiler_type=$depmode
+      break
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+  DEPDIR=.deps
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+AC_SUBST([DEPDIR])
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking.   -*- Autoconf -*-
+
+# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+#serial 2
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`AS_DIRNAME("$mf")`
+  else
+    continue
+  fi
+  grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+       s/\\\\$//
+       p
+       n
+       /\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`AS_DIRNAME(["$file"])`
+    AS_MKDIR_P([$dirpart/$fdir])
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Check to see how 'make' treats includes.     -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 2
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+       @echo done
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+AC_SUBST(am__include)
+AC_SUBST(am__quote)
+AC_MSG_RESULT($_am_result)
+rm -f confinc confmf
+])
+
+# AM_CONDITIONAL                                              -*- Autoconf -*-
+
+# Copyright 1997, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 5
+
+AC_PREREQ(2.52)
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+        [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.])
+fi])])
+
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_pthread.html
+dnl
+AC_DEFUN([ACX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_SAVE
+AC_LANG_C
+acx_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+        AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
+        AC_MSG_RESULT($acx_pthread_ok)
+        if test x"$acx_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all.
+
+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+
+case "${host_cpu}-${host_os}" in
+        *solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthread or
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
+        ;;
+esac
+
+if test x"$acx_pthread_ok" = xno; then
+for flag in $acx_pthread_flags; do
+
+        case $flag in
+                none)
+                AC_MSG_CHECKING([whether pthreads work without any flags])
+                ;;
+
+                -*)
+                AC_MSG_CHECKING([whether pthreads work with $flag])
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+                *)
+                AC_MSG_CHECKING([for the pthreads library -l$flag])
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        AC_TRY_LINK([#include <pthread.h>],
+                    [pthread_t th; pthread_join(th, 0);
+                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
+                     pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+                    [acx_pthread_ok=yes])
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        AC_MSG_RESULT($acx_pthread_ok)
+        if test "x$acx_pthread_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$acx_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: threads are created detached by default
+        # and the JOINABLE attribute has a nonstandard name (UNDETACHED).
+        AC_MSG_CHECKING([for joinable pthread attribute])
+        AC_TRY_LINK([#include <pthread.h>],
+                    [int attr=PTHREAD_CREATE_JOINABLE;],
+                    ok=PTHREAD_CREATE_JOINABLE, ok=unknown)
+        if test x"$ok" = xunknown; then
+                AC_TRY_LINK([#include <pthread.h>],
+                            [int attr=PTHREAD_CREATE_UNDETACHED;],
+                            ok=PTHREAD_CREATE_UNDETACHED, ok=unknown)
+        fi
+        if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then
+                AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok,
+                          [Define to the necessary symbol if this constant
+                           uses a non-standard name on your system.])
+        fi
+        AC_MSG_RESULT(${ok})
+        if test x"$ok" = xunknown; then
+                AC_MSG_WARN([we do not know how to create joinable pthreads])
+        fi
+
+        AC_MSG_CHECKING([if more special flags are required for pthreads])
+        flag=no
+        case "${host_cpu}-${host_os}" in
+                *-aix* | *-freebsd*)     flag="-D_THREAD_SAFE";;
+                *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+        esac
+        AC_MSG_RESULT(${flag})
+        if test "x$flag" != xno; then
+                PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: must compile with cc_r
+        AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
+else
+        PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$acx_pthread_ok" = xyes; then
+        ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+        :
+else
+        acx_pthread_ok=no
+        $2
+fi
+AC_LANG_RESTORE
+])dnl ACX_PTHREAD
+
diff --git a/compile b/compile
new file mode 100644 (file)
index 0000000..9bb997a
--- /dev/null
+++ b/compile
@@ -0,0 +1,99 @@
+#! /bin/sh
+
+# Wrapper for compilers which do not understand `-c -o'.
+
+# Copyright 1999, 2000 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is 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, or (at your option)
+# any later version.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Usage:
+# compile PROGRAM [ARGS]...
+# `-o FOO.o' is removed from the args passed to the actual compile.
+
+prog=$1
+shift
+
+ofile=
+cfile=
+args=
+while test $# -gt 0; do
+   case "$1" in
+    -o)
+       # configure might choose to run compile as `compile cc -o foo foo.c'.
+       # So we do something ugly here.
+       ofile=$2
+       shift
+       case "$ofile" in
+       *.o | *.obj)
+          ;;
+       *)
+          args="$args -o $ofile"
+          ofile=
+          ;;
+       esac
+       ;;
+    *.c)
+       cfile=$1
+       args="$args $1"
+       ;;
+    *)
+       args="$args $1"
+       ;;
+   esac
+   shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+   # If no `-o' option was seen then we might have been invoked from a
+   # pattern rule where we don't need one.  That is ok -- this is a
+   # normal compilation that the losing compiler can handle.  If no
+   # `.c' file was seen then we are probably linking.  That is also
+   # ok.
+   exec "$prog" $args
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
+while true; do
+   if mkdir $lockdir > /dev/null 2>&1; then
+      break
+   fi
+   sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir $lockdir; exit 1" 1 2 15
+
+# Run the compile.
+"$prog" $args
+status=$?
+
+if test -f "$cofile"; then
+   mv "$cofile" "$ofile"
+fi
+
+rmdir $lockdir
+exit $status
diff --git a/config.guess b/config.guess
new file mode 100644 (file)
index 0000000..f1657bb
--- /dev/null
@@ -0,0 +1,1363 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-09-03'
+
+# This file is 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.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# This shell variable is my proudest work .. or something. --bje
+
+set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
+(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
+   || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
+dummy=$tmpdir/dummy ;
+files="$dummy.c $dummy.o $dummy.rel $dummy" ;
+trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+       for c in cc gcc c89 c99 ; do
+         if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then
+            CC_FOR_BUILD="$c"; break ;
+         fi ;
+       done ;
+       rm -f $files ;
+       if test x"$CC_FOR_BUILD" = x ; then
+         CC_FOR_BUILD=no_compiler_found ;
+       fi
+       ;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ;
+unset files'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+       PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+       # NetBSD (nbsd) targets should (where applicable) match one or
+       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+       # switched to ELF, *-*-netbsd* would select the old
+       # object file format.  This provides both forward
+       # compatibility and a consistent mechanism for selecting the
+       # object file format.
+       #
+       # Note: NetBSD doesn't particularly care about the vendor
+       # portion of the name.  We always set it to "unknown".
+       sysctl="sysctl -n hw.machine_arch"
+       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+       case "${UNAME_MACHINE_ARCH}" in
+           armeb) machine=armeb-unknown ;;
+           arm*) machine=arm-unknown ;;
+           sh3el) machine=shl-unknown ;;
+           sh3eb) machine=sh-unknown ;;
+           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+       esac
+       # The Operating System including object format, if it has switched
+       # to ELF recently, or will in the future.
+       case "${UNAME_MACHINE_ARCH}" in
+           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+               eval $set_cc_for_build
+               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+                       | grep __ELF__ >/dev/null
+               then
+                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+                   # Return netbsd for either.  FIX?
+                   os=netbsd
+               else
+                   os=netbsdelf
+               fi
+               ;;
+           *)
+               os=netbsd
+               ;;
+       esac
+       # The OS release
+       release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+       # contains redundant information, the shorter form:
+       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+       echo "${machine}-${os}${release}"
+       exit 0 ;;
+    amiga:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    arc:OpenBSD:*:*)
+       echo mipsel-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    hp300:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    mac68k:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    macppc:OpenBSD:*:*)
+       echo powerpc-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    mvme68k:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    mvme88k:OpenBSD:*:*)
+       echo m88k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    mvmeppc:OpenBSD:*:*)
+       echo powerpc-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    pmax:OpenBSD:*:*)
+       echo mipsel-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    sgi:OpenBSD:*:*)
+       echo mipseb-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    sun3:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    wgrisc:OpenBSD:*:*)
+       echo mipsel-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    *:OpenBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    alpha:OSF1:*:*)
+       if test $UNAME_RELEASE = "V4.0"; then
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+       fi
+       # A Vn.n version is a released version.
+       # A Tn.n version is a released field test version.
+       # A Xn.n version is an unreleased experimental baselevel.
+       # 1.2 uses "1.2" for uname -r.
+       eval $set_cc_for_build
+       cat <<EOF >$dummy.s
+       .data
+\$Lformat:
+       .byte 37,100,45,37,120,10,0     # "%d-%x\n"
+
+       .text
+       .globl main
+       .align 4
+       .ent main
+main:
+       .frame \$30,16,\$26,0
+       ldgp \$29,0(\$27)
+       .prologue 1
+       .long 0x47e03d80 # implver \$0
+       lda \$2,-1
+       .long 0x47e20c21 # amask \$2,\$1
+       lda \$16,\$Lformat
+       mov \$0,\$17
+       not \$1,\$18
+       jsr \$26,printf
+       ldgp \$29,0(\$26)
+       mov 0,\$16
+       jsr \$26,exit
+       .end main
+EOF
+       $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+       if test "$?" = 0 ; then
+               case `$dummy` in
+                       0-0)
+                               UNAME_MACHINE="alpha"
+                               ;;
+                       1-0)
+                               UNAME_MACHINE="alphaev5"
+                               ;;
+                       1-1)
+                               UNAME_MACHINE="alphaev56"
+                               ;;
+                       1-101)
+                               UNAME_MACHINE="alphapca56"
+                               ;;
+                       2-303)
+                               UNAME_MACHINE="alphaev6"
+                               ;;
+                       2-307)
+                               UNAME_MACHINE="alphaev67"
+                               ;;
+                       2-1307)
+                               UNAME_MACHINE="alphaev68"
+                               ;;
+                       3-1307)
+                               UNAME_MACHINE="alphaev7"
+                               ;;
+               esac
+       fi
+       rm -f $dummy.s $dummy && rmdir $tmpdir
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       exit 0 ;;
+    Alpha\ *:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # Should we change UNAME_MACHINE based on the output of uname instead
+       # of the specific Alpha model?
+       echo alpha-pc-interix
+       exit 0 ;;
+    21064:Windows_NT:50:3)
+       echo alpha-dec-winnt3.5
+       exit 0 ;;
+    Amiga*:UNIX_System_V:4.0:*)
+       echo m68k-unknown-sysv4
+       exit 0;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-amigaos
+       exit 0 ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-morphos
+       exit 0 ;;
+    *:OS/390:*:*)
+       echo i370-ibm-openedition
+       exit 0 ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+       echo arm-acorn-riscix${UNAME_RELEASE}
+       exit 0;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+       echo hppa1.1-hitachi-hiuxmpp
+       exit 0;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+       # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+       if test "`(/bin/universe) 2>/dev/null`" = att ; then
+               echo pyramid-pyramid-sysv3
+       else
+               echo pyramid-pyramid-bsd
+       fi
+       exit 0 ;;
+    NILE*:*:*:dcosx)
+       echo pyramid-pyramid-svr4
+       exit 0 ;;
+    DRS?6000:UNIX_SV:4.2*:7*)
+       case `/usr/bin/uname -p` in
+           sparc) echo sparc-icl-nx7 && exit 0 ;;
+       esac ;;
+    sun4H:SunOS:5.*:*)
+       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    i86pc:SunOS:5.*:*)
+       echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    sun4*:SunOS:6*:*)
+       # According to config.sub, this is the proper way to canonicalize
+       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+       # it's likely to be more like Solaris than SunOS4.
+       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    sun4*:SunOS:*:*)
+       case "`/usr/bin/arch -k`" in
+           Series*|S4*)
+               UNAME_RELEASE=`uname -v`
+               ;;
+       esac
+       # Japanese Language versions have a version number like `4.1.3-JL'.
+       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+       exit 0 ;;
+    sun3*:SunOS:*:*)
+       echo m68k-sun-sunos${UNAME_RELEASE}
+       exit 0 ;;
+    sun*:*:4.2BSD:*)
+       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+       case "`/bin/arch`" in
+           sun3)
+               echo m68k-sun-sunos${UNAME_RELEASE}
+               ;;
+           sun4)
+               echo sparc-sun-sunos${UNAME_RELEASE}
+               ;;
+       esac
+       exit 0 ;;
+    aushp:SunOS:*:*)
+       echo sparc-auspex-sunos${UNAME_RELEASE}
+       exit 0 ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit 0 ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit 0 ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit 0 ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit 0 ;;
+    powerpc:machten:*:*)
+       echo powerpc-apple-machten${UNAME_RELEASE}
+       exit 0 ;;
+    RISC*:Mach:*:*)
+       echo mips-dec-mach_bsd4.3
+       exit 0 ;;
+    RISC*:ULTRIX:*:*)
+       echo mips-dec-ultrix${UNAME_RELEASE}
+       exit 0 ;;
+    VAX*:ULTRIX*:*:*)
+       echo vax-dec-ultrix${UNAME_RELEASE}
+       exit 0 ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+       echo clipper-intergraph-clix${UNAME_RELEASE}
+       exit 0 ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
+       #if defined (host_mips) && defined (MIPSEB)
+       #if defined (SYSTYPE_SYSV)
+         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_SVR4)
+         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+       #endif
+       #endif
+         exit (-1);
+       }
+EOF
+       $CC_FOR_BUILD $dummy.c -o $dummy \
+         && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+         && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+       rm -f $dummy.c $dummy && rmdir $tmpdir
+       echo mips-mips-riscos${UNAME_RELEASE}
+       exit 0 ;;
+    Motorola:PowerMAX_OS:*:*)
+       echo powerpc-motorola-powermax
+       exit 0 ;;
+    Motorola:*:4.3:PL8-*)
+       echo powerpc-harris-powermax
+       exit 0 ;;
+    Night_Hawk:*:*:PowerMAX_OS)
+       echo powerpc-harris-powermax
+       exit 0 ;;
+    Night_Hawk:Power_UNIX:*:*)
+       echo powerpc-harris-powerunix
+       exit 0 ;;
+    m88k:CX/UX:7*:*)
+       echo m88k-harris-cxux7
+       exit 0 ;;
+    m88k:*:4*:R4*)
+       echo m88k-motorola-sysv4
+       exit 0 ;;
+    m88k:*:3*:R3*)
+       echo m88k-motorola-sysv3
+       exit 0 ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+       then
+           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           then
+               echo m88k-dg-dgux${UNAME_RELEASE}
+           else
+               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+           fi
+       else
+           echo i586-dg-dgux${UNAME_RELEASE}
+       fi
+       exit 0 ;;
+    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
+       echo m88k-dolphin-sysv3
+       exit 0 ;;
+    M88*:*:R3*:*)
+       # Delta 88k system running SVR3
+       echo m88k-motorola-sysv3
+       exit 0 ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+       echo m88k-tektronix-sysv3
+       exit 0 ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+       echo m68k-tektronix-bsd
+       exit 0 ;;
+    *:IRIX*:*:*)
+       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       exit 0 ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+       echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
+       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+       echo i386-ibm-aix
+       exit 0 ;;
+    ia64:AIX:*:*)
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       exit 0 ;;
+    *:AIX:2:3)
+       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+               eval $set_cc_for_build
+               sed 's/^                //' << EOF >$dummy.c
+               #include <sys/systemcfg.h>
+
+               main()
+                       {
+                       if (!__power_pc())
+                               exit(1);
+                       puts("powerpc-ibm-aix3.2.5");
+                       exit(0);
+                       }
+EOF
+               $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+               rm -f $dummy.c $dummy && rmdir $tmpdir
+               echo rs6000-ibm-aix3.2.5
+       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+               echo rs6000-ibm-aix3.2.4
+       else
+               echo rs6000-ibm-aix3.2
+       fi
+       exit 0 ;;
+    *:AIX:*:[45])
+       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+               IBM_ARCH=rs6000
+       else
+               IBM_ARCH=powerpc
+       fi
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+       exit 0 ;;
+    *:AIX:*:*)
+       echo rs6000-ibm-aix
+       exit 0 ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+       echo romp-ibm-bsd4.4
+       exit 0 ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+       exit 0 ;;                           # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+       echo rs6000-bull-bosx
+       exit 0 ;;
+    DPX/2?00:B.O.S.:*:*)
+       echo m68k-bull-sysv3
+       exit 0 ;;
+    9000/[34]??:4.3bsd:1.*:*)
+       echo m68k-hp-bsd
+       exit 0 ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+       echo m68k-hp-bsd4.4
+       exit 0 ;;
+    9000/[34678]??:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       case "${UNAME_MACHINE}" in
+           9000/31? )            HP_ARCH=m68000 ;;
+           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/[678][0-9][0-9])
+               if [ -x /usr/bin/getconf ]; then
+                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+               fi
+               if [ "${HP_ARCH}" = "" ]; then
+                   eval $set_cc_for_build
+                   sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+               {
+               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+               case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+                   switch (bits)
+                       {
+                       case 64: puts ("hppa2.0w"); break;
+                       case 32: puts ("hppa2.0n"); break;
+                       default: puts ("hppa2.0"); break;
+                       } break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+                   puts ("hppa2.0"); break;
+              #endif
+               default: puts ("hppa1.0"); break;
+               }
+                  exit (0);
+              }
+EOF
+                   (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
+                   if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+                   rm -f $dummy.c $dummy && rmdir $tmpdir
+               fi ;;
+       esac
+       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       exit 0 ;;
+    ia64:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux${HPUX_REV}
+       exit 0 ;;
+    3050*:HI-UX:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <unistd.h>
+       int
+       main ()
+       {
+         long cpu = sysconf (_SC_CPU_VERSION);
+         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+            results, however.  */
+         if (CPU_IS_PA_RISC (cpu))
+           {
+             switch (cpu)
+               {
+                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+                 default: puts ("hppa-hitachi-hiuxwe2"); break;
+               }
+           }
+         else if (CPU_IS_HP_MC68K (cpu))
+           puts ("m68k-hitachi-hiuxwe2");
+         else puts ("unknown-hitachi-hiuxwe2");
+         exit (0);
+       }
+EOF
+       $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+       rm -f $dummy.c $dummy && rmdir $tmpdir
+       echo unknown-hitachi-hiuxwe2
+       exit 0 ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+       echo hppa1.1-hp-bsd
+       exit 0 ;;
+    9000/8??:4.3bsd:*:*)
+       echo hppa1.0-hp-bsd
+       exit 0 ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+       echo hppa1.0-hp-mpeix
+       exit 0 ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+       echo hppa1.1-hp-osf
+       exit 0 ;;
+    hp8??:OSF1:*:*)
+       echo hppa1.0-hp-osf
+       exit 0 ;;
+    i*86:OSF1:*:*)
+       if [ -x /usr/sbin/sysversion ] ; then
+           echo ${UNAME_MACHINE}-unknown-osf1mk
+       else
+           echo ${UNAME_MACHINE}-unknown-osf1
+       fi
+       exit 0 ;;
+    parisc*:Lites*:*:*)
+       echo hppa1.1-hp-lites
+       exit 0 ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+       echo c1-convex-bsd
+        exit 0 ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+        exit 0 ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+       echo c34-convex-bsd
+        exit 0 ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+       echo c38-convex-bsd
+        exit 0 ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+       echo c4-convex-bsd
+        exit 0 ;;
+    CRAY*Y-MP:*:*:*)
+       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*[A-Z]90:*:*:*)
+       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+             -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*TS:*:*:*)
+       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*T3D:*:*:*)
+       echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*T3E:*:*:*)
+       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*SV1:*:*:*)
+       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit 0 ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+    sparc*:BSD/OS:*:*)
+       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+    *:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+    *:FreeBSD:*:*)
+       # Determine whether the default compiler uses glibc.
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <features.h>
+       #if __GLIBC__ >= 2
+       LIBC=gnu
+       #else
+       LIBC=
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+       rm -f $dummy.c && rmdir $tmpdir
+       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+       exit 0 ;;
+    i*:CYGWIN*:*)
+       echo ${UNAME_MACHINE}-pc-cygwin
+       exit 0 ;;
+    i*:MINGW*:*)
+       echo ${UNAME_MACHINE}-pc-mingw32
+       exit 0 ;;
+    i*:PW*:*)
+       echo ${UNAME_MACHINE}-pc-pw32
+       exit 0 ;;
+    x86:Interix*:3*)
+       echo i386-pc-interix3
+       exit 0 ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+       # UNAME_MACHINE based on the output of uname instead of i386?
+       echo i386-pc-interix
+       exit 0 ;;
+    i*:UWIN*:*)
+       echo ${UNAME_MACHINE}-pc-uwin
+       exit 0 ;;
+    p*:CYGWIN*:*)
+       echo powerpcle-unknown-cygwin
+       exit 0 ;;
+    prep*:SunOS:5.*:*)
+       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    *:GNU:*:*)
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       exit 0 ;;
+    i*86:Minix:*:*)
+       echo ${UNAME_MACHINE}-pc-minix
+       exit 0 ;;
+    arm*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    ia64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    mips:Linux:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #undef CPU
+       #undef mips
+       #undef mipsel
+       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+       CPU=mipsel
+       #else
+       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+       CPU=mips
+       #else
+       CPU=
+       #endif
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+       rm -f $dummy.c && rmdir $tmpdir
+       test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
+       ;;
+    ppc:Linux:*:*)
+       echo powerpc-unknown-linux-gnu
+       exit 0 ;;
+    ppc64:Linux:*:*)
+       echo powerpc64-unknown-linux-gnu
+       exit 0 ;;
+    alpha:Linux:*:*)
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+         EV5)   UNAME_MACHINE=alphaev5 ;;
+         EV56)  UNAME_MACHINE=alphaev56 ;;
+         PCA56) UNAME_MACHINE=alphapca56 ;;
+         PCA57) UNAME_MACHINE=alphapca56 ;;
+         EV6)   UNAME_MACHINE=alphaev6 ;;
+         EV67)  UNAME_MACHINE=alphaev67 ;;
+         EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+       objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       exit 0 ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+       # Look for CPU level
+       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+         PA7*) echo hppa1.1-unknown-linux-gnu ;;
+         PA8*) echo hppa2.0-unknown-linux-gnu ;;
+         *)    echo hppa-unknown-linux-gnu ;;
+       esac
+       exit 0 ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+       echo hppa64-unknown-linux-gnu
+       exit 0 ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+       echo ${UNAME_MACHINE}-ibm-linux
+       exit 0 ;;
+    sh*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    x86_64:Linux:*:*)
+       echo x86_64-unknown-linux-gnu
+       exit 0 ;;
+    i*86:Linux:*:*)
+       # The BFD linker knows what the default object file format is, so
+       # first see if it will tell us. cd to the root directory to prevent
+       # problems with other programs or directories called `ld' in the path.
+       # Set LC_ALL=C to ensure ld outputs messages in English.
+       ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+                        | sed -ne '/supported targets:/!d
+                                   s/[         ][      ]*/ /g
+                                   s/.*supported targets: *//
+                                   s/ .*//
+                                   p'`
+        case "$ld_supported_targets" in
+         elf32-i386)
+               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+               ;;
+         a.out-i386-linux)
+               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+               exit 0 ;;
+         coff-i386)
+               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+               exit 0 ;;
+         "")
+               # Either a pre-BFD a.out linker (linux-gnuoldld) or
+               # one that does not give us useful --help.
+               echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+               exit 0 ;;
+       esac
+       # Determine whether the default compiler is a.out or elf
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <features.h>
+       #ifdef __ELF__
+       # ifdef __GLIBC__
+       #  if __GLIBC__ >= 2
+       LIBC=gnu
+       #  else
+       LIBC=gnulibc1
+       #  endif
+       # else
+       LIBC=gnulibc1
+       # endif
+       #else
+       #ifdef __INTEL_COMPILER
+       LIBC=gnu
+       #else
+       LIBC=gnuaout
+       #endif
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+       rm -f $dummy.c && rmdir $tmpdir
+       test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+       ;;
+    i*86:DYNIX/ptx:4*:*)
+       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+       # earlier versions are messed up and put the nodename in both
+       # sysname and nodename.
+       echo i386-sequent-sysv4
+       exit 0 ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+       # I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+       exit 0 ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+       else
+               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+       fi
+       exit 0 ;;
+    i*86:*:5:[78]*)
+       case `/bin/uname -X | grep "^Machine"` in
+           *486*)           UNAME_MACHINE=i486 ;;
+           *Pentium)        UNAME_MACHINE=i586 ;;
+           *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+       esac
+       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       exit 0 ;;
+    i*86:*:3.2:*)
+       if test -f /usr/options/cb.name; then
+               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+       elif /bin/uname -X 2>/dev/null >/dev/null ; then
+               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+               (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+               (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+                       && UNAME_MACHINE=i586
+               (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+       else
+               echo ${UNAME_MACHINE}-pc-sysv32
+       fi
+       exit 0 ;;
+    i*86:*DOS:*:*)
+       echo ${UNAME_MACHINE}-pc-msdosdjgpp
+       exit 0 ;;
+    pc:*:*:*)
+       # Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+       echo i386-pc-msdosdjgpp
+        exit 0 ;;
+    Intel:Mach:3*:*)
+       echo i386-pc-mach3
+       exit 0 ;;
+    paragon:*:*:*)
+       echo i860-intel-osf1
+       exit 0 ;;
+    i860:*:4.*:*) # i860-SVR4
+       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+       else # Add other i860-SVR4 vendors below as they are discovered.
+         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+       fi
+       exit 0 ;;
+    mini*:CTIX:SYS*5:*)
+       # "miniframe"
+       echo m68010-convergent-sysv
+       exit 0 ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+       echo m68k-convergent-sysv
+       exit 0 ;;
+    M68*:*:R3V[567]*:*)
+       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
+       OS_REL=''
+       test -r /etc/.relid \
+       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+         && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+         && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && echo i486-ncr-sysv4 && exit 0 ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+       echo m68k-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    mc68030:UNIX_System_V:4.*:*)
+       echo m68k-atari-sysv4
+       exit 0 ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+       echo i386-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    TSUNAMI:LynxOS:2.*:*)
+       echo sparc-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    rs6000:LynxOS:2.*:*)
+       echo rs6000-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    SM[BE]S:UNIX_SV:*:*)
+       echo mips-dde-sysv${UNAME_RELEASE}
+       exit 0 ;;
+    RM*:ReliantUNIX-*:*:*)
+       echo mips-sni-sysv4
+       exit 0 ;;
+    RM*:SINIX-*:*:*)
+       echo mips-sni-sysv4
+       exit 0 ;;
+    *:SINIX-*:*:*)
+       if uname -p 2>/dev/null >/dev/null ; then
+               UNAME_MACHINE=`(uname -p) 2>/dev/null`
+               echo ${UNAME_MACHINE}-sni-sysv4
+       else
+               echo ns32k-sni-sysv
+       fi
+       exit 0 ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit 0 ;;
+    *:UNIX_System_V:4*:FTX*)
+       # From Gerald Hewes <hewes@openmarket.com>.
+       # How about differentiating between stratus architectures? -djm
+       echo hppa1.1-stratus-sysv4
+       exit 0 ;;
+    *:*:*:FTX*)
+       # From seanf@swdc.stratus.com.
+       echo i860-stratus-sysv4
+       exit 0 ;;
+    *:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo hppa1.1-stratus-vos
+       exit 0 ;;
+    mc68*:A/UX:*:*)
+       echo m68k-apple-aux${UNAME_RELEASE}
+       exit 0 ;;
+    news*:NEWS-OS:6*:*)
+       echo mips-sony-newsos6
+       exit 0 ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+       if [ -d /usr/nec ]; then
+               echo mips-nec-sysv${UNAME_RELEASE}
+       else
+               echo mips-unknown-sysv${UNAME_RELEASE}
+       fi
+        exit 0 ;;
+    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
+       echo powerpc-be-beos
+       exit 0 ;;
+    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
+       echo powerpc-apple-beos
+       exit 0 ;;
+    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
+       echo i586-pc-beos
+       exit 0 ;;
+    SX-4:SUPER-UX:*:*)
+       echo sx4-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    SX-5:SUPER-UX:*:*)
+       echo sx5-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    SX-6:SUPER-UX:*:*)
+       echo sx6-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    Power*:Rhapsody:*:*)
+       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+    *:Rhapsody:*:*)
+       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+    *:Darwin:*:*)
+       echo `uname -p`-apple-darwin${UNAME_RELEASE}
+       exit 0 ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+       UNAME_PROCESSOR=`uname -p`
+       if test "$UNAME_PROCESSOR" = "x86"; then
+               UNAME_PROCESSOR=i386
+               UNAME_MACHINE=pc
+       fi
+       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+       exit 0 ;;
+    *:QNX:*:4*)
+       echo i386-pc-qnx
+       exit 0 ;;
+    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+       echo nsr-tandem-nsk${UNAME_RELEASE}
+       exit 0 ;;
+    *:NonStop-UX:*:*)
+       echo mips-compaq-nonstopux
+       exit 0 ;;
+    BS2000:POSIX*:*:*)
+       echo bs2000-siemens-sysv
+       exit 0 ;;
+    DS/*:UNIX_System_V:*:*)
+       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+       exit 0 ;;
+    *:Plan9:*:*)
+       # "uname -m" is not consistent, so use $cputype instead. 386
+       # is converted to i386 for consistency with other x86
+       # operating systems.
+       if test "$cputype" = "386"; then
+           UNAME_MACHINE=i386
+       else
+           UNAME_MACHINE="$cputype"
+       fi
+       echo ${UNAME_MACHINE}-unknown-plan9
+       exit 0 ;;
+    i*86:OS/2:*:*)
+       # If we were able to find `uname', then EMX Unix compatibility
+       # is probably installed.
+       echo ${UNAME_MACHINE}-pc-os2-emx
+       exit 0 ;;
+    *:TOPS-10:*:*)
+       echo pdp10-unknown-tops10
+       exit 0 ;;
+    *:TENEX:*:*)
+       echo pdp10-unknown-tenex
+       exit 0 ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+       echo pdp10-dec-tops20
+       exit 0 ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+       echo pdp10-xkl-tops20
+       exit 0 ;;
+    *:TOPS-20:*:*)
+       echo pdp10-unknown-tops20
+       exit 0 ;;
+    *:ITS:*:*)
+       echo pdp10-unknown-its
+       exit 0 ;;
+    i*86:XTS-300:*:STOP)
+       echo ${UNAME_MACHINE}-unknown-stop
+       exit 0 ;;
+    i*86:atheos:*:*)
+       echo ${UNAME_MACHINE}-unknown-atheos
+       exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+         ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+       printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+       printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+rm -f $dummy.c $dummy && rmdir $tmpdir
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+       echo c1-convex-bsd
+       exit 0 ;;
+    c2*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+       exit 0 ;;
+    c34*)
+       echo c34-convex-bsd
+       exit 0 ;;
+    c38*)
+       echo c38-convex-bsd
+       exit 0 ;;
+    c4*)
+       echo c4-convex-bsd
+       exit 0 ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+    ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.h.in b/config.h.in
new file mode 100644 (file)
index 0000000..58717f6
--- /dev/null
@@ -0,0 +1,207 @@
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* with debugging code */
+#undef DEBUG
+
+/* Enabling POSIX thread support */
+#undef ENABLE_POSIX_THREADS
+
+/* Define to 1 if you have the <aixfont.h> header file. */
+#undef HAVE_AIXFONT_H
+
+/* Define to 1 if you have the `cpucountset' function. */
+#undef HAVE_CPUCOUNTSET
+
+/* Define to 1 if you have the `cpusetcreate' function. */
+#undef HAVE_CPUSETCREATE
+
+/* Define to 1 if you have the `cpu_get_max' function. */
+#undef HAVE_CPU_GET_MAX
+
+/* Define to 1 if you have the `cpu_get_num' function. */
+#undef HAVE_CPU_GET_NUM
+
+/* Define to 1 if you have the <errno.h> header file. */
+#undef HAVE_ERRNO_H
+
+/* Define to 1 if you have the `getsysinfo' function. */
+#undef HAVE_GETSYSINFO
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <invent.h> header file. */
+#undef HAVE_INVENT_H
+
+/* Define to 1 if you have the `m' library (-lm). */
+#undef HAVE_LIBM
+
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define to 1 if you have the <linux/ip.h> header file. */
+#undef HAVE_LINUX_IP_H
+
+/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
+#undef HAVE_MACHINE_HAL_SYSINFO_H
+
+/* Define to 1 if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
+/* Define to 1 if you have the <math.h> header file. */
+#undef HAVE_MATH_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `memset' function. */
+#undef HAVE_MEMSET
+
+/* Define to 1 if you have the `processor_info' function. */
+#undef HAVE_PROCESSOR_INFO
+
+/* Define to 1 if you have the `pstat' function. */
+#undef HAVE_PSTAT
+
+/* Define to 1 if you have the `pstat_getdynamic' function. */
+#undef HAVE_PSTAT_GETDYNAMIC
+
+/* Define to 1 if you have the `pstat_getprocessor' function. */
+#undef HAVE_PSTAT_GETPROCESSOR
+
+/* Define if you have POSIX threads libraries and header files. */
+#undef HAVE_PTHREAD
+
+/* Define to 1 if you have the `pthread_num_processors_np' function. */
+#undef HAVE_PTHREAD_NUM_PROCESSORS_NP
+
+/* has the pthread_setconcunacy call, needeed on Solaris */
+#undef HAVE_PTHREAD_SETCONCURRENCY
+
+/* Define to 1 if you have the <sched.h> header file. */
+#undef HAVE_SCHED_H
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#undef HAVE_STDBOOL_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strchr' function. */
+#undef HAVE_STRCHR
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strtol' function. */
+#undef HAVE_STRTOL
+
+/* Define to 1 if you have the `sysconf' function. */
+#undef HAVE_SYSCONF
+
+/* Define to 1 if you have the `sysctl' function. */
+#undef HAVE_SYSCTL
+
+/* Define to 1 if you have the `sysinfo' function. */
+#undef HAVE_SYSINFO
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/processor.h> header file. */
+#undef HAVE_SYS_PROCESSOR_H
+
+/* Define to 1 if you have the <sys/pstat.h> header file. */
+#undef HAVE_SYS_PSTAT_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/sysctl.h> header file. */
+#undef HAVE_SYS_SYSCTL_H
+
+/* Define to 1 if you have the <sys/sysinfo.h> header file. */
+#undef HAVE_SYS_SYSINFO_H
+
+/* Define to 1 if you have the <sys/syslimits.h> header file. */
+#undef HAVE_SYS_SYSLIMITS_H
+
+/* Define to 1 if you have the <sys/systeminfo.h> header file. */
+#undef HAVE_SYS_SYSTEMINFO_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <sys/unistd.h> header file. */
+#undef HAVE_SYS_UNISTD_H
+
+/* Define to 1 if you have the <sys/utsname.h> header file. */
+#undef HAVE_SYS_UTSNAME_H
+
+/* Define to 1 if you have the <sys/vid.h> header file. */
+#undef HAVE_SYS_VID_H
+
+/* Define to 1 if you have the <time.h> header file. */
+#undef HAVE_TIME_H
+
+/* Define to 1 if you have the `uname' function. */
+#undef HAVE_UNAME
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to the necessary symbol if this constant uses a non-standard name on
+   your system. */
+#undef PTHREAD_CREATE_JOINABLE
+
+/* The size of a `size_t', as computed by sizeof. */
+#undef SIZEOF_SIZE_T
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* try to get hardware information */
+#undef TRY_TO_GET_HARDWARE_INFO
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to 1 if your processor stores words with the most significant byte
+   first (like Motorola and SPARC, unlike Intel and VAX). */
+#undef WORDS_BIGENDIAN
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+#undef size_t
diff --git a/config.sub b/config.sub
new file mode 100644 (file)
index 0000000..1dea9b7
--- /dev/null
@@ -0,0 +1,1470 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-09-05'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is 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.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit 0;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+       -sun*os*)
+               # Prevent following clause from handling this invalid input.
+               ;;
+       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+       -apple | -axis)
+               os=
+               basic_machine=$1
+               ;;
+       -sim | -cisco | -oki | -wec | -winbond)
+               os=
+               basic_machine=$1
+               ;;
+       -scout)
+               ;;
+       -wrs)
+               os=-vxworks
+               basic_machine=$1
+               ;;
+       -chorusos*)
+               os=-chorusos
+               basic_machine=$1
+               ;;
+       -chorusrdb)
+               os=-chorusrdb
+               basic_machine=$1
+               ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
+       -sco5)
+               os=-sco3.2v5
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco4)
+               os=-sco3.2v4
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2v[4-9]*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco*)
+               os=-sco3.2v2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -udk*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -isc)
+               os=-isc2.2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -clix*)
+               basic_machine=clipper-intergraph
+               ;;
+       -isc*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -lynx*)
+               os=-lynxos
+               ;;
+       -ptx*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+               ;;
+       -windowsnt*)
+               os=`echo $os | sed -e 's/windowsnt/winnt/'`
+               ;;
+       -psos*)
+               os=-psos
+               ;;
+       -mint | -mint[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+       1750a | 580 \
+       | a29k \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+       | clipper \
+       | d10v | d30v | dlx | dsp16xx \
+       | fr30 | frv \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | i370 | i860 | i960 | ia64 \
+       | ip2k \
+       | m32r | m68000 | m68k | m88k | mcore \
+       | mips | mipsbe | mipseb | mipsel | mipsle \
+       | mips16 \
+       | mips64 | mips64el \
+       | mips64vr | mips64vrel \
+       | mips64orion | mips64orionel \
+       | mips64vr4100 | mips64vr4100el \
+       | mips64vr4300 | mips64vr4300el \
+       | mips64vr5000 | mips64vr5000el \
+       | mipsisa32 | mipsisa32el \
+       | mipsisa64 | mipsisa64el \
+       | mipsisa64sb1 | mipsisa64sb1el \
+       | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
+       | ns16k | ns32k \
+       | openrisc | or32 \
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | pyramid \
+       | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+       | strongarm \
+       | tahoe | thumb | tic80 | tron \
+       | v850 | v850e \
+       | we32k \
+       | x86 | xscale | xstormy16 | xtensa \
+       | z8k)
+               basic_machine=$basic_machine-unknown
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12)
+               # Motorola 68HC11/12.
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+               ;;
+
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+         basic_machine=$basic_machine-pc
+         ;;
+       # Object if more than one company name word.
+       *-*-*)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+       # Recognize the basic CPU types with company name.
+       580-* \
+       | a29k-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+       | avr-* \
+       | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
+       | clipper-* | cydra-* \
+       | d10v-* | d30v-* | dlx-* \
+       | elxsi-* \
+       | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | i*86-* | i860-* | i960-* | ia64-* \
+       | ip2k-* \
+       | m32r-* \
+       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+       | m88110-* | m88k-* | mcore-* \
+       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+       | mips16-* \
+       | mips64-* | mips64el-* \
+       | mips64vr-* | mips64vrel-* \
+       | mips64orion-* | mips64orionel-* \
+       | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* \
+       | mips64vr5000-* | mips64vr5000el-* \
+       | mipsisa32-* | mipsisa32el-* \
+       | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64sb1-* | mipsisa64sb1el-* \
+       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipstx39 | mipstx39el \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | pyramid-* \
+       | romp-* | rs6000-* \
+       | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+       | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+       | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
+       | v850-* | v850e-* | vax-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+       | xtensa-* \
+       | ymp-* \
+       | z8k-*)
+               ;;
+       # Recognize the various machine names and aliases which stand
+       # for a CPU type and a company and sometimes even an OS.
+       386bsd)
+               basic_machine=i386-unknown
+               os=-bsd
+               ;;
+       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+               basic_machine=m68000-att
+               ;;
+       3b*)
+               basic_machine=we32k-att
+               ;;
+       a29khif)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       adobe68k)
+               basic_machine=m68010-adobe
+               os=-scout
+               ;;
+       alliant | fx80)
+               basic_machine=fx80-alliant
+               ;;
+       altos | altos3068)
+               basic_machine=m68k-altos
+               ;;
+       am29k)
+               basic_machine=a29k-none
+               os=-bsd
+               ;;
+       amdahl)
+               basic_machine=580-amdahl
+               os=-sysv
+               ;;
+       amiga | amiga-*)
+               basic_machine=m68k-unknown
+               ;;
+       amigaos | amigados)
+               basic_machine=m68k-unknown
+               os=-amigaos
+               ;;
+       amigaunix | amix)
+               basic_machine=m68k-unknown
+               os=-sysv4
+               ;;
+       apollo68)
+               basic_machine=m68k-apollo
+               os=-sysv
+               ;;
+       apollo68bsd)
+               basic_machine=m68k-apollo
+               os=-bsd
+               ;;
+       aux)
+               basic_machine=m68k-apple
+               os=-aux
+               ;;
+       balance)
+               basic_machine=ns32k-sequent
+               os=-dynix
+               ;;
+       c90)
+               basic_machine=c90-cray
+               os=-unicos
+               ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=-bsd
+               ;;
+       convex-c2)
+               basic_machine=c2-convex
+               os=-bsd
+               ;;
+       convex-c32)
+               basic_machine=c32-convex
+               os=-bsd
+               ;;
+       convex-c34)
+               basic_machine=c34-convex
+               os=-bsd
+               ;;
+       convex-c38)
+               basic_machine=c38-convex
+               os=-bsd
+               ;;
+       cray | j90)
+               basic_machine=j90-cray
+               os=-unicos
+               ;;
+       crds | unos)
+               basic_machine=m68k-crds
+               ;;
+       cris | cris-* | etrax*)
+               basic_machine=cris-axis
+               ;;
+       da30 | da30-*)
+               basic_machine=m68k-da30
+               ;;
+       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+               basic_machine=mips-dec
+               ;;
+       decsystem10* | dec10*)
+               basic_machine=pdp10-dec
+               os=-tops10
+               ;;
+       decsystem20* | dec20*)
+               basic_machine=pdp10-dec
+               os=-tops20
+               ;;
+       delta | 3300 | motorola-3300 | motorola-delta \
+             | 3300-motorola | delta-motorola)
+               basic_machine=m68k-motorola
+               ;;
+       delta88)
+               basic_machine=m88k-motorola
+               os=-sysv3
+               ;;
+       dpx20 | dpx20-*)
+               basic_machine=rs6000-bull
+               os=-bosx
+               ;;
+       dpx2* | dpx2*-bull)
+               basic_machine=m68k-bull
+               os=-sysv3
+               ;;
+       ebmon29k)
+               basic_machine=a29k-amd
+               os=-ebmon
+               ;;
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=-bsd
+               ;;
+       encore | umax | mmax)
+               basic_machine=ns32k-encore
+               ;;
+       es1800 | OSE68k | ose68k | ose | OSE)
+               basic_machine=m68k-ericsson
+               os=-ose
+               ;;
+       fx2800)
+               basic_machine=i860-alliant
+               ;;
+       genix)
+               basic_machine=ns32k-ns
+               ;;
+       gmicro)
+               basic_machine=tron-gmicro
+               os=-sysv
+               ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
+               ;;
+       h3050r* | hiux*)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       h8300hms)
+               basic_machine=h8300-hitachi
+               os=-hms
+               ;;
+       h8300xray)
+               basic_machine=h8300-hitachi
+               os=-xray
+               ;;
+       h8500hms)
+               basic_machine=h8500-hitachi
+               os=-hms
+               ;;
+       harris)
+               basic_machine=m88k-harris
+               os=-sysv3
+               ;;
+       hp300-*)
+               basic_machine=m68k-hp
+               ;;
+       hp300bsd)
+               basic_machine=m68k-hp
+               os=-bsd
+               ;;
+       hp300hpux)
+               basic_machine=m68k-hp
+               os=-hpux
+               ;;
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k2[0-9][0-9] | hp9k31[0-9])
+               basic_machine=m68000-hp
+               ;;
+       hp9k3[2-9][0-9])
+               basic_machine=m68k-hp
+               ;;
+       hp9k6[0-9][0-9] | hp6[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k7[0-79][0-9] | hp7[0-79][0-9])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k78[0-9] | hp78[0-9])
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][13679] | hp8[0-9][13679])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][0-9] | hp8[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hppa-next)
+               os=-nextstep3
+               ;;
+       hppaosf)
+               basic_machine=hppa1.1-hp
+               os=-osf
+               ;;
+       hppro)
+               basic_machine=hppa1.1-hp
+               os=-proelf
+               ;;
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               ;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+       i*86v32)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv32
+               ;;
+       i*86v4*)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv4
+               ;;
+       i*86v)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv
+               ;;
+       i*86sol2)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-solaris2
+               ;;
+       i386mach)
+               basic_machine=i386-mach
+               os=-mach
+               ;;
+       i386-vsta | vsta)
+               basic_machine=i386-unknown
+               os=-vsta
+               ;;
+       iris | iris4d)
+               basic_machine=mips-sgi
+               case $os in
+                   -irix*)
+                       ;;
+                   *)
+                       os=-irix4
+                       ;;
+               esac
+               ;;
+       isi68 | isi)
+               basic_machine=m68k-isi
+               os=-sysv
+               ;;
+       m88k-omron*)
+               basic_machine=m88k-omron
+               ;;
+       magnum | m3230)
+               basic_machine=mips-mips
+               os=-sysv
+               ;;
+       merlin)
+               basic_machine=ns32k-utek
+               os=-sysv
+               ;;
+       mingw32)
+               basic_machine=i386-pc
+               os=-mingw32
+               ;;
+       miniframe)
+               basic_machine=m68000-convergent
+               ;;
+       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+       mips3*-*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               ;;
+       mips3*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+               ;;
+       mmix*)
+               basic_machine=mmix-knuth
+               os=-mmixware
+               ;;
+       monitor)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       morphos)
+               basic_machine=powerpc-unknown
+               os=-morphos
+               ;;
+       msdos)
+               basic_machine=i386-pc
+               os=-msdos
+               ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
+       ncr3000)
+               basic_machine=i486-ncr
+               os=-sysv4
+               ;;
+       netbsd386)
+               basic_machine=i386-unknown
+               os=-netbsd
+               ;;
+       netwinder)
+               basic_machine=armv4l-rebel
+               os=-linux
+               ;;
+       news | news700 | news800 | news900)
+               basic_machine=m68k-sony
+               os=-newsos
+               ;;
+       news1000)
+               basic_machine=m68030-sony
+               os=-newsos
+               ;;
+       news-3600 | risc-news)
+               basic_machine=mips-sony
+               os=-newsos
+               ;;
+       necv70)
+               basic_machine=v70-nec
+               os=-sysv
+               ;;
+       next | m*-next )
+               basic_machine=m68k-next
+               case $os in
+                   -nextstep* )
+                       ;;
+                   -ns2*)
+                     os=-nextstep2
+                       ;;
+                   *)
+                     os=-nextstep3
+                       ;;
+               esac
+               ;;
+       nh3000)
+               basic_machine=m68k-harris
+               os=-cxux
+               ;;
+       nh[45]000)
+               basic_machine=m88k-harris
+               os=-cxux
+               ;;
+       nindy960)
+               basic_machine=i960-intel
+               os=-nindy
+               ;;
+       mon960)
+               basic_machine=i960-intel
+               os=-mon960
+               ;;
+       nonstopux)
+               basic_machine=mips-compaq
+               os=-nonstopux
+               ;;
+       np1)
+               basic_machine=np1-gould
+               ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+       op50n-* | op60c-*)
+               basic_machine=hppa1.1-oki
+               os=-proelf
+               ;;
+       or32 | or32-*)
+               basic_machine=or32-unknown
+               os=-coff
+               ;;
+       OSE68000 | ose68000)
+               basic_machine=m68000-ericsson
+               os=-ose
+               ;;
+       os68k)
+               basic_machine=m68k-none
+               os=-os68k
+               ;;
+       pa-hitachi)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       paragon)
+               basic_machine=i860-intel
+               os=-osf
+               ;;
+       pbd)
+               basic_machine=sparc-tti
+               ;;
+       pbb)
+               basic_machine=m68k-tti
+               ;;
+       pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+       pentium | p5 | k5 | k6 | nexgen | viac3)
+               basic_machine=i586-pc
+               ;;
+       pentiumpro | p6 | 6x86 | athlon | athlon_*)
+               basic_machine=i686-pc
+               ;;
+       pentiumii | pentium2)
+               basic_machine=i686-pc
+               ;;
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumpro-* | p6-* | 6x86-* | athlon-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumii-* | pentium2-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pn)
+               basic_machine=pn-gould
+               ;;
+       power)  basic_machine=power-ibm
+               ;;
+       ppc)    basic_machine=powerpc-unknown
+               ;;
+       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle | ppc-le | powerpc-little)
+               basic_machine=powerpcle-unknown
+               ;;
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64)  basic_machine=powerpc64-unknown
+               ;;
+       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+               basic_machine=powerpc64le-unknown
+               ;;
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ps2)
+               basic_machine=i386-ibm
+               ;;
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
+       rom68k)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       rm[46]00)
+               basic_machine=mips-siemens
+               ;;
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
+               ;;
+       s390 | s390-*)
+               basic_machine=s390-ibm
+               ;;
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
+               ;;
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       sb1)
+               basic_machine=mipsisa64sb1-unknown
+               ;;
+       sb1el)
+               basic_machine=mipsisa64sb1el-unknown
+               ;;
+       sequent)
+               basic_machine=i386-sequent
+               ;;
+       sh)
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+       sparclite-wrs | simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+               ;;
+       sps7)
+               basic_machine=m68k-bull
+               os=-sysv2
+               ;;
+       spur)
+               basic_machine=spur-unknown
+               ;;
+       st2000)
+               basic_machine=m68k-tandem
+               ;;
+       stratus)
+               basic_machine=i860-stratus
+               os=-sysv4
+               ;;
+       sun2)
+               basic_machine=m68000-sun
+               ;;
+       sun2os3)
+               basic_machine=m68000-sun
+               os=-sunos3
+               ;;
+       sun2os4)
+               basic_machine=m68000-sun
+               os=-sunos4
+               ;;
+       sun3os3)
+               basic_machine=m68k-sun
+               os=-sunos3
+               ;;
+       sun3os4)
+               basic_machine=m68k-sun
+               os=-sunos4
+               ;;
+       sun4os3)
+               basic_machine=sparc-sun
+               os=-sunos3
+               ;;
+       sun4os4)
+               basic_machine=sparc-sun
+               os=-sunos4
+               ;;
+       sun4sol2)
+               basic_machine=sparc-sun
+               os=-solaris2
+               ;;
+       sun3 | sun3-*)
+               basic_machine=m68k-sun
+               ;;
+       sun4)
+               basic_machine=sparc-sun
+               ;;
+       sun386 | sun386i | roadrunner)
+               basic_machine=i386-sun
+               ;;
+       sv1)
+               basic_machine=sv1-cray
+               os=-unicos
+               ;;
+       symmetry)
+               basic_machine=i386-sequent
+               os=-dynix
+               ;;
+       t3d)
+               basic_machine=alpha-cray
+               os=-unicos
+               ;;
+       t3e)
+               basic_machine=alphaev5-cray
+               os=-unicos
+               ;;
+       t90)
+               basic_machine=t90-cray
+               os=-unicos
+               ;;
+        tic4x | c4x*)
+               basic_machine=tic4x-unknown
+               os=-coff
+               ;;
+       tic54x | c54x*)
+               basic_machine=tic54x-unknown
+               os=-coff
+               ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
+       toad1)
+               basic_machine=pdp10-xkl
+               os=-tops20
+               ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+       udi29k)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       ultra3)
+               basic_machine=a29k-nyu
+               os=-sym1
+               ;;
+       v810 | necv810)
+               basic_machine=v810-nec
+               os=-none
+               ;;
+       vaxv)
+               basic_machine=vax-dec
+               os=-sysv
+               ;;
+       vms)
+               basic_machine=vax-dec
+               os=-vms
+               ;;
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
+               ;;
+       vxworks68)
+               basic_machine=m68k-wrs
+               os=-vxworks
+               ;;
+       vxworks29k)
+               basic_machine=a29k-wrs
+               os=-vxworks
+               ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=-none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=-proelf
+               ;;
+       windows32)
+               basic_machine=i386-pc
+               os=-windows32-msvcrt
+               ;;
+       xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
+       ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+               ;;
+       z8k-*-coff)
+               basic_machine=z8k-unknown
+               os=-sim
+               ;;
+       none)
+               basic_machine=none-none
+               os=-none
+               ;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               basic_machine=hppa1.1-winbond
+               ;;
+       op50n)
+               basic_machine=hppa1.1-oki
+               ;;
+       op60c)
+               basic_machine=hppa1.1-oki
+               ;;
+       romp)
+               basic_machine=romp-ibm
+               ;;
+       rs6000)
+               basic_machine=rs6000-ibm
+               ;;
+       vax)
+               basic_machine=vax-dec
+               ;;
+       pdp10)
+               # there are many clones, so DEC is not a safe bet
+               basic_machine=pdp10-unknown
+               ;;
+       pdp11)
+               basic_machine=pdp11-dec
+               ;;
+       we32k)
+               basic_machine=we32k-att
+               ;;
+       sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
+               basic_machine=sh-unknown
+               ;;
+       sh64)
+               basic_machine=sh64-unknown
+               ;;
+       sparc | sparcv9 | sparcv9b)
+               basic_machine=sparc-sun
+               ;;
+       cydra)
+               basic_machine=cydra-cydrome
+               ;;
+       orion)
+               basic_machine=orion-highlevel
+               ;;
+       orion105)
+               basic_machine=clipper-highlevel
+               ;;
+       mac | mpw | mac-mpw)
+               basic_machine=m68k-apple
+               ;;
+       pmac | pmac-mpw)
+               basic_machine=powerpc-apple
+               ;;
+       *-unknown)
+               # Make sure to match an already-canonicalized machine name.
+               ;;
+       *)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+       *-digital*)
+               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+               ;;
+       *-commodore*)
+               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+               ;;
+       *)
+               ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+       # -solaris* is a basic system type, with this one exception.
+       -solaris1 | -solaris1.*)
+               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               ;;
+       -solaris)
+               os=-solaris2
+               ;;
+       -svr4*)
+               os=-sysv4
+               ;;
+       -unixware*)
+               os=-sysv4.2uw
+               ;;
+       -gnu/linux*)
+               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+               ;;
+       # First accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST END IN A *, to match a version number.
+       # -sysv* is not here because it comes later, after sysvr4.
+       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+             | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+             | -aos* \
+             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+             | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+             | -chorusos* | -chorusrdb* \
+             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
+       -qnx*)
+               case $basic_machine in
+                   x86-* | i*86-*)
+                       ;;
+                   *)
+                       os=-nto$os
+                       ;;
+               esac
+               ;;
+       -nto*)
+               os=-nto-qnx
+               ;;
+       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+               ;;
+       -mac*)
+               os=`echo $os | sed -e 's|mac|macos|'`
+               ;;
+       -linux*)
+               os=`echo $os | sed -e 's|linux|linux-gnu|'`
+               ;;
+       -sunos5*)
+               os=`echo $os | sed -e 's|sunos5|solaris2|'`
+               ;;
+       -sunos6*)
+               os=`echo $os | sed -e 's|sunos6|solaris3|'`
+               ;;
+       -opened*)
+               os=-openedition
+               ;;
+       -wince*)
+               os=-wince
+               ;;
+       -osfrose*)
+               os=-osfrose
+               ;;
+       -osf*)
+               os=-osf
+               ;;
+       -utek*)
+               os=-bsd
+               ;;
+       -dynix*)
+               os=-bsd
+               ;;
+       -acis*)
+               os=-aos
+               ;;
+       -atheos*)
+               os=-atheos
+               ;;
+       -386bsd)
+               os=-bsd
+               ;;
+       -ctix* | -uts*)
+               os=-sysv
+               ;;
+       -nova*)
+               os=-rtmk-nova
+               ;;
+       -ns2 )
+               os=-nextstep2
+               ;;
+       -nsk*)
+               os=-nsk
+               ;;
+       # Preserve the version number of sinix5.
+       -sinix5.*)
+               os=`echo $os | sed -e 's|sinix|sysv|'`
+               ;;
+       -sinix*)
+               os=-sysv4
+               ;;
+       -triton*)
+               os=-sysv3
+               ;;
+       -oss*)
+               os=-sysv3
+               ;;
+       -svr4)
+               os=-sysv4
+               ;;
+       -svr3)
+               os=-sysv3
+               ;;
+       -sysvr4)
+               os=-sysv4
+               ;;
+       # This must come after -sysvr4.
+       -sysv*)
+               ;;
+       -ose*)
+               os=-ose
+               ;;
+       -es1800*)
+               os=-ose
+               ;;
+       -xenix)
+               os=-xenix
+               ;;
+       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+               os=-mint
+               ;;
+       -none)
+               ;;
+       *)
+               # Get rid of the `-' at the beginning of $os.
+               os=`echo $os | sed 's/[^-]*-//'`
+               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+       *-acorn)
+               os=-riscix1.2
+               ;;
+       arm*-rebel)
+               os=-linux
+               ;;
+       arm*-semi)
+               os=-aout
+               ;;
+       # This must come before the *-dec entry.
+       pdp10-*)
+               os=-tops20
+               ;;
+       pdp11-*)
+               os=-none
+               ;;
+       *-dec | vax-*)
+               os=-ultrix4.2
+               ;;
+       m68*-apollo)
+               os=-domain
+               ;;
+       i386-sun)
+               os=-sunos4.0.2
+               ;;
+       m68000-sun)
+               os=-sunos3
+               # This also exists in the configure program, but was not the
+               # default.
+               # os=-sunos4
+               ;;
+       m68*-cisco)
+               os=-aout
+               ;;
+       mips*-cisco)
+               os=-elf
+               ;;
+       mips*-*)
+               os=-elf
+               ;;
+       or32-*)
+               os=-coff
+               ;;
+       *-tti)  # must be before sparc entry or we get the wrong os.
+               os=-sysv3
+               ;;
+       sparc-* | *-sun)
+               os=-sunos4.1.1
+               ;;
+       *-be)
+               os=-beos
+               ;;
+       *-ibm)
+               os=-aix
+               ;;
+       *-wec)
+               os=-proelf
+               ;;
+       *-winbond)
+               os=-proelf
+               ;;
+       *-oki)
+               os=-proelf
+               ;;
+       *-hp)
+               os=-hpux
+               ;;
+       *-hitachi)
+               os=-hiux
+               ;;
+       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+               os=-sysv
+               ;;
+       *-cbm)
+               os=-amigaos
+               ;;
+       *-dg)
+               os=-dgux
+               ;;
+       *-dolphin)
+               os=-sysv3
+               ;;
+       m68k-ccur)
+               os=-rtu
+               ;;
+       m88k-omron*)
+               os=-luna
+               ;;
+       *-next )
+               os=-nextstep
+               ;;
+       *-sequent)
+               os=-ptx
+               ;;
+       *-crds)
+               os=-unos
+               ;;
+       *-ns)
+               os=-genix
+               ;;
+       i370-*)
+               os=-mvs
+               ;;
+       *-next)
+               os=-nextstep3
+               ;;
+       *-gould)
+               os=-sysv
+               ;;
+       *-highlevel)
+               os=-bsd
+               ;;
+       *-encore)
+               os=-bsd
+               ;;
+       *-sgi)
+               os=-irix
+               ;;
+       *-siemens)
+               os=-sysv4
+               ;;
+       *-masscomp)
+               os=-rtu
+               ;;
+       f30[01]-fujitsu | f700-fujitsu)
+               os=-uxpv
+               ;;
+       *-rom68k)
+               os=-coff
+               ;;
+       *-*bug)
+               os=-coff
+               ;;
+       *-apple)
+               os=-macos
+               ;;
+       *-atari*)
+               os=-mint
+               ;;
+       *)
+               os=-none
+               ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+       *-unknown)
+               case $os in
+                       -riscix*)
+                               vendor=acorn
+                               ;;
+                       -sunos*)
+                               vendor=sun
+                               ;;
+                       -aix*)
+                               vendor=ibm
+                               ;;
+                       -beos*)
+                               vendor=be
+                               ;;
+                       -hpux*)
+                               vendor=hp
+                               ;;
+                       -mpeix*)
+                               vendor=hp
+                               ;;
+                       -hiux*)
+                               vendor=hitachi
+                               ;;
+                       -unos*)
+                               vendor=crds
+                               ;;
+                       -dgux*)
+                               vendor=dg
+                               ;;
+                       -luna*)
+                               vendor=omron
+                               ;;
+                       -genix*)
+                               vendor=ns
+                               ;;
+                       -mvs* | -opened*)
+                               vendor=ibm
+                               ;;
+                       -ptx*)
+                               vendor=sequent
+                               ;;
+                       -vxsim* | -vxworks* | -windiss*)
+                               vendor=wrs
+                               ;;
+                       -aux*)
+                               vendor=apple
+                               ;;
+                       -hms*)
+                               vendor=hitachi
+                               ;;
+                       -mpw* | -macos*)
+                               vendor=apple
+                               ;;
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                               vendor=atari
+                               ;;
+                       -vos*)
+                               vendor=stratus
+                               ;;
+               esac
+               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               ;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/configure b/configure
new file mode 100755 (executable)
index 0000000..209f92c
--- /dev/null
+++ b/configure
@@ -0,0 +1,7815 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.57 for atlc 4.6.0.
+#
+# Report bugs to <drkirkby@ntlworld.com>.
+#
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)$' \| \
+        .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+         /^X\/\(\/\/\)$/{ s//\1/; q; }
+         /^X\/\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+        case $as_dir in
+        /*)
+          if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+            CONFIG_SHELL=$as_dir/$as_base
+            export CONFIG_SHELL
+            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+          fi;;
+        esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='     ' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS="  $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME='atlc'
+PACKAGE_TARNAME='atlc'
+PACKAGE_VERSION='4.6.0'
+PACKAGE_STRING='atlc 4.6.0'
+PACKAGE_BUGREPORT='drkirkby@ntlworld.com'
+
+ac_unique_file="tools/src/myfilelength.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP POW_LIB LIBOBJS build build_cpu build_vendor build_os host host_cpu host_vendor host_os PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS built_with_posix_threads compiled_with_compiler compiled_with_cflags LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_option in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_$ac_feature='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_$ac_package='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+              localstatedir libdir includedir oldincludedir infodir mandir
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$0" : 'X\(//\)[^/]' \| \
+         X"$0" : 'X\(//\)$' \| \
+         X"$0" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
+  else
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+  fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+   { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures atlc 4.6.0 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+  cat <<_ACEOF
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --infodir=DIR          info documentation [PREFIX/info]
+  --mandir=DIR           man documentation [PREFIX/man]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of atlc 4.6.0:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors
+  --enable-debug          with debugging code
+  --disable-hardware-info Find out information about hardware (Disable if
+                          compilation fails during 'make check')
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+              headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <drkirkby@ntlworld.com>.
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d $ac_dir || continue
+    ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+    cd $ac_dir
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
+      echo
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+           test -f $ac_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi
+    cd $ac_popdir
+  done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\_ACEOF
+atlc configure 4.6.0
+generated by GNU Autoconf 2.57
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by atlc $as_me 4.6.0, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+        ac_must_keep_next=false # Got value, back to normal.
+      else
+        case $ac_arg in
+          *=* | --config-cache | -C | -disable-* | --disable-* \
+          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+          | -with-* | --with-* | -without-* | --without-* | --x)
+            case "$ac_configure_args0 " in
+              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+            esac
+            ;;
+          -* ) ac_must_keep_next=true ;;
+        esac
+      fi
+      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+      # Get rid of the leading space.
+      ac_sep=" "
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+{
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+}
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=$`echo $ac_var`
+      echo "$ac_var='"'"'$ac_val'"'"'"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+       eval ac_val=$`echo $ac_var`
+        echo "$ac_var='"'"'$ac_val'"'"'"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h | sort
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core core.* *.core &&
+  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+        ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+am__api_version="1.7"
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f $ac_dir/shtool; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+          if test $ac_prog = install &&
+            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+            # AIX install.  It has an incompatible calling convention.
+            :
+          elif test $ac_prog = install &&
+            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+            # program-specific install script used by HP pwplus--don't use.
+            :
+          else
+            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+            break 3
+          fi
+        fi
+      done
+    done
+    ;;
+esac
+done
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL=$ac_install_sh
+  fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$*" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$*" != "X $srcdir/configure conftest.file" \
+      && test "$*" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&5
+echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&2;}
+   { (exit 1); exit 1; }; }
+   fi
+
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+Check your system clock" >&5
+echo "$as_me: error: newly created file is older than distributed files!
+Check your system clock" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+test "$program_prefix" != NONE &&
+  program_transform_name="s,^,$program_prefix,;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+# Double any \ or $.  echo might interpret backslashes.
+# By default was `s,x,x', remove it if useless.
+cat <<\_ACEOF >conftest.sed
+s/[\\$]/&&/g;s/;s,x,x,$//
+_ACEOF
+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+rm conftest.sed
+
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AWK+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$AWK" && break
+done
+
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.make <<\_ACEOF
+all:
+       @echo 'ac_maketemp="$(MAKE)"'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftest.make
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  SET_MAKE=
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+ # test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE=atlc
+ VERSION=4.6.0
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  STRIP=$ac_ct_STRIP
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+
+
+
+
+
+# defining a config.h might be useful as it can prevent a command line becoming
+# too long, but I find it more of a pain than it is useful. To
+# make use of it, it would be necessary to hack every source file to
+# include it. I can't be bothered yet.
+          ac_config_headers="$ac_config_headers config.h"
+
+
+
+# Checks for programs.
+rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+  DEPDIR=.deps
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+
+
+          ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+       @echo done
+END
+# If we don't find an include directive, just comment out the code.
+echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+
+
+echo "$as_me:$LINENO: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+  enableval="$enable_dependency_tracking"
+
+fi;
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+
+
+if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CC" && break
+done
+
+  CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output" >&5
+echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Find the output, starting from the most likely.  This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+        ;;
+    conftest.$ac_ext )
+        # This is the source file.
+        ;;
+    [ab].out )
+        # We found the default executable, but exeext='' is most
+        # certainly right.
+        break;;
+    *.* )
+        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+        # FIXME: I believe we export ac_cv_exeext for Libtool,
+        # but it would be cool to find out if it's true.  Does anybody
+        # maintain Libtool? --akim.
+        export ac_cv_exeext
+        break;;
+    * )
+        break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+          export ac_cv_exeext
+          break;;
+    * ) break;;
+  esac
+done
+else
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX                  -qlanglvl=ansi
+# Ultrix and OSF/1     -std1
+# HP-UX 10.20 and later        -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
+# SVR4                 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC"   am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    echo '#include "conftest.h"' > conftest.c
+    echo 'int i;' > conftest.h
+    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=conftest.c object=conftest.o \
+       depfile=conftest.Po tmpdepfile=conftest.TPo \
+       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+       grep conftest.h conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      am_cv_CC_dependencies_compiler_type=$depmode
+      break
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+
+
+if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+echo "$as_me:$LINENO: checking for library containing strerror" >&5
+echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
+if test "${ac_cv_search_strerror+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+ac_cv_search_strerror=no
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char strerror ();
+int
+main ()
+{
+strerror ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_strerror="none required"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_strerror" = no; then
+  for ac_lib in cposix; do
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char strerror ();
+int
+main ()
+{
+strerror ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_strerror="-l$ac_lib"
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+  done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
+echo "${ECHO_T}$ac_cv_search_strerror" >&6
+if test "$ac_cv_search_strerror" != no; then
+  test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS"
+
+fi
+
+
+# AC_OUTPUT_COMMANDS([exit])
+
+# Checks for libraries.
+# check for optimised math library on SPARC
+# AC_CHECK_LIB([mopt],[main])
+# check for the optimised
+# AC_CHECK_LIB([copt],[main])
+
+echo "$as_me:$LINENO: checking for log in -lm" >&5
+echo $ECHO_N "checking for log in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_log+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char log ();
+int
+main ()
+{
+log ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_m_log=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_m_log=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_m_log" >&5
+echo "${ECHO_T}$ac_cv_lib_m_log" >&6
+if test $ac_cv_lib_m_log = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBM 1
+_ACEOF
+
+  LIBS="-lm $LIBS"
+
+fi
+
+
+# Checks for header files.
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+                   (('a' <= (c) && (c) <= 'i') \
+                     || ('j' <= (c) && (c) <= 'r') \
+                     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+        || toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+
+
+
+for ac_header in stdio.h math.h malloc.h stdlib.h string.h time.h limits.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+for ac_header in strings.h sys/types.h machine/hal_sysinfo.h sys/sysinfo.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+for ac_header in sys/processor.h sched.h sys/param.h sys/pstat.h sys/unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+for ac_header in  sys/utsname.h sys/systeminfo.h unistd.h aixfont.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+for ac_header in  linux/ip.h errno.h sys/vid.h invent.h sys/sysctl.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+# sys/syslimits.h and sys/param.h sometimes needed on OpenBSD 3.2 SPARC
+
+for ac_header in  sys/syslimits.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+  no:yes )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+# Checks for typedefs
+echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5
+echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6
+if test "${ac_cv_header_stdbool_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdbool.h>
+#ifndef bool
+# error bool is not defined
+#endif
+#ifndef false
+# error false is not defined
+#endif
+#if false
+# error false is not 0
+#endif
+#ifndef true
+# error true is not defined
+#endif
+#if true != 1
+# error true is not 1
+#endif
+#ifndef __bool_true_false_are_defined
+# error __bool_true_false_are_defined is not defined
+#endif
+
+        struct s { _Bool s: 1; _Bool t; } s;
+
+        char a[true == 1 ? 1 : -1];
+        char b[false == 0 ? 1 : -1];
+        char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+        char d[(bool) -0.5 == true ? 1 : -1];
+        bool e = &s;
+        char f[(_Bool) -0.0 == false ? 1 : -1];
+        char g[true];
+        char h[sizeof (_Bool)];
+        char i[sizeof s.t];
+
+int
+main ()
+{
+ return !a + !b + !c + !d + !e + !f + !g + !h + !i;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_stdbool_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdbool_h=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5
+echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6
+echo "$as_me:$LINENO: checking for _Bool" >&5
+echo $ECHO_N "checking for _Bool... $ECHO_C" >&6
+if test "${ac_cv_type__Bool+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((_Bool *) 0)
+  return 0;
+if (sizeof (_Bool))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type__Bool=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type__Bool=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5
+echo "${ECHO_T}$ac_cv_type__Bool" >&6
+if test $ac_cv_type__Bool = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE__BOOL 1
+_ACEOF
+
+
+fi
+
+if test $ac_cv_header_stdbool_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STDBOOL_H 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+if test "${ac_cv_c_const+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+  /* Ultrix mips cc rejects this.  */
+  typedef int charset[2];
+  const charset x;
+  /* SunOS 4.1.1 cc rejects this.  */
+  char const *const *ccp;
+  char **p;
+  /* NEC SVR4.0.2 mips cc rejects this.  */
+  struct point {int x, y;};
+  static struct point const zero = {0,0};
+  /* AIX XL C 1.02.0.0 rejects this.
+     It does not let you subtract one const X* pointer from another in
+     an arm of an if-expression whose if-part is not a constant
+     expression */
+  const char *g = "string";
+  ccp = &g + (g ? g-g : 0);
+  /* HPUX 7.0 cc rejects these. */
+  ++ccp;
+  p = (char**) ccp;
+  ccp = (char const *const *) p;
+  { /* SCO 3.2v4 cc rejects this.  */
+    char *t;
+    char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+    *t++ = 0;
+  }
+  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+    int x[] = {25, 17};
+    const int *foo = &x[0];
+    ++foo;
+  }
+  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+    typedef const int *iptr;
+    iptr p = 0;
+    ++p;
+  }
+  { /* AIX XL C 1.02.0.0 rejects this saying
+       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+    struct s { int j; const int *ap[3]; };
+    struct s *b; b->j = 5;
+  }
+  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+    const int foo = 10;
+  }
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_const=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_const=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6
+if test $ac_cv_c_const = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define const
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for size_t" >&5
+echo $ECHO_N "checking for size_t... $ECHO_C" >&6
+if test "${ac_cv_type_size_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((size_t *) 0)
+  return 0;
+if (sizeof (size_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_size_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_size_t=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
+echo "${ECHO_T}$ac_cv_type_size_t" >&6
+if test $ac_cv_type_size_t = yes; then
+  :
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned
+_ACEOF
+
+fi
+
+
+# checks for structures (none need to be tested)
+
+# checks for compiler characteristics
+echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
+if test "${ac_cv_c_bigendian+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # See if sys/param.h defines the BYTE_ORDER macro.
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
+
+int
+main ()
+{
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+ bogus endian macros
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_bigendian=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+# It does not; compile a test program.
+if test "$cross_compiling" = yes; then
+  # try to guess the endianness by grepping values into an object file
+  ac_cv_c_bigendian=unknown
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
+short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
+int
+main ()
+{
+ _ascii (); _ebcdic ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
+  ac_cv_c_bigendian=yes
+fi
+if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+  if test "$ac_cv_c_bigendian" = unknown; then
+    ac_cv_c_bigendian=no
+  else
+    # finding both strings is unlikely to happen, but who knows?
+    ac_cv_c_bigendian=unknown
+  fi
+fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+int
+main ()
+{
+  /* Are we little or big endian?  From Harbison&Steele.  */
+  union
+  {
+    long l;
+    char c[sizeof (long)];
+  } u;
+  u.l = 1;
+  exit (u.c[sizeof (long) - 1] == 1);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=no
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_bigendian=yes
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+echo "${ECHO_T}$ac_cv_c_bigendian" >&6
+case $ac_cv_c_bigendian in
+  yes)
+
+cat >>confdefs.h <<\_ACEOF
+#define WORDS_BIGENDIAN 1
+_ACEOF
+ ;;
+  no)
+     ;;
+  *)
+    { { echo "$as_me:$LINENO: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+echo "$as_me: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+
+echo "$as_me:$LINENO: checking for size_t" >&5
+echo $ECHO_N "checking for size_t... $ECHO_C" >&6
+if test "${ac_cv_type_size_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((size_t *) 0)
+  return 0;
+if (sizeof (size_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_size_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_size_t=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
+echo "${ECHO_T}$ac_cv_type_size_t" >&6
+
+echo "$as_me:$LINENO: checking size of size_t" >&5
+echo $ECHO_N "checking size of size_t... $ECHO_C" >&6
+if test "${ac_cv_sizeof_size_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_size_t" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+                    if test $ac_lo -le $ac_mid; then
+                      ac_lo= ac_hi=
+                      break
+                    fi
+                    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+                       if test $ac_mid -le $ac_hi; then
+                         ac_lo= ac_hi=
+                         break
+                       fi
+                       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_size_t=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (size_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (size_t), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (size_t)); }
+unsigned long ulongval () { return (long) (sizeof (size_t)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (size_t))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (size_t))))
+       exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (size_t))))
+       exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_size_t=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (size_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (size_t), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_size_t=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5
+echo "${ECHO_T}$ac_cv_sizeof_size_t" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
+_ACEOF
+
+
+
+# checks for library functions
+echo "$as_me:$LINENO: checking for working strtod" >&5
+echo $ECHO_N "checking for working strtod... $ECHO_C" >&6
+if test "${ac_cv_func_strtod+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_strtod=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+double strtod ();
+int
+main()
+{
+  {
+    /* Some versions of Linux strtod mis-parse strings with leading '+'.  */
+    char *string = " +69";
+    char *term;
+    double value;
+    value = strtod (string, &term);
+    if (value != 69 || term != (string + 4))
+      exit (1);
+  }
+
+  {
+    /* Under Solaris 2.4, strtod returns the wrong value for the
+       terminating character under some conditions.  */
+    char *string = "NaN";
+    char *term;
+    strtod (string, &term);
+    if (term != string && *(term - 1) == 0)
+      exit (1);
+  }
+  exit (0);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_strtod=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_strtod=no
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_strtod" >&5
+echo "${ECHO_T}$ac_cv_func_strtod" >&6
+if test $ac_cv_func_strtod = no; then
+  LIBOBJS="$LIBOBJS strtod.$ac_objext"
+echo "$as_me:$LINENO: checking for pow" >&5
+echo $ECHO_N "checking for pow... $ECHO_C" >&6
+if test "${ac_cv_func_pow+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char pow (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pow ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_pow) || defined (__stub___pow)
+choke me
+#else
+char (*f) () = pow;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != pow;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_pow=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_pow=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_pow" >&5
+echo "${ECHO_T}$ac_cv_func_pow" >&6
+
+if test $ac_cv_func_pow = no; then
+  echo "$as_me:$LINENO: checking for pow in -lm" >&5
+echo $ECHO_N "checking for pow in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_pow+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pow ();
+int
+main ()
+{
+pow ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_m_pow=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_m_pow=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5
+echo "${ECHO_T}$ac_cv_lib_m_pow" >&6
+if test $ac_cv_lib_m_pow = yes; then
+  POW_LIB=-lm
+else
+  { echo "$as_me:$LINENO: WARNING: cannot find library containing definition of pow" >&5
+echo "$as_me: WARNING: cannot find library containing definition of pow" >&2;}
+fi
+
+fi
+
+fi
+
+
+
+
+
+
+
+for ac_func in memset strchr strtol processor_info getsysinfo pthread_num_processors_np
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+for ac_func in  cpu_get_max pstat pstat_getdynamic pstat_getprocessor uname sysconf sysinfo
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+for ac_func in  cpusetcreate cpucountset cpu_get_num sysctl
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+# checks for system services
+
+# Check if the user wants a GUI. If so makes sure GTK and wxWindows are around.
+# The macro is in the file gtk.m4 in the 'm4' subdirectory.
+
+#AC_ARG_WITH(gui, AC_HELP_STRING([--with-gui=[no]],[Add a GUI (needs GTK >= 1.2.7 installed) but the GUI does not work!! ]))
+#AC_PROG_CXX # Test for C++ compiler characteristics
+#if test "x$with_gui" = "xyes"; then
+#        AC_PATH_GTK(1.2.7, GTK127=1)
+#        if test "$GTK127" != 1; then
+#            AC_MSG_ERROR([
+#                Please check that gtk-config is in path, the directory
+#                where GTK+ libraries are installed (returned by
+#                'gtk-config --libs' command) is in LD_LIBRARY_PATH or
+#                equivalent variable and GTK+ is version 1.2.7 or above.
+#            ])
+#        fi
+#      AC_CHECK_PROG(WXWINDOWS,wx-config, 1, 0)
+#       if test "$WXWINDOWS" != 1; then
+#            AC_MSG_ERROR([
+#             wxWindows must be installed to use the GUI version of atlc
+#        ])
+#        fi
+#        AC_SUBST(EXTRA_WXWINDOWS_LIBS,`wx-config --libs`)
+#        AC_SUBST(EXTRA_WXWINDOWS_CFLAGS,`wx-config --cflags`)
+#        AC_SUBST(GUI_DIRECTORY,gui)
+#fi
+
+
+#AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],[ with debugging code]), AC_DEFINE([DEBUG],[1]))
+# Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+  enableval="$enable_debug"
+
+cat >>confdefs.h <<\_ACEOF
+#define DEBUG 1
+_ACEOF
+
+fi;
+# Check whether --enable-hardware-info or --disable-hardware-info was given.
+if test "${enable_hardware_info+set}" = set; then
+  enableval="$enable_hardware_info"
+  1
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define TRY_TO_GET_HARDWARE_INFO 1
+_ACEOF
+
+fi;
+
+# Put a usage message so the user can use threads if wanted.
+#AC_ARG_WITH(threads,
+#AC_HELP_STRING([--with-threads],
+#                 [support thread-based parallel computation, using a POSIX thread library (default is NO)]))
+
+# Multi-Processor Support checked with the macro m4/acx_pthread.m4
+if test "x$with_threads" = "xyes"; then
+  # Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+  ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+  ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+acx_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
+echo $ECHO_N "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... $ECHO_C" >&6
+        cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pthread_join ();
+int
+main ()
+{
+pthread_join ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  acx_pthread_ok=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+        echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5
+echo "${ECHO_T}$acx_pthread_ok" >&6
+        if test x"$acx_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all.
+
+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+
+case "${host_cpu}-${host_os}" in
+        *solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthread or
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
+        ;;
+esac
+
+if test x"$acx_pthread_ok" = xno; then
+for flag in $acx_pthread_flags; do
+
+        case $flag in
+                none)
+                echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5
+echo $ECHO_N "checking whether pthreads work without any flags... $ECHO_C" >&6
+                ;;
+
+                -*)
+                echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5
+echo $ECHO_N "checking whether pthreads work with $flag... $ECHO_C" >&6
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+                *)
+                echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5
+echo $ECHO_N "checking for the pthreads library -l$flag... $ECHO_C" >&6
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <pthread.h>
+int
+main ()
+{
+pthread_t th; pthread_join(th, 0);
+                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
+                     pthread_create(0,0,0,0); pthread_cleanup_pop(0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  acx_pthread_ok=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5
+echo "${ECHO_T}$acx_pthread_ok" >&6
+        if test "x$acx_pthread_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$acx_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: threads are created detached by default
+        # and the JOINABLE attribute has a nonstandard name (UNDETACHED).
+        echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5
+echo $ECHO_N "checking for joinable pthread attribute... $ECHO_C" >&6
+        cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <pthread.h>
+int
+main ()
+{
+int attr=PTHREAD_CREATE_JOINABLE;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ok=PTHREAD_CREATE_JOINABLE
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ok=unknown
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+        if test x"$ok" = xunknown; then
+                cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <pthread.h>
+int
+main ()
+{
+int attr=PTHREAD_CREATE_UNDETACHED;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ok=PTHREAD_CREATE_UNDETACHED
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ok=unknown
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+        fi
+        if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then
+
+cat >>confdefs.h <<\_ACEOF
+#define PTHREAD_CREATE_JOINABLE $ok
+_ACEOF
+
+        fi
+        echo "$as_me:$LINENO: result: ${ok}" >&5
+echo "${ECHO_T}${ok}" >&6
+        if test x"$ok" = xunknown; then
+                { echo "$as_me:$LINENO: WARNING: we do not know how to create joinable pthreads" >&5
+echo "$as_me: WARNING: we do not know how to create joinable pthreads" >&2;}
+        fi
+
+        echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5
+echo $ECHO_N "checking if more special flags are required for pthreads... $ECHO_C" >&6
+        flag=no
+        case "${host_cpu}-${host_os}" in
+                *-aix* | *-freebsd*)     flag="-D_THREAD_SAFE";;
+                *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+        esac
+        echo "$as_me:$LINENO: result: ${flag}" >&5
+echo "${ECHO_T}${flag}" >&6
+        if test "x$flag" != xno; then
+                PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: must compile with cc_r
+        # Extract the first word of "cc_r", so it can be a program name with args.
+set dummy cc_r; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$PTHREAD_CC"; then
+  ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PTHREAD_CC="cc_r"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_PTHREAD_CC" && ac_cv_prog_PTHREAD_CC="${CC}"
+fi
+fi
+PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
+if test -n "$PTHREAD_CC"; then
+  echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5
+echo "${ECHO_T}$PTHREAD_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+else
+        PTHREAD_CC="$CC"
+fi
+
+
+
+
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$acx_pthread_ok" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define ENABLE_POSIX_THREADS 1
+_ACEOF
+
+        :
+else
+        acx_pthread_ok=no
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+  LIBS="$PTHREAD_LIBS $LIBS"
+  CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+  CC="$PTHREAD_CC"
+  # if possible for a number of threads to run at once.
+  echo "$as_me:$LINENO: checking for pthread_setconcurrency" >&5
+echo $ECHO_N "checking for pthread_setconcurrency... $ECHO_C" >&6
+if test "${ac_cv_func_pthread_setconcurrency+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char pthread_setconcurrency (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pthread_setconcurrency ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_pthread_setconcurrency) || defined (__stub___pthread_setconcurrency)
+choke me
+#else
+char (*f) () = pthread_setconcurrency;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != pthread_setconcurrency;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_pthread_setconcurrency=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_pthread_setconcurrency=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_pthread_setconcurrency" >&5
+echo "${ECHO_T}$ac_cv_func_pthread_setconcurrency" >&6
+if test $ac_cv_func_pthread_setconcurrency = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_PTHREAD_SETCONCURRENCY 1
+_ACEOF
+
+fi
+
+  built_with_posix_threads=yes
+
+fi
+echo "$as_me:$LINENO: checking whether _SC_PHYS_PAGES is declared" >&5
+echo $ECHO_N "checking whether _SC_PHYS_PAGES is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl__SC_PHYS_PAGES+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef _SC_PHYS_PAGES
+  char *p = (char *) _SC_PHYS_PAGES;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_have_decl__SC_PHYS_PAGES=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl__SC_PHYS_PAGES=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl__SC_PHYS_PAGES" >&5
+echo "${ECHO_T}$ac_cv_have_decl__SC_PHYS_PAGES" >&6
+
+echo "$as_me:$LINENO: checking whether _SC_PAGESIZE is declared" >&5
+echo $ECHO_N "checking whether _SC_PAGESIZE is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl__SC_PAGESIZE+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef _SC_PAGESIZE
+  char *p = (char *) _SC_PAGESIZE;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_have_decl__SC_PAGESIZE=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl__SC_PAGESIZE=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl__SC_PAGESIZE" >&5
+echo "${ECHO_T}$ac_cv_have_decl__SC_PAGESIZE" >&6
+
+echo "$as_me:$LINENO: checking whether _SC_CRAY_NCPU is declared" >&5
+echo $ECHO_N "checking whether _SC_CRAY_NCPU is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl__SC_CRAY_NCPU+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef _SC_CRAY_NCPU
+  char *p = (char *) _SC_CRAY_NCPU;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_have_decl__SC_CRAY_NCPU=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl__SC_CRAY_NCPU=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl__SC_CRAY_NCPU" >&5
+echo "${ECHO_T}$ac_cv_have_decl__SC_CRAY_NCPU" >&6
+
+echo "$as_me:$LINENO: checking whether _SC_CRAY_NCPU is declared" >&5
+echo $ECHO_N "checking whether _SC_CRAY_NCPU is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl__SC_CRAY_NCPU+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef _SC_CRAY_NCPU
+  char *p = (char *) _SC_CRAY_NCPU;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_have_decl__SC_CRAY_NCPU=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl__SC_CRAY_NCPU=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl__SC_CRAY_NCPU" >&5
+echo "${ECHO_T}$ac_cv_have_decl__SC_CRAY_NCPU" >&6
+
+echo "$as_me:$LINENO: checking whether _SC_NPROC_CONF is declared" >&5
+echo $ECHO_N "checking whether _SC_NPROC_CONF is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl__SC_NPROC_CONF+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef _SC_NPROC_CONF
+  char *p = (char *) _SC_NPROC_CONF;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_have_decl__SC_NPROC_CONF=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl__SC_NPROC_CONF=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl__SC_NPROC_CONF" >&5
+echo "${ECHO_T}$ac_cv_have_decl__SC_NPROC_CONF" >&6
+
+echo "$as_me:$LINENO: checking whether _SC_NPROC_ONLN is declared" >&5
+echo $ECHO_N "checking whether _SC_NPROC_ONLN is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl__SC_NPROC_ONLN+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+#ifndef _SC_NPROC_ONLN
+  char *p = (char *) _SC_NPROC_ONLN;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_have_decl__SC_NPROC_ONLN=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl__SC_NPROC_ONLN=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl__SC_NPROC_ONLN" >&5
+echo "${ECHO_T}$ac_cv_have_decl__SC_NPROC_ONLN" >&6
+
+
+# MPI and MPE Support
+#AC_ARG_WITH(mpi, AC_HELP_STRING([--with-mpi=[mpi_install_prefix]],[support MPI-based parallel computation (needs MPICH installed)]))
+#AC_ARG_WITH(mpe, AC_HELP_STRING([--with-mpe=[mpi_install_prefix]],[implies --with-mpi and additionally links in MPE logging support]))
+#
+# if test "x$with_mpi" != "x" \
+# || test "x$with_mpe" != "x"; then
+#
+#  if test "x$with_threads" = "xyes"; then
+#     AC_MSG_ERROR([it does not make sense to use --with-threads with --with-mpi or --with-mpe])
+#  fi
+#  ACX_MPI(    [AC_DEFINE([ENABLE_MPI],[1],[Enable the use of MPICH library]) ] ,[],[AC_MSG_ERROR([Could not determine how to link MPI program])])
+#  CC="$MPICC"
+#  if test "x$with_mpe" = "xyes" ; then
+#    LIBS="$MPILIBS -lmpe $LIBS"
+#  else
+#    LIBS="$MPILIBS $LIBS"
+#  fi
+  #AC_CHECK_PROG(mpirun,mpirun,yes,no,$PATH)
+  #if test "x$mpirun" = "xyes"; then
+  #  AC_MSG_NOTICE([Don't forget, 'mpirun' MUST be used to call atlc. Don't run atlc directly!!])
+  #else
+  #  AC_MSG_WARN([The program 'mpirun' needed to run atlc, can't be found])
+  #fi
+#fi
+
+if test "x$GCC" = "xyes"; then
+  if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
+      CFLAGS="$CFLAGS -Wall"
+  fi
+fi
+compiled_with_compiler="$CC"
+
+compiled_with_cflags="$CFLAGS"
+
+                                                                                                                                                      ac_config_files="$ac_config_files Makefile src/Makefile src/non_gui/Makefile m4/Makefile man/Makefile man/man1/Makefile examples/Makefile tools/Makefile tools/src/Makefile tests/Makefile docs/html-docs/Makefile docs/html-docs/jpgs/Makefile docs/qex-december-1996/Makefile docs/theory/Makefile docs/Makefile"
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+        "s/'/'\\\\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[        ]*VPATH[        ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[   ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[     ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)$' \| \
+        .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+         /^X\/\(\/\/\)$/{ s//\1/; q; }
+         /^X\/\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+        case $as_dir in
+        /*)
+          if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+            $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+            $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+            CONFIG_SHELL=$as_dir/$as_base
+            export CONFIG_SHELL
+            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+          fi;;
+        esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='     ' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS="  $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by atlc $as_me 4.6.0, which was
+generated by GNU Autoconf 2.57.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+atlc config.status 4.6.0
+configured by $0, generated by GNU Autoconf 2.57,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_option=$1
+     ac_need_defaults=false;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    ac_need_defaults=false;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS section.
+#
+
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+  "src/non_gui/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/non_gui/Makefile" ;;
+  "m4/Makefile" ) CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
+  "man/Makefile" ) CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
+  "man/man1/Makefile" ) CONFIG_FILES="$CONFIG_FILES man/man1/Makefile" ;;
+  "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
+  "tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
+  "tools/src/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/src/Makefile" ;;
+  "tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
+  "docs/html-docs/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/html-docs/Makefile" ;;
+  "docs/html-docs/jpgs/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/html-docs/jpgs/Makefile" ;;
+  "docs/qex-december-1996/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/qex-december-1996/Makefile" ;;
+  "docs/theory/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/theory/Makefile" ;;
+  "docs/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
+  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./confstat$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@CYGPATH_W@,$CYGPATH_W,;t t
+s,@PACKAGE@,$PACKAGE,;t t
+s,@VERSION@,$VERSION,;t t
+s,@ACLOCAL@,$ACLOCAL,;t t
+s,@AUTOCONF@,$AUTOCONF,;t t
+s,@AUTOMAKE@,$AUTOMAKE,;t t
+s,@AUTOHEADER@,$AUTOHEADER,;t t
+s,@MAKEINFO@,$MAKEINFO,;t t
+s,@AMTAR@,$AMTAR,;t t
+s,@install_sh@,$install_sh,;t t
+s,@STRIP@,$STRIP,;t t
+s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
+s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+s,@AWK@,$AWK,;t t
+s,@SET_MAKE@,$SET_MAKE,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@DEPDIR@,$DEPDIR,;t t
+s,@am__include@,$am__include,;t t
+s,@am__quote@,$am__quote,;t t
+s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
+s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
+s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+s,@CCDEPMODE@,$CCDEPMODE,;t t
+s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
+s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
+s,@CPP@,$CPP,;t t
+s,@EGREP@,$EGREP,;t t
+s,@POW_LIB@,$POW_LIB,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@PTHREAD_CC@,$PTHREAD_CC,;t t
+s,@PTHREAD_LIBS@,$PTHREAD_LIBS,;t t
+s,@PTHREAD_CFLAGS@,$PTHREAD_CFLAGS,;t t
+s,@built_with_posix_threads@,$built_with_posix_threads,;t t
+s,@compiled_with_compiler@,$compiled_with_compiler,;t t
+s,@compiled_with_cflags@,$compiled_with_cflags,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+       ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+       ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+                                     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([  ]*\)#\([        ]*define[       ][      ]*\)'
+ac_dB='[       ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[     ]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h.  The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status.  Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[   ]*#[    ]*define[       ][      ]*\([^  (][^    (]*\)\(([^)]*)\)[       ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[   ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless.  Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[   ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo '  if grep "^[    ]*#[    ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo '  :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+  # Write a limited-size here document to $tmp/defines.sed.
+  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#define' lines.
+  echo '/^[    ]*#[    ]*define/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo '  fi # grep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+  # Write a limited-size here document to $tmp/undefs.sed.
+  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#undef'
+  echo '/^[    ]*#[    ]*undef/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+  rm -f conftest.undefs
+  mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated by configure.  */" >$tmp/config.h
+  else
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+      { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+_am_stamp_count=`expr ${_am_stamp_count-0} + 1`
+echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X$ac_file : 'X\(//\)[^/]' \| \
+         X$ac_file : 'X\(//\)$' \| \
+         X$ac_file : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X$ac_file |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`/stamp-h$_am_stamp_count
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_dest" : 'X\(//\)[^/]' \| \
+         X"$ac_dest" : 'X\(//\)$' \| \
+         X"$ac_dest" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+  case $ac_dest in
+    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`(dirname "$mf") 2>/dev/null ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$mf" : 'X\(//\)[^/]' \| \
+         X"$mf" : 'X\(//\)$' \| \
+         X"$mf" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+  else
+    continue
+  fi
+  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+       s/\\\\$//
+       p
+       n
+       /\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`(dirname "$file") 2>/dev/null ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$file" : 'X\(//\)[^/]' \| \
+         X"$file" : 'X\(//\)$' \| \
+         X"$file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+    { if $as_mkdir_p; then
+    mkdir -p $dirpart/$fdir
+  else
+    as_dir=$dirpart/$fdir
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+ ;;
+  esac
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..df4114f
--- /dev/null
@@ -0,0 +1,169 @@
+# Process this file with autoconf to produce a configure script.
+
+# Order of itmes is suggested in the autoconf documentation to be that
+# below, to be as below. Let's try to stick to it.
+
+# checks for programs
+# checks for libraries
+# checks for header files
+# checks for typedefs
+# checks for structures
+# checks for compiler characteristics
+# checks for library functions
+# checks for system services
+# AC_OUTPUT([file...])
+
+AC_INIT([atlc], [4.6.0], [drkirkby@ntlworld.com])
+AM_INIT_AUTOMAKE
+AC_PREREQ([2.57])
+AC_CONFIG_SRCDIR([tools/src/myfilelength.c])
+# defining a config.h might be useful as it can prevent a command line becoming
+# too long, but I find it more of a pain than it is useful. To 
+# make use of it, it would be necessary to hack every source file to 
+# include it. I can't be bothered yet. 
+AC_CONFIG_HEADER([config.h])
+
+
+# Checks for programs.
+AC_ISC_POSIX
+
+# AC_OUTPUT_COMMANDS([exit])
+
+# Checks for libraries.
+# check for optimised math library on SPARC
+# AC_CHECK_LIB([mopt],[main])
+# check for the optimised
+# AC_CHECK_LIB([copt],[main])
+AC_CHECK_LIB(m,log)
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS([stdio.h math.h malloc.h stdlib.h string.h time.h limits.h ])
+AC_CHECK_HEADERS([strings.h sys/types.h machine/hal_sysinfo.h sys/sysinfo.h ])
+AC_CHECK_HEADERS([sys/processor.h sched.h sys/param.h sys/pstat.h sys/unistd.h ])
+AC_CHECK_HEADERS([ sys/utsname.h sys/systeminfo.h unistd.h aixfont.h ])
+AC_CHECK_HEADERS([ linux/ip.h errno.h sys/vid.h invent.h sys/sysctl.h ])
+# sys/syslimits.h and sys/param.h sometimes needed on OpenBSD 3.2 SPARC
+AC_CHECK_HEADERS([ sys/syslimits.h ])
+
+# Checks for typedefs
+AC_HEADER_STDBOOL
+AC_C_CONST
+AC_TYPE_SIZE_T
+
+# checks for structures (none need to be tested)
+
+# checks for compiler characteristics
+AC_C_BIGENDIAN
+AC_CHECK_SIZEOF([size_t])
+
+# checks for library functions
+AC_FUNC_STRTOD
+AC_CHECK_FUNCS([memset strchr strtol processor_info getsysinfo pthread_num_processors_np ])
+AC_CHECK_FUNCS([ cpu_get_max pstat pstat_getdynamic pstat_getprocessor uname sysconf sysinfo ])
+AC_CHECK_FUNCS([ cpusetcreate cpucountset cpu_get_num sysctl ])
+
+# checks for system services
+
+# Check if the user wants a GUI. If so makes sure GTK and wxWindows are around.
+# The macro is in the file gtk.m4 in the 'm4' subdirectory.
+
+#AC_ARG_WITH(gui, AC_HELP_STRING([--with-gui=[no]],[Add a GUI (needs GTK >= 1.2.7 installed) but the GUI does not work!! ]))
+#AC_PROG_CXX # Test for C++ compiler characteristics
+#if test "x$with_gui" = "xyes"; then
+#        AC_PATH_GTK(1.2.7, GTK127=1)
+#        if test "$GTK127" != 1; then
+#            AC_MSG_ERROR([
+#                Please check that gtk-config is in path, the directory
+#                where GTK+ libraries are installed (returned by
+#                'gtk-config --libs' command) is in LD_LIBRARY_PATH or
+#                equivalent variable and GTK+ is version 1.2.7 or above.
+#            ])
+#        fi
+#      AC_CHECK_PROG(WXWINDOWS,wx-config, 1, 0)   
+#       if test "$WXWINDOWS" != 1; then
+#            AC_MSG_ERROR([
+#             wxWindows must be installed to use the GUI version of atlc
+#        ])
+#        fi
+#        AC_SUBST(EXTRA_WXWINDOWS_LIBS,`wx-config --libs`)
+#        AC_SUBST(EXTRA_WXWINDOWS_CFLAGS,`wx-config --cflags`)
+#        AC_SUBST(GUI_DIRECTORY,gui)
+#fi
+
+
+#AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],[ with debugging code]), AC_DEFINE([DEBUG],[1]))
+AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],[ with debugging code]), AC_DEFINE([DEBUG],[1],[with debugging code]))
+AC_ARG_ENABLE(hardware-info, AC_HELP_STRING([--disable-hardware-info],[ Find out information about hardware (Disable if compilation fails during 'make check')]), [1],AC_DEFINE([TRY_TO_GET_HARDWARE_INFO],[1],[try to get hardware information]))
+
+# Put a usage message so the user can use threads if wanted. 
+#AC_ARG_WITH(threads,
+#AC_HELP_STRING([--with-threads],
+#                 [support thread-based parallel computation, using a POSIX thread library (default is NO)]))
+
+# Multi-Processor Support checked with the macro m4/acx_pthread.m4
+if test "x$with_threads" = "xyes"; then
+  ACX_PTHREAD([AC_DEFINE([ENABLE_POSIX_THREADS],[1],[Enabling POSIX thread support]) ])
+  LIBS="$PTHREAD_LIBS $LIBS"
+  CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+  CC="$PTHREAD_CC"
+  # if possible for a number of threads to run at once. 
+  AC_CHECK_FUNC([pthread_setconcurrency],AC_DEFINE([HAVE_PTHREAD_SETCONCURRENCY],[1],[has the pthread_setconcunacy call, needeed on Solaris]))
+  AC_SUBST(built_with_posix_threads,yes)
+fi
+AC_CHECK_DECL(_SC_PHYS_PAGES,,)
+AC_CHECK_DECL(_SC_PAGESIZE,,)
+AC_CHECK_DECL(_SC_CRAY_NCPU,,)
+AC_CHECK_DECL(_SC_CRAY_NCPU,,)
+AC_CHECK_DECL(_SC_NPROC_CONF,,)
+AC_CHECK_DECL(_SC_NPROC_ONLN,,)
+
+# MPI and MPE Support
+#AC_ARG_WITH(mpi, AC_HELP_STRING([--with-mpi=[mpi_install_prefix]],[support MPI-based parallel computation (needs MPICH installed)]))
+#AC_ARG_WITH(mpe, AC_HELP_STRING([--with-mpe=[mpi_install_prefix]],[implies --with-mpi and additionally links in MPE logging support]))
+# 
+# if test "x$with_mpi" != "x" \
+# || test "x$with_mpe" != "x"; then
+#
+#  if test "x$with_threads" = "xyes"; then
+#     AC_MSG_ERROR([it does not make sense to use --with-threads with --with-mpi or --with-mpe])
+#  fi  
+#  ACX_MPI(    [AC_DEFINE([ENABLE_MPI],[1],[Enable the use of MPICH library]) ] ,[],[AC_MSG_ERROR([Could not determine how to link MPI program])])
+#  CC="$MPICC"
+#  if test "x$with_mpe" = "xyes" ; then
+#    LIBS="$MPILIBS -lmpe $LIBS"
+#  else
+#    LIBS="$MPILIBS $LIBS"
+#  fi
+  #AC_CHECK_PROG(mpirun,mpirun,yes,no,$PATH)
+  #if test "x$mpirun" = "xyes"; then
+  #  AC_MSG_NOTICE([Don't forget, 'mpirun' MUST be used to call atlc. Don't run atlc directly!!])
+  #else
+  #  AC_MSG_WARN([The program 'mpirun' needed to run atlc, can't be found])
+  #fi
+#fi
+
+dnl Only use -Wall if we have gcc
+if test "x$GCC" = "xyes"; then
+  if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
+      CFLAGS="$CFLAGS -Wall"
+  fi
+fi
+AC_SUBST(compiled_with_compiler,"$CC")
+AC_SUBST(compiled_with_cflags,"$CFLAGS")
+AC_OUTPUT([\
+Makefile                                        \
+src/Makefile                                    \
+src/non_gui/Makefile                            \
+m4/Makefile                                     \
+man/Makefile                                    \
+man/man1/Makefile                               \
+examples/Makefile                               \
+tools/Makefile                                  \
+tools/src/Makefile                              \
+tests/Makefile                                  \
+docs/html-docs/Makefile                         \
+docs/html-docs/jpgs/Makefile                    \
+docs/qex-december-1996/Makefile                 \
+docs/theory/Makefile                            \
+docs/Makefile                                   ])
diff --git a/depcomp b/depcomp
new file mode 100644 (file)
index 0000000..3480ce4
--- /dev/null
+++ b/depcomp
@@ -0,0 +1,436 @@
+#! /bin/sh
+
+# depcomp - compile a program generating dependencies as side-effects
+# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+# `libtool' can also be set to `yes' or `no'.
+
+if test -z "$depfile"; then
+   base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
+   dir=`echo "$object" | sed 's,/.*$,/,'`
+   if test "$dir" = "$object"; then
+      dir=
+   fi
+   # FIXME: should be _deps on DOS.
+   depfile="$dir.deps/$base"
+fi
+
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> $depfile
+    echo >> $depfile
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> $depfile
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  This file always lives in the current directory.
+  # Also, the AIX compiler puts `$object:' at the start of each line;
+  # $object doesn't have directory information.
+  stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+  tmpdepfile="$stripped.u"
+  outname="$stripped.o"
+  if test "$libtool" = yes; then
+    "$@" -Wc,-M
+  else
+    "$@" -M
+  fi
+
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+tru64)
+   # The Tru64 compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+
+   base=`echo "$object" | sed -e 's/\.o$//' -e 's/\.lo$//'`
+   tmpdepfile1="$base.o.d"
+   tmpdepfile2="$base.d"
+   if test "$libtool" = yes; then
+      "$@" -Wc,-MD
+   else
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2"
+      exit $stat
+   fi
+
+   if test -f "$tmpdepfile1"; then
+      tmpdepfile="$tmpdepfile1"
+   else
+      tmpdepfile="$tmpdepfile2"
+   fi
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a space and a tab in the [].
+      sed -e 's,^.*\.[a-z]*:[  ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  test -z "$dashmflag" && dashmflag=-M
+  ( IFS=" "
+    case " $* " in
+    *" --mode=compile "*) # this is libtool, let us make it quiet
+      for arg
+      do # cycle over the arguments
+        case "$arg" in
+       "--mode=compile")
+         # insert --quiet before "--mode=compile"
+         set fnord "$@" --quiet
+         shift # fnord
+         ;;
+       esac
+       set fnord "$@" "$arg"
+       shift # fnord
+       shift # "$arg"
+      done
+      ;;
+    esac
+    "$@" $dashmflag | sed 's:^[^:]*\:[         ]*:'"$object"'\: :' > "$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  # X makedepend
+  (
+    shift
+    cleared=no
+    for arg in "$@"; do
+      case $cleared in no)
+        set ""; shift
+       cleared=yes
+      esac
+      case "$arg" in
+        -D*|-I*)
+         set fnord "$@" "$arg"; shift;;
+       -*)
+         ;;
+       *)
+         set fnord "$@" "$arg"; shift;;
+      esac
+    done
+    obj_suffix="`echo $object | sed 's/^.*\././'`"
+    touch "$tmpdepfile"
+    ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  ( IFS=" "
+    case " $* " in
+    *" --mode=compile "*)
+      for arg
+      do # cycle over the arguments
+        case $arg in
+       "--mode=compile")
+         # insert --quiet before "--mode=compile"
+         set fnord "$@" --quiet
+         shift # fnord
+         ;;
+       esac
+       set fnord "$@" "$arg"
+       shift # fnord
+       shift # "$arg"
+      done
+      ;;
+    esac
+    "$@" -E |
+    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  ( IFS=" "
+    case " $* " in
+    *" --mode=compile "*)
+      for arg
+      do # cycle over the arguments
+        case $arg in
+       "--mode=compile")
+         # insert --quiet before "--mode=compile"
+         set fnord "$@" --quiet
+         shift # fnord
+         ;;
+       esac
+       set fnord "$@" "$arg"
+       shift # fnord
+       shift # "$arg"
+      done
+      ;;
+    esac
+    for arg
+    do
+      case "$arg" in
+      "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+       set fnord "$@"
+       shift
+       shift
+       ;;
+      *)
+       set fnord "$@" "$arg"
+       shift
+       shift
+       ;;
+      esac
+    done
+    "$@" -E |
+    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  ) &
+  proc=$!
+  "$@"
+  stat=$?
+  wait "$proc"
+  if test "$stat" != 0; then exit $stat; fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::   \1 \\:p' >> "$depfile"
+  echo "       " >> "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
diff --git a/docs/Makefile.am b/docs/Makefile.am
new file mode 100644 (file)
index 0000000..99ea596
--- /dev/null
@@ -0,0 +1,3 @@
+# This is Makefile.am, which is proceed by automake
+SUBDIRS = html-docs qex-december-1996 theory
+EXTRA_DIST = README
diff --git a/docs/Makefile.in b/docs/Makefile.in
new file mode 100644 (file)
index 0000000..d85b2a8
--- /dev/null
@@ -0,0 +1,401 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+# This is Makefile.am, which is proceed by automake
+SUBDIRS = html-docs qex-december-1996 theory
+EXTRA_DIST = README
+subdir = docs
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+       ps-recursive install-info-recursive uninstall-info-recursive \
+       all-recursive install-data-recursive install-exec-recursive \
+       installdirs-recursive install-recursive uninstall-recursive \
+       check-recursive installcheck-recursive
+DIST_COMMON = README Makefile.am Makefile.in
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  docs/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
+
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$(top_distdir)" \
+               distdir=../$(distdir)/$$subdir \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+       clean-generic clean-recursive ctags ctags-recursive distclean \
+       distclean-generic distclean-recursive distclean-tags distdir \
+       dvi dvi-am dvi-recursive info info-am info-recursive install \
+       install-am install-data install-data-am install-data-recursive \
+       install-exec install-exec-am install-exec-recursive \
+       install-info install-info-am install-info-recursive install-man \
+       install-recursive install-strip installcheck installcheck-am \
+       installdirs installdirs-am installdirs-recursive \
+       maintainer-clean maintainer-clean-generic \
+       maintainer-clean-recursive mostlyclean mostlyclean-generic \
+       mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
+       ps-recursive tags tags-recursive uninstall uninstall-am \
+       uninstall-info-am uninstall-info-recursive uninstall-recursive
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/README b/docs/README
new file mode 100644 (file)
index 0000000..42e1c6a
--- /dev/null
@@ -0,0 +1,10 @@
+The documentation falls into 3 types
+1) A very old pdf file describing an early version of the code. This was
+published in the amatuer radio journal QEX.
+2) HTML documantation which forms the best looking format to date.
+3) Man pages, which are not here, but directly off of the root (in in
+atlc-x.y.z/man)
+4) 3 attempts at papers theory/theory2.doc, theory/atlc9.doc and a 
+Staroffice file
+
+Dr. David Kirkby, 15/12/02
diff --git a/docs/html-docs/BUGS.html b/docs/html-docs/BUGS.html
new file mode 100644 (file)
index 0000000..37a7249
--- /dev/null
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html>
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org">
+<meta name="GENERATOR" content="Bluefish and vi">
+
+<meta name="KEYWORDS" content="transmission lines, tranmission line, CAD, electrical, atlc, impedance, Z0, transmission, line, lines, arbitrary, cross, section, shape, Zo">
+<meta name="DESCRIPTION" content="A finite difference program for computing the  properties of any transmission line ">
+<title>atlc - Arbitrary Transmission Line Calculator</title>
+</head>
+<body>
+<pre>
+  1 There was a theoretical risk of an error occurring when running
+    atlc with multi-threaded coded on multi-processor systems. As
+    such, the option to configure atlc for multiple processors has 
+    been disabled. This will be re-enabled asap - by Feb 2004
+  
+  2 Not every version of make will build atlc. GNU make will do, which
+    is of course free. Sun's make will NOT, neighter will that from  
+    SGI under IRIX. There's not much I can do about this, since the 
+    problem is with automake. But GNU make **will** build atlc okay. 
+
+  3 Data on machines is only gathered properly on a few machines (Solaris,
+     Tru64, AIX IRIX and HP-UX). On Linux and  *BSD, it is next to useless. 
+
+  4 Sometimes the CVS is not as current as it should be. 
+
+  5.The lack of any way of changing brightness of images without a 
+    cpu-intensive re-run. 
+
+  6.There are no manual pages for several programs 
+
+  7.HTML versions of the man pages have diagrams that are completely stupid. #
+    This is a problem with the program 'man2html' I'm using - I think so anyway. 
+
+  8 Sometimes documention in one file is out of date with documention in
+    another. The web pages might not agree with those in docs/html-docs.
+    or README's contradict each other. Where possible I've tried to   
+    remember to update the ChangeLog and add a date to a file, but this
+    does not always happen I'm afraid. 
+
+
+Dr. David Kirkby,  December 7th 2003 Re: atlc-4.6.0 
+</pre>
+<A href="http://sourceforge.net"> <IMG src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"></A><a href="http://validator.w3.org/check/referer"><img border="0" src="valid-html40.gif" alt="Valid HTML 4.01!" height="31" width="88"></a>
+<a href="http://bluefish.openoffice.nl/"><img SRC="jpgs/bluefish.jpg" WIDTH="88" HEIGHT="31" ALT="Bluefish"></a>
+
+</body>
+</html>
+
diff --git a/docs/html-docs/FAQ.html b/docs/html-docs/FAQ.html
new file mode 100644 (file)
index 0000000..6648d47
--- /dev/null
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="bluefish & vi">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="FAQ for atlc">
+<META name="KEYWORDS" content="tranmission lines, tranmission line, atlc, transmission line calculator">
+<TITLE>The arbitrary transmission line calculator FAQ</TITLE>
+</HEAD>
+<BODY>
+<H1><CODE>atlc's</CODE> Frequently asked questions</H1>
+
+<OL>
+        <LI><a href="#What_is">What is <CODE>atlc</CODE>?</A></LI>
+        <LI><a href="#Formulas_for">Formulas for transmission line properties can be found in any decent book, so why would I want to use <CODE>atlc</CODE>?</A></LI>
+        <LI><a href="#When_would">When would using <CODE>atlc</CODE> not be a good idea?</A></LI>
+        <LI><a href="#Loss">Can <CODE>atlc</CODE> calculate the loss of a transmission line?</A></LI>
+        <LI><a href="#What_are">What are the hardware and software requirements for using <CODE>atlc</CODE>?</A></LI>
+        <LI><a href="#Who_wrote">Who wrote <CODE>atlc</CODE>?</a></LI>
+               <LI><a href="#Under_what">Under what license conditions is <CODE>atlc</CODE> released? </a></LI>
+       <LI><a href="#Where_can">Where can I download the latest version of <CODE>atlc</CODE>?</a></LI>
+       <LI><a href="#How_do">How do I build <CODE>atlc</CODE>? </a></LI>
+       <LI><a href="#Can_atlc">Can <CODE>atlc</CODE> calculate the impedance of any transmission line?</a></LI>
+       <LI><a href="#I_wish">I wish to find the impedance of a microstrip line, on a printed circuit board, which is enclosed in a box. Can <CODE>atlc</CODE> calculate the impedance of such a transmission line, with the two dielectrics - vacuum and the fibreglass PCB.</a></LI>
+        <LI><a href="#Is_it">Is it possible to calculate the properties of two coupled transmission lines, which form a directional coupler, with a view to calculate the properties of a directional coupler?</A></LI>
+              <LI><a href="#Is_it_possible_to_design_couplers">Given one can determine the odd and even mode impedances of a directional coupler, is it possible to perform the reverse and find the required impedances for a directional coupler of a reqired specification?</A></LI>
+       <LI><a href="#How_accurate">How accurate is <CODE>atlc</CODE>?</a></LI>
+        <LI><a href="#How_does">How does one enter the transmission lines structure into <CODE>atlc</CODE>?</a></LI>
+       <LI><a href="#Does_atlc">Does <CODE>atlc</CODE> need to know the dimensions of transmission lines?</a></LI>
+       <LI><a href="#Bitmap_files">Bitmap files are large, can I use JPEG instead?</a></LI>
+       <LI><a href="#I_want">I want to try a number of different transmission lines, all with rectangular cross sections. Drawing them as bitmaps is a bit tedious. Is there a simpler way?</a></LI>
+       <LI><a href="#border">I ran create_bmp_for_rect_in_rect with the -v option, so that it produced some extra information to stderr.  create_bmp_for_rect_in_rect indicated that it would create a grid of 615 x 201, yet the bitmap was larger at 625 x 211 pixels. Why is this ? </a></LI>
+       <LI><a href="#ten">What are the 12 programs, that form the atlc package?  </a></LI>
+
+</OL>
+
+<OL>
+       <LI><UL><LI><STRONG>Question: </STRONG> <A NAME="What_is">What</a> is <a href="atlc.1.html"><code>atlc</code></a>?</LI><LI><STRONG>Answer: </STRONG> <a href="atlc.1.html"><code>atlc</code></a> is a set of around 10 computer programmes designed for finding the properties (characteristic impedance, inductance per m, capacitance per metre, velocity factor, electric field distribution) of any transmission line with 2 or 3 conductors (i.e. a normal line or coupler). Some programs are used for design, other for analysis. The main program, which is called  <a href="atlc.1.html"><code>atlc</code></a> itseelf, uses the finite difference method to determine these properties, so while slower than other methods, <CODE>atlc</CODE> can handle any cross section.</LI></UL></LI>
+       
+       <LI><UL><LI><STRONG>Question: </STRONG><A NAME="Formulas_for">Formulas</a> for transmission line properties can be found in any decent book, so why would I want to use <CODE>atlc</CODE>?</LI><LI><STRONG>Answer: </STRONG>Formulas can be found for many simple cases, but often no analytical formula is known for more complex, but useful cases. <br>For example, many amateur radio valve amplifiers have a stripline transmission line, mounted above a chassis. The impedance of such a line can be calculated from published formula. However, these assume there is no metallic side walls for the amplifier, or a lid on top. Once these are added, there is no known analytical formula. <br><br>You may wish to make a transmission line out of available materials. For example, assume you have some U-section brass that you would like to use for the inner of a transmission line, with the outer being rectangular section brass. See the figure below, where the inner is shown red, the outer green and white is just vacuum. <br><img src="jpgs/ushape.jpg" ALT="U section" ><br> The programme gives the following information about this transmission line. 
+<TABLE>
+<TR>
+<TD><STRONG>Electrical characteristics</STRONG><br>L=145.5810 nH/m<br>C=76.4283 pF/m<br>Zo= 43.6441Ohms<br>v= 299792458.010503 m/s</TD>
+<TD><img src="jpgs/ushape.E.jpg" ALT="E-field" ></TD>
+<TD><img src="jpgs/ushape.Ex.jpg" ALT="x-directed E-field" ></TD>
+<TD><img src="jpgs/ushape.Ey.jpg" ALT="y-directed E-field" ></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>Total electric field <br>(white is higher)</TD>
+<TD>x-directed E-field, <br>Red in +x direction, <br>blue in -x direction.</TD>
+<TD>y-directed E-field. <br>Red in +y direction, <br>blue in -y direction.</TD>
+</TR>
+</TABLE>
+Note, in the above images, it should <STRONG>not</STRONG> be assumed that somewhere that is twice as bright as someone else has twice the electric field. The perceived brightness depends on the non-linear characteristics of the human eye and the non-linear characteristics of how the CRT's brightness depends on the voltage levels applied to it. Quantitative data on electric field strengths are saved as binary files. See the HTML page on the <a href="fileformat.html">file format</a> if interested in using this data. 
+</LI></UL></LI>
+
+       
+       <LI><UL><LI><STRONG>Question: </STRONG><a name="When_would">When</a> would using <a href="atlc.1.html"><code>atlc</code></a> not be a good idea?</LI><LI><STRONG>Answer:</STRONG> If the geometry is simple and there are known analytical formula, it would generally be preferable to calculate them analystically. The only exceptions would be cases where analytical evaluation is possible, but difficult.  But generally, <a href="atlc.1.html">atlc</a> is designed for the cases where there are no analytical methods available.</LI></UL></LI>
+
+       <LI><UL><LI><STRONG>Question: </STRONG><a name="Loss">Can </a> <a href="atlc.1.html"><code>atlc</code></a> calculate the loss of a transmission line?</LI><LI><STRONG>Answer:</STRONG> No it can not. Someone hinted at a way it could perhaps be done, but this is highly speculative and I have no plans to attempt it.</LI></UL></LI>        
+       <LI><UL><LI><STRONG>Question: </STRONG><a name="What_are">What</a> are the hardware and software requirements for using <CODE>atlc</CODE>?</LI><LI><STRONG>Answer:</STRONG>A UNIX computer, with a <A HREF="http://gcc.gnu.org">gcc</A> or other C compiler is needed to run <a href="atlc.1.html"><code>atlc</code></a>. Floating point support in hardware is strongly recommended. Hence a 486 or better PC is really needed, or perhaps a 386 with 387 floating point processor. Given the programme is fairlly CPU intensive, I would suggest at least a 300 MHz machine, preferably a lot more. The programme should compile easily.  If you have multiple processors, you can add multi-threaded support. If you wish to do this, you will need to have a POSIX compatable thread library. In the unlikely event your system does not have such as a library <a href="http://www.gnu.org/software/pth">pth</A>  can be installed. <BR><BR>RAM requirements should not be excessive by today's standards, with 64 MB sufficient for most problems. Using a very fine grid can push this into a few hundred MB, but cpu speed will generally limit you before RAM <br>You will also need some graphics package such as <A HREF="http://www.gimp.org">Gimp</A>, <A HREF="http://www.adobe.com/products/photoshop/main.html">Photoshop</A>, Windows Paint, CorelDraw etc, that can save images at bitmap (.BMP or .bmp) files. I would suggest using <A HREF="http://www.gimp.org">Gimp</A> on the UNIX machine, but the Gimp graphics programme can run under Windows, UNIX, OS2, DOS, VMS  or whatever operating system you like. </LI></UL></LI>
+       
+       <LI><UL><LI><STRONG>Question:</STRONG><a name="Who_wrote">Who wrote</a> <a href="atlc.1.html"><code>atlc</code></a> ?</LI><LI><STRONG>Answer: </STRONG><CODE>atlc</CODE> was written and is maintained by <A HREF= "jpgs/home-email.jpg">Dr. David Kirkby</a>. A few others have also contributed to the project too. Mark Chun KH6HPQ has compiled the Windows binaries, helping change the source where necessary to support Windows. Randall DuCharme helped in the port of an earlier vesion to Windoze. Numerous people have contributed useful information that has made atlc possible. In particular Eric Sosman suggested changes that would allow the code to run on the ~Cray Y-MP, on which all data types are 8 bytes long (including shoort). </LI></UL></LI>
+       <LI><UL><LI><STRONG>Question: </STRONG> <a name="Under_what">Under</a> what license conditions is <a href="atlc.1.html"><code>atlc</code></a> released ?</LI><LI><STRONG>Answer: </STRONG>It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A></LI></UL></LI>
+               
+       <LI><UL><LI><STRONG>Question: </STRONG><a name="Where_can">Where can I download the latest version of <CODE>atlc</CODE>? </a></LI><LI><STRONG>Answer:</STRONG> Please download from <a href="http://atlc.sourceforge.net">SourceForge</A></LI></UL></LI>
+       <LI><UL><LI><STRONG>Question:</STRONG> <a name="How_do">How</a> do I build <a href="atlc.1.html"><code>atlc</code></a> ? </LI><LI><STRONG>Answer: </STRONG> Building can be simple, basically requiring you to type<br>
+<PRE>
+% gzip -d atlc-X.Y.Z.tar.gz </PRE> Where X.Y.Z is the version<br>
+<PRE>% tar xf atlc-X.Y.Z.tar
+% cd atlc-X.Y.Z
+% ./configure
+% make
+% make check
+% su
+# make install</PRE>
+<br>However, there  are several complications that arise, so check <a href="building.html">here for a more detailed descriptoin of building the program</a>. 
+</LI></UL></LI>        
+       <LI><UL><LI><STRONG>Question: </STRONG><a name="Can_atlc">Can </a><a href="atlc.1.html"><code>atlc</code></a> calculate the impedance of <STRONG>any</STRONG> transmission line?</LI><LI><STRONG>Answer:</STRONG> No. It can calculate the impedance of any transmission line with 2 or 3 conductors, but it can not calculate the impedance of fibre optic cables, metallic waveguides or a stucture with more than 3 conductors.</LI></UL></LI>
+
+       <LI><UL><LI><STRONG>Question: </STRONG> <a name="I_wish">I wish to find the impedance of a microstrip line, on a printed circuit board, which is enclosed in a box. Can <CODE>atlc</CODE> calculate the impedance of the transmission line with the two dielectrics - vacuum and the fibreglass PCB.</a>  </LI><LI><STRONG>Answer:</STRONG> Yes, this is no problem, although I must admit the results of this have not been checked very much. <a href="atlc.1.html"><code>atlc</code></a> is conveniently configured for the following dielectric constants - 1.0, 1.000 (air) 2.1 (PTFE), 2.2 (RT Duroid 5880),  2.33 (Polyethylene), 2.5 (polystyrene), 3.3 (PVC), 3.335 (epoxy resin), 4.8 (fibreglass), 6.15 (duriod 6006) and 10.2 (duroid 6010). Any other permittivity can be defined, but needs slightly more effort in doing so. For more information on this, <a href="colours.html">see here</a>.</LI></UL></LI>   
+
+       <LI><UL><LI><STRONG>Question: </STRONG> <a name="Is_it">Is it possible to calculate the properties of two coupled transmission lines, which form a directional coupler, with a view to calculate the properties of a directional coupler?</a></LI>
+       
+       <LI><STRONG>Answer:</STRONG>When there are two coupled transmission lines, there is not a single characteristic impedance Zo, but instead an even-mode impedance Z<sub>even</sub> and an odd-mode impedance Z<sub>odd</sub>. An odd-mode impedance is calculated when the two lines are driven out of phase and an even-mode impedance when they are driven in phase. Versions of <a href="atlc.1.html"><code>atlc</code></a> from 4.0.0 onwards are able to calculate an even-mode impedance Z<sub>even</sub> and an odd-mode impedance Z<sub>odd</sub> Also calculated are the common mode impedance Z<sub>comm</sub> and the differential mode impedance Z<sub>diff</sub>.</LI></UL></LI>
+       
+       <LI><UL><LI><STRONG>Question: </STRONG> <a name="Is_it_possible_to_design_couplers">Given one can determine the odd and even mode impedances of a directional coupler, is it possible to reverse this and find the required impedances given a specification for the coupler?</a></LI>
+       <LI><STRONG>Answer:</STRONG>Yes it is. One can easily determine with the aid of the program  <CODE>design_coupler</CODE> Z<sub>even</sub> and Z<sub>odd</sub>. For one particular configuration, it is possible to <a href="determine_dimensions_of_couplers.html">determine the dimensions </a>of a coupler that will meet those specifications. For other geometries, it will be necessary to find suitable dimensions by trial and error with atlc, which will be quite time-consuming.</LI></UL></LI>
+       
+       <LI><UL><LI><STRONG>Question: </STRONG><a name="How_accurate">How </a>accurate is <a href="atlc.1.html"><code>atlc</code></a>? </LI>
+       
+       <LI><STRONG>Answer:</STRONG>The basic method by which <CODE>atlc</CODE> works is very accurate. Errors of less than 0.3% are typical, and largest error every recorded is under 1%. The problem is that achieving such accuracy is very time consuming. Few people need results more accurate than 1%, in which case the run-times should be only a few minutes at most. The accurary of the program <a href="atlc.1.html"><code>atlc</code></a> has not been properly evaluated for open-structures, such as twin-wire, where the fields theoretically extend to infinity. Initail results suggest <a href="atlc.1.html"><code>atlc</code></a> is not very accuate in such cases, but this has not been fully investigated. </LI></UL></LI>
+
+       <LI><UL><LI><STRONG>Question: </STRONG><a name="How_does">How </a>does <a href="atlc.1.html"><code>atlc</code></a> work? </LI><LI><STRONG>Answer: </STRONG> <a href="atlc.1.html"><code>atlc</code></a> uses a method known as finite differences. A paper describing the theory of this was published in the amateur radio journal QEX See: <EM>Finding the characteristics of Arbitrary transmission lines</EM>, D. Kirkby, QEX, December 1996, page 3-10. You can  <a href="http://atlc.sourceforge.net/docs/qex-december-1996/atlc.pdf">download</a> a copy  if you wish, or there should be <a href="../qex-december-1996/atlc.pdf">a local copy</a>. Note this is an old paper, so <a href="atlc.1.html"><code>atlc</code></a> has been much improved since that paper was written.  </LI></UL></LI>
+
+       <LI><UL><LI><STRONG>Question: </STRONG><a name="Does_atlc"> Does </A><a href="atlc.1.html"><code>atlc</code></a> need to know the dimensions of transmission lines?</LI><LI><STRONG>Answer: </STRONG> <CODE>atlc</CODE> does not need to know the absolute dimensions (in mm or inches), but it does need to know the relative sizes of all the conductors. </LI></UL></LI>
+
+
+       <LI><UL><LI><STRONG>Question: </STRONG> <a name="Bitmap_files">Bitmap </a>files are large, can I use JPEG instead? </LI><LI><STRONG>Answer: </strong> No. JPEG files use a compression method that is not lossless  -i.e. data is lost from which you can never recover. As such JPEG is not suitable for this application. TIFF could in principle be used, but there are no plans to add support for files other than .bmp. I might add support for the FITs data file format, but this is not a priority</LI></UL></LI>
+
+<LI><UL><LI><STRONG>Question: </STRONG> <a name="I_want">I</a> want to try a number of different transmission lines, all with rectangular cross sections. Drawing them as bitmaps is a bit tedious. Is there a simpler way?</LI><LI><STRONG>Answer: </STRONG> Yes, there is. The programme  <a href="create_bmp_for_rect_in_rect.1.html"><code>create_bmp_for_rect_in_rect</code></a> is for this purpose, as it can automatically draw bitmaps for a <STRONG>rect</STRONG>angular conductor <STRONG>in</STRONG>side another <STRONG>rect</STRONG>angular conductor, like the following transmission line. <br><img src="jpgs/rect2.jpg" ALT="create_bmp_for_rect_in_rect_diag"><br> You need to supply as command line arguments the dimensions of the structure (in mm, inches, miles or whatever you want, as long as the same unit is used throughout), and of course the permittivities of the dielectrics. See  the section <a href="generators.html">Automatic Bitmap Generators</A> for more information on   <a href="create_bmp_for_rect_in_rect.1.html"><code>create_bmp_for_rect_in_rect</code></a>. </LI></UL></LI>
+
+       <LI><UL><LI><STRONG>Question:</strong> <a name="border"> I ran</a>  <a href="create_bmp_for_rect_in_rect.1.html">create_bmp_for_rect_in_rect</a> with the -v option, so that it produced some extra information to stderr.  <a href="create_bmp_for_rect_in_rect.1.html">create_bmp_for_rect_in_rect</a> indicated that it would create a grid of 615 x 201, yet the bitmap was larger at 625 x 211 pixels. Why is this ? </LI><LI><STRONG>Answer:</STRONG> The dimensions you enter on <a href="create_bmp_for_rect_in_rect.1.html">create_bmp_for_rect_in_rect's</a> command line are the <STRONG>inside</STRONG> dimensions of the outer conductor, which you enter as floating point numbers. <a href="create_bmp_for_rect_in_rect.1.html">create_bmp_for_rect_in_rect</a> will convert those to the best integer fit it can, but it  least have at least a 1 pixel border all the way around for the outer conductor. By default, the border is made 5 pixels, so it can be seen easily on a bitmap without needing to zoom in too far. Hence the bimap is 10 pixels wider and 10 pixel higher than expected. </LI></UL></LI>
+       
+       
+<LI><UL><LI><STRONG>Question:</STRONG><a name="ten"> What</a> are the 12 programs, that form the atlc package? </LI><LI><STRONG>Answer:</STRONG>\11See the web page describing the <a href="man-pages.html">manual pages</a></LI></UL></LI>
+       
+</OL>
+
+
+
+
+
+
+
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</BODY>
+
+</HTML>
diff --git a/docs/html-docs/IMPORTANT.html b/docs/html-docs/IMPORTANT.html
new file mode 100644 (file)
index 0000000..baa582c
--- /dev/null
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Bluefish">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="atlc - Important notice">
+<META name="KEYWORDS" content="atlc arbitrary transmission line any cross section">
+<TITLE>IMPORTANT NOTICE about atlc</TITLE>
+</HEAD>
+<BODY>
+<H1>IMPORTANT NOTES</H1>
+
+<OL>
+<LI><EM>atlc</EM> is a work in progress and sometimes there are differences between what it says in one part of the documentation and what it says elesewhere. This documentation was produced for release
+4.2.8 so should match that most closely, but there will certainly be a few differences betweeen
+one part of the docs and another. If you find such at case, please <a href="jpgs/home-email.jpg">e-mail me<a/> and let me know and I'll advise which is correct and update the documentation.</LI>
+<LI> There is a <a href="../qex-december-1996/atlc.pdf">paper</a> that you may read on atlc that was written in 1998. atlc has changed a lot since then, but it might give you some idea of the theory behind it all. That paper is was published and so is reasonably coherent. There are are two Word documents <a
+href="../theory/atlc-theory1.doc">atlc-theory1.doc</a> and <a href="../theory/atlc-theory2.doc">atlc-theory2.doc</a> which are quite advanced. DON'T ASSUME atlc2.doc IS A LATER VERSION OF atlc1.doc - IT
+MIGHT WELL BE THE OTHER WAY AROUND!!
+
+as a file in Sun's Staroffice format called <a href="../theory/ideas-for-gui.sxw">ideas-for-gui.sxw</a>
+which disucsses adding a GUI to atlc.The former two documents are more advanced more closely resemble the later versions of
+atlc. However, they were written by me for me and so they are not that easy to follow for someone else. </LI>
+<LI>If you wish to print any web page, please click on the lower half of the page before pressing the print button - otherwise its possible you must just print the menu at the top.</LI>
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+
+</BODY>
+
+</HTML>
diff --git a/docs/html-docs/Makefile.am b/docs/html-docs/Makefile.am
new file mode 100644 (file)
index 0000000..d43448e
--- /dev/null
@@ -0,0 +1,93 @@
+# This is Makefile.am, which is proceed by automake
+
+SUBDIRS = jpgs
+
+htmldir = $(datadir)/atlc/docs/html-docs
+
+html_DATA = IMPORTANT.html \
+FAQ.html \
+accuracy.html \
+an_example_of_using_design_coupler.html \
+atlc.1.html \
+banner.html \
+bmp.html \
+building.html \
+calculate_zodd_and_zeven.html \
+colours.html \
+couplers.html \
+create_bmp_for_circ_in_circ.1.html \
+create_bmp_for_circ_in_rect.1.html \
+create_bmp_for_rect_cen_in_rect.1.html \
+create_bmp_for_rect_in_circ.1.html \
+create_bmp_for_rect_in_rect.1.html \
+create_bmp_for_stripline_coupler.1.html \
+create_bmp_for_symmetrical_stripline.1.html \
+create_bmp_for_rect_cen_in_rect_coupler.1 \
+design_coupler.1.html \
+determine_dimensions_of_couplers.html \
+errors.html \
+examples.html \
+fileformat.html \
+generate_for_coupler.html \
+generators.html \
+index.html \
+index2.html \
+installing.html \
+make-check.html \
+man-pages.html \
+options.html \
+readbin.1.html \
+rect_in_rect.html \
+sysdata.1.html \
+theory.html \
+todo.html \
+tutorial.html \
+usage_design_coupler.html \
+valid-html40.gif 
+
+EXTRA_DIST = BUGS.html \
+FAQ.html \
+IMPORTANT.html \
+NEWS.html \
+accuracy.html \
+an_example_of_using_design_coupler.html \
+atlc.1.html \
+banner.html \
+bmp.html \
+building.html \
+calculate_zodd_and_zeven.html \
+colours.html \
+couplers.html \
+create_bmp_for_circ_in_circ.1.html \
+create_bmp_for_circ_in_rect.1.html \
+create_bmp_for_rect_cen_in_rect.1.html \
+create_bmp_for_rect_in_circ.1.html \
+create_bmp_for_rect_in_rect.1.html \
+create_bmp_for_stripline_coupler.1.html \
+create_bmp_for_symmetrical_stripline.1.html \
+create_bmp_for_rect_cen_in_rect_coupler.1 \
+design_coupler.1.html \
+determine_dimensions_of_couplers.html \
+errors.html \
+examples.html \
+fileformat.html \
+generate_for_coupler.html \
+generators.html \
+index.html \
+index2.html \
+installing.html \
+make-check.html \
+man-pages.html \
+options.html \
+readbin.1.html \
+rect_in_rect.html \
+sysdata.1.html \
+theory.html \
+todo.html \
+tutorial.html \
+valid-html40.gif \
+usage_design_coupler.html 
+
+CLEANFILES =
+
+DISTCLEANFILES =
diff --git a/docs/html-docs/Makefile.in b/docs/html-docs/Makefile.in
new file mode 100644 (file)
index 0000000..058da59
--- /dev/null
@@ -0,0 +1,517 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# This is Makefile.am, which is proceed by automake
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+SUBDIRS = jpgs
+
+htmldir = $(datadir)/atlc/docs/html-docs
+
+html_DATA = IMPORTANT.html \
+FAQ.html \
+accuracy.html \
+an_example_of_using_design_coupler.html \
+atlc.1.html \
+banner.html \
+bmp.html \
+building.html \
+calculate_zodd_and_zeven.html \
+colours.html \
+couplers.html \
+create_bmp_for_circ_in_circ.1.html \
+create_bmp_for_circ_in_rect.1.html \
+create_bmp_for_rect_cen_in_rect.1.html \
+create_bmp_for_rect_in_circ.1.html \
+create_bmp_for_rect_in_rect.1.html \
+create_bmp_for_stripline_coupler.1.html \
+create_bmp_for_symmetrical_stripline.1.html \
+create_bmp_for_rect_cen_in_rect_coupler.1 \
+design_coupler.1.html \
+determine_dimensions_of_couplers.html \
+errors.html \
+examples.html \
+fileformat.html \
+generate_for_coupler.html \
+generators.html \
+index.html \
+index2.html \
+installing.html \
+make-check.html \
+man-pages.html \
+options.html \
+readbin.1.html \
+rect_in_rect.html \
+sysdata.1.html \
+theory.html \
+todo.html \
+tutorial.html \
+usage_design_coupler.html \
+valid-html40.gif 
+
+
+EXTRA_DIST = BUGS.html \
+FAQ.html \
+IMPORTANT.html \
+NEWS.html \
+accuracy.html \
+an_example_of_using_design_coupler.html \
+atlc.1.html \
+banner.html \
+bmp.html \
+building.html \
+calculate_zodd_and_zeven.html \
+colours.html \
+couplers.html \
+create_bmp_for_circ_in_circ.1.html \
+create_bmp_for_circ_in_rect.1.html \
+create_bmp_for_rect_cen_in_rect.1.html \
+create_bmp_for_rect_in_circ.1.html \
+create_bmp_for_rect_in_rect.1.html \
+create_bmp_for_stripline_coupler.1.html \
+create_bmp_for_symmetrical_stripline.1.html \
+create_bmp_for_rect_cen_in_rect_coupler.1 \
+design_coupler.1.html \
+determine_dimensions_of_couplers.html \
+errors.html \
+examples.html \
+fileformat.html \
+generate_for_coupler.html \
+generators.html \
+index.html \
+index2.html \
+installing.html \
+make-check.html \
+man-pages.html \
+options.html \
+readbin.1.html \
+rect_in_rect.html \
+sysdata.1.html \
+theory.html \
+todo.html \
+tutorial.html \
+valid-html40.gif \
+usage_design_coupler.html 
+
+
+CLEANFILES = 
+
+DISTCLEANFILES = 
+subdir = docs/html-docs
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DATA = $(html_DATA)
+
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+       ps-recursive install-info-recursive uninstall-info-recursive \
+       all-recursive install-data-recursive install-exec-recursive \
+       installdirs-recursive install-recursive uninstall-recursive \
+       check-recursive installcheck-recursive
+DIST_COMMON = Makefile.am Makefile.in
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  docs/html-docs/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+htmlDATA_INSTALL = $(INSTALL_DATA)
+install-htmlDATA: $(html_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(htmldir)
+       @list='$(html_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " $(htmlDATA_INSTALL) $$d$$p $(DESTDIR)$(htmldir)/$$f"; \
+         $(htmlDATA_INSTALL) $$d$$p $(DESTDIR)$(htmldir)/$$f; \
+       done
+
+uninstall-htmlDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(html_DATA)'; for p in $$list; do \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " rm -f $(DESTDIR)$(htmldir)/$$f"; \
+         rm -f $(DESTDIR)$(htmldir)/$$f; \
+       done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
+
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$(top_distdir)" \
+               distdir=../$(distdir)/$$subdir \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+       $(mkinstalldirs) $(DESTDIR)$(htmldir)
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-htmlDATA
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-htmlDATA uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+       clean-generic clean-recursive ctags ctags-recursive distclean \
+       distclean-generic distclean-recursive distclean-tags distdir \
+       dvi dvi-am dvi-recursive info info-am info-recursive install \
+       install-am install-data install-data-am install-data-recursive \
+       install-exec install-exec-am install-exec-recursive \
+       install-htmlDATA install-info install-info-am \
+       install-info-recursive install-man install-recursive \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am installdirs-recursive maintainer-clean \
+       maintainer-clean-generic maintainer-clean-recursive mostlyclean \
+       mostlyclean-generic mostlyclean-recursive pdf pdf-am \
+       pdf-recursive ps ps-am ps-recursive tags tags-recursive \
+       uninstall uninstall-am uninstall-htmlDATA uninstall-info-am \
+       uninstall-info-recursive uninstall-recursive
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/html-docs/NEWS.html b/docs/html-docs/NEWS.html
new file mode 100644 (file)
index 0000000..534b3e9
--- /dev/null
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html>
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org">
+<meta name="GENERATOR" content="Bluefish and vi">
+
+<meta name="KEYWORDS" content="transmission lines, tranmission line, CAD, electrical, atlc, impedance, Z0, transmission, line, lines, arbitrary, cross, section, shape, Zo">
+<meta name="DESCRIPTION" content="A finite difference program for computing the  properties of any transmission line ">
+<title>atlc - Arbitrary Transmission Line Calculator</title>
+</head>
+<body>
+<pre>
+NEWS for realease 4.6.0  Nobember 2003.
+
+This is a very different from the last release (4.5.1) in
+two very important ways.
+
+1) The basic accuracy for single dielectrics has been improved.
+Now typical errors are only around 0.1%
+
+2) I have re-enabled the calculation of multiple dielectrics
+which were disabled due to accuracy concerns. I'm still not
+100% happy with the algorithms, but on tests with a dual 
+coaxial cable with two dielectrics shows errors of under 2%, 
+I hope to improve this further at a later date. 
+
+Dr. David Kirkby, 7th December 2003. Re: atlc-4.6.0
+</pre>
+<A href="http://sourceforge.net"> <IMG src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"></A><a href="http://validator.w3.org/check/referer"><img border="0" src="valid-html40.gif" alt="Valid HTML 4.01!" height="31" width="88"></a>
+<a href="http://bluefish.openoffice.nl/"><img SRC="jpgs/bluefish.jpg" WIDTH="88" HEIGHT="31" ALT="Bluefish"></a>
+
+</body>
+</html>
+
diff --git a/docs/html-docs/accuracy.html b/docs/html-docs/accuracy.html
new file mode 100644 (file)
index 0000000..ee4d93b
--- /dev/null
@@ -0,0 +1,1026 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="bluefish and vi">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+<meta name="author" content="Dr. David Kirkby">
+<META name="DESCRIPTION" content="Accuracy of atlc - Arbitrary Transmission Line Calculator">
+<META name="KEYWORDS" content="transmission lines, Transmission line, atlc, finite difference">
+<TITLE>Accuracy of atlc - Arbitrary Transmission Line Calculator</TITLE>
+</HEAD>
+<BODY>
+
+<H1>Accuracy of <CODE>atlc</code></H1>
+
+<p>In order to test the accuracy of  <CODE>atlc</code>, some simple geometries were devised, for which there are known exact closed-form analytical solutions. The following have been tested. To date, all tests have yielded acceptable accuracy. Out of 48 tests, the higest error measured is 3.05%, with However, note that in most cases where the error is over 1%, is is clearly very obvious why it is. The <a href="accuracy.html#conclusions">conclusions</a> at the end explain the reason for the higher errors observered on some simulations. 
+<ol>
+       <li>Two_conductor_uniform_dielectric<a href="accuracy.html#Two_conductor_uniform_dielectric">Two-conductor transmission lines, with a uniform dielectric</a> are discussed in <a href="accuracy.html#Two_conductor_uniform_dielectric">section 1.0</a>. Three cases were considered - the <a href="accuracy.html#Accuracy_coax">standard coaxial cable</a>, an off-centre or <a href="accuracy.html#Accuracy_eccentric_coax">eccentric coaxial cable</a> and a <a href="accuracy.html#Accuracy_symmetrical_strip">symmetrical strip transmission line</a>. These cases were consided since there are closed form exact analytical solutions on which to compare the results of atlc. Other structures will be tested at a later date. 
+</li>
+       <li><a href="accuracy.html#Two_conductors_hetrogeneous_dielectrics"> Two conductor transmission lines, 
+       
+with two different dielectrics</a> are described in <a href="accuracy.html#section_2">section 2</a>. 
+       
+The only structure considered has been a dual coaxial cable, which has an inner and outer conductor like normal coaxiale cable, but has two different concentric dielectrics. This has an exact closed-form analytical solution. Testing a coaxial cable with thress or more multiple concentric dielectrics will later be performed, as it should be possible to derive an analytical formula for such a strucutre, although this has not currently be done. 
+       
+       
+       
+I'm unaware of any other structure which has an exact solution when there are two or more dielectrics. If you know of any, please <a href="jpgs/home-email.jpg">e-mail</A> the details. </li>
+       <li>Three conductors (<a href="accuracy.html#Accuracy_coupler">directional coupler</a>), with a single dielectric are described in <a href="accuracy.html#Section_3_Accuracy_coupler">section 3.0</a>.  For three-wires, which can be used to make a 4-port <a href="accuracy.html#Accuracy_coupler">directional coupler</a>, the  accuracy was compared using <a href="accuracy.html#Accuracy_coupler">two edge-on strip lines.</a>, as that is the only case I am aware of that has an exact analytical solution. However, comparisions with commercial tools such as the expensive HFSS package will be done at a later date. However, I am relieant on the help of others for this, since I don't personally have access to such expensive commerical software. </li>
+</ol>
+
+<H2><a name="Two_conductor_uniform_dielectric">Section 1. Two conductor Transmission Lines with a Uniform Dielectric</a></H2>
+This section describes several tests for atlc using just two conductors and one dielectric. Several geometries have exact results, so it makes testing relatively easy. 
+
+<H3><a name="Accuracy_coax" ><strong>1.1 Comparisons between atlc and a round coaxial cabl</strong>e</a></H3>
+<p>
+
+<img src="jpgs/coax2.jpg" ALT="coaxial line" align="left">An obvious structure to test atlc with two conductor and a single dielectric is the round coaxial cable, which has an impedance:
+<br>
+<STRONG>
+
+
+Zo=59.95849160*log<sub>e</sub>(D/d)/sqrt(Er) Ohms</STRONG>
+<br>
+ where D is the inner diameter of the outer conductor and d is the outer diameter of the inner conductor. (The number 59.958491602 is usually seen as 60 in most books, but that is only an approximation).
+<br>
+Circular conductors can never be defined exactly using a square grid, so differences between the exact answer and <CODE>atlc</code>'s answer are due to:
+<UL>
+<LI>Errors in representing a circle on a square grid</LI>
+<LI>Errors in the method <COde>atlc</code> uses. </LI>
+</UL>
+<br>
+Seven coaxial cables were defined, which exibited a range of impedances between 5.5 and 179.6 Ohms. All eccept one used a vacuum dielectric. The table below shows the theoetical results and the results computed by <code>atlc</code>.
+<TABLE border align="left">
+<TR>
+<TD><STRONG>Filename</STRONG></td>
+<TD><STRONG>D</STRONG></TD>
+<TD><STRONG>d</STRONG></TD>
+<TD>Er</TD>
+<TD><STRONG>Zo (theory)</STRONG></TD>
+<TD><STRONG>Zo (<COde>atlc</code>)</STRONG></TD>
+<TD><STRONG>Error (%)</STRONG></TD>
+
+</TR>
+
+<TR>
+<TD>coax-500-200-Er=100.bmp</TD>
+<TD>500</TD>
+<TD>200</TD>
+<TD>100.0</TD>
+<TD>5.494</TD>
+<TD>5.492</TD>
+<TD>-0.036 %</TD>
+<TD>0m:43s</TD>
+</TR>
+
+<TR>
+<td>coax-500-400.bmp</td>
+<TD>500</TD>
+<TD>400</TD>
+<TD>1.0</TD>
+<TD>13.379</TD>
+<TD>13.381</TD>
+<TD>+ 0.020 %</TD>
+<TD>0m:11s</TD>
+
+</TR>
+<TR>
+<TD>coax-500-200.bmp</TD>
+<TD>500</TD>
+<TD>200</TD>
+<TD>1.0</TD>
+<TD>54.939</TD>
+<TD>54.919</TD>
+<TD>-0.036 %</TD>
+<TD>0m:43s</TD>
+</TR>
+
+<TR>
+<TD>coax-400-82.bmp</TD>
+<TD>400</TD>
+<TD>82</TD>
+<TD>1.0</TD>
+<TD>95.019</TD>
+<TD>95.023</TD>
+<TD>+0.004 %</TD>
+<TD>0m:31s</TD>
+</TR>
+
+
+<TR>
+<TD>coax-500-100.bmp</TD>
+<TD>500</TD>
+<TD>100</TD>
+<TD>1.0</TD>
+<TD>96.499</TD>
+<TD>96.448</TD>
+<TD>-0.053 %</TD>
+<TD>1m:08s</TD>
+</TR>
+
+<TR>
+<TD><a name="coax-500-50.bmp">coax-500-50.bmp</a></TD>
+<TD>500</TD>
+<TD>50</TD>
+<TD>1.0</TD>
+<TD>138.060</TD>
+<TD>137.944</TD>
+<TD>-0.008 %</TD>
+<TD>1m:22s</TD>
+</TR>
+
+<TR>
+<TD>coax-500-25.bmp</TD>
+<TD>500</TD>
+<TD>25</TD>
+<TD>1.0</TD>
+<TD>179.620</TD>
+<TD>180.022</TD>
+<TD>+0.244 %</TD>
+<TD>1m:28s</TD>
+</TR>
+
+
+</TABLE><br clear="all">
+<br>
+<STRONG>Notes:</STRONG> 
+<br>
+<OL>
+<LI>These results were obtained with version 4.6.0 of atlc. Other versions will undoubtablly differ slightly as effort is made to improve the algorithms in atlc. </LI>
+<LI>Run times quoted are for a Sun Ultra 80 with 4 x 450 MHz and 4 Gb RAM, running Solaris 9. The compiler was gcc-3.2.2 with compiler options <code>-O2 -g</code>.</LI>
+<LI>The only option used on atlc was the -d option on the occasions where the permittivity was not one of atlc's known values, so it needed to be specified on the command line</LI>
+<LI>
+<STRONG>The largest error for the coaxial cables is only 0.244 %, the mean error is 0.017 % with the RMS error being 0.089 %. </STRONG>
+</LI>
+<LI>The larger error in the last result is due to the difficulty in accurately representing a small conductor on a reasonable sized grid. The ratio between the diameters of the outer and inner conductors is 20:1, making it difficult to represent both accurately without a grid become huge and so taking a lot of CPU time. 
+</LI>
+
+<LI>
+In some situations, accuracy can be improved at the expense of memory and CPU time, by using a finer grid and altering the cutoff parameter of atlc. </LI>
+<LI>As from version 4.6.0 of atlc, a new program called coax has been provided. This allows the quick computation of the impedance of a coaxial cable. To find the impedance of a coax with an inner of 32 mm, and outer of 120 mm and a relative permittivity of 2.2, just run coax:<br><br>
+<code>% coax 32 120 2.2</code>
+</OL>
+
+
+
+
+<!-- Section 1.2 --- Comparisons between atlc and an eccentric coaxial line<-->
+
+
+
+
+
+<H3><STRONG><a name="Accuracy_eccentric_coax" >1.2 Comparisons between atlc and an eccentric coaxial line</A></STRONG></H3>
+<img src="jpgs/eccentric_coax2.jpg" ALT="eccentric coaxial line" align="bottom"><p>According to the book <EM>Microwave and Optical Components, Volume 1, - Microwave Passive and Antenna Components</EM>, page 7, there is an exact formula for the impedance of a coaxial line (see below). If O is the offset between the centres of the two conductors, then the impedance Zo assuming Er=1, is given by the following equation.
+<p><STRONG> 60 log<sub>e</sub>(x+sqrt(x^2-1)) </STRONG>where <STRONG>x=(d<sup>2</sup>+D<sup>2</sup>-4 O<sup>2</sup>)/(2*D*d)  </STRONG>
+<br>
+<p>This will allow a second check of atlc's accuracy with two conductors and one dielectric. Any problems which might be masked by the symmetry of the stardard coaxial cable will be eliminated. </p>
+
+<p>Whenever the number 60 appears in formula for transmission lines, it should in fact be replaced by the number 59.9585. 60 is just a good approximation, but since we are testing atlc, the following formula will be used:<br><br>
+
+<STRONG> 59.9585 log<sub>e</sub>(x+sqrt(x^2-1)) /sqrt(Er) </STRONG>where <STRONG>x=(d<sup>2</sup>+D<sup>2</sup>-4 O<sup>2</sup>)/(2*D*d)  </STRONG>
+
+<br>
+<br>
+Of course, one could constuct the a number of such transmission lines with a graphics package using its ability to draw circles, but getting the correct diamters and offsets would be time confusming. For this reasons the program <a href="create_bmp_for_circ_in_circ.1.html">create_bmp_for_circ_in_circ</a> was used to generate a number of bitamps quickly with the following diameters and offsets. 
+<TABLE border align="left">
+<TR>
+<TD><STRONG>Filename</STRONG></td>
+<TD><STRONG>D</STRONG></TD>
+<TD><STRONG>d</STRONG></TD>
+<TD><STRONG>O</STRONG></TD>
+<TD>Er</TD>
+<TD><STRONG>Zo (theory)</STRONG></TD>
+<TD><STRONG>Zo (<COde>atlc</code>)</STRONG></TD>
+<TD><STRONG>Error (%)</STRONG></TD>
+
+</TR>
+<TR>
+
+<td>eccentric-a.bmp</td>
+<TD>500</TD>
+<TD>400</TD>
+<TD>40</TD>
+<TD>2.15</TD>
+<TD>5.482</TD>
+<TD>5.487</TD>
+<TD>+0.091 %</TD>
+</TR>
+
+<TR>
+<td>eccentric-b.bmp</td>
+<TD>400</TD>
+<TD>320</TD>
+<TD>0</TD>
+<TD>1.0</TD>
+<TD>13.379</TD>
+<TD>13.389</TD>
+<TD>+0.075 %</TD>
+
+</TR>
+<TR>
+<td>eccentric-c.bmp</td>
+<TD>500</TD>
+<TD>100</TD>
+<TD>100</TD>
+<TD>10.0</TD>
+<TD>29.707</TD>
+<TD>29.713</TD>
+<TD>+0.020 %</TD>
+
+</TR>
+<TR>
+<td>eccentric-d.bmp</td>
+<TD>500</TD>
+<TD>200</TD>
+<TD>100</TD>
+<TD>1.0</TD>
+<TD>41.560</TD>
+<TD>41.587</TD>
+<TD>+0.065 %</TD>
+
+</TR>
+<TR>
+<td>eccentric-e.bmp</td>
+<TD>500</TD>
+<TD>200</TD>
+<TD>10</TD>
+<TD>1.0</TD>
+<TD>54.825</TD>
+<TD>54.862</TD>
+<TD>+0.067 %</TD>
+
+</TR>
+<TR>
+<td>eccentric-f.bmp</td>
+<TD>400</TD>
+<TD>160</TD>
+<TD>0</TD>
+<TD>1.0</TD>
+<TD>54.939</TD>
+<TD>54.976</TD>
+<TD>+0.067 %</TD>
+
+</TR>
+<TR>
+<td>eccentric-g.bmp</td>
+<TD>400</TD>
+<TD>40</TD>
+<TD>12</TD>
+<TD>5.0</TD>
+<TD>61.644</TD>
+<TD>61.676</TD>
+<TD>+0.052 %</TD>
+
+</TR>
+<TR>
+<td>eccentric-h.bmp</td>
+<TD>400</TD>
+<TD>40</TD>
+<TD>160</TD>
+<TD>1.0</TD>
+<TD>73.489</TD>
+<TD>73.330</TD>
+<TD>-0.216%</TD>
+
+</TR>
+<TR>
+<td>eccentric-i.bmp</td>
+<TD>1600</TD>
+<TD>160</TD>
+<TD>640</TD>
+<TD>1.0</TD>
+<TD>73.489</TD>
+<TD>73.330</TD>
+<TD>-0.216 %</TD>
+
+</TR>
+<TR>
+<td>eccentric-j.bmp</td>
+<TD>500</TD>
+<TD>100</TD>
+<TD>50</TD>
+<TD>1.0</TD>
+<TD>93.943</TD>
+<TD>93.961</TD>
+<TD>+0.019 %</TD>
+
+</TR>
+<TR>
+<td>eccentric-k.bmp</td>
+<TD>500</TD>
+<TD>100</TD>
+<TD>0</TD>
+<TD>1.0</TD>
+<TD>96.499</TD>
+<TD>96.524</TD>
+<TD>+0.019 %</TD>
+
+</TR>
+<TR>
+<td>eccentric-l.bmp</td>
+<TD>500</TD>
+<TD>50</TD>
+<TD>100</TD>
+<TD>1.0</TD>
+<TD>127.467</TD>
+<TD>127.524</TD>
+<TD>+0.045 %</TD>
+
+</TR>
+
+<TR>
+<td>eccentric-m.bmp</td>
+<TD>500</TD>
+<TD>50</TD>
+<TD>50</TD>
+<TD>1.0</TD>
+<TD>135.586</TD>
+<TD>135.654</TD>
+<TD>+0.050 %</TD>
+
+</TR>
+
+<TR>
+<td>eccentric-n.bmp</td>
+<TD>400</TD>
+<TD>40</TD>
+<TD>20</TD>
+<TD>1.0</TD>
+<TD>137.451</TD>
+<TD>137.519</TD>
+<TD>+0.049 %</TD>
+
+</TR>
+
+
+
+</TABLE><p><br clear="all"><br>
+
+<ol>
+       <li>These results were produced with version 4.6.0 of atlc. Results from other versions will probably differ, as efforts are made to further improve atlc.</li>
+       <li>Due to their large size, the eccentric-?.bmp coax files are not distributed, but you could make them and compute their impedances like this. Add the -v option to create_bmp_for_circ_in_circ (as in example eccentric-d.bmp) if you want the theoretical results printed.
+
+<pre><CODE>
+create_bmp_for_circ_in_circ 500 400 40 2.2 eccentric-a.bmp &amp&amp atlc -d caff00=2.15 eccentric-a.bmp
+create_bmp_for_circ_in_circ 400 320 0 1 eccentric-b.bmp &amp&amp atlc eccentric-b.bmp
+create_bmp_for_circ_in_circ 500 100 100 10 eccentric-c.bmp &amp&amp atlc -d caff00=10 eccentric-c.bmp
+create_bmp_for_circ_in_circ -v 500 200 100 1 eccentric-d.bmp &amp&amp atlc
+create_bmp_for_circ_in_circ 500 200 10 1 eccentric-e.bmp &amp&amp atlc
+create_bmp_for_circ_in_circ 400 160 0 1 eccentric-f.bmp &amp&amp atlc
+create_bmp_for_circ_in_circ 400 40 12 5 eccentric-g.bmp &amp&amp atlc -d caff00=5 eccentric-g.bmp
+create_bmp_for_circ_in_circ 400 400 160 1 eccentric-h.bmp &amp&amp atlc
+etc. </CODE>
+</pre>
+</li>
+<li> If you add the <code>-v</code> option to <code>create_bmp_for_circ_in_circ</code>, it will print the <strong>exact</strong> theoretical values for you too. 
+</li>
+<LI>If you only want to compute the impedance of an offset coax, without actually creating the bitmap, the program coax can be used, if you supply the <code>-o offset</code> option. For example:
+<pre>
+coax -o 40 400 500 1
+Zo =         8.038255 Ohms
+</pre>
+<LI>Since there is an exact answer to this geometry, even when the inner is offset, there is not a lot of point in spending seconds or minutes running <code>atlc</code> to come an approximate numerical answer, when you can compute an exact one in a small fraction of a second. However, using atlc to compute a few of these gives you confidence atlc is working properly.</LI>
+</ol>
+
+<p>
+
+
+
+
+
+<!-- Section 1.3 *** Comparisions between atlc and a symmetrical strip transmission line  -->
+
+
+
+
+
+<H3><a name="Accuracy_symmetrical_strip" ><strong>1.3 Comparisions between atlc and a symmetrical strip transmission line</strong></A></H3>
+Another obvious test to determine the performance of atlc with two conductors and one dielectric is a symmetrical strip transmission line - see diagramme below. <p>
+<img src="jpgs/symmetrical_strip.jpg" ALT="Symmetrical Strip Transmission Line"><p>
+This has an exact analytical solution, dependent on the ratio of the 
+width of the inner conductor w, to the distance between the two outer 
+conductors H.  This assumes that the outer conductors extend to plus 
+and minus infinity and the inner conductor is infinitely thin. This 
+structure has the advantage of requiring no curves, so can be 
+represented accurately with the square grid used in <CODE>atlc.</CODE> </p>
+<p>
+However, its impossible to have an inner conductor that is less than 1 pixel 
+high and it is impossible to make the dimension W infinitely wide as it 
+was take an infinite amount of disk space, RAM and CPU time. However, if 
+the width W is made at least 4xH+w, then making it any larger does not 
+seem to have much affect on the result.</p>
+The <code>-i</code> option to <CODE>create_bmp_for_symmetrical_stripline</code>,
+forces the width
+W to be equal to 4 times the internal height plus the inner conductor's 
+width w (unless the user specified a larger value of W). Hence, when
+the <code>-i</code> option is used, a valid test of <code>atlc</code>'s 
+accuracy can be made<br>
+Without the <code>-i</code> option, you can made the width W and height 
+H any value
+you want above &gt;=5 pixels, although H must be odd, for the inner conductor
+to fit equally between the two outer confuctors. As always, the bitmaps created  
+are 10 pixels higher and 10 pixels wider, to enforce a green metallic boundary that is cleraly visable. 
+<br>
+<br>
+<CODE>create_bmp_for_symmetrical_stripline -vv -i 0 201 290 50-201.bmp<br>
+<br>
+For this to be a valid test of atlc, the width should be<br>
+infinite. Since you used the -i option (indicationg you<br>
+want the width W to effectively infinite, W must exceed w + 4xH.<br>
+Therefore W has been is set to 1134<br>
+w=290 H=201 w/H=1.442786 xo=23.7538<br>
+Zo is theoretically 49.989477 Ohms (assuming W is infinite)<br>
+<br>
+</code>
+<p>
+This structure, which has a w/H value of 1.442786, has a theoretical impedance close to 50 Ohms (49.989477 to be precise). Version 4.6.0 of <code>atlc</code> calculates this to be 49.899 Ohms, an error of -0.181%, when using a  grid 1134x201.</p>
+
+<TABLE border align="left">
+<TR>
+<TD><STRONG>Filename</STRONG></TD>
+<TD><STRONG>W</STRONG></TD>
+<TD><STRONG>H</STRONG></TD>
+<TD><STRONG>w</STRONG></TD>
+<TD><STRONG>w/H</STRONG></TD>
+<TD><STRONG>Zo<sup>exact</sup></STRONG></TD>
+<TD><STRONG>Zo<sup>atlc</sup></STRONG></TD>
+<TD><STRONG>Error</STRONG></TD>
+<TD><STRONG>Time</STRONG></TD>
+</TR>
+
+<TR>
+<TD>25ohm-201h.bmp</TD>
+<TD>1512</TD>
+<TD>201</TD>
+<TD>668</TD>
+<TD>3.3234</TD>
+<TD>25.018</TD>
+<TD>24.932</TD>
+<TD>-0.344 %</TD>
+<TD>0h:00m:46s</TD>
+</TR>
+
+<TR>
+<TD>25ohm-401h.bmp</TD>
+<TD>2978</TD>
+<TD>401</TD>
+<TD>1334</TD>
+<TD>3.3267</TD>
+<TD>24.996</TD>
+<TD>24.940</TD>
+<TD>-0.224%</TD>
+<TD>0h:08m:52s</TD>
+</TR>
+
+<TR>
+<TD>25ohm-801h.bmp</TD>
+<TD>6000</TD>
+<TD>801</TD>
+<TD>2664</TD>
+<TD>3.3267</TD>
+<TD>25.001</TD>
+<TD>24.935</TD>
+<TD>-0.264%</TD>
+<TD>1h:49m:46s</TD>
+</TR>
+
+<TR>
+<td>50ohm-201h.bmp</td>
+<TD>1134</TD>
+<TD>201</TD>
+<TD>290</TD>
+<TD>1.42786</TD>
+<TD>49.989</TD>
+<TD>49.899</TD>
+<TD>-0.180%</TD>
+<TD>0h:00m:37s</TD>
+</TR>
+
+<TR>
+<TD>50ohm-401h.bmp</TD>
+<TD>2222</TD>
+<TD>401</TD>
+<TD>578</TD>
+<TD>1.4419</TD>
+<TD>50.026</TD>
+<TD>49.944</TD>
+<TD>-0.164%</TD>
+<TD>0h:07m:16s</TD>
+</TR>
+
+<TR>
+<TD>50ohm-801h.bmp</TD>
+<TD>4399</TD>
+<TD>801</TD>
+<TD>1155</TD>
+<TD>1.4419</TD>
+<TD>50.012</TD>
+<TD>49.878</TD>
+<TD>-0.268%</TD>
+<TD>1h:46m:31</TD>
+</TR>
+
+
+<TR>
+<TD>100ohm-201h.bmp</TD>
+<TD>945</TD>
+<TD>201</TD>
+<TD>101</TD>
+<TD>0.5025</TD>
+<TD>100.161</TD>
+<TD>100.319</TD>
+<TD>+0.158%</TD>
+<TD>0h:00m:34s</TD>
+
+</TR>
+
+<TR>
+<TD>100ohm-401h.bmp</TD>
+<TD>1846</TD>
+<TD>401</TD>
+<TD>202</TD>
+<TD>0.5037</TD>
+<TD>100.02</TD>
+<TD>99.998</TD>
+<TD>-0.022%</TD>
+<TD>0h:06m:42s</TD>
+
+</TR>
+<TR>
+<TD>100ohm-801h.bmp</TD>
+<TD>3647</TD>
+<TD>801</TD>
+<TD>403</TD>
+<TD>0.5037</TD>
+<TD>100.09</TD>
+<TD>99.857</TD>
+<TD>-0.233%</TD>
+<TD>1h:29m:17s</TD>
+
+</TR>
+
+<TR>
+<TD>200ohm-201h.bmp</TD>
+<TD>862</TD>
+<TD>201</TD>
+<TD>18</TD>
+<TD>0.0896</TD>
+<TD>200.81</TD>
+<TD>204.210</TD>
+<TD>+1.693%</TD>
+<TD>0h:0m:31s</TD>
+
+</TR>
+<TR>
+<TD>200ohm-401h.bmp</TD>
+<TD>1680</TD>
+<TD>401</TD>
+<TD>36</TD>
+<TD>0.08978</TD>
+<TD>200.669</TD>
+<TD>201.844</TD>
+<TD>+0.586%</TD>
+<TD>0h:06m:22s</TD>
+</TR>
+
+<TR>
+<TD>200ohm-801h</TD>
+<TD>3317</TD>
+<TD>801</TD>
+<TD>73</TD>
+<TD>0.09114</TD>
+<TD>199.771</TD>
+<TD>199.734</TD>
+<TD>-0.019%</TD>
+<TD>1h:23m:08s</TD>
+</TR>
+
+<TR>
+<TD>400ohm-1551h</TD>
+<TD>6439</TD>
+<TD>1551</TD>
+<TD>5</TD>
+<TD>0.00322</TD>
+<TD>400.040</TD>
+<TD>417.700</TD>
+<TD>+4.415%</TD>
+<TD>12h:20m:50s</TD>
+</TR>
+
+
+<TR>
+<TD>400ohm-76610h</TD>
+<TD>31109</TD>
+<TD>7750</TD>
+<TD>25</TD>
+<TD>0.00323</TD>
+<TD>400.085</TD>
+<TD></TD>
+<TD>%</TD>
+<TD></TD>
+</TR>
+
+</TABLE>
+<p><br clear="all">
+Notes:
+<br>
+<OL>
+<li>These results were produced with version 4.6.0 of atlc. Results from other versions will probably differ, as efforts are made to further improve atlc.</li>
+<LI>For the same sepparation between the two outer conductors h, the width of the inner conductor w decreases as the impedance of the line is increased. When this width w is too small, accuracy suffers. In order to get reasonable accuracy it is essential to use sufficient pixels for the width of the conductor w.</LI>
+<LI>Run times are given when compiled single-threaded, with <code>gcc-3.2.2</code> on a Sun Ultra 80 workstation with 4x450 MHz CPUs and 4 GB of RAM. Compiler options of <code>-O2 -g</code> were used.</LI> <LI>Only 1 CPU in the Ultra 80 would have been used, since <code>atlc</code>
+was compiled single-threaded.</LI>
+<LI>
+The -s and -S options were given to <code>atlc</code> so that it did
+not create bitmap files. Without these options, run times would be a
+little longer, due to the time to write the files to disk. </LI>
+<LI>Compiled as a multi-threaded application to use all 4 CPUs in a Sun
+Ultra 80, the run times reduce by a factor of approximately 3.5.</LI>
+<LI>The result for the first 400 Ohm transmission line analysed (400ohm-1551h.bmp) is very poor (3.5% error)
+since only 5 pixels could be used for the width of the inner conductor.
+The results from this test are not included when calculating the overall
+accuracy of atlc, since using only 5 pixels is not a fair test.
+An attempt at using 25 pixels for the inner conductor's width, where accuracy should
+have been better, created a 689 MB bitmap file, which could not be analysed, as
+the RAM in the computer (2 GB) was insufficient, although this might be tried later since the computer has since been upgraded.</LI>
+</OL>
+
+<H2><a name="section_2">Section 2</a>. Two-conductor Transmission Lines with a non-uniform dielectric</h2>
+Destermining altc's accurarcy with multiple-dielectrics is not easy, as there are few analytical methods. The only one known in dual dielectric coax. At a later date some comparisions will be made to commerical software if this is possible.
+
+
+
+
+
+
+
+<!-- Section 2.1 **** Comparision of atlc and a dual dielectric coaxial cable -->
+
+
+
+
+
+
+
+<H3>2.1 Comparision of atlc and a dual dielectric coaxial cable</H3>
+
+A coaxial cable with two concentric dielectrics like that below<br>
+<img src="jpgs/dual-dielectric-coax.jpg" ALT="dual dielectric coaxial line" align="left">
+
+<br clear="all">
+<p>has an exact analytical solution. The red is the inner conductor, the green forms the outer conductor. The light blue and orange regions are both dielectrics, neither of which are one of atlc's <a href="colours.html">predefined colours</a>, so the dielectric constant of both must be set by issuing the -d option to atlc. (The light blue in this image, is not to be confused with the light blue that is pre-defined for PTFE with a dielectric constant of 2.1).</p>
+<p>A small program called <code>dualcoax</code> can be used to compute the impedance of a dual coaxial cable. If the diameter of the inner conductor is 135, the inner dielectric 337, the internal diameter of the outer conductor is 401, the permittivity of the inner dielectric 2.0 and the outer dielectric 3.0, then:
+<br><br>
+<code>$ dualcoax 135 337 401 2.0 3.0</code>
+<br><br>
+will compute the impedance, which is 44.912 Ohms. 
+ <br clear="all">
+
+The following table shows the impedances for various values of permittivity of both the inner and outer dielectrics. Note that changing the relative permittivity of the outer conductor has little effect, as it is quite thin, whereas the outer dielectric is much thicker and so has more effect on the impedance. 
+<table border align="left">
+<tr>
+<td>Filename</td>
+<td>D1</td>
+<td>D2</td>
+<td>D3</td>
+<td><strong><font color="#fd8a11">Er<sub>inner</sub></font></strong></td>
+<td><strong><font color="#8b8dff">Er<sub>outer</sub></font></strong></td>
+<td>Zo(theory)</td>
+<td>Zo(atlc)</td>
+<td>Error</td>
+<td>Time</td>
+
+</tr>
+
+<tr>
+<td>dual-dielectric-coax.bmp</td>
+<td>156</td>
+<td>400</td>
+<td>500</td>
+<td>1.0</td>
+<td>1.0</td>
+<td>69.837</td>
+<td>69.848</td>
+<td>+0.017%</td>
+<td>0h:00m:59s</td>
+
+</tr>
+
+<tr>
+<td>dual-dielectric-coax.bmp</td>
+<td>156</td>
+<td>400</td>
+<td>500</td>
+<td>3.0</td>
+<td>1.0</td>
+<td>47.420</td>
+<td>46.681</td>
+<td>-1.559%</td>
+<td>0h:04m:35s</td>
+</tr>
+
+<tr>
+<td>dual-dielectric-coax.bmp</td>
+<td>156</td>
+<td>400</td>
+<td>500</td>
+<td>10.0</td>
+<td>1.0</td>
+<td>36.451</td>
+<td>35.839</td>
+<td>-1.679 %</td>
+<td>0h:10m:17s</td>
+</tr>
+
+<tr>
+<td>dual-dielectric-coax.bmp</td>
+<td>156</td>
+<td>400</td>
+<td>500</td>
+<td>30.0</td>
+<td>1.0</td>
+<td>32.647</td>
+<td>32.314</td>
+<td>-1.020%</td>
+<td>0h:17m:53s</td>
+
+</tr>
+
+<tr>
+<td>dual-dielectric-coax.bmp</td>
+<td>156</td>
+<td>400</td>
+<td>500</td>
+<td>1000000.0</td>
+<td>1.0</td>
+<td>30.568</td>
+<td>30.330</td>
+<td>-0.779 %</td>
+<td>1h:18m:17s</td>
+</tr>
+<tr>
+<td>dual-dielectric-coax.bmp</td>
+<td>156</td>
+<td>400</td>
+<td>500</td>
+<td>1.0</td>
+<td>2.0</td>
+<td>66.408</td>
+<td>65.974</td>
+<td>+0.658%</td>
+<td>0h:02m:01s</td>
+</tr>
+<tr>
+<td>dual-dielectric-coax.bmp</td>
+<td>156</td>
+<td>400</td>
+<td>500</td>
+<td>1.0</td>
+<td>1000000.0</td>
+<td>62.792</td>
+<td>62.727</td>
+<td>-0.014%</td>
+<td>0h:10m:02s</td>
+</tr>
+
+<tr>
+<td>dual-dielectric-coax.bmp</td>
+<td>156</td>
+<td>400</td>
+<td>500</td>
+<td>2.5</td>
+<td>3.5</td>
+<td>42.943</td>
+<td>42.858</td>
+<td>-0.198 %</td>
+<td>0h:01m:55s</td>
+</tr>
+
+
+</table>
+<br clear="all">
+Notes:
+<OL>
+<LI>These results were produced with version 4.6.0 of <code>atlc</code>.</LI>
+<LI>
+To compute these results, one must run atlc with the -d option to define what the relative dielectric constant for each colour, as described in the section on <a href="colours.html">producing suitable bitmaps</a>. The light blue colour has a hex representation of 0x8b8dff and the orange is 0xfd8a11. So for the last entry in the table, one would run<br><br>
+<code>$ atlc -d fd8a11=2.5 -d 8b8dff=3.5 dual-dielectric-coax.bmp</code>
+</LI>
+</OL>
+<br clear="all">
+Ckearly the accuracy of atlc with multiple dielectrics is lower than that with a single dielectric, where typical errors are around 0.1%. This is believed to be due to the fact the equations used when there are multiple dielectrics are not precise and in a later version it is hoped to refine the equations, so accuracy improves. 
+
+
+
+
+ <H2><a name="Section_3_Accuracy_coupler">Section 3. Accuracy of <CODE>atlc</CODE> with coupled lines</a></H2>
+Testing the accuracy of <CODE>atlc</CODE> with coupled lines is more difficult that with single isolated lines, since there is to my knowledge only one structure for which exact analytical results exist. For two infinitely thin conductors halfway between two infinitely wide groundplanes (see below)
+<p>
+<img src="jpgs/coupler.jpg" ALT="coupled lines" width="400"><p>
+the odd and even mode impedances can be calculated analytically. If the spacing between the two groundplanes is H, the width of the conductors w, the spacing between the conductors s, and the permittivity of the medium Er, 
+<pre>
+----------^--------------------------------------------------------------
+          |                                               
+          |                &lt;---w---&gt;&lt;-----s----&gt;&lt;---w--&gt;
+          H                ---------            --------         
+          |       Er                               
+          |                               
+----------v--------------------------------------------------------------
+</pre>
+then, according to the book by Matthaei, Young and Jones called <EM>Microwave Filters, Impedance Matching Networks and Coupling Structures</EM>,  Artech House, Dedham, MA., 1980. the impedances are given by  <p>
+Zeven=(30*pi/sqrt(er))*(K(ke')/K(ke))<br>
+Zodd=(30*pi/sqrt(er))*(K(ko')/K(ko))<p>
+
+K(kx)=complete elliptic integral of the first kind. <p>
+
+ke=(tanh((pi/2)*(w/H)))*tanh((pi/2)*(w+s)/H)<br>
+ko=(tanh((pi/2)*(w/H)))*coth((pi/2)*(w+s)/H)<p>
+
+ke'=sqrt(1-(ke^2))<br>
+ko'=sqrt(1-(ko^2))<p>
+
+
+Again, I suspect 30 is just an approximation, like 60 is used in the impedance for coax, and so the values should be:<br><br>
+
+Zeven=(29.97924580*pi/sqrt(er))*(K(ke')/K(ke))<br>
+Zodd=(29.97924580*pi/sqrt(er))*(K(ko')/K(ko))<p>
+<br><br>
+
+
+
+I'm very grateful to Paul Gili AA1LL / KB1CZP  <a href="mailto:aa1ll@email.com">aa1l@email.com</a>  for providing me with these equations, references and nomographs. 
+<p>
+A programme <CODE>create_bmp_for_stripline_coupler</CODE> was written to automatically generate bitmaps given the height H between the groundplanes, the conductor widths w and spacing s. Ideally this needs simulating from -infinity to +infinity, but that is not practical. It was assumed that if the complete structure width W was equal to 2*w+s+8*H that would be adequate (this seemed <EM>about right</EM>, but I've no proof it is optimal). As well as producing a bitmap, <CODE>create_bmp_for_stripline_coupler</CODE>also calculates the theoretical values of impedance. </p>
+The above were created using the following set of commands
+<pre>
+<code>
+$ create_bmp_for_stripline_coupler -v 1 1 1 1 coupler1.bmp
+$ create_bmp_for_stripline_coupler -v 1.991 1 1 1 coupler2.bmp
+$ create_bmp_for_stripline_coupler -v 3 1 1 1 coupler3.bmp
+$ create_bmp_for_stripline_coupler -v 5 1 1 1 coupler4.bmp
+$ create_bmp_for_stripline_coupler -v 1 1 0.5 1 coupler5.bmp
+$ create_bmp_for_stripline_coupler -v 1 1 0.099 1 coupler6.bmp
+$ create_bmp_for_stripline_coupler -v 0.25 1.19 1.34 2.2 coupler7.bmp
+</code>
+</pre>
+
+<TABLE border align="left">
+<TR>
+<TD><STRONG>Filename</STRONG></TD>
+<TD><STRONG>H</STRONG></TD>
+<TD><STRONG>w</STRONG></TD>
+<TD><STRONG>s</STRONG></TD>
+<TD><STRONG>Er</STRONG></TD>
+<TD><STRONG>Zodd<sup>theory</sup></STRONG></TD>
+<TD><STRONG>Zodd<sup>atlc</sup></STRONG></TD>
+<TD><STRONG>Error<sup>odd</sup></STRONG></TD>
+<TD><STRONG>Zeven<sup>theory</sup></STRONG></TD>
+<TD><STRONG>Zeven<sup>atlc</sup></STRONG></TD>
+<TD><STRONG>Error<sup>even</sup></STRONG></TD>
+</TR>
+<TR>
+<TD>coupler1.bmp</TD>
+
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>64.723</TD>
+<TD>64.308</TD>
+<TD>-0.641%</TD>
+<TD>65.969</TD>
+<TD>65.540</TD>
+<TD>-0.300%</TD>
+</TR>
+<TR>
+<TD>coupler2.bmp</TD>
+<TD>1.991</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>93.056</TD>
+<TD>92.711</TD>
+<TD>-0.371%</TD>
+<TD>106.830</TD>
+<TD>106.437</TD>
+<TD>-0.368%</TD>
+</TR>
+<TR>
+<TD>coupler3.bmp</TD>
+<TD>3.0</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>105.409</TD>
+<TD>105.072</TD>
+<TD>-0.320%</TD>
+<TD>139.670</TD>
+<TD>139.091</TD>
+<TD>-0.415%</TD>
+</TR>
+<TR>
+<TD>coupler4.bmp</TD>
+<TD>5.0</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>114.237</TD>
+<TD>114.217</TD>
+<TD>-0.018%</TD>
+<TD>189.135</TD>
+<TD>188.629</TD>
+<TD>-0.268%</TD>
+</TR>
+<TR>
+<TD>coupler5.bmp</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>0.5</TD>
+<TD>1.0</TD>
+<TD>62.133</TD>
+<TD>61.887</TD>
+<TD>-0.396%</TD>
+<TD>68.215</TD>
+<TD>67.941</TD>
+<TD>-0.402%</TD>
+</TR>
+<TR>
+<TD>coupler6.bmp</TD>
+<TD>1.0</TD>
+<TD>1.0</TD>
+<TD>.099</TD>
+<TD>1.0</TD>
+<TD>50.614</TD>
+<TD>50.546</TD>
+<TD>-0.134%</TD>
+<TD>74.377</TD>
+<TD>73.883</TD>
+<TD>-0.664%</TD>
+</TR>
+<TR>
+<TD>coupler7.bmp</TD>
+<TD>0.25</TD>
+<TD>1.19</TD>
+<TD>1.34</TD>
+<TD>2.2</TD>
+<TD>12.208</TD>
+<TD>12.062</TD>
+<TD>-1.196%</TD>
+<TD>12.208</TD>
+<TD>12.062</TD>
+<TD>-1.196%</TD>
+</TR>
+</TABLE>
+
+<p><br clear="all">
+Note:
+<ol>
+<LI>The data was collected with version 4.6.0 of atlc. As always, the data may change with later versions of atlc, as the code is further improved. </LI>
+<LI>The theoretical impedance quoted are for the dimensions in the table. The actual bitmap produced will frequently not be the same as it's impossible to represent perfectly an arbitrary grid on a grid with finite resolution. The program <code>create_bmp_for_stripline_coupler</code> also computes the theoretical valus for the actual grid generated, but these have not been used.</LI>
+<LI>There seems to be some systematic error for this coupler, as the impedances determined by atlc are always below the theoretical values. The source of this error will be investigated. It is clear that the error decreases as the height h is increased.</LI>
+<LI>Run times quoted are for a Sun Ultra 80 with 4 x 450 MHz and 4 Gb RAM, running Solaris 9. The compiler was gcc-3.2.2 with compiler options <code>-O2 -g</code>.</LI>
+</ol>
+
+<H2>Section 4. Conclusions about the accuracy of atlc</H2>
+<p>Looking at the above data it is clear that on some structures (such as a standard coaxial cable or an eccentric cable, the accuracy of atlc is excellent. Of the 21 tests for these structures, 18 had errors of below 0.1% and the other three had errors below 0.25%. Each structure is round, with a minimum diamater of 25 pixels. The outside edge has around Pi*25=79 pixels to reprsent it, so errors due to quantising the electric field are quite small. </p>
+<p>Of the three results for coaxial and eccentric cables that show errors over 0.1%, the reasons are not had to understand. File <a href="accuracy.html#coax-500-25.bmp">coax-500-25.bmp</a> has the smallest number of pixels for the centre conductor in any of the standard coaxial cables. With the smallest number of pixels (a diameter of 25 and a circumference of 78 pixels), the errors can be expected to be highest. It is likely the errors could be reduced by making conductors larger, but there is no point, as the error (just 0.244%) are negligable. 
+
+
+
+
+You can't expect to accurately model any structure where one of the critical dimensions is represented by too few pixels. </p>
+
+<p>Clearly if any dimention needs to be reprsented by 5.4 pizels, the nearest number is 5 pixels, so immediately an error of 8% has been introduced. But since the electric field (which varies continuously) is only computed at 5 places, the true varition can't be known accurately. </p>
+
+<p> <strong>As a rule of thumb, try to keep any critital dimension to at least 25 pixels. </strong></p>
+
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+
+<br><br>
+atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A>
+<br>
+<BR>
+<BR>
+
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A><a href="http://validator.w3.org/check/referer"><img border="0"
+src="valid-html40.gif"
+alt="Valid HTML 4.01!" height="31" width="88"></a>
+<a href="http://bluefish.openoffice.nl/"><img SRC="jpgs/bluefish.jpg" WIDTH="88" HEIGHT="31" ALT="Bluefish"></a>
+
+
+<p>The following is a trap for smammers, so they can gather loads of ficticious email address, so don't click<a href="http://homepage.ntlworld.com/drkirkby/list1.html"> anywhere</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"> o</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html">n</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"> this</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"> line</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"> th</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"> anks.</a>
+</body>
+</html>
diff --git a/docs/html-docs/an_example_of_using_design_coupler.html b/docs/html-docs/an_example_of_using_design_coupler.html
new file mode 100644 (file)
index 0000000..0db0d6a
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="An Example of using design_coupler to design a Directional Coupler ">
+<META name="KEYWORDS" content="directional directional coupler impedance odd even mode design_coupler design coupler">
+<TITLE>atlc </TITLE>
+</HEAD>
+<BODY>
+<H1>An Example of using <CODE>design_coupler </CODE>to design a Directional Coupler</H1>
+
+Here are a examples of how to use 'design_coupler' In the examples, the % sign is used in front of anything you must type which is what you will probably see when using the csh or tcsh as a shell. It would probably be a $ sign if using the sh or bash shell. 
+
+To find the odd and even mode impedances and frequency response of a 50 Ohm coupler, covering 130 to 170 MHz, with a coupling coefficient of 30 dB:
+
+% design_coupler 30 130 170
+
+Note the frequency response is symmetrical about the centre frequency at 0.192 dB below that wanted. You may wish to redesign this for a coupling coefficient of  about 29.9 dB, so the maximum deviation from the ideal 30.0 dB never exceeds 0.1 dB Note the length suggested is 0.5 m (nearly 20") is a quarter wave at the centre frequency of 150 MHz. You might find this a bit too long, so let's specify a length of 0.25 m.
+
+% design_coupler -L 0.25 30 130 170
+
+What you may notice is that while the coupling to the coupled port is exactly 30 dB below the input power at the centre frequency (150 MHz) it is  no longer symmetrical about the centre frequency. Also, deviations from the ideal 30 dB are now much larger, with a maximum error of 1.012 dB Unlike the case when the length is the default quarter wave, there is not much you can do about this, since the deviations occur in both directions.
+
+Now assume you are reasonably happy with the response when the length is 250 mm but would like to see the response at every 2.5 MHz. This can be done using the -s option to design_coupler.
+
+% design_coupler -L 0.25 -s 2.5 30 130 170
+
+Assuming the performance is acceptable, the dimensions of the coupler can be determined by adding the -d option. This will design a coupler that must look like the structure below. The two inner conductors, which are spaced equally between the top and bottom edges of the outer conductor, must be very thin. These are placed along the length of a box of width W, height H and of a length L determined by the user, which in this case is 250 mm.
+<code>
+|-----------^------------------------------------------------------------------|
+|           |                                                                  |
+|           |              <---w---><-----s----><---w-->                       |
+|           H              ---------            --------                       |
+|           |                                                                  |
+|           |   Er=1.0 (air)                                                   |
+------------v------------------------------------------------------------------
+<-----------------------------------------W----------------------------------->
+</code>
+
+The program reports: H = 1.0, ; w = 1.44 ; s = 0.44 The height of the box H must be small compared to the length L, (perhaps no more than 7% of the length), or 17.5 mm in this case, with a length of 250 mm, otherwise fringing effects will be significant. The width of the structure W should be as large as possible. The program suggests making this 5*H+2*w+s. The 7% and 5*H+2*w+s are educated guesses, rather than exact figures. There is no problem in making the width  larger than 5*H+2*w+s. The length L must be kept at 250 mm. The RATIO of the dimensions H, w and s (but not L or W must be kept constant. W just needs to be sufficiently large - it is uncritical.  
+If you happened to have some 15 mm square brass available, then using that  or the side-walls would require that H becomes 15*1.0 = 15 mm,
+w = 15*1.44 = 21.6 mm  and s = 15*0.44 = 6.6 mm
+
+There is no need to compute the above scaling with a calculator, as using The -H option allows one to specify the height H. The program then reports the exact dimensions for the length L, height H, w, s and suggests a minimum width for W.
+
+In summary we have:
+<CODE>
+                   30 dB coupler +1.02 dB / -0.78 dB for 130 to 170 MHz
+                   Length L = 250 mm, height H = 15 mm, stripline spacing s
+                   = 6.6 mm, stripline width w = 21.6 mm, width W >= 124 mm
+</CODE>            
+       
+By default, design_coupler prints a lot of information to the screen. This can be reduced by the -q option or reduced to only one line with -Q Other options include -Z to change the impedance from the default 50 Ohms and -C to see the fully copyright, Licensing and distribution information
diff --git a/docs/html-docs/atlc.1.html b/docs/html-docs/atlc.1.html
new file mode 100644 (file)
index 0000000..3261d9a
--- /dev/null
@@ -0,0 +1,290 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>atlc</B> - an Arbitrary Transmission Line Calculator
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>atlc</B>  <B>[-C]</B> <B>[-s]</B> <B>[-S]</B> <B>[-v]</B> <B>[-c</B>  <B>cutoff]</B>  <B>[-d</B>  <B>rrggbb=Er]</B>  <B>[-i</B>
+     <B>factor]</B>  <B>[-i</B>  <B>prefix]</B> <B>[-t</B> <B>threads]</B> <B>[-r</B> <B>rate_multiplier]</B> <B>bit-</B>
+     <B>mapfile</B>
+
+
+</PRE>
+<H2>WARNING</H2><PRE>
+     This man page is not a complete set of documentation  -  the
+     complexity  of the atlc project makes man pages not an ideal
+     way to document it, although out of completeness, man  pages
+     are produced. The best documentation that was current at the
+     time the version was produced should be found on  your  hard
+     drive, usually at
+     /usr/local/share/atlc/docs/html-docs/index.html
+     although it might be elsewhere if your system  administrator
+     chose  to  install  the package elsewhere. Sometimes, errors
+     are  corrected  in   the   documentation   and   placed   at
+     http://atlc.sourceforge.net/ before a new release of atlc is
+     released.  Please, if you notice a problem with the documen-
+     tation - even spelling errors and typos, please let me know.
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     <B>atlc</B> is a finite difference program that is used  to  calcu-
+     late  the properties of a two-conductor electrical transmis-
+     sion line of arbitrary cross section. It  is  used  whenever
+     there are no analytical formula known, yet you still require
+     an answer. It can calculate:
+        The impedance Zo  (in Ohms)
+        The capacitance per unit length (pF/m)
+        The inductance per unit length (nF/m)
+        The velocity of propagation v (m/s)
+        The velocity factor, v/c, which is dimensionless.
+
+     A bitmap file (usually with the extension .bmp or  .BMP)  is
+     drawn  in  a  graphics  package  such as <B>Gimp</B> available from
+     http://www.gimp.org. The bitmap file <B>must</B> be saved as a  24-
+     bit  (16,777,216 colour) uncompqessed file. The colours used
+     in the bitmap indicate whether the  region  is  a  conductor
+     (pure  red,  pure  green or pure blue) or a dielectric (any-
+     thing else). Pure white is assumed to be  a  vacuum  dielec-
+     tric, but other colours have different meanings. See COLOURS
+     below for precise definitions of the colours.
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+     <B>-C</B>
+     print copyright, licensing and copying information.
+     <B>-s</B>
+     Skip writing the Ex, Ey, E, V, U and Er bitmap (.bmp)  files
+     <B>-S</B>
+     Skip writing the Ex, Ey, E, V, U and Er binary (.bin) files
+     <B>-v</B>
+     makes the output more verbose/talkative.
+     <B>-c</B> <B>cutoff</B>
+     Sets the convergence criteria of the finite difference  pro-
+     gram. The default is 0.0001, meaning two separate iterations
+     must be within 01% for the program to stop  iterating.  Set-
+     ting  to  a smaller positive number gives more accuracy, but
+     takes longer.
+
+     <B>-d</B> <B>rrggbb=Er</B>
+     is used to indicate the colour 0xrrggbb  in  the  bitmap  is
+     used  to represent a material with permittivity Er. See also
+     COLOURS below
+
+     <B>-i</B> <B>factor</B>
+     is used to lighten or darken the .bmp electric field profile
+     images  produced  by  atlc.  Set  factor  &gt;  2 to lighten or
+     between 1 and 2 to darken.
+
+     <B>-r</B> <B>ratemultiplier</B>
+     Sets the parameter 'r' used internally  when  computing  the
+     voltage  at  a point w,h.  The default, which is (as of ver-
+     sion 3.0.0) 1.95, results in what is believed to be  optimal
+     results.  Setting to 1.0 will avoid the use of the fast con-
+     vergence method, which is generally not a good idea.
+
+     <B>-p</B> <B>prefix</B>
+     Adds 'prefix', which is usually a directory name,  in  front
+     of the output files.
+
+
+</PRE>
+<H2>COLOURS</H2><PRE>
+     The 24-bitmaps that  atlc  uses  have  8  bits  assigned  to
+     represent  the  amount  of  red, 8 for blue and 8 for green.
+     Hence there are 256 levels of red, green and blue, making  a
+     total of 256*256*256=16777216 colours. Every one of the pos-
+     sible 16777216 colours can be defined precisely by the stat-
+     ing the exact amount of red, green and blue, as in:
+
+     red         = 255,000,000 or 0xff0000
+     green       = 000,255,000 or 0x00ff00
+     blue        = 000,000,255 or 0x0000ff
+     black       = 000,000,000 or 0x000000
+     white       = 255,255,255 or 0xffffff
+     Brown       = 255,000,255 or 0xff00ff
+     gray        = 142,142,142 or 0x8e8e8e
+
+     Some colours, such as pink, turquiose,  sandy,  brown,  gray
+     etc  may mean slightly different things to different people.
+     This is not so with atlc, as the program expects the colours
+     below  to  be exactly defined as given. Whether you feel the
+     colour is sandy or yellow is up to you, but if you use it in
+     your  bitmap,  then it either needs to be a colour reconised
+     by atlc, <B>or</B> you <B>must</B> define it with a  command  line  option
+     (see OPTIONS).
+     red    = 255,000,000 or 0xFF0000 is the live conductor.
+     green  = 000,255,000 or 0x00FF00 is the grounded conductor.
+     blue   = 000,000,255 or 0x0000FF is the negative conductor
+
+     All bitmaps <B>must</B> have the live (red)  and  grounded  (green)
+     conductor. The blue conductor is used to indicate a negative
+     conductor, is needed when the program  is  used  to  analyse
+     directional couplers.
+
+     The following dielectrics are reconised by atlc<B>:</B>
+
+     white     255,255,255 or 0xFFFFFF as Er=1.0    (vacuum)
+     pink      255,202,202 or 0xFFCACA as Er=1.0006 (air)
+     L. blue   130,052,255 or 0x8235EF as Er=2.1    (PTFE)
+     Mid gray  142,242,142 or 0x8E8E8E as Er=2.2    (duroid 5880)
+     mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+     yellow    255,255,000 or 0xFFFF00 as Er=2.5    (polystyrene)
+     sandy     239,203,027 or 0xEFCC1A as Er=3.3    (PVC)
+     brown     188,127,096 or 0xBC7F60 as Er=3.335  (epoxy resin)
+     L. yellow 223,247,136 or 0xDFF788 as Er=3.7    (FR4 PCB)
+     Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8    (glass PCB)
+     Dark gray 142,142,142 or 0x696969 as Er=6.15   (duroid 6006)
+     L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+     D. orange 213,160,067 or 0xD5A04D as  Er=100.0  (mainly  for
+     test purposes)
+
+
+</PRE>
+<H2>EXAMPLES</H2><PRE>
+     Here are a few examples of the use of atlc. Again,  see  the
+     html documentation in atlc-X.Y.Z\e9ocsl-docs, the documentation
+     on         your         system         (normally          at
+     /usr/local/share/atlc/docs/html-docs/index.html  ) or online
+     at http://atlc.sourceforge.net for examples.
+
+     <B>ex_1</B> <B>%</B> <B>atlc</B> <B>coax2.bmp</B>
+     This is a simple example (ex_1), in which the geometry of  a
+     transmission  line is defined in coax2.bmp. In this example,
+     only the predefined dielectrics (Er =1.0, 1.0006, 2.1,  2.2,
+     2.33,  2.5,  3.3,  3.335, 3.7, 4.8, 6.15 or 10.2) could have
+     been used in the bitmap, which would have been done with one
+     of  13  different colours. white (0xFFFFFF) for Er=1.0, pink
+     (0xFFCACA) for 1.0006 etc.   No  other  colour  (dielectric)
+     could have been used, since it was not specified with the -d
+     option.
+
+     <B>ex_2</B> <B>%</B> <B>atlc</B> <B>-d</B> <B>f9e77d=2.43</B> <B>somefile.bmp</B>
+     In ex_2, a dielectric with Er=2.43 was wanted. A colour with
+     the  RGB  values  of  0xF9E7&amp;d was used. The -d option tells
+     atlc what Er this colour refers to.
+
+     <B>ex_3</B> <B>%</B> <B>atlc</B> <B>-v</B> <B>coax2.bmp</B>
+     In ex_3, atlc has been instructed to print  the  results  of
+     intermediate  calculations  to  stdout.   Normally, only the
+     final result is printed. Using -vv even more information may
+     be produced, but this is really of only use to the developer
+     of the project.
+
+
+</PRE>
+<H2>FILES</H2><PRE>
+     bitmapfile.bmp
+        Original bitmap file. Must be 24-bit colour uncompressed.
+     bitmapfile.Ex.bmp
+        X-component of E-field as a bitmap. Red=+dV/dx,  blue  =-
+     dV/dx
+     bitmapfile.Ey.bmp
+        y-component of E-field as a bitmap. Red=+y, blue =-y
+     bitmapfile.E.bmp
+        E-field, as E=sqrt(Ex^2+Ey^2).
+     bitmapfile.V.bin
+        Voltage as a bitmap, red= positive, blue =negative.
+     bitmapfile.Er.bin
+        Bitmap showing the permittivity as a  grayscale.  Lighter
+     is a higher
+        permittivity.
+     bitmapfile.U.bmp
+        Energy.
+
+     In addition to the bitmaps, the data is also saved in binary
+     files.
+
+     All the saved binary files (.bin's) are saved  as  a  double
+     precision number for each of the pixels. The first double is
+     the top left, the last the bottom  right.  If  the  original
+     image  has width W and height H, the saved binary files will
+     be W-1 by H-1.
+
+     All the saved bitmap files  are  24-bit  uncompressed,  just
+     like the input files.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>                       <B>create_bmp_for_circ_in_circ(1)</B>
+     <B>create_bmp_for_circ_in_rect(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_rect_in_rect(1)</B>
+     <B>create_bmp_for_stripline_coupler(1)</B>
+     <B>create_bmp_for_symmetrical_stripline(1)</B>    <B>design_coupler(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B> <B>readbin(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/banner.html b/docs/html-docs/banner.html
new file mode 100644 (file)
index 0000000..2c5bf4e
--- /dev/null
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
+<HTML>
+<HEAD>
+<BASE TARGET = "RBOTTOM">
+<TITLE>Arbitrary Transmission Line Calculator</TITLE>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="GENERATOR" content="vi and bluefish">
+<meta name="KEYWORDS" content="atlc, impedance, transmission lines, tranmission line, lines, finite, difference, calculator">
+<meta name="DESCRIPTION" content="atlc - Arbitrary Transmission Line Calculator">
+</HEAD>
+<BODY>
+
+
+<TABLE BORDER="15" WIDTH="100%" BGCOLOR="yellow" HEIGHT="100">
+<TR>
+<TD><a href="index2.html">Home</A></TD>
+<TD><a href="NEWS.html">News</A></TD>
+<TD><a href="tutorial.html">Tutorial</A></TD>
+<TD><a href="examples.html">Examples</a></TD>
+<TD><a href="multi-processing.html">Multi-processing</A></TD>
+<TD><a href="installing.html">Installing</a></TD>
+<TD><a href="help.html">How you can help</A></TD>
+<TD><a href="theory.html">Theory</A>
+<TD><a href="couplers.html">Couplers</A>
+<TD><a href="jpgs/home-email.jpg">Contact me</A></TD>
+</TR>
+<TR>
+<TD><a href="FAQ.html">FAQ</a></TD>
+
+<TD><a href="BUGS.html">Bugs</a></TD>
+<TD><a href="colours.html">Bitmaps</a></TD>
+<TD><a href="errors.html">Error Msgs</a></TD>
+<TD><a href="http://sourceforge.net/projects/atlc/">Downloads</a>
+<TD><a href="accuracy.html">Accuracy</a></TD>
+<TD><A href="generators.html">Bitmap generators</A></TD>
+<TD><a href="fileformat.html">Files</a></TD>
+<TD><A href="man-pages.html">Man pages</A>
+<TD><a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/atlc/sources">CVS tree</A></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/bmp.html b/docs/html-docs/bmp.html
new file mode 100644 (file)
index 0000000..e5f0bc5
--- /dev/null
@@ -0,0 +1,610 @@
+<html>
+
+<head>
+<TITLE>Bitmap Format.</TITLE>
+<meta http-equiv="content-type" content="text/html; charset=gb_2312-80">
+<meta name="generator" content="microsoft frontpage 3.0">
+<meta name="subject" content="windows bitmap file format specifications">
+<meta name="major version" content="1">
+<meta name="minor version" content="0">
+<meta name="template" content="c:\msoffice\templates\c3word60.dot">
+</head>
+
+<p align="center"><font face="book antiqua" size="6" color="#0000ff">bmp format</font></p>
+<div align="center"><center>
+
+<table border="0" width="88%">
+  <tr>
+    <td width="100%"><b><p align="justify"><font face="book antiqua" size="6">table of 
+    contents</font></p>
+    <font face="book antiqua" size="4"><p><a href="#_toc381201081">introduction</a> <br>
+    <a href="#_toc381201082">bitmap file format</a><br>
+    </font><font face="book antiqua" size="3"> 
+    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
+    href="#_toc381201083">general</a> <br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
+    href="#_toc381201084">bmp contents</a> <br>
+    </font><font face="book antiqua" size="4"><a href="#_toc381201085">field details </a><br>
+    </font><font face="book antiqua" size="3"> 
+    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
+    href="#_toc381201086">height field </a><br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
+    href="#_toc381201087">bits per pixel field</a> <br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
+    href="#_toc381201088">compression field</a> <br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
+    href="#_toc381201089">colors field</a> <br>
+    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
+    href="#_toc381201090">important colors field</a> </font><u><font face="book antiqua"
+    size="4">
+    </font></u><font face="book antiqua" size="6"><a name="_toc381201081"><p>introduction</a>
+    </font></b><font face="book antiqua" size="3"><p align="justify">this document describes 
+    the microsoft windows and ibm os/2 picture bitmap files, called bitmaps or bmp files. most 
+    of the descriptions of the bmp file concentrate on the microsoft windows bmp structures 
+    like </font><font face="courier new" size="3">bmpinfoheader</font><font
+    face="book antiqua" size="3"> and </font><font face="courier new" size="3">bmpcoreinfo</font><font
+    face="book antiqua" size="3"> , but only a few describe the file contents on byte level. 
+    this information is therefor only intended to be used in applications where direct reading 
+    and writing of a bmp file is required.
+    </font><b><font face="ÝðÞ\85" lang="zh-cn" size="6"><p align="justify"></font><font
+    face="book antiqua" size="6"><a name="_toc381201082">bitmap file format</a></p>
+    </font></b><font face="book antiqua" size="3"><p align="justify">the following chapters 
+    contain the detailed information on the contents of the bmp file. first more general 
+    information will be given regarding the byte order and file alignment. the second chapter 
+    will concentrate on the byte-level contents of a bmp file. the third chapter will 
+    elaborate on this chapter and explain some of the concepts - like compression - and/or 
+    values in detail.</p>
+    </font><b><font face="ÝðÞ\85" lang="zh-cn" size="5"><p></font><font face="book antiqua"
+    size="5"><a name="_toc381201083">general</a>
+    </font></b><font face="book antiqua" size="3"><p align="justify">the bmp file has been 
+    created by microsoft and ibm and is therefor very strictly bound to the architecture of 
+    the main hardware platform that both companies support: the ibm compatible pc. this means 
+    that all values stored in the bmp file are in the intel format, sometimes also called the 
+    little endian format because of the byte order that an intel processor uses internally to 
+    store values.</p>
+    <p align="justify">the bmp files are the way, windows stores bit mapped images. the bmp 
+    image data is bit packed but every line must end on a dword boundary - if that</font><font
+    face="ÝðÞ\85" lang="zh-cn" size="3">Æs</font><font size="3"> </font><font
+    face="book antiqua" size="3">not the case, it must be padded with zeroes. bmp files are 
+    stored bottom-up, that means that the first scan line is the bottom line. </p>
+    <p align="justify">the bmp format has four incarnations, two under windows (new and old) 
+    and two under os/2, all are described here.</p>
+    </font><b><font face="ÝðÞ\85" lang="zh-cn" size="5"><p></font><font face="book antiqua"
+    size="5"><a name="_toc381201084">bmp contents</a>
+    </font></b><font face="book antiqua" size="3"><p align="justify">the following table 
+    contains a description of the contents of the bmp file. for every field, the file offset, 
+    the length and the contents will be given. for a more detailed discussion, see the 
+    following chapters.</p>
+    </font><table border="1" cellspacing="2" bordercolor="#000000" cellpadding="7" width="657">
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
+        align="justify">offset</b></font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
+        align="justify">field</b></font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
+        align="justify">size</b></font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
+        align="justify">contents</b></font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0000h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">identifier</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">2 bytes</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">the 
+        characters identifying the bitmap. the following entries are possible:</p>
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">æB</font><font
+        face="book antiqua" size="3">m</font><font size="3">í¯ </font><font face="book antiqua"
+        size="3">- windows 3.1x, 95, nt, </font><font size="3">í¡</font><font face="book antiqua"
+        size="3">
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">æB</font><font
+        face="book antiqua" size="3">a</font><font size="3">í¯ </font><font face="book antiqua"
+        size="3">- os/2 bitmap array
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">æC</font><font
+        face="book antiqua" size="3">i</font><font size="3">í¯ </font><font face="book antiqua"
+        size="3">- os/2 color icon
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">æC</font><font
+        face="book antiqua" size="3">p</font><font size="3">í¯ </font><font face="book antiqua"
+        size="3">- os/2 color pointer
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">æI</font><font
+        face="book antiqua" size="3">c</font><font size="3">í¯ </font><font face="book antiqua"
+        size="3">- os/2 icon
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">æP</font><font
+        face="book antiqua" size="3">t</font><font size="3">í¯ </font><font face="book antiqua"
+        size="3">- os/2 pointer</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0002h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">file 
+        size</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">complete 
+        file size in bytes.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0006h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">reserved</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">reserved 
+        for later use.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">000ah</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">bitmap 
+        data offset</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">offset 
+        from beginning of file to the beginning of the bitmap data.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">000eh</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">bitmap 
+        header size</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">length 
+        of the bitmap info header used to describe the bitmap colors, compression, </font><font
+        size="3">í¡ </font><font face="book antiqua" size="3">the following sizes are possible:</p>
+        <p align="justify">28h - windows 3.1x, 95, nt, </font><font size="3">í¡</font><font
+        face="book antiqua" size="3"></p>
+        <p align="justify">0ch - os/2 1.x</p>
+        <p align="justify">f0h - os/2 2.x</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0012h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">width</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">horizontal 
+        width of bitmap in pixels.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0016h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">height</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">vertical 
+        height of bitmap in pixels.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">001ah</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">planes</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 word</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">number 
+        of planes in this bitmap.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">001ch</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">bits 
+        per pixel</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 word</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">bits 
+        per pixel used to store palette entry information. this also identifies in an indirect way 
+        the number of possible colors. possible values are:</p>
+        <p align="justify">1 - monochrome bitmap</p>
+        <p align="justify">4 - 16 color bitmap</p>
+        <p align="justify">8 - 256 color bitmap</p>
+        <p align="justify">16 - 16bit (high color) bitmap</p>
+        <p align="justify">24 - 24bit (true color) bitmap</p>
+        <p align="justify">32 - 32bit (true color) bitmap</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">001eh</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">compression</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">compression 
+        specifications. the following values are possible:</p>
+        <p align="justify">0 - none (also identified by bi_rgb)</p>
+        <p align="justify">1 - rle 8-bit / pixel (also identified by bi_rle4)</p>
+        <p align="justify">2 - rle 4-bit / pixel (also identified by bi_rle8)</p>
+        <p align="justify">3 - bitfields (also identified by bi_bitfields)</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0022h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">bitmap 
+        data size</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">size of 
+        the bitmap data in bytes. this number must be rounded to the next 4 byte boundary.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0026h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">hresolution</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">horizontal 
+        resolution expressed in pixel per meter.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">002ah</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">vresolution</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">vertical 
+        resolution expressed in pixels per meter.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">002eh</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">colors</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">number 
+        of colors used by this bitmap. for a 8-bit / pixel bitmap this will be 100h or 256.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0032h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">important 
+        colors</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">1 dword</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">number 
+        of important colors. this number will be equal to the number of colors when every color is 
+        important.</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0036h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">palette</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">n * 4 
+        byte</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">the 
+        palette specification. for every entry in the palette four bytes are used to describe the 
+        rgb values of the color in the following way:</p>
+        <p align="justify">1 byte for blue component</p>
+<HR><H3>Transfer interrupted!</H3>
+p>
+        <p align="justify">1 byte for red component</p>
+        <p align="justify">1 byte filler which is set to 0 (zero)</font></td>
+      </tr>
+      <tr>
+        <td width="10%" valign="top"><font face="book antiqua" size="3"><p align="justify">0436h</font></td>
+        <td width="16%" valign="top"><font face="book antiqua" size="3"><p align="justify">bitmap 
+        data</font></td>
+        <td width="14%" valign="top"><font face="book antiqua" size="3"><p align="justify">x bytes</font></td>
+        <td width="61%" valign="top"><font face="book antiqua" size="3"><p align="justify">depending 
+        on the compression specifications, this field contains all the bitmap data bytes which 
+        represent indices in the color palette.</font></td>
+      </tr>
+    </table>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">íí</p>
+    </font><font face="book antiqua" size="3"><i><b><p align="justify">note:</b> the following 
+    sizes were used in the specification above: </p>
+    </i></font><table border="1" cellspacing="2" bordercolor="#000000" cellpadding="7"
+    width="226">
+      <tr>
+        <td width="30%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
+        align="justify">size</b></font></td>
+        <td width="32%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
+        align="justify"># bytes</b></font></td>
+        <td width="37%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
+        align="justify">sign</b></font></td>
+      </tr>
+      <tr>
+        <td width="30%" valign="top"><font face="book antiqua" size="3"><p align="justify">char</font></td>
+        <td width="32%" valign="top"><font face="book antiqua" size="3"><p align="justify">1</font></td>
+        <td width="37%" valign="top"><font face="book antiqua" size="3"><p align="justify">signed</font></td>
+      </tr>
+      <tr>
+        <td width="30%" valign="top"><font face="book antiqua" size="3"><p align="justify">word</font></td>
+        <td width="32%" valign="top"><font face="book antiqua" size="3"><p align="justify">2</font></td>
+        <td width="37%" valign="top"><font face="book antiqua" size="3"><p align="justify">unsigned</font></td>
+      </tr>
+      <tr>
+        <td width="30%" valign="top"><font face="book antiqua" size="3"><p align="justify">dword</font></td>
+        <td width="32%" valign="top"><font face="book antiqua" size="3"><p align="justify">4</font></td>
+        <td width="37%" valign="top"><font face="book antiqua" size="3"><p align="justify">unsigned</font></td>
+      </tr>
+    </table>
+    <b><font face="ÝðÞ\85" lang="zh-cn" size="6"><p align="justify"></font><font
+    face="book antiqua" size="6"><a name="_toc381201085">field details</a></p>
+    </font></b><font face="book antiqua" size="3"><p align="justify">some of the fields 
+    require some more information. the following chapters will try to provide this 
+    information:</p>
+    </font><b><font face="ÝðÞ\85" lang="zh-cn" size="5"><p></font><font face="book antiqua"
+    size="5"><a name="_toc381201086">height field</a></p>
+    </font></b><font face="book antiqua" size="3"><p align="justify">the <i>height</i> field 
+    identifies the height of the bitmap in pixels. in other words, it describes the number of 
+    scan lines of the bitmap. if this field is negative, indicating a top-down dib, the <i>compression</i> 
+    field must be either bi_rgb or bi_bitfields. top-down dibs cannot be compressed.</p>
+    </font><b><font face="ÝðÞ\85" lang="zh-cn" size="5"><p></font><font face="book antiqua"
+    size="5"><a name="_toc381201087">bits per pixel field</a></p>
+    </font></b><font face="book antiqua" size="3"><p align="justify">the <i>bits per pixel</i> 
+    (bbp) field of the bitmap file determines the number of bits that define each pixel and 
+    the maximum number of colors in the bitmap.</p>
+    </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><ul>
+      </font><font face="book antiqua" size="3"><b>
+      <li>when this field is equal to 1.</b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the bitmap is monochrome, and 
+        the palette contains two entries. each bit in the bitmap array represents a pixel. if the 
+        bit is clear, the pixel is displayed with the color of the first entry in the palette; if 
+        the bit is set, the pixel has the color of the second entry in the table.</p>
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">íí</p>
+      </dir>
+    </dir>
+    <ul>
+      </font><font face="book antiqua" size="3"><b>
+      <li>when this field is equal to 4.</b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the bitmap has a maximum of 
+        16 colors, and the palette contains up to 16 entries. each pixel in the bitmap is 
+        represented by a 4-bit index into the palette. for example, if the first byte in the 
+        bitmap is 1fh, the byte represents two pixels. the first pixel contains the color in the 
+        second palette entry, and the second pixel contains the color in the sixteenth palette 
+        entry.</p>
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">íí</p>
+      </dir>
+    </dir>
+    <ul>
+      </font><font face="book antiqua" size="3"><b>
+      <li>when this field is equal to 8.</b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the bitmap has a maximum of 
+        256 colors, and the palette contains up to 256 entries. in this case, each byte in the 
+        array represents a single pixel.</p>
+        <p align="justify"></font><font size="3">íí</font><font face="book antiqua" size="3"></p>
+      </dir>
+    </dir>
+    <ul>
+      <b>
+      <li>when this field is equal to 16.</b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the bitmap has a maximum of 
+        2^16 colors. if the <i>compression</i> field of the bitmap file is set to bi_rgb, the <i>palette</i> 
+        field does not contain any entries. each word in the bitmap array represents a single 
+        pixel. the relative intensities of red, green, and blue are represented with 5 bits for 
+        each color component. the value for blue is in the least significant 5 bits, followed by 5 
+        bits each for green and red, respectively. the most significant bit is not used.</p>
+        <p align="justify">if the <i>compression</i> field of the bitmap file is set to 
+        bi_bitfields, the <i>palette</i> field contains three dword color masks that specify the 
+        red, green, and blue components, respectively, of each pixel. each word in the bitmap 
+        array represents a single pixel.</p>
+        <b><p align="justify">windows nt specific:</b> when the <i>compression</i> field is set to 
+        bi_bitfields, bits set in each dword mask must be contiguous and should not overlap the 
+        bits of another mask. all the bits in the pixel do not have to be used. </p>
+        <b><p align="justify">windows 95 specific:</b> when the <i>compression</i> field is set to 
+        bi_bitfields, windows 95 supports only the following 16bpp color masks: a 5-5-5 16-bit 
+        image, where the blue mask is 0x001f, the green mask is 0x03e0, and the red mask is 
+        0x7c00; and a 5-6-5 16-bit image, where the blue mask is 0x001f, the green mask is 0x07e0, 
+        and the red mask is 0xf800.</p>
+        <p align="justify"></font><font size="3">íí</font><font face="book antiqua" size="3"></p>
+      </dir>
+    </dir>
+    <ul>
+      <b>
+      <li>when this field is equal to 24.</b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the bitmap has a maximum of 
+        2^24 colors, and the <i>palette</i> field does not contain any entries. each 3-byte 
+        triplet in the bitmap array represents the relative intensities of blue, green, and red, 
+        respectively, for a pixel.</p>
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">íí</p>
+      </dir>
+    </dir>
+    <ul>
+      </font><font face="book antiqua" size="3"><b>
+      <li>when this field is equal to 32.</b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the bitmap has a maximum of 
+        2^32 colors. if the <i>compression</i> field of the bitmap is set to bi_rgb, the <i>palette</i> 
+        field does not contain any entries. each dword in the bitmap array represents the relative 
+        intensities of blue, green, and red, respectively, for a pixel. the high byte in each 
+        dword is not used.</p>
+        <p align="justify">if the <i>compression</i> field of the bitmap is set to bi_bitfields, 
+        the palette field contains three dword color masks that specify the red, green, and blue 
+        components, respectively, of each pixel. each dword in the bitmap array represents a 
+        single pixel.</p>
+        <b><p align="justify">windows nt specific:</b> when the <i>compression</i> field is set to 
+        bi_bitfields, bits set in each dword mask must be contiguous and should not overlap the 
+        bits of another mask. all the bits in the pixel do not have to be used. </p>
+        <b><p align="justify">windows 95 specific:</b> when the <i>compression</i> field is set to 
+        bi_bitfields, windows 95 supports only the following 32bpp color mask: the blue mask is 
+        0x000000ff, the green mask is 0x0000ff00, and the red mask is 0x00ff0000.</font></p>
+      </dir>
+    </dir>
+    <b><font face="ÝðÞ\85" lang="zh-cn" size="5"><p></font><font face="book antiqua" size="5"><a
+    name="_toc381201088">compression field</a></p>
+    </font></b><font face="book antiqua" size="3"><p align="justify">the <i>compression</i> 
+    field specifies the way the bitmap data is stored in the file. this information together 
+    with the <i>bits per pixel</i> (<i>bpp</i>) field identifies the compression algorithm to 
+    follow.</p>
+    <p align="justify">the following values are possible in this field:</p>
+    </font><table border="1" cellspacing="2" bordercolor="#000000" cellpadding="7" width="657">
+      <tr>
+        <td width="18%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
+        align="justify">value</b></font></td>
+        <td width="82%" valign="top"><font face="book antiqua" size="3" color="#808080"><b><p
+        align="justify">meaning</b></font></td>
+      </tr>
+      <tr>
+        <td width="18%" valign="top"><font face="book antiqua" size="3"><p align="justify">bi_rgb</font></td>
+        <td width="82%" valign="top"><font face="book antiqua" size="3"><p align="justify">an 
+        uncompressed format.</font></td>
+      </tr>
+      <tr>
+        <td width="18%" valign="top"><f>
+<HR>
+lign="justify">bi_rle4</font></td>
+        <td width="82%" valign="top"><font face="book antiqua" size="3"><p align="justify">an rle 
+        format for bitmaps with 4 bits per pixel. the compression format is a two-byte format 
+        consisting of a count byte followed by two word-length color indices. for more 
+        information, see the following remarks section.</font></td>
+      </tr>
+      <tr>
+        <td width="18%" valign="top"><font face="book antiqua" size="3"><p align="justify">bi_rle8</font></td>
+        <td width="82%" valign="top"><font face="book antiqua" size="3"><p align="justify">a 
+        run-length encoded (rle) format for bitmaps with 8 bits per pixel. the compression format 
+        is a two-byte format consisting of a count byte followed by a byte containing a color 
+        index. for more information, see the following remarks section.</font></td>
+      </tr>
+      <tr>
+        <td width="18%" valign="top"><font face="book antiqua" size="3"><p align="justify">bi_bitfields</font></td>
+        <td width="82%" valign="top"><font face="book antiqua" size="3"><p align="justify">specifies 
+        that the bitmap is not compressed and that the color table consists of three double word 
+        color masks that specify the red, green, and blue components, respectively, of each pixel. 
+        this is valid when used with 16- and 32- bits-per-pixel bitmaps.</font></td>
+      </tr>
+    </table>
+    <font face="book antiqua" size="3"><p align="justify">when the compression field is 
+    bi_rle8, the bitmap is compressed by using a run-length encoding (rle) format for an 8-bit 
+    bitmap. this format can be compressed in encoded or absolute modes. both modes can occur 
+    anywhere in the same bitmap.</p>
+    <ul>
+      <b>
+      <li>encoded mode consists of two bytes: </b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the first byte specifies the 
+        number of consecutive pixels to be drawn using the color index contained in the second 
+        byte. in addition, the first byte of the pair can be set to zero to indicate an escape 
+        that denotes an end of line, end of bitmap, or delta. the interpretation of the escape 
+        depends on the value of the second byte of the pair, which can be one of the following:</font></p>
+      </dir>
+    </dir>
+    <table cellspacing="0" border="0" cellpadding="7" width="602">
+      <tr>
+        <td width="9%" valign="top"><font face="book antiqua" size="3"><p align="justify">0</font></td>
+        <td width="91%" valign="top"><font face="book antiqua" size="3"><p align="justify">end of 
+        line.</font></td>
+      </tr>
+      <tr>
+        <td width="9%" valign="top"><font face="book antiqua" size="3"><p align="justify">1</font></td>
+        <td width="91%" valign="top"><font face="book antiqua" size="3"><p align="justify">end of 
+        bitmap.</font></td>
+      </tr>
+      <tr>
+        <td width="9%" valign="top"><font face="book antiqua" size="3"><p align="justify">2</font></td>
+        <td width="91%" valign="top"><font face="book antiqua" size="3"><p align="justify">delta. 
+        the two bytes following the escape contain unsigned values indicating the horizontal and 
+        vertical offsets of the next pixel from the current position.</font></td>
+      </tr>
+    </table>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><ul>
+      </font><font face="book antiqua" size="3"><b>
+      <li>absolute mode.</b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the first byte is zero and 
+        the second byte is a value in the range 03h through ffh. the second byte represents the 
+        number of bytes that follow, each of which contains the color index of a single pixel. 
+        when the second byte is 2 or less, the escape has the same meaning as in encoded mode. in 
+        absolute mode, each run must be aligned on a word boundary.</p>
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">íí</p>
+        <p align="justify"></font>íí</p>
+      </dir>
+    </dir>
+    <font face="book antiqua" size="3"><p align="justify">the following example shows the 
+    hexadecimal values of an 8-bit compressed bitmap.</p>
+    </font><font face="courier new" size="3"><p align="justify">03 04 05 06 00 03 45 56 67 00 
+    02 78 00 02 05 01 02 78 00 00 09 1e 00 01</p>
+    </font><font face="book antiqua" size="3"><p align="justify">this bitmap would expand as 
+    follows (two-digit values represent a color index for a single pixel):</p>
+    </font><font face="courier new" size="3"><p align="justify">04 04 04</p>
+    <p align="justify">06 06 06 06 06</p>
+    <p align="justify">45 56 67</p>
+    <p align="justify">78 78</p>
+    <p align="justify">move current position 5 right and 1 down</p>
+    <p align="justify">78 78</p>
+    <p align="justify">end of line</p>
+    <p align="justify">1e 1e 1e 1e 1e 1e 1e 1e 1e</p>
+    <p align="justify">end of rle bitmap</p>
+    </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify">íí</p>
+    </font><font face="book antiqua" size="3"><p align="justify">when the compression field is 
+    bi_rle4, the bitmap is compressed by using a run-length encoding format for a 4-bit 
+    bitmap, which also uses encoded and absolute modes:</p>
+    <ul>
+      <b>
+      <li>in encoded mode.</b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the first byte of the pair 
+        contains the number of pixels to be drawn using the color indices in the second byte. the 
+        second byte contains two color indices, one in its high-order four bits and one in its 
+        low-order four bits. the first of the pixels is drawn using the color specified by the 
+        high-order four bits, the second is drawn using the color in the low-order four bits, the 
+        third is drawn using the color in the high-order four bits, and so on, until all the 
+        pixels specified by the first byte have been drawn.</p>
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3">
+      </dir>
+    </dir>
+    <ul>
+      </font><font face="book antiqua" size="3"><b>
+      <li>in absolute mode. </b></font></li>
+    </ul>
+    <font face="ÝðÞ\85" lang="zh-cn" size="3"><dir>
+      <dir>
+        </font><font face="book antiqua" size="3"><p align="justify">the first byte is zero, the 
+        second byte contains the number of color indices that follow, and subsequent bytes contain 
+        color indices in their high- and low-order four bits, one color index for each pixel. in 
+        absolute mode, each run must be aligned on a word boundary. </p>
+        <p align="justify">the end-of-line, end-of-bitmap, and delta escapes described for bi_rle8 
+        also apply to bi_rle4 compression.</p>
+        </font><font face="ÝðÞ\85" lang="zh-cn" size="3"><p align="justify"></font>íí</p>
+      </dir>
+    </dir>
+    <font face="book antiqua" size="3"><p align="justify">the following example shows the 
+    hexadecimal values of a 4-bit compressed bitmap.</p>
+    </font><font face="courier new" size="3"><p align="justify">03 04 05 06 00 06 45 56 67 00 
+    04 78 00 02 05 01 04 78 00 00 09 1e 00 01</p>
+    </font><font face="book antiqua" size="3"><p align="justify">this bitmap would expand as 
+    follows (single-digit values represent a color index for a single pixel):</p>
+    </font><font face="courier new" size="3"><p align="justify">0 4 0</p>
+    <p align="justify">0 6 0 6 0</p>
+    <p align="justify">4 5 5 6 6 7</p>
+    <p align="justify">7 8 7 8</p>
+    <p align="justify">move current position 5 right and 1 down</p>
+    <p align="justify">7 8 7 8</p>
+    <p align="justify">end of line</p>
+    <p align="justify">1 e 1 e 1 e 1 e 1</p>
+    <p align="justify">end of rle bitmap</p>
+    </font><b><font face="ÝðÞ\85" lang="zh-cn" size="5"><p></font><font face="book antiqua"
+    size="5"><a name="_toc381201089">colors field</a></p>
+    </font></b><font face="book antiqua" size="3"><p align="justify">the <i>colors</i> field 
+    specifies the number of color indices in the color table that are actually used by the 
+    bitmap. if this value is zero, the bitmap uses the maximum number of colors corresponding 
+    to the value of the <i>bbp</i> field for the compression mode specified by the <i>compression</i> 
+    field. </p>
+    <p align="justify">if the <i>colors</i> field is nonzero and the <i>bbp</i> field less 
+    than 16, the <i>colors</i> field specifies the actual number of colors the graphics engine 
+    or device driver accesses. </p>
+    <p align="justify">if the <i>bbp</i> field is 16 or greater, then <i>colors</i> field 
+    specifies the size of the color table used to optimize performance of windows color 
+    palettes. </p>
+    <p align="justify">if <i>bbp</i> equals 16 or 32, the optimal color palette starts 
+    immediately following the three double word masks.</p>
+    <p align="justify">if the bitmap is a packed bitmap (a bitmap in which the bitmap array 
+    immediately follows the bitmap header and which is referenced by a single pointer), the <i>colors</i> 
+    field must be either 0 or the actual size of the color table. </p>
+    </font><b><font face="ÝðÞ\85" lang="zh-cn" size="5"><p></font><font face="book antiqua"
+    size="5"><a name="_toc381201090">important colors field</a></p>
+    </font></b><font face="arial" size="3"><p align="justify">the <i>important colors</i> 
+    field s</font><font face="book antiqua" size="3">pecifies the number of color indices that 
+    are considered important for displaying the bitmap. if this value is zero, all colors are 
+    important. </font></td>
+  </tr>
+</table>
+</center></div>
+<p>
+atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</body>
+</html>
diff --git a/docs/html-docs/building.html b/docs/html-docs/building.html
new file mode 100644 (file)
index 0000000..91bbcb7
--- /dev/null
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+<meta name="author" content="Dr. David Kirkby">
+<META name="DESCRIPTION" content="How to build atlc - Arbitrary Transmission Line Calculator from sources.">
+<META name="KEYWORDS" content="Transmission line calculator atlc">
+<TITLE>Building atlc</TITLE>
+</HEAD>
+<BODY>
+
+<H1>Building <COde>atlc</code> from sources</H1>
+<p><EM>atlc</EM> is highly portable program and should run on any UNIX system and some non-UNIX systems. </P>
+An early version for <EM>atlc</EM> forms part of the <a href="http://www.netbsd.org/">NetBSD</a>  project and has been ported to <a href=" ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/cad/atlc/README.html">23 different systems</a>, including the Acorn 32, Amiga, Arm32, Atari, Cobalt, Dec Alpha, HP 300, i386 PC, Mac 68000, Power PC, Sun SPARC, VAX etc. <STRONG><EM>atlc</EM> has even been run on a Sony Playstation 2!!</STRONG>.  In addition to the systems running NetBSD UNIX, <EM>atlc</EM> has been run on the following operating systems
+<OL>
+       <LI>Solaris 2.5, 8 and Solaris 9 for SPARC</LI>
+       <LI>Solaris 8 for Intel</LI>
+       <LI>Linux 2.4.17 for a Dec Alpha </LI>
+       <LI>Tru64 UNIX 5.1B on a Dec Alpha 600a Personal Workstation</LI>
+       <LI>Redhat 7.2 Linux on PC</LI>
+       <LI>Redhat 6.2 on SPARC. <strong>Fails many tests if configured --with-threads. I think the thread library is broken</strong></LI>
+       <LI>Debian 3.0 Linux on SPARC <strong>Fails many tests if configured --with-threads. I think the thread library is broken.</strong></LI>
+       <LI>NetBSD 1.6 on SPARC</LI>
+       <LI>OpenBSD </LI>
+       <LI>AIX 5.2 on an IBM RS/6000. <strong>Fails one or two tests if configured with <code>--with-threads</code>, but the numerical results are fine and the images show no significant errors</strong></LI>
+       <LI>IRIX 6.5.16 on an SGI Octane</LI>
+       <LI>x86 PC's run Windoze 98 and NT, although no deveopment is now done on these platforms.</LI>
+</OL>
+To install <EM>altc</EM> you should download the souce code from <a href="http://sourceforge.net/projects/atlc/"><COde>atlc</code>'s download area on SourceForge.</A> It is preferable to also have following software too, although none, apart from a compatible version of <CODE>make</CODE>, are essential. 
+<OL>
+       <LI><a href="http://www.gnu.org/software/make/make.html">GNU make</a>, sometimes installed as <CODE>gmake</CODE>. Sun's version of make in <CODE>/usr/ccs/bin/make</CODE> is <STRONG>not</STRONG> suitable, although IBM's version in AIX 5.2 works fine, as does HP's in HP-UX 11 and Tru64 5.1B. If you find you have an unsuitable version of make (and Sun's is the only one known), the GNU one (often called gmake) works fine. </LI>
+<LI>If you have a system with more than one CPU, <EM>atlc</EM> can be configured to use any number of CPUs in parallel to speed execution, using a POSIX compatable thread library, or pthreads. Just add the option <code>--with-threads</code>. Sun's Solaris implementation works fine, as does IBM's AIX and SGI's IRIX, but any other POSIX library should work. If you have multiple CPUs and don't have a thread library, you should trying installing  <a href="http://www.gnu.org/software/pth">GNU Portable Threads</A>, although <em>atlc</em> has not been tested with this. <STRONG>If your computer has only one CPU, there is no point in building atlc to use multiple threads, as it will run slower!</STRONG></LI>
+</OL>
+<br>
+Extract the compressed file, using gunzip, or gzip -d.
+<PRE>% gzip -d atlc-X.Y.tar.gz
+% tar xvf atlc-X.Y.tar
+% cd atlc-X.Y
+% ./configure 
+% make
+% make check  <STRONG> // This is very important, as it checks the binaries.</STRONG>
+</PRE>
+<p>The code tries to gather information about the hardware. This is by its very nature less portable than other parts of <em>atlc</em>. If a compilation or linking problem occurs during <code>make check</code> phase, then re-configure using <code>configure --disable-hardware-info</code>. Please let me know about such failures. </p>
+A total of 90 self-tests are performed in the <CODE>make check</CODE> stage.  <strong>No tests should fail</strong>. Two tests are used to check the operation of the POSIX threads, so will be skipped unless configured with <CODE>--with-threads</CODE>. 
+<br><br>
+
+Finally you can install the software if you wish. 
+<PRE>
+% su
+# make install. </PRE>
+The<CODE> make install</CODE> stage will install:
+<OL>
+       <LI>The executable programs (by default to<CODE> /usr/local/bin</CODE>)</LI>
+       <LI>The man pages (by default to <CODE>/usr/local/man/man1</CODE>)</LI>
+       <LI>Some HTML formatted documentation (generally similar to that on the  <a href="http://atlc.sourceforge.net/">atlc website</a>. By default these are installed to<CODE> /usr/local/share/atlc/docs/html-docs</CODE>.
+       <LI>A copy of a paper published on atlc back in the December 1996 issue of QEX. That along with the C source for this very early version is installed to<CODE> /usr/local/share/atlc/docs/qex_december_199</CODE>6</LI>
+       <LI>Some example files (by default to<CODE> /usr/local/share/atlc/examples</CODE>)</LI>
+</OL>
+<br>
+Options to the <code>configure</code> script, can be listed by running <CODE>configure --help</CODE>. You should also conisider setting the variable <code>CC</code> to the compiler you wish to use and <code>CFLAGS</code> to any flags you need. Since the program <code>atlc</code> is quite CPU intensive, it is useful to test the effect of compiler optimisationflags. Running <code>make check</code> does this for you, since it runs a benchmark, giving you timing information. Some compiler optimisation options can break code, as they make assumptions that might not be valid. Hence always re-run <code>make check</code> if changing any compiler options. 
+<p>
+
+<br>
+atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A>
+<br>
+<BR>
+<BR>
+
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A><a href="http://validator.w3.org/check/referer"><img border="0"
+src="valid-html40.gif"
+alt="Valid HTML 4.01!" height="31" width="88"></a>
+<a href="http://bluefish.openoffice.nl/"><img SRC="jpgs/bluefish.jpg" WIDTH="88" HEIGHT="31" ALT="Bluefish"></a>
+<p>The following is a trap for smammers, so they can gather loads of ficticious email address, so don't click<a href="http://homepage.ntlworld.com/drkirkby/list1.html"> anywhere</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"> o</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html">n</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"> this</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"> line</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"> th</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"> anks.</a>
+ </body>
+ </html>
diff --git a/docs/html-docs/calculate_zodd_and_zeven.html b/docs/html-docs/calculate_zodd_and_zeven.html
new file mode 100644 (file)
index 0000000..1bfab85
--- /dev/null
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="Calculte Zodd and Zeven Using atlc">
+<META name="KEYWORDS" content="Zodd odd even mode impedance coupler directional">
+<TITLE>atlc How to determine the properties of an arbitrary coupler</TITLE>
+</HEAD>
+<BODY>
+<H1>How to determine the properties of an arbitrary coupler, given its physical dimensions.</H1>
+<p>Consider the transmission lines below, which has three metal conductors - a ground shown in green and the two inner conductors shown red and blue, coupled together. <p><img src="jpgs/coupler.jpg" width="400" ALT="coupled lines">
+<p>Such a structure has two characteristic impedances - an odd-mode impedance Zodd and an even-mode impedance Zeven. If the structure is drawn in red, blue and green, <CODE>atlc</CODE> will interpret this as a coupler and therefore computes both impedances.
+<pre>
+wren  % atlc -v  couplerxx.bmp
+
+couplerxx.bmp Er= 1.0000 C= 55.1412 pF/m L= 201.7820 nH/m Zo= N/A Ohms Zodd= 60.4927 Ohms Zeven= N/A Ohms v= 2.9979 e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 54.1717 pF/m L= 205.3932 nH/m Zo= N/A Ohms Zodd= 61.5753 Ohms Zeven= N/A Ohms v= 2.9979 e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 54.0835 pF/m L= 205.7283 nH/m Zo= N/A Ohms Zodd= 61.6758 Ohms Zeven= N/A Ohms v= 2.9979 e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 54.0683 pF/m L= 205.7862 nH/m Zo= N/A Ohms Zodd= 61.6931 Ohms Zeven= N/A Ohms v= 2.9979 e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 54.0657 pF/m L= 205.7958 nH/m Zo= N/A Ohms Zodd= 61.6960 Ohms Zeven= N/A Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 36.6079 pF/m L= 303.9368 nH/m Zo= 74.9774 Ohms Zodd= 61.6960 Ohms Zeven= 91.1180 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 35.5586 pF/m L= 312.9064 nH/m Zo= 76.0757 Ohms Zodd= 61.6960 Ohms Zeven= 93.8070 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 35.4672 pF/m L= 313.7124 nH/m Zo= 76.1736 Ohms Zodd= 61.6960 Ohms Zeven= 94.0486 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 35.4513 pF/m L= 313.8534 nH/m Zo= 76.1908 Ohms Zodd= 61.6960 Ohms Zeven= 94.0909 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 35.4486 pF/m L= 313.8773 nH/m Zo= 76.1937 Ohms Zodd= 61.6960 Ohms Zeven= 94.0980 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 4.0.0
+couplerxx.bmp Er= 1.0000 C= 35.4486 pF/m L= 313.8773 nH/m Zo= 76.1937 Ohms Zodd= 61.6960 Ohms Zeven= 94.0980 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 4.0.0</pre>
+<p>
+Note that atlc first computes the odd-mode impedance, and then on a second run computes the even-mode impedance. The characteristic impedance is Zo=sqrt(Zodd*Zeven), so this is also computed on the second run. The accuracy of the calculation of odd and even-mode impedances in couplers is discussed in the <a href="accuracy.html#Accuracy_coupler">accuracy section</a> </p>
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A>
+It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net"> Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/colours.html b/docs/html-docs/colours.html
new file mode 100644 (file)
index 0000000..7750bbf
--- /dev/null
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN -x">
+<html>
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org">
+<meta name="generator" content="Mostly bluefish &amp; vi. Sometimes netscape">
+<meta http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<meta name="DESCRIPTION" content="Colour codes for atlc">
+<meta name="KEYWORDS" content="Colour color atlc">
+<title>Colour codes for atlc software.</title>
+</head>
+<body>
+<H1>Producing suitable bitmaps</H1>
+<a name="produce"> </a><COdE>atlc</code> expects to find the transmission line's cross section to be found in a standard bitmap (.BMP or .bmp) file. There are several forms of bitmaps, some grayscale, some 8-bit colour (256 colours), some 16 bit colour, some 24-bit colour. Some bitmaps are compressed. <COde>atlc</code> expects to see uncompressed 24-bit bitmaps. This may sound restrictive, but in practice most graphics software can save such files. </P>
+
+Since the form of the input file is critical, we will discuss this a little. 24-bit images have 8 bits per colour (8 for red, 8 for green and 8 for blue). Hence there are 256 shades of red, 256 shades of green and 256 shades of blue, giving a total of 256*256*256=16,777,216 possible colours. It follows that 3 bytes of data are needed to describe each pixel (ignoring compressed images which are not supported). Each bitmap has a small header of around 56 bytes, followed by 3 bytes for every pixel. The minimum possible length for a bitmap of x by y pixels is then 56+3*width*height (bytes). In practice, images are usually a little larger than this, as there is some padding. If your images are not at least this size, something is wrong! For a more detailed discussion of bitmap files <STRONG>(unnecessary for using <COde>atlc</code>)</STRONG>, see this <a href="bmp.html">HTML page</A> I found on the web somewhere. <br><br>
+Colours in bitmap files are often written as red,green,blue as in 26,239,179 indicating the amount of red (26), the amount of green (239) and the amount of blue (179). Amounts vary from 0 (none of the colour) to 255 (the maximum possible amount of the colour. Often the colours are written in hexadecimal format as 0x1aefb3 or 0x1AEFB3. Such a colour will look like this. <br><img src="jpgs/1aefb3.jpg" ALT="The colour 0x1AEFB3 or 26,239,179" width="32" height="32">
+
+<br> <br>
+It is absolutely <STRONG>essential</STRONG> that you are able to produce bitmap images with <STRONG>exactly</STRONG> the colours <COde>atlc</code> needs. <br><br>
+
+One conductor must be produced in <STRONG>pure red</STRONG>. i.e 255,0,0 or 0xFF0000. This red will look like the red square on the left. The one on the right is very slightly different, having a very small amount of blue, and so has the colour representation 255,0,1 or 0xFF0001. The colour on the left will be interpreted by <COde>atlc</code> as one conductor, the one on the right will not. Hence it is essential to check the colours produced by your graphics package not only look <EM>about right</EM>, but are <STRONG>exactly</STRONG> right. <TABLE>
+<TR>
+<TD><img src="jpgs/ff0000.jpg" ALT="Pure red 0xFF0000" width="32" height="32"></TD>
+<TD><img src="jpgs/ff0001.jpg" ALT="Re with a little blue 0xFF0001" width="32" height="32"></TD>
+</TR>
+</TABLE>
+<br> 
+Graphics packages such as <A HREF="http://www.gimp.org">Gimp</A> (freely available for no cost on UNIX systems) will allow you to set a colour precisely. <br><br>
+You then need to draw an image of the cross section of the transmission line to be analysed. The scale can be anything you reasonably want, but should result in the largest dimension in your transmission line have 200 or more pixels allocated to it. Making the bitmap much smaller (say 32 pixels in one dimension) will results in fast but inaccurate results. Much larger bitmaps, say 1000x1000, will take a long time to compute. The bitmaps don't have to be square. You should aim to fill the whole of the bitmap with the relevant details, and not have a lot of unused space on the bitmap. For example, the image on the left below is fine, but the one on the right will spend a lot of time computing nothing of value. <br>
+<table>
+<tr>
+<TD><img src="jpgs/full-size.jpg" ALT="Relevant data fills bitmap" width="128" ></TD>
+<TD><img src="jpgs/too-small.jpg" ALT="Wasted space = wasted computing time." width="128"></td>
+</tr>
+</table>
+<h1>Predefined colours in <code>atlc</code></h1>
+The input file to atlc, which is a bitmap, must have the correct colours to indicate what parts of the image are conductors and dielectrics. Parts at ground (0 V) potential must be drawn green, those at +1 V must be drawn red and those at -1V must be drawn blue. Only red and green are noramlly used for conductors, with blue being used only on couplers. Vacuum dielectric must be drawn white. Many other colours have very specific meanings as shown below. 
+<p>
+The following colours are predefined in <code>atlc</code>. These can be used, without the user specifying what they mean. 
+
+<h2>Predefined conductors</h2>
+
+<table>
+<tr>
+<td><img src="jpgs/ff0000.jpg" alt="+1 V conductor" width="128" height="128"></td>
+<td><img src="jpgs/00ff00.jpg" alt="0 V conductor" width="128" height="128"></td>
+<td><img src="jpgs/0000ff.jpg" alt="-1 V conductor" width="128" height="128"></td>
+</tr>
+
+<tr>
+<td>Red<br>
+live conductor<br>
+RGB=0xff0000<br>
+rgb=255,0,0</td>
+<td>Green<br>
+ground conductor<br>
+RGB=0x00ff00<br>
+rgb=0,255,0</td>
+<td>Blue<br>
+-1v conductor<br>
+RGB=0x0000ff<br>
+rgb=0,0,255</td>
+</tr>
+</table>
+
+The following dielectrics are pre-defined. 
+
+<h2>Predefined dielectrics</h2>
+
+<table>
+<tr>
+<td><img src="jpgs/ffffff.jpg" alt="Vacuum" width="128" height="128"></td>
+<td><img src="jpgs/ffcaca.jpg" alt="Air" width="128" height="128"></td>
+<td><img src="jpgs/8235ef.jpg" alt="PTFE" width="128" height="128"></td>
+<td><img src="jpgs/8e8e8e.jpg" alt="RT Duroid 5880" width="128" height="128"></td>
+<td><img src="jpgs/ff00ff.jpg" alt="Polyethelene" width="128" height="128"></td>
+</tr>
+
+<tr>
+<td>White<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=1.0<br>
+Vacuum<br>
+RGB=0xffffff<br>
+RGB=255,255,255</td>
+<td>Pink<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=1.0006<br>
+Air<br>
+RGB=0xffcaca<br>
+RGB=255,202,202</td>
+<td>Light Blue<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=2.1<br>
+PTFE<br>
+RGB=0x8235ef<br>
+RGB=130,52,255</td>
+<td>Gray<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=2.2<br>
+RT duroid 5880<br>
+RGB=0x8e8e8e<br>
+RGB=142,142,142</td>
+<td>Mauve<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=2.33<br>
+Polyethelene<br>
+RGB=0xff00ff<br>
+RGB=255,0,255</td>
+<td></td>
+</tr>
+
+<tr>
+<td><img src="jpgs/ffff00.jpg" alt="Polystyrene" width="128" height="128"></td>
+<td><img src="jpgs/efcc1a.jpg" alt="PVC" width="128" height="128"></td>
+<td><img src="jpgs/bc7f60.jpg" alt="Epoxy resin" width="128" height="128"></td>
+<td><img src="jpgs/dff788.jpg" alt="FR4 PCB" width="128" height="128"></td>
+<td><img src="jpgs/1aefb3.jpg" alt="Fibreglass" width="128" height="128"></td>
+</tr>
+
+<tr>
+<td>Yellow<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=2.5<br>
+Polystyrene<br>
+RGB=0xffff00<br>
+RGB=255,255,0</td>
+<td>Sandy<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=3.3<br>
+PVC (at 1MHz)<br>
+RGB=0xefcc1a<br>
+RGB=239,203,27</td>
+<td>Brown<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=3.335<br>
+Epoxy resin<br>
+RGB=0xbc7f60<br>
+RGB=188,127,96</td>
+<td>Light yellow<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=3.7<br>
+FR4 PCB<br>
+RGB=0xdff788<br>
+RGB=223,247,136,</td>
+
+<td>Terquoise<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=4.8<br>
+Fibreglass PCB<br>
+RGB=0x1aefb3<br>
+RGB=26,239,179</td>
+
+</tr>
+
+<tr>
+<td><img src="jpgs/696969.jpg" alt="RT Duroid 6006" width="128" height="128"></td>
+<td><img src="jpgs/dcdcdc.jpg" alt="RT duroid 6010" width="128" height="128"></td>
+<td><img src="jpgs/d5a04d.jpg" alt="Er = 100" width="128" height="128"></td>
+</tr>
+
+<tr>
+<td>Dark grey<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=6.15.<br>
+RT duroid 6006<br>
+RGB=0x696969<br>
+RGB=142,142,142</td>
+<td>Light gray<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=10.2<br>
+RT duroid 6010<br>
+RGB=0xdcdcdc<br>
+RGB=240,240,240</td>
+<td>Dark Orange<br>
+<font face="symbol">e</font><font face="ariel"><sub>r</sub></font>=100<br>
+Er of 100.0<br>
+RGB=0xd5a04d<br>
+RGB=213,160,77</td>
+</tr>
+</table>
+
+Note, the permitivity of free space (vacuum) is by definition 1.0. Air is very close to 1, but depends on pressure and temperature. Although the difference in permittivity between air and vacuum is smaller than the errors in <code>atlc</code>, having another permittivity very close to 1.0 is useful, as for test purposes. The figures for the plastics given above are only approximate. The permittivity of plastics are usually frequency dependant and temperature dependant. 
+
+<h2>Entering the permittivity of other materials into <code>atlc</code></h2>
+
+If you know the exact value of your dielectric material, draw the dielectric in a new colour, but define the colour with a command line option. For example, if your transmission line has a dielectric of 2.42 somewhere, then you must 
+
+<ol>
+<li>Draw the image, using a different colour (say a golden colour with RGB=0xf9e77d or in decimal RGB=249,231,125)</li>
+
+<li>Run <code>atlc</code> with the following command line option.<br>
+ % atlc -d f9e77d=2.43 somefile.bmp</li>
+</ol>
+
+this sets the colour f9e77 in somefile.bmp to reresent a permittivity of 2.43. 
+<p>
+atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</body>
+</html>
+
diff --git a/docs/html-docs/couplers.html b/docs/html-docs/couplers.html
new file mode 100644 (file)
index 0000000..054e807
--- /dev/null
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="atlc - Using with directional couplers. ">
+<META name="KEYWORDS" content="directional directional coupler impedance odd even mode">
+<TITLE>atlc </TITLE>
+</HEAD>
+<BODY>
+<H1>Coupled transmission lines</H1>
+Unlike a standard two-conductor transmission line, such as coaxial cable that has a ground and  one other conductor, a  transmission line with 3 conductors forms a directional coupler. A directional coupler has 2 characteristic impedances - an odd-mode impedance Zodd and an even-mode impedance Zeven. <p>
+The support for coupled lines is not completely finished  yet, although since version 4.1.0 it is quiite reasonable. It is now possible to perform most tasks one would want to do with such a program. <STRONG>From a user's specification of a frequency response and coupling factor of a directional coupler, it is now possible to generate a physical layout that will have those specifications!</STRONG>. It is hoped this will be useful. 
+<OL><LI><a href="determine_dimensions_of_couplers.html">Determine the physical dimensions of a directional coupler, given its specifications of frequency response and coupling factor.</a> </LI> This is probably what most people will be interested in doing, so it is listed first. <p>Using the program <CODE>design_coupler</CODE> it is possible to fully automate the process of designing a directional coupler. Note that the directional coupler designed must have a fixed physical shape shown below in 3D<p>
+<img src="jpgs/3dcoup.jpg" width="616" height="140" ALT="a directional coupler"><br>
+A 2D view of the end is shown too<br>
+<img src="jpgs/coupler3.jpg"  width="616" height="140" ALT="a directional coupler">
+<br>although the shape is in practice quite a practical one to use for air-spaced lines. In fact, most people would consider it the easiest directional coupler to make for such situations. An example of using design_coupler to design a coupler can be found by running it with the -e command line option. <p>However, <CODE>design_coupler</CODE> can  <STRONG>not</STRONG> be used to fully automate the process of designing directional couplers on PCBs, but other methods exist to make that job easier. Some manaul and fairly tedious work is needed to design a directional coupler on a PCB having the properties (frequency response, coupling factor) that you want. However, it can be done with the aid of the package of programs provided in <EM>atlc</EM>. <p>
+<LI><a href = "calculate_zodd_and_zeven.html">Determine the properties of an arbitrary directional coupler, given its physical dimensions. </a> Using <CODE>atlc</CODE>, one can determine the properties of any of the couplers below:<br><img src="jpgs/coupler4.jpg"  ALT="directional couplers"><br>where the green, red and blue are the three conductors and the other colours are different dielectrics (white being vacuum)</LI><p>
+       <LI><a href="generate_for_coupler.html">Generate a bitmap for a stripline coupler with <CODE>create_bmp_for_stripline_coupler</CODE></a>  for analysis with <CODE>atlc</CODE>. Using the program <CODE>create_bmp_for_stripline_coupler</CODE>, one can very quickly generate a bitmap of a directional coupler like this :<br>
+<img src="jpgs/coupler3.jpg"  width="616" height="140" ALT="a directional coupler"><br>for analysis by the program <CODE>atlc</CODE>. In fact, since there is an analytical solution for this coupler (strictly only valid when the conductors are of zero thickness and W infinitely wide),  <CODE>create_bmp_for_stripline_coupler</CODE> calculates the theoretical answer too. This was primarily designed for <a href="accuracy.html#Accuracy_coupler">checking for errors in atlc with coupled lines</a>, which were always found to be less than 0.8% </LI>
+<p></OL></BODY></HTML>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
diff --git a/docs/html-docs/create_bmp_for_circ_in_circ.1.html b/docs/html-docs/create_bmp_for_circ_in_circ.1.html
new file mode 100644 (file)
index 0000000..d4b43eb
--- /dev/null
@@ -0,0 +1,290 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>create_bmp_for_circ_in_circ</B> - bitmap generator for  circular
+     conductor inside circular conductor (part of <B>atlc</B>)
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>create_bmp_for_circ_in_circ</B>  <B>[options...</B>  <B>]</B>   <B>D</B>   <B>d</B>   <B>O</B>   <B>Er</B>
+     <B>filename.bmp</B>
+
+
+</PRE>
+<H2>WARNING</H2><PRE>
+     This man page is not a complete set of documentation  -  the
+     complexity  of the atlc project makes man pages not an ideal
+     way to document it, although out of completeness, man  pages
+     are produced. The best documentation that was current at the
+     time the version was produced should be found on  your  hard
+     drive, usually at
+     /usr/local/share/atlc/docs/html-docs/index.html
+     although it might be elsewhere if your system  administrator
+     chose  to  install  the package elsewhere. Sometimes, errors
+     are  corrected  in   the   documentation   and   placed   at
+     http://atlc.sourceforge.net/ before a new release of atlc is
+     released.  Please, if you notice a problem with the documen-
+     tation - even spelling errors and typos, please let me know.
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     <B>create_bmp_for_circ_in_circ</B> is a pre-processor for <B>atlc</B>, the
+     finite difference program that is used to calculate the pro-
+     perties of a two and three conductor electrical transmission
+     line    of    arbitrary    cross    section.   The   program
+     <B>create_bmp_for_circ_in_circ</B> is used as a fast  way  of  gen-
+     erating  bitmaps  (there  is  no need to use a graphics pro-
+     gram), for a circular conductor inside a circular  conductor
+     (coaxial conductors), like this:
+
+
+                         *****************
+                     ****                 ****
+                  ****    &lt;-----d------&gt;     ****
+                ***            *****            ***
+              ***           ***********           ***
+            ***            *************            ***
+           ***            ***************            ***
+          ***      ^      ***************             ***
+         ***       |      ***************              ***
+        ***        |       *************                ***
+        **         O        ***********                  **
+       ***         |            ***                      ***
+       **          |                                      **
+       *&lt;------------------------D------------------------&gt;*
+       **                                                 **
+       **                                                 **
+       **                                                 **
+       ***                                               ***
+        **                                               **
+        ***                                             ***
+         **                                             **
+          **                                           **
+           **                                         **
+            ***                                     ***
+             ****                                 ****
+               ****                             ****
+                 *****                       *****
+                    ******               ******
+                        *******************
+                                ***
+
+     The parameter 'D' is the inner dimensions of the outer  con-
+     ductor and 'd' is the outer diameter of the inner conductor.
+     The inner conductor is offset 'h' from  the  centre  of  the
+     outer conductor. The whole region is surrounded by a dielec-
+     tric of relative permittivity 'Er'.
+
+     The bitmap is printed to 'outfile.bmp' -  the  last  command
+     line argument.
+
+     The bitmaps produced by <B>create_bmp_for_circ_in_circ</B> are  24-
+     bit bit colour bitmaps, as are required by <B>atlc</B>.
+
+     The permittivities of the  dielectric  'Er'  determines  the
+     colours  in the bitmap. If Er is 1.0, 1.006, 2.1, 2.2, 2.33,
+     2.5, 3.3, 3.335, 3,7, 4.8, 10.2  or  100,  then  the  colour
+     corresponding  to that permittivity will be set according to
+     the colours defined in COLOURS below. If Er is  not  one  of
+     those  permittivities, the region of permittivity Er will be
+     set to the colour 0xCAFF00. The program <B>atlc</B> does  not  know
+     what  this  permittivity  is, so <B>atlc</B>, must be told with the
+     command line option -d, as in example 4 below.
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+     <B>-b</B> <B>bitmapsize</B>
+     is used to set the size of the bitmap, and so  the  accuracy
+     to  which  atlc is able to calculate the transmission line's
+     properties. The default value for 'bitmapsize'  is  normally
+     4,  although  this  is set at compile time. The value can be
+     set anywhere from 1 to 15, but more than 8 is  probably  not
+     sensible.
+
+     <B>-f</B> <B>outfile</B>
+     Set the output filename. By default, the bitmap is  sent  to
+     stdout,  but  it *must* be sent to a file, with this option,
+     or as described above.
+
+     <B>-v</B>
+     Causes <B>create_bmp_for_circ_in_circ</B> to  print  some  data  to
+     stderr. Note, nothing extra goes to standard output, as that
+     is expected to be redirected to a bitmap file.
+
+
+
+</PRE>
+<H2>COLOURS</H2><PRE>
+     The 24-bit bitmaps that <B>atlc</B> expects, have 8  bits  assigned
+     to  represent the amount of red, 8 for blue and 8 for green.
+     Hence there are 256 levels of red, green and blue, making  a
+     total of 256*256*256=16777216 colours. Every one of the pos-
+     sible 16777216 colours can be defined precisely by the stat-
+     ing the exact amount of red, green and blue, as in:
+
+     red         = 255,000,000 or 0xff0000
+     green       = 000,255,000 or 0x00ff00
+     blue        = 000,000,255 or 0x0000ff
+     black       = 000,000,000 or 0x000000
+     white       = 255,255,255 or 0xffffff
+     Brown       = 255,000,255 or 0xff00ff
+     gray        = 142,142,142 or 0x8e8e8e
+
+     Some colours, such as pink, turquoise,  sandy,  brown,  gray
+     etc  may mean slightly different things to different people.
+     This is not so with <B>atlc</B>, as the program expects the colours
+     below  to  be EXACTLY defined as given. Whether you feel the
+     colour is sandy or yellow is up to you, but if you use it in
+     your  bitmap,  then it either needs to be a colour reconised
+     by atlc, <B>or</B> you must define it with a  command  line  option
+     (see OPTIONS and example 5 below).
+     The following conductors are reconised by atlc:
+     red    = 255,000,000 or 0xff0000 is the live conductor.
+     green  = 000,255,000 or 0x00ff00 is the grounded conductor.
+     blue   = 000,000,000 or 0x000000 is the negative conductor
+
+     All bitmaps <B>must</B> have the live (red)  and  grounded  (green)
+     conductor.  The  blue  conductor is not currently supported,
+     but it will be used to indicate a negative conductor,  which
+     will  be needed if/when the program gets extended to analyse
+     directional couplers.
+
+     The following dielectrics are reconised by atlc <B>and</B>  <B>so</B>  <B>are</B>
+     <B>produced</B> <B>by</B> create_bmp_for_circ_in_circ<B>.</B>
+
+     white     255,255,255 or 0xFFFFFF as Er=1.0   (vacuum)
+     pink      255,202,202 or 0xFFCACA as Er=1.0006 (air)
+     blue      000,000,255 or 0x0000FF as Er=2.1   (PTFE)
+     Mid gray  142,242,142 or 0x8E8E8E as Er=2.2   (duroid 5880)
+     mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+     yellow    255,255,000 or 0xFFFF00 as Er=2.5   (polystyrene)
+     sandy     239,203,027 or 0xEFCC1A as Er=3.3   (PVC)
+     brown     188,127,096 or 0xBC7F60 as Er=3.335 (epoxy resin)
+     Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8   (glass PCB)
+     Dark gray 142,142,142 or ox696969 as Er=6.15  (duroid 6006)
+     L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+
+
+</PRE>
+<H2>NOTE</H2><PRE>
+     Although <B>create_bmp_for_circ_in_circ</B> is  used  for  circular
+     inner and outer conductors, the outside of the outer conduc-
+     tor is drawn as a square. This is for convenience and  makes
+     no  difference  to  the  calculations.  The inside is of the
+     outer conductor is drawn as a circle.
+
+
+</PRE>
+<H2>EXAMPLES</H2><PRE>
+     Here   are    a    few    examples    of    the    use    of
+     <B>create_bmp_for_circ_in_circ</B>.  Again, see the html documenta-
+     tion in atlc-X.Y.Z/docs/html-docs/index.html for more  exam-
+     ples.
+
+     1) In the first example, the outer conductor has  an  inside
+     diameter  of 12 units (inches, mm, feet etc.), the inner has
+     an outside diameter of 3.9 units.  The inner is placed  cen-
+     trally (h=0) and the dielectric is vacuum (Er=1.0).
+     <B>%</B> <B>create_bmp_for_circ_in_circ</B> <B>12</B> <B>3.9</B> <B>0</B> <B>1.0</B> <B>coaxial_1.bmp</B>
+     <B>%</B> <B>atlc</B> <B>coaxial_1.bmp</B>
+     <B>atlc</B> will indicate the correct  value  of  impedance  to  be
+     67.3667  Ohms,  whereas an exact analysis will show the true
+     value to be 67.4358 Ohms, so <B>atlc</B> has an error of 0.102%.
+
+     2) In this second example, the conductor sizes are the sames
+     as  in  example  1,  but the inner is located 3.5 units off-
+     centre and the dielectric has a relative permittivity of 2.1
+     (Er  of PTFE) The output is sent to a file not_in_centre.bmp
+     which is then processed by <B>atlc</B>
+     <B>%</B>    <B>create_bmp_for_circ_in_circ</B>    <B>12</B>    <B>3.9</B>    <B>3.5</B>     <B>2.1</B>
+     <B>not_in_centre.bmp</B>
+     <B>%</B> <B>atlc</B> <B>not_in_centre.bmp</B>
+     The impedance of this is theoretically  24.315342  Ohms,  as
+     create_bmp_for_circ_in_circ  will  calculate for you. atlc's
+     estimate is 24.2493 Ohms, an error of only -0.271 %.
+
+     3) In the third  example  the  bitmap  is  made  larger,  to
+     increase  accuracy,  but  otherwise this is identical to the
+     previous one.
+     <B>%</B>   <B>create_bmp_for_circ_in_circ</B>   <B>-b8</B>   <B>12</B>   <B>3.9</B>   <B>3.5</B>   <B>2.1</B>
+     <B>bigger_not_in_centre.bmp</B>
+     <B>%</B> <B>atlc</B> <B>bigger_not_in_centre.bmp</B>
+     This time atlc will take much longer to calculate Zo,  since
+     the  bitmap  is  larger  and so it needs to do more calcula-
+     tions. However, the final result should be more accurate. In
+     this  case,  the  result  reported is 24.2461 Ohms, an error
+     that's marginally smaller than before at  0.285  %.   It  is
+     possible  there  may be something to be gained by decreasing
+     the cutoff at larger grids, so this is  being  investigated.
+     However,  errors  almost always below 0.25 %, no matter what
+     is being analysed.
+     In the fourth example, a material with a relativity  permit-
+     tivity  7.89  of  is  used. There is no change in how to use
+     <B>create_bmp_for_circ_in_circ</B>, but since this permittivity  is
+     not  one  of  the  pre-defined values (see COLOURS), we must
+     tell <B>atlc</B> what it is.  The colour will be set an olive green
+     one, with a hexacidcal representation of red=0xCA, blue=OxFF
+     and green = 0x00. This just happens to be the default colour
+     used when the permittivity is unknown. So atlc must be given
+     this information, like thisL
+     <B>%</B> <B>create_bmp_for_circ_in_circ</B> <B>23</B> <B>9</B> <B>0</B> <B>7.89</B> <B>an_odd_er.bmp</B>
+     <B>%</B> <B>atlc</B> <B>-d</B> <B>CAFF00=7.89</B> <B>an_odd_er.bmp</B>
+
+     This has a theoretical impedance of 20.041970 Ohms, but atlc
+     version  3.0.1  will calculate it to be 20.0300, an error of
+     -0.058 % !!! If you look at the file  an_odd_er.bmp  with  a
+     graphics  package,  you will see there are 3 colours in it -
+     the red inner conductor, the green outer and an  olive-green
+     dielectric.
+
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>
+     <B>create_bmp_for_circ_in_rect(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_rect_in_rect(1)</B>
+     <B>create_bmp_for_stripline_coupler(1)</B>
+     <B>create_bmp_for_symmetrical_stripline(1)</B>
+     <B>design_coupler(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B> <B>readbin(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/create_bmp_for_circ_in_rect.1.html b/docs/html-docs/create_bmp_for_circ_in_rect.1.html
new file mode 100644 (file)
index 0000000..f15c8d0
--- /dev/null
@@ -0,0 +1,289 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>create_bmp_for_circ_in_rect</B> - bitmap generator for a  circu-
+     lar conductor inside a rectangular conductor (part of <B>atlc</B>)
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>create_bmp_for_circ_in_rect</B> <B>[options...</B> <B>]</B>  <B>d</B>  <B>W</B>  <B>H</B>  <B>x</B>  <B>y</B>  <B>Er</B>
+     <B>outfile.bmp</B>
+
+
+</PRE>
+<H2>WARNING</H2><PRE>
+     This man page is not a complete set of documentation  -  the
+     complexity  of the atlc project makes man pages not an ideal
+     way to document it, although out of completeness, man  pages
+     are produced. The best documentation that was current at the
+     time the version was produced should be found on  your  hard
+     drive, usually at
+     /usr/local/share/atlc/docs/html-docs/index.html
+     although it might be elsewhere if your system  administrator
+     chose  to  install  the package elsewhere. Sometimes, errors
+     are  corrected  in   the   documentation   and   placed   at
+     http://atlc.sourceforge.net/ before a new release of atlc is
+     released.  Please, if you notice a problem with the documen-
+     tation - even spelling errors and typos, please let me know.
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     <B>create_bmp_for_circ_in_rect</B> is a pre-processor for <B>atlc</B>, the
+     finite difference program that is used to calculate the pro-
+     perties of a two-conductor electrical transmission  line  of
+     arbitrary       cross       section.       The       program
+     <B>create_bmp_for_circ_in_rect</B> is used as a fast  way  of  gen-
+     erating  bitmaps  (there  is  no need to use a graphics pro-
+     gram), for a circular conductor inside a rectangular conduc-
+     tor, like this:
+
+     --------------------------------------------------------  ^
+     |                                                      |  |
+     |                                                      |  |
+     |                                                      |  |
+     |                                                      |  |
+     |                                                      |  |
+     |           Dielectric, permittivity=Er                |  |
+     |                                                      |  |
+     |                                                      |  |
+     |                                                      |  |
+     |                                                      |  |
+     |         &lt;------x------&gt; ^                            |  H
+     |       *****             |                            |  |
+     |    ***********          y                            |  |
+     |   *************         |                            |  |
+     |   **************        |                            |  |
+     |   &lt;-----d------&gt;        v                            |  |
+     |   **************                                     |  |
+     |   *************                                      |  |
+     |    ***********                                       |  |
+     |        ***                                           |  |
+     |                                                      |  |
+     -------------------------------------------------------   v
+     &lt;---------------------------W--------------------------&gt;
+
+     The parameters 'W' and 'H' and the inner dimensions  of  the
+     outer  conductor.  The inner conductor has a diameter of 'd'
+     and is offset from the centre of the outer conductor  by  an
+     amount  'x'  horizontally  and  'y'  vertically.   The space
+     between the inner and outer conductors is  a  dielectric  of
+     relative  permittivity  'Er'.  If  there  is  just  a vacuum
+     dielectric, then 'Er' should be set to 1.0
+
+     The bitmap is printed to standard output, which <B>MUST</B> be  re-
+     directed to either a file in one of the following two ways.
+
+     <B>create_bmp_for_circ_in_rect</B>  <B>d</B> <B>W</B> <B>H</B> <B>x</B> <B>y</B> <B>Er</B> <B>&gt;</B> <B>filename.bmp</B> OR
+     <B>create_bmp_for_circ_in_rect</B> <B>-f</B> <B>filename.bmp</B> <B>d</B> <B>W</B> <B>H</B> <B>x</B> <B>y</B> <B>Er</B>
+
+     The bitmaps produced by <B>create_bmp_for_circ_in_rect</B> are  24-
+     bit bit colour bitmaps, as are required by <B>atlc</B>.
+
+     The permittivities of the bitmap, set by 'Er', determine the
+     colours in the bitmap. If Er1 is 1.0, 1.006, 2.1, 2.2, 2.33,
+     2.5, 3.3, 3.335, 3.7, 4.8,  10.2  or  100  then  the  colour
+     corresponding  to that permittivity will be set according to
+     the colours defined in COLOURS below. If Er is  not  one  of
+     those  permittivities, the region of permittivity Er will be
+     set to the colour 0xCAFF00. The program <B>atlc</B> does  not  know
+     what these permittivites are, so <B>atlc</B>, must be told with the
+     -d command line option, as in example 4 below.
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+     <B>-b</B> <B>bitmapsize</B>
+     is used to set the size of the bitmap, and so  the  accuracy
+     to  which  atlc is able to calculate the transmission line's
+     properties. The default value for 'bitmapsize'  is  normally
+     4,  although  this  is set at compile time. The value can be
+     set anywhere from 1 to 15, but more than 8 is  probably  not
+     sensible.
+
+     <B>-f</B> <B>outfile</B>
+
+     <B>-v</B>
+     Causes <B>create_bmp_for_circ_in_rect</B> to  print  some  data  to
+     stderr. Note, nothing extra goes to standard output, as that
+     is expected to be redirected to a bitmap file.
+
+
+
+
+</PRE>
+<H2>COLOURS</H2><PRE>
+     The 24-bit bitmaps that <B>atlc</B> expects, have 8  bits  assigned
+     to  represent the amount of red, 8 for blue and 8 for green.
+     Hence there are 256 levels of red, green and blue, making  a
+     total of 256*256*256=16777216 colours. Every one of the pos-
+     sible 16777216 colours can be defined precisely by the stat-
+     ing the exact amount of red, green and blue, as in:
+
+     red         = 255,000,000 or 0xff0000
+     green       = 000,255,000 or 0x00ff00
+     blue        = 000,000,255 or 0x0000ff
+     black       = 000,000,000 or 0x000000
+     white       = 255,255,255 or 0xffffff
+     Brown       = 255,000,255 or 0xff00ff
+     gray        = 142,142,142 or 0x8e8e8e
+
+     Some colours, such as pink, turquoise,  sandy,  brown,  gray
+     etc  may mean slightly different things to different people.
+     This is not so with <B>atlc</B>, as the program expects the colours
+     below  to  be EXACTLY defined as given. Whether you feel the
+     colour is sandy or yellow is up to you, but if you use it in
+     your  bitmap, then it either needs to be a colour recognised
+     by atlc, <B>or</B> you must define it with a  command  line  option
+     (see OPTIONS and example 5 below).
+     The following conductors are recognised by atlc:
+     red    = 255,000,000 or 0xff0000 is the live conductor.
+     green  = 000,255,000 or 0x00ff00 is the grounded conductor.
+     black  = 000,000,000 or 0x000000 is the negative conductor
+
+     All bitmaps <B>must</B> have the live (red)  and  grounded  (green)
+     conductor.  The  black conductor is not currently supported,
+     but it will be used to indicate a negative conductor,  which
+     will  be needed if/when the program gets extended to analyse
+     directional couplers.
+
+     The following dielectrics are recognised by atlc <B>and</B> <B>so</B>  <B>are</B>
+     <B>produced</B> <B>by</B> create_bmp_for_circ_in_rect<B>.</B>
+
+     white     255,255,255 or 0xFFFFFF as Er=1.0   (vacuum)
+     white     255,202,202 or 0xFFCACA as Er=1.0006 (air)
+     blue      000,000,255 or 0x0000FF as Er=2.1   (PTFE)
+     Mid gray  142,242,142 or 0x8E8E8E as Er=2.2   (duroid 5880)
+     mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+     yellow    255,255,000 or 0xFFFF00 as Er=2.5   (polystyrene)
+     sandy     239,203,027 or 0xEFCC1A as Er=3.3   (PVC)
+     brown     188,127,096 or 0xBC7F60 as Er=3.335 (epoxy resin)
+     Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8   (glass PCB)
+     Dark gray 142,142,142 or ox696969 as Er=6.15  (duroid 6006)
+     L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+     D. Orange 213,160,077 or 0xD5A04D as Er=100   (for testing)
+     If the permittivity is one not in the above list, then those
+     parts  of  the  image  with Er1 will be set to 0xCAFF00, and
+     those parts with Er2 to 0xAC82AC.
+
+
+</PRE>
+<H2>EXAMPLES</H2><PRE>
+     Here   are    a    few    examples    of    the    use    of
+     <B>create_bmp_for_circ_in_rect</B>.  Again, see the html documenta-
+     tion in atlc-X.Y.Z/docs/html-docs for more examples.
+
+     In the first example, there is just an  air  dielectric,  so
+     Er1=Er2=1.0.   The inner of 1x1 inches (or mm, miles etc) is
+     placed centrally in an outer with dimensions 3 x 3 inches.
+
+     The exact place where the  dielectric  starts  (a)  and  its
+     width (d) are unimportant, but they must still be entered.
+
+     <B>%</B> <B>create_bmp_for_circ_in_rect</B> <B>3</B> <B>3</B> <B>1</B> <B>1</B> <B>1</B> <B>1</B> <B>1</B> <B>1</B> <B>&gt;</B> <B>ex1.bmp</B>
+     <B>%</B> <B>atlc</B> <B>ex1.bmp</B>
+
+     In this second example, an inner of 15.0 mm x 0.5 mm is sur-
+     rounded  by an outer with internal dimensions of 61.5 x 20.1
+     mm. There is a material with permittivity 2.1 (Er  of  PTFE)
+     below    the    inner    conductor.    The    output    from
+     <B>create_bmp_for_circ_in_rect</B> is sent to a file ex1.bmp, which
+     is then processed by <B>atlc</B>
+
+     <B>%</B> <B>create_bmp_for_circ_in_rect</B> <B>61.5</B> <B>20.1</B> <B>5</B> <B>22</B> <B>0.5</B> <B>50</B> <B>15</B> <B>5</B> <B>1.0</B>
+     <B>2.1</B> <B>&gt;</B> <B>ex2.bmp</B>
+     <B>%</B> <B>atlc</B> <B>ex2.bmp</B>
+
+     In example 3, the bitmap is made larger, to  increase  accu-
+     racy, but otherwise this is identical to the second example.
+     <B>%</B> <B>create_bmp_for_circ_in_rect</B> <B>-b7</B> <B>61.5</B> <B>20.1</B> <B>5</B> <B>22</B> <B>0.5</B> <B>50</B> <B>15</B> <B>5</B>
+     <B>1.0</B> <B>2.1</B> <B>&gt;</B> <B>ex3.bmp</B>
+     <B>%</B> <B>atlc</B> <B>ex3.bmp</B>
+
+     In   the   fourth   example,   instead    of    re-directing
+     <B>create_bmp_for_circ_in_rect's</B>  output  to  a file with the &gt;
+     sign, it is done using the -f option.
+     <B>%</B> <B>create_bmp_for_circ_in_rect</B> <B>-f</B> <B>ex4.bmp</B> <B>61.5</B> <B>20.1</B> <B>5</B> <B>22</B>  <B>0.5</B>
+     <B>50</B> <B>15</B> <B>5</B> <B>1.0</B> <B>2.1</B>
+     <B>%</B> <B>atlc</B> <B>ex4.bmp</B>
+
+     In the fifth example, materials with permittivites 2.78  and
+     7.89  are  used.  While  there  is  no  change in how to use
+     <B>create_bmp_for_circ_in_rect</B>, since these permittivities  are
+     not known, we must tell <B>atlc</B> what they are.
+
+     <B>%</B> <B>create_bmp_for_circ_in_rect</B> <B>61</B> <B>20</B> <B>1</B> <B>4</B> <B>22</B> <B>0.5</B> <B>50</B> <B>15</B> <B>5</B>  <B>2.78</B>
+     <B>7.89</B> <B>&gt;</B> <B>ex5.bmp</B> <B>%</B> <B>atlc</B> <B>-d</B> <B>CAFF00=2.78</B> <B>-d</B> <B>AC82AC=7.89</B> <B>ex5.bmp</B>
+
+     In the sixth and final example, the -v  option  is  used  to
+     print     some     extra     data     to     stderr     from
+     <B>create_bmp_for_circ_in_rect</B>.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>                       <B>create_bmp_for_circ_in_circ(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_rect_in_rect(1)</B>
+     <B>create_bmp_for_stripline_coupler(1)</B>
+     <B>create_bmp_for_symmetrical_stripline(1)</B>    <B>design_coupler(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B> <B>readbin(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/create_bmp_for_rect_cen_in_rect.1.html b/docs/html-docs/create_bmp_for_rect_cen_in_rect.1.html
new file mode 100644 (file)
index 0000000..7bd00b6
--- /dev/null
@@ -0,0 +1,236 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>create_bmp_for_rect_cen_in_rect</B> - bitmap generator for  rec-
+     tangular  conductor  inside  rectangular  conductor (part of
+     <B>atlc</B>)
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>create_bmp_for_rect_cen_in_rect</B> <B>[options...</B> <B>]</B> <B>W</B>  <B>H</B>  <B>w</B>  <B>h</B>  <B>Er</B>
+     <B>outfile.bmp</B>
+
+
+</PRE>
+<H2>WARNING</H2><PRE>
+     This man page is not a complete set of documentation  -  the
+     complexity  of the atlc project makes man pages not an ideal
+     way to document it, although out of completeness, man  pages
+     are produced. The best documentation that was current at the
+     time the version was produced should be found on  your  hard
+     drive, usually at
+     /usr/local/share/atlc/docs/html-docs/index.html
+     although it might be elsewhere if your system  administrator
+     chose  to  install  the package elsewhere. Sometimes, errors
+     are  corrected  in   the   documentation   and   placed   at
+     http://atlc.sourceforge.net/ before a new release of atlc is
+     released.  Please, if you notice a problem with the documen-
+     tation - even spelling errors and typos, please let me know.
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     <B>create_bmp_for_rect_cen_in_rect</B> is a pre-processor for <B>atlc</B>,
+     the  finite difference program that is used to calculate the
+     properties of a two-conductor electrical  transmission  line
+     of      arbitrary     cross     section.     The     program
+     <B>create_bmp_for_rect_cen_in_rect</B> is used as  a  fast  way  of
+     generating  bitmaps (there is no need to use a graphics pro-
+     gram), for a rectangular conductor placed  centrally  inside
+     another rectangular conductor, like this:
+
+     -----------------------------------------------------  ^
+     |                                                   |  |
+     |            Dielectric, permittivity=Er            |  |
+     |                                                   |  |
+     |                                                   |  |
+     |                                                   |  |
+     |             &lt;----------w-----------&gt;              |  |
+     |             ------------------------   ^          |  |
+     |             |                      |   |          |  |
+     |             |  Metallic conductor  |   |          |  H
+     |             |  conductor (must be  |   h          |  |
+     |             |  in  the centre)     |   |          |  |
+     |             |                      |   |          |  |
+     |             ------------------------   ^          |  |
+     |                                                   |  |
+     |                                                   |  |
+     |                                                   |  |
+     |                                                   |  |
+     |                                                   |  |
+     |                                                   |  |
+     -----------------------------------------------------  |
+     &lt;---------------------------W-----------------------&gt;
+
+     The parameters 'W' and 'H' and the inner dimensions  of  the
+     outer  conductor.  The outer dimensions of the inner conduc-
+     tor are 'w' and 'h'. The inner conductor is  assumed  be  be
+     placed  centrally  inside  the  outer  conductor. The spaced
+     between the two conductors is filled with  a  dielectric  of
+     relative permittivity Er
+
+     The bitmaps produced by <B>create_bmp_for_rect_cen_in_rect</B>  are
+     24-bit bit colour bitmaps, as required by <B>atlc</B>.
+
+     The permittivity of the bitmap, set by 'Er',  determine  the
+     colours  in  the  bitmap. If Er is 1.0, 2.1, 2.2, 2.33, 2.5,
+     3.3, 3.335, 4.8 or 10.2, then the  colour  corresponding  to
+     that  permittivity  will  be  set  according  to the colours
+     defined in COLOURS below. If Er is not one of those  permit-
+     tivities,  the  region of permittivity Er will be set to the
+     colour 0xCAFF00. The program <B>atlc</B> does not know  what  these
+     permittivites  are,  so  they  <B>atlc</B>,  must  be told with the
+     comand line option -d, as in example 4 below.
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+     <B>-b</B> <B>bitmapsize</B>
+     is used to set the size of the bitmap, and so  the  accuracy
+     to  which  atlc is able to calculate the transmission line's
+     properties. The default value for 'bitmapsize'  is  normally
+     4,  although  this  is set at compile time. The value can be
+     set anywhere from 1 to 15, but more than 8 is  probably  not
+     sensible.
+
+     <B>-f</B> <B>outfile</B>
+     Set the output filename. By default, the bitmap is  sent  to
+     stdout,  but  it *must* be sent to a file, with this option,
+     or as described above.
+
+     <B>-v</B>
+     Causes <B>create_bmp_for_rect_cen_in_rect</B> to print some data to
+     stdout.
+
+
+
+</PRE>
+<H2>COLOURS</H2><PRE>
+     The 24-bit bitmaps that <B>atlc</B> expects, have 8  bits  assigned
+     to  represent the amount of red, 8 for blue and 8 for green.
+     Hence there are 256 levels of red, green and blue, making  a
+     total of 256*256*256=16777216 colours. Every one of the pos-
+     sible 16777216 colours can be defined precisely by the stat-
+     ing the exact amount of red, green and blue, as in:
+     red         = 255,000,000 or 0xff0000
+     green       = 000,255,000 or 0x00ff00
+     blue        = 000,000,255 or 0x0000ff
+     black       = 000,000,000 or 0x000000
+     white       = 255,255,255 or 0xffffff
+     Brown       = 255,000,255 or 0xff00ff
+     gray        = 142,142,142 or 0x8e8e8e
+
+     Some colours, such as pink, turquoise,  sandy,  brown,  gray
+     etc  may mean slightly different things to different people.
+     This is not so with <B>atlc</B>, as the program expects the colours
+     below  to  be EXACTLY defined as given. Whether you feel the
+     colour is sandy or yellow is up to you, but if you use it in
+     your  bitmap, then it either needs to be a colour recognised
+     by atlc, <B>or</B> you must define it with a  command  line  option
+     (see OPTIONS and example 5 below).
+     The following conductors are recognised by atlc:
+     red    = 255,000,000 or 0xff0000 is the live conductor.
+     green  = 000,255,000 or 0x00ff00 is the grounded conductor.
+     blue   = 000,000,000 or 0x000000 is the negative conductor
+
+     All bitmaps <B>must</B> have the live (red)  and  grounded  (green)
+     conductor.  The  blue  conductor is not currently supported,
+     but it will be used to indicate a negative conductor,  which
+     will  be needed if/when the program gets extended to analyse
+     directional couplers.
+
+     The following dielectrics are recognised by atlc <B>and</B> <B>so</B>  <B>are</B>
+     <B>produced</B> <B>by</B> create_bmp_for_rect_cen_in_rect<B>.</B>
+
+     white      255,255,255 or 0xFFFFFF as Er=1.0   (vacuum)
+     pink       255,202,202 or 0xFFCACA as Er=1.0006 (air)
+     light blue 130,052,255 or 0x8235Ef as Er=2.1   (PTFE)
+     Mid gray   142,242,142 or 0x8E8E8E as Er=2.2   (duroid 5880)
+     mauve         255.000,255    or    0xFF00FF    as    Er=2.33
+     (polyethylene)  yellow     255,255,000 or 0xFFFF00 as Er=2.5
+     (polystyrene)
+     sandy      239,203,027 or 0xEFCC1A as Er=3.3   (PVC)
+     brown      188,127,096 or 0xBC7F60 as Er=3.335 (epoxy resin)
+     Turquoise  026,239,179 or 0x1AEFB3 as Er=4.8   (glass PCB)
+     Dark gray  142,142,142 or ox696969 as Er=6.15  (duroid 6006)
+     L. gray    240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+     D. orange  213,130,067 or 0xD5A04D as Er=100.0  (mainly  for
+     test purposes)
+     If the permittivity is one not in the above list, then those
+     parts of the image with Er will be set to 0xCAFF00.
+
+
+</PRE>
+<H2>EXAMPLES</H2><PRE>
+     Here   are    a    few    examples    of    the    use    of
+     <B>create_bmp_for_rect_cen_in_rect</B>.  Again,  see the html docu-
+     mentation in  atlc-X.Y.Z/docs/html-doc/index.html  for  more
+     examples.
+     1) In the first example, there is just a vacuum  dielectric,
+     so  Er=1.0.   The  inner of 1x1 inches (or mm, miles etc) is
+     placed centrally in an  outer  with  dimensions  3.3  x  3.9
+     inches.
+
+     <B>%</B> <B>create_bmp_for_rect_cen_in_rect</B> <B>3.3</B> <B>3.9</B> <B>1</B> <B>1</B> <B>1</B> <B>&gt;</B> <B>1.bmp</B>
+     <B>%</B> <B>atlc</B> <B>1.bmp</B>
+
+     2) In this second example, an inner of 15.0 mm x 5.0  mm  is
+     surrounded  by  an  outer with internal dimensions of 71.5 x
+     60.0 mm. There is a material with permittivity  2.1  (Er  of
+     PTFE)   around   the   inner   conductor.  The  output  from
+     <B>create_bmp_for_rect_cen_in_rect</B> is sent  to  a  file  2.bmp,
+     which is then processed by <B>atlc</B>
+
+     <B>%</B> <B>create_bmp_for_rect_cen_in_rect</B> <B>71.5</B> <B>60.0</B> <B>15.0</B> <B>5.0</B>  <B>2.1</B>  <B>&gt;</B>
+     <B>2.bmp</B>
+     <B>%</B> <B>atlc</B> <B>2.bmp</B>
+
+     3) In example 3, the bitmap  is  made  larger,  to  increase
+     accuracy,  but  otherwise  this  is  identical to the second
+     example. <B>%</B> <B>create_bmp_for_rect_cen_in_rect</B> <B>-b7</B> <B>71.5</B> <B>60</B> <B>15</B>  <B>5</B>
+     <B>2.1</B> <B>&gt;</B> <B>3.bmp</B>
+     <B>%</B> <B>atlc</B> <B>3.bmp</B>
+
+     In   the   fourth   example,   instead    of    re-directing
+     <B>create_bmp_for_rect_cen_in_rect's</B>  output to a file with the
+     &gt; sign, it is done using the -f option.
+     <B>%</B> <B>create_bmp_for_rect_cen_in_rect</B> <B>-f</B> <B>4.bmp</B> <B>61.5</B>  <B>28.1</B>  <B>5</B>  <B>22</B>
+     <B>2.1</B>
+     <B>%</B> <B>atlc</B> <B>4.bmp</B>
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>                       <B>create_bmp_for_circ_in_circ(1)</B>
+     <B>create_bmp_for_circ_in_rect(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_rect_in_rect(1)</B>
+     <B>create_bmp_for_stripline_coupler(1)</B>
+     <B>create_bmp_for_symmetrical_stripline(1)</B>    <B>design_coupler(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B> <B>readbin(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/create_bmp_for_rect_cen_in_rect_coupler.1 b/docs/html-docs/create_bmp_for_rect_cen_in_rect_coupler.1
new file mode 100644 (file)
index 0000000..cdf1af5
--- /dev/null
@@ -0,0 +1,66 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>sorry_no_written_yet</B> - part of atlc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/create_bmp_for_rect_in_circ.1.html b/docs/html-docs/create_bmp_for_rect_in_circ.1.html
new file mode 100644 (file)
index 0000000..cdf1af5
--- /dev/null
@@ -0,0 +1,66 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>sorry_no_written_yet</B> - part of atlc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/create_bmp_for_rect_in_rect.1.html b/docs/html-docs/create_bmp_for_rect_in_rect.1.html
new file mode 100644 (file)
index 0000000..d462643
--- /dev/null
@@ -0,0 +1,288 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>create_bmp_for_rect_in_rect</B> - bitmap generator for rectangu-
+     lar conductor inside rectangular conductor (part of <B>atlc</B>)
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>create_bmp_for_rect_in_rect</B> <B>[options...</B> <B>]</B> <B>W</B> <B>H</B> <B>a</B> <B>b</B> <B>c</B>  <B>d</B>  <B>w</B>  <B>h</B>
+     <B>Er1</B> <B>Er2</B> <B>filename.bmp</B>
+
+
+</PRE>
+<H2>WARNING</H2><PRE>
+     This man page is not a complete set of documentation  -  the
+     complexity  of the atlc project makes man pages not an ideal
+     way to document it, although out of completeness, man  pages
+     are produced. The best documentation that was current at the
+     time the version was produced should be found on  your  hard
+     drive, usually at
+     /usr/local/share/atlc/docs/html-docs/index.html
+     although it might be elsewhere if your system  administrator
+     chose  to  install  the package elsewhere. Sometimes, errors
+     are  corrected  in   the   documentation   and   placed   at
+     http://atlc.sourceforge.net/ before a new release of atlc is
+     released.  Please, if you notice a problem with the documen-
+     tation - even spelling errors and typos, please let me know.
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     <B>create_bmp_for_rect_in_rect</B> is a pre-processor for <B>atlc</B>, the
+     finite difference program that is used to calculate the pro-
+     perties of a two and three conductor electrical transmission
+     line    of    arbitrary    cross    section.   The   program
+     <B>create_bmp_for_rect_in_rect</B> is used as a fast  way  of  gen-
+     erating  bitmaps  (there  is  no need to use a graphics pro-
+     gram), for a rectangular conductor inside a rectangular con-
+     ductor, with two dieletrics, like this:
+
+     -----------------------------------------------------  ^
+     |                                                   |  |
+     |     &lt;--------------d-------------------&gt;          |  |
+     |                                                   |  |
+     |         &lt;----------w-----------&gt;                  |  |
+     |         ------------------------   ^              |  |
+     |         |                      |   |              |  |
+     |         |  Metallic conductor  |   |              |  H
+     |&lt;----b--&gt;|  conductor (can be   |   c   Er1        |  |
+     |         |  off-centre)         |   |              |  |
+     |         |                      |   |              |  |
+     |     ------------------------------------ ^        |  |
+     |     |..................................| |        |  |
+     |     |...Dielectric, permittivity=Er2...| |        |  |
+     |&lt;-a-&gt;|.....(can be off centre ).........| h        |  |
+     |     |..................................| |        |  |
+     |     |..................................| |        |  |
+     -----------------------------------------------------  |
+     &lt;---------------------------W-----------------------&gt;
+
+     The parameters 'W' and 'H' and the inner dimensions  of  the
+     outer  conductor.  The outer dimensions of the inner conduc-
+     tor are 'w' and 'c'. The inner conductor is assumed to  rest
+     on  a dielectric (Er2) which is 'd' wide and outer conductor
+     an the inner conductor is offset  'b'  from  the  left  hand
+     sidewall  of  the  outer conductor. The whole region is sur-
+     rounded by a dielectric of relative permittivity 'Er1'.  The
+     dielectrics 'Er1' and then 'Er1' and 'Er2' will both be 1.0
+
+     The bitmap is printed to the file  specifiled  as  the  last
+     argument
+
+     <B>create_bmp_for_rect_in_rect</B> <B>-f</B> <B>filename.bmp</B> <B>W</B> <B>H</B> <B>a</B> <B>b</B> <B>c</B> <B>d</B> <B>w</B>  <B>h</B>
+     <B>Er1</B> <B>Er2</B>
+
+     The bitmaps produced by <B>create_bmp_for_rect_in_rect</B> are  24-
+     bit bit colour bitmaps, as are required by <B>atlc</B>.
+
+     The permittivities of the bitmap, set by  'Er1'  and  'Er2',
+     determine  the  colours in the bitmap. If Er1 or Er2 is 1.0,
+     1.0006, 2.1, 2.2, 2.33, 2.5, 3.3, 3.335, 3.7, 4.8,  10.2  or
+     100, then the colour corresponding to that permittivity will
+     be set according to the colours defined in COLOURS below. If
+     Er1  is  not one of those permittivities, the region of per-
+     mittivity Er1 will be set to the colour 0xCAFF00. If Er2  is
+     not  one  of those values, then the region of the image will
+     be set to the colour 0xAC82AC. The  program  <B>atlc</B>  does  not
+     know  what  these  permittivites  are, so they <B>atlc</B>, must be
+     told with the comand line option -d, as in example 4 below.
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+     <B>-b</B> <B>bitmapsize</B>
+     is used to set the size of the bitmap, and so  the  accuracy
+     to  which  atlc is able to calculate the transmission line's
+     properties. The default value for 'bitmapsize'  is  normally
+     4,  although  this  is set at compile time. The value can be
+     set anywhere from 1 to 15, but more than 8 is  probably  not
+     sensible.
+
+     <B>-f</B> <B>outfile</B>
+     Set the output filename. By default, the bitmap is  sent  to
+     stdout,  but  it *must* be sent to a file, with this option,
+     or as described above.
+
+     <B>-v</B>
+     Causes <B>create_bmp_for_rect_in_rect</B> to  print  some  data  to
+     stderr. Note, nothing extra goes to standard output, as that
+     is expected to be redirected to a bitmap file.
+
+
+
+</PRE>
+<H2>COLOURS</H2><PRE>
+     The 24-bit bitmaps that <B>atlc</B> expects, have 8  bits  assigned
+     to  represent the amount of red, 8 for blue and 8 for green.
+     Hence there are 256 levels of red, green and blue, making  a
+     total of 256*256*256=16777216 colours. Every one of the pos-
+     sible 16777216 colours can be defined precisely by the stat-
+     ing the exact amount of red, green and blue, as in:
+
+     red         = 255,000,000 or 0xff0000
+     green       = 000,255,000 or 0x00ff00
+     blue        = 000,000,255 or 0x0000ff
+     black       = 000,000,000 or 0x000000
+     white       = 255,255,255 or 0xffffff
+     Brown       = 255,000,255 or 0xff00ff
+     gray        = 142,142,142 or 0x8e8e8e
+
+     Some colours, such as pink, turquoise,  sandy,  brown,  gray
+     etc  may mean slightly different things to different people.
+     This is not so with <B>atlc</B>, as the program expects the colours
+     below  to  be EXACTLY defined as given. Whether you feel the
+     colour is sandy or yellow is up to you, but if you use it in
+     your  bitmap, then it either needs to be a colour recognised
+     by atlc, <B>or</B> you must define it with a  command  line  option
+     (see OPTIONS and example 5 below).
+     red    = 255,000,000 or 0xFF0000 is the live conductor.
+     green  = 000,255,000 or 0x00FF00 is the grounded conductor.
+     blue   = 000,000,000 or 0x0000FF is the negative conductor
+
+     All bitmaps <B>must</B> have the live (red)  and  grounded  (green)
+     conductor.  The  blue  conductor is not currently supported,
+     but it will be used to indicate a negative conductor,  which
+     will  be needed if/when the program gets extended to analyse
+     directional couplers.
+
+     The following dielectrics are recognised by atlc <B>and</B> <B>so</B>  <B>are</B>
+     <B>produced</B> <B>by</B> create_bmp_for_rect_cen_in_rect<B>.</B>
+
+     white     255,255,255 or 0xFFFFFF as Er=1.0    (vacuum)
+     pink      255,202,202 or 0xFFCACA as Er=1.0006 (air)
+     L. blue   130,052,255 or 0x8235EF as Er=2.1    (PTFE)
+     Mid gray  142,242,142 or 0x8E8E8E as Er=2.2    (duroid 5880)
+     mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+     yellow    255,255,000 or 0xFFFF00 as Er=2.5    (polystyrene)
+     sandy     239,203,027 or 0xEFCC1A as Er=3.3    (PVC)
+     brown     188,127,096 or 0xBC7F60 as Er=3.335  (epoxy resin)
+     Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8    (glass PCB)
+     Dark gray 142,142,142 or 0x696969 as Er=6.15   (duroid 6006)
+     L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+     D. orange 213,160,067 or 0xD5A04D as  Er=100.0  (mainly  for
+     test purposes)
+
+
+
+</PRE>
+<H2>EXAMPLES</H2><PRE>
+     Here   are    a    few    examples    of    the    use    of
+     <B>create_bmp_for_rect_in_rect</B>.  Again, see the html documenta-
+     tion in atlc-X.Y.Z/docs/html-docs/index.html for more  exam-
+     ples.
+
+     In the first example, there is just an  air  dielectric,  so
+     Er1=Er2=1.0.   The inner of 1x1 inches (or mm, miles etc) is
+     placed centrally in an outer with dimensions 3 x 3 inches.
+
+     The exact place where the  dielectric  starts  (a)  and  its
+     width (d) are unimportant, but they must still be entered.
+
+     <B>%</B> <B>create_bmp_for_rect_in_rect</B> <B>3</B> <B>3</B> <B>1</B> <B>1</B> <B>1</B> <B>1</B> <B>1</B> <B>1</B> <B>&gt;</B> <B>ex1.bmp</B>
+     <B>%</B> <B>atlc</B> <B>ex1.bmp</B>
+
+     In this second example, an inner of 15.0 mm x 0.5 mm is sur-
+     rounded  by an outer with internal dimensions of 61.5 x 20.1
+     mm. There is a material with permittivity 2.1 (Er  of  PTFE)
+     below    the    inner    conductor.    The    output    from
+     <B>create_bmp_for_rect_in_rect</B> is sent to a file ex1.bmp, which
+     is then processed by <B>atlc</B>
+
+     <B>%</B> <B>create_bmp_for_rect_in_rect</B> <B>61.5</B> <B>20.1</B> <B>5</B> <B>22</B> <B>0.5</B> <B>50</B> <B>15</B> <B>5</B> <B>1.0</B>
+     <B>2.1</B> <B>&gt;</B> <B>ex2.bmp</B>
+     <B>%</B> <B>atlc</B> <B>ex2.bmp</B>
+
+     In example 3, the bitmap is made larger, to  increase  accu-
+     racy, but otherwise this is identical to the second example.
+     <B>%</B> <B>create_bmp_for_rect_in_rect</B> <B>-b7</B> <B>61.5</B> <B>20.1</B> <B>5</B> <B>22</B> <B>0.5</B> <B>50</B> <B>15</B> <B>5</B>
+     <B>1.0</B> <B>2.1</B> <B>&gt;</B> <B>ex3.bmp</B>
+     <B>%</B> <B>atlc</B> <B>ex3.bmp</B>
+
+     In the fourth example, materials with permittivites 2.78 and
+     7.89  are  used.  While  there  is  no  change in how to use
+     <B>create_bmp_for_rect_in_rect</B>, since these permittivities  are
+     not known, we must tell <B>atlc</B> what they are.
+
+     <B>%</B> <B>create_bmp_for_rect_in_rect</B> <B>61</B> <B>20</B> <B>1</B> <B>4</B> <B>22</B> <B>0.5</B> <B>50</B> <B>15</B> <B>5</B>  <B>2.78</B>
+     <B>7.89</B> <B>&gt;</B> <B>ex5.bmp</B> <B>%</B> <B>atlc</B> <B>-d</B> <B>CAFF00=2.78</B> <B>-d</B> <B>AC82AC=7.89</B> <B>ex5.bmp</B>
+
+     In the sixth and final example, the -v  option  is  used  to
+     print     some     extra     data     to     stderr     from
+     <B>create_bmp_for_rect_in_rect</B>.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>                       <B>create_bmp_for_circ_in_circ(1)</B>
+     <B>create_bmp_for_circ_in_rect(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_stripline_coupler(1)</B>
+     <B>create_bmp_for_symmetrical_stripline(1)</B>    <B>design_coupler(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B> <B>readbin(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/create_bmp_for_stripline_coupler.1.html b/docs/html-docs/create_bmp_for_stripline_coupler.1.html
new file mode 100644 (file)
index 0000000..a1eda52
--- /dev/null
@@ -0,0 +1,186 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>create_bmp_for_stripline_coupler</B>  -  bitmap  generator   for
+     coupler  with  thin  striplines  between two infinitely wide
+     groundplanes (part of <B>atlc</B>)
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>create_bmp_for_stripline_coupler</B> <B>[-C]</B> <B>[-b</B> <B>bitmapsize]</B> <B>[-v]</B> <B>H</B>
+     <B>w</B> <B>s</B> <B>Er</B> <B>outputfile</B>
+
+
+</PRE>
+<H2>WARNING</H2><PRE>
+     This man page is not a complete set of documentation  -  the
+     complexity  of the atlc project makes man pages not an ideal
+     way to document it, although out of completeness, man  pages
+     are produced. The best documentation that was current at the
+     time the version was produced should be found on  your  hard
+     drive, usually at
+     /usr/local/share/atlc/docs/html-docs/index.html
+     although it might be elsewhere if your system  administrator
+     chose  to  install  the package elsewhere. Sometimes, errors
+     are  corrected  in   the   documentation   and   placed   at
+     http://atlc.sourceforge.net/ before a new release of atlc is
+     released.  Please, if you notice a problem with the documen-
+     tation - even spelling errors and typos, please let me know.
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     <B>create_bmp_for_stripline_coupler</B>  is  a  pre-processor   for
+     <B>atlc</B>,  the  finite difference program that is used to calcu-
+     late the properties of a two and three conductor  electrical
+     transmission  lines  of arbitrary cross section. The program
+     <B>create_bmp_for_stripline_coupler</B> is used as a  fast  way  of
+     generating  bitmaps (there is no need to use a graphics pro-
+     gram), for a pair of 1 pixel thick conductors  of  width  w,
+     spaced  a distance s apart, inside a pair of groundplanes of
+     separation H. This has an exact analytical answer, when  the
+     inner  is  infinitely thin and the overall width W is infin-
+     itely wide. This theoretical  impedance  is  calculated  and
+     printed   to   stderr   if   the   -v  option  is  given  on
+     create_bmp_for_stripline_coupler's command line.
+
+     -----------------------------------------------------  ^
+     |                                                   |  |
+     |                  Er                               |  |
+     |                                                   |  |
+     |            -----------       -----------          |  H
+     |            &lt;----w----&gt;&lt;--s--&gt;&lt;----w----&gt;          |  |
+     |                                                   |  |
+     |                                                   |  |
+     |                                                   |  |
+     -----------------------------------------------------  v
+     &lt;-------------------------W-------------------------&gt;
+
+     The overall width W is calculated  internally  to  be  large
+     enough that making it any larger will have negligible effect
+     on the results.  The dielectric is assumed that of vacuum.
+
+     The bitmaps produced by <B>create_bmp_for_stripline_coupler</B> are
+     24-bit bit colour bitmaps, as are required by <B>atlc</B>.
+
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+     <B>-C</B>
+     Print the full copyright information and exit.
+
+     <B>-b</B> <B>bitmapsize</B>
+     is used to set the size of the bitmap, and so  the  accuracy
+     to which atlc is able to calculate the coupler's properties.
+     The default value for 'bitmapsize' is normally  18  although
+     this     can     be    set    at    compile    time.    (see
+     'DEFAULT_COUPLER_BITMAP_SIZE' in definitions.h).  The  value
+     can  be  set  anywhere from 6 to 28. The size of bitmap pro-
+     duced will be between 2^(bitmapsize-1) and 2^(bitmapsize+1),
+     so  if  its  set to 28 the bitmap could be as big as 512 Mb,
+     which would take an eternity to compute.
+
+     <B>-v</B>
+     Print some extra data to stdout on the theoretical impedance
+     of the structure. This is useful to compare with the numeri-
+     cal result from <B>atlc</B>
+
+
+</PRE>
+<H2>EXAMPLES</H2><PRE>
+     In the first example, a standard coupler is  created,  where
+     the
+
+
+     eg1.  create_bmp_for_stripline_coupler   1.23  0.7  1.2  1.0
+     coupler.bmp
+     eg2. create_bmp_for_stripline_coupler  -b  8  1.23  0.7  3.3
+     small.bmp
+     eg3. create_bmp_for_stripline_coupler -v  12  1.23  0.7  4.8
+     theory.bmp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>                       <B>create_bmp_for_circ_in_circ(1)</B>
+     <B>create_bmp_for_circ_in_rect(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_rect_in_rect(1)</B>
+     <B>create_bmp_for_symmetrical_stripline(1)</B>    <B>design_coupler(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B> <B>readbin(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+</PRE>
+<H2>AUTHOR</H2><PRE>
+     Dr. David Kirkby PhD, drkirkby at ntlworld.com
+
+
+</PRE>
+<H2>COPYRIGHT</H2><PRE>
+     Copyright (c) 2002 Dr. David Kirkby.
+
+     This program is  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 ver-
+     sion.  This program 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 PARTIC-
+     ULAR  PURPOSE.   See the GNU General Public License for more
+     details.  You should have received a copy of the GNU General
+     Public  License  (in  the file COPYING) along with this pro-
+     gram. You may get a full copy of it by running  the  program
+     with  the  -C  option.  Otherwise  you can write to the Free
+     Software Foundation, Inc., 59 Temple Place - Suite 330, Bos-
+     ton, MA  02111-1307, USA.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/create_bmp_for_symmetrical_stripline.1.html b/docs/html-docs/create_bmp_for_symmetrical_stripline.1.html
new file mode 100644 (file)
index 0000000..d326329
--- /dev/null
@@ -0,0 +1,128 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>create_bmp_for_symmetrical_stripline</B> - bitmap generator  for
+     thin  conductor  between  two infinite groundplanes (part of
+     <B>atlc</B>)
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>create_bmp_for_symmetrical_stripline</B> <B>[-v]</B> <B>W</B> <B>H</B> <B>w</B> <B>bitmapfile</B>
+
+
+</PRE>
+<H2>WARNING</H2><PRE>
+     This man page is not a complete set of documentation  -  the
+     complexity  of the atlc project makes man pages not an ideal
+     way to document it, although out of completeness, man  pages
+     are produced. The best documentation that was current at the
+     time the version was produced should be found on  your  hard
+     drive, usually at
+     /usr/local/share/atlc/docs/html-docs/index.html
+     although it might be elsewhere if your system  administrator
+     chose  to  install  the package elsewhere. Sometimes, errors
+     are  corrected  in   the   documentation   and   placed   at
+     http://atlc.sourceforge.net/ before a new release of atlc is
+     released.  Please, if you notice a problem with the documen-
+     tation - even spelling errors and typos, please let me know.
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     <B>create_bmp_for_symmetrical_stripline</B> is a pre-processor  for
+     <B>atlc</B>,  the  finite difference program that is used to calcu-
+     late the properties of a two-conductor electrical  transmis-
+     sion   line   of   arbitrary   cross  section.  The  program
+     <B>create_bmp_for_symmetrical_stripline</B> is used as a  fast  way
+     of  generating  bitmaps  (there is no need to use a graphics
+     program), for a 1 pixel thick conductor  of  width  w,  cen-
+     trally  located inside a pair of groundplanes of width W and
+     separation H. This has an exact analytical answer, when  the
+     inner is infinitely thin and the width W is infinitely wide.
+     This  theoretical  impedance  is  also  calculated  by   the
+     create_bmp_for_symmetrical_stripline.  It  is therefore used
+     as a test of atlc.
+
+     -----------------------------------------------------  ^
+     |                                                   |  |
+     |                                                   |  |
+     |              &lt;----------w-----------&gt;             |  |
+     |                                                   |  H
+     |                                                   |  |
+     |                                                   |  |
+     -----------------------------------------------------  v
+     &lt;-------------------------W-------------------------&gt;
+
+     The parameters 'W' and 'H' and the inner dimensions  of  the
+     outer  conductor.  The outer dimensions of the inner conduc-
+     tor are 'w' and 'c'. The inner conductor is assumed to  rest
+     on  a dielectric (Er2) which is 'd' wide and outer conductor
+     an the inner conductor is offset  'b'  from  the  left  hand
+     sidewall  of  the  outer conductor. The whole region is sur-
+     rounded by a dielectric of relative permittivity 'Er1'.  The
+     dielectrics 'Er1' and then 'Er1' and 'Er2' will both be 1.0
+
+     The bitmaps produced by <B>create_bmp_for_symmetrical_stripline</B>
+     are  24-bit  bit  colour  bitmaps,  as are required by <B>atlc</B>.
+     Currently create_bmp_for_symmetrical_stripline only produces
+     bitmaps with white (vacuum) dielectrics.
+
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+     <B>-v</B>
+     Print the theoeretical impedance Zo. This only works if  the
+     width  W  is sufficiently wide, otherwise atlc and the value
+     printed here would disagree wildly.
+
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>                       <B>create_bmp_for_circ_in_circ(1)</B>
+     <B>create_bmp_for_circ_in_rect(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_rect_in_rect(1)</B>
+     <B>create_bmp_for_stripline_coupler(1)</B>        <B>design_coupler(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B> <B>readbin(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/design_coupler.1.html b/docs/html-docs/design_coupler.1.html
new file mode 100644 (file)
index 0000000..5460d39
--- /dev/null
@@ -0,0 +1,288 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>design_coupler</B> - for designing directional couplers (part of
+     the <B>atlc</B> package)
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>design_coupler</B> <B>[-C][-d][-e][-H</B> <B>height][-L</B> <B>length][-q]</B>
+     <B>[s</B> <B>fstep][-Z</B> <B>Zo]</B> <B>CF</B> <B>fmin</B> <B>fmax</B>
+
+
+</PRE>
+<H2>WARNING</H2><PRE>
+     This man page is not a complete set of documentation  -  the
+     complexity  of the atlc project makes man pages not an ideal
+     way to document it, although out of completeness, man  pages
+     are produced. The best documentation that was current at the
+     time this version was produced should be found on your  hard
+     drive, usually at
+     /usr/local/share/atlc/docs/html-docs/index.html
+     although it might be elsewhere if your system  administrator
+     chose  to  install  the package elsewhere. Sometimes, errors
+     are  corrected  in   the   documentation   and   placed   at
+     http://atlc.sourceforge.net/ before a new release of atlc is
+     released.  Please, if you notice a problem with the documen-
+     tation - even spelling errors and typos, please let me know.
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     <B>design_coupler</B> is used to design directional couplers. It it
+     <B>not</B>  used  to analyse couplers for which you know the dimen-
+     sions. Instead, it is used but when you require a coupler to
+     have  specific  properties,  but don't know the required odd
+     and even mode impedances or the required physical dimensions
+     that will achieve those required properties.
+
+     As a minimum the user must specify the coupling factor CF in
+     dB,  the  minimum frequency fmin in MHz and the maximum fre-
+     quency  fmax   in   MHz.    With   this   information,   the
+     <B>design_coupler</B> will
+     a) Tell you the required odd and even mode  impedances  Zodd
+     and  Zeven  assuming the coupler is for 50 Ohms and assuming
+     the coupler is is a quarter wave long,  which  might  be  an
+     impractical  length.  There  a  numerous  ways  of  making a
+     coupler having those impedances and <B>design_coupler</B> does  not
+     (without  the addition of options mentioned later), tell you
+     how to make such a  coupler.  b)  Given  you  the  frequency
+     response of the coupler, making the assumptions about the 50
+     Ohm  impedance  and  quarter-wave  length.   The   frequency
+     response is calculated at 5 points in the range specified by
+     fmin and fmax.
+
+     By use of the -Z 'Zo' and -L 'length' and -f 'fstep' options
+     it  it posible to specify different a different characteris-
+     tic impedance,  length  and  different  frequency  steps  to
+     display the frequency response.
+     The computed  values of Zodd and Zeven required are valid no
+     matter  how  the  coupler is design physically. So no matter
+     whether it's implemented on a PCB, air spaced  or  whatever,
+     the  above impedances are correct and the frequency response
+     is correct.
+
+     The -d option causes <B>design_coupler</B> to not only  report  the
+     required odd and even modem impedances but also the physical
+     dimensions of a  coupler  that  achieves  these  properties!
+     <B>Currently</B>,  the  only  stucture  for which it is possible to
+     compute the physical dimentions  is  two  wide  edge-coupled
+     striplines between two wide plates like this:
+
+
+     -----------------------------------------------------  ^
+     |                                                   |  |
+     |                  Er                               |  |
+     |                                                   |  |
+     |            -----------       -----------          |  H
+     |            &lt;----w----&gt;&lt;--s--&gt;&lt;----w----&gt;          |  |
+     |                                                   |  |
+     |                                                   |  |
+     |                                                   |  |
+     -----------------------------------------------------  v
+     &lt;-------------------------W-------------------------&gt;
+
+     The width W must be much greater  than  the  height  of  the
+     coupler  and generally it is assumed that this width will at
+     least  2*w+s*5*H,  otherwise  the   calculations   will   be
+     incorrect.  In  order  to  calculate  these  dimenisions  an
+     analytical method is used, which is only valid if the  width
+     W is infinity, but should be resonably good assuming W is at
+     least 2*w+s+5*H.
+
+     It is later intended to enable design coupler to  use  other
+     structures,  which  migth be more suitable for construction,
+     such as microstrip couplers on PCBs, but for now  at  least,
+     it  is  only  possible to compute the physical dimensions of
+     the coupler using the above stucture.  For  strong  coupling
+     (less  than  20 dB or so), the dimenions calculated might be
+     impractical, as the spacing s will be so small. However, for
+     weak coupling, the physcical dimensions are practical.
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+     <B>-C</B>
+     print copyright, licensing and copying information.
+     <B>-d</B>
+     Design a coupler, using two edgle-coupled stiplines inside a
+     wide 4-sided rectangular enclosure.
+
+     <B>-e</B>
+     Priont an example of how to use <B>design_coupler</B>
+     <B>-H</B> <B>height</B>
+     Specify the height of the enclosure in some convenient unit.
+     By  default,  a  height  of 1 unit is assumed, but by use of
+     this option it is possible to specify any height  you  want.
+     Since its the ratio of dimensions that is important, not the
+     absolute values, this just scales all the  other  dimensions
+     by  the  specified  height. It is just a conveneince for the
+     user.
+     <B>-L</B> <B>length</B>
+     Specifies the coupler  length  in  metres.  By  default  the
+     coupler  is assumed to be a quarter-wave, but this allow any
+     length you want. Don't chose a length that is a multiple  of
+     a  half-wave though, as this will make it impossible to cou-
+     ple any power out. <B>-q</B>
+     This is the 'quite'  switch  and  causes  <B>design_coupler</B>  to
+     print  out  less  information.  One can use -qq to cause the
+     even less output.
+     <B>-s</B> <B>fstep</B> Causes <B>design_couler</B> to  print  out  the  frequency
+     response at different steps from the default 5 values. fstep
+     must be in MHz. The default  value  of  fstep  is  obviously
+     (fmax-fman)/5.
+     <B>Z</B> <B>Zo</B>
+     Causes <B>design_coupler</B> to compute properties of an  impedance
+     Zo (shecified in Ohms). The default value for Zo is 50 Ohms.
+
+
+
+</PRE>
+<H2>EXAMPLES</H2><PRE>
+     Run <B>design_coupler</B> gives examples of its use. However,  here
+     are those same examples.
+
+     Here are a examples of how  to  use  <B>design_coupler</B>  In  the
+     examples,  the  % sign is used in front of anything you must
+     type which is what you will probably see when using the  csh
+     or  tcsh  as a shell. It would probably be a $ sign if using
+     the sh or bash shell.
+
+     To find the odd  and  even  mode  impedances  and  frequency
+     response  of a 50 Ohm coupler, covering 130 to 170 MHz, with
+     a coupling coefficient of 30 dB:
+
+     % design_coupler 30 130 170
+
+     Note the frequency response is symmetrical about the  centre
+     frequency  at  0.192  dB  below that wanted. You may wish to
+     redesign this for a coupling coefficient of about  29.9  dB,
+     so  the  maximum  deviation  from  the  ideal  30.0 dB never
+     exceeds 0.1 dB Note the length suggested is  0.5  m  (nearly
+     20")  is  a quarter wave at the centre frequency of 150 MHz.
+     You might find this a bit  too  long,  so  let's  specify  a
+     length of 0.25 m.
+
+
+     % design_coupler -L 0.25 30 130 170
+
+     What you may notice is that while the coupling to  the  cou-
+     pled port is exactly 30 dB below the input power at the cen-
+     tre frequency (150 MHz) it is no  longer  symmetrical  about
+     the  centre frequency. Also, deviations from the ideal 30 dB
+     are now much larger, with a maximum error of 1.012 dB Unlike
+     the  case when the length is the default quarter wave, there
+     is not much you can do  about  this,  since  the  deviations
+     occur in both directions.
+
+     Now assume you are reasonably happy with the  response  when
+     the  length  is 250 mm but would like to see the response at
+     every 2.5 MHz. This can be  done  using  the  -s  option  to
+     design_coupler.
+
+     % design_coupler -L 0.25 -s 2.5 30 130 170
+
+     Assuming the performance is acceptable,  the  dimensions  of
+     the  coupler can be determined by adding the -d option. This
+     will design a coupler that  must  look  like  the  structure
+     below.  The  two  inner conductors, which are spaced equally
+     between the top and bottom edges  of  the  outer  conductor,
+     must  be  very thin.  These are placed along the length of a
+     box of width W, height H and of a length L determined by the
+     user, which in this case is 250 mm.
+
+     -----------------------------------------------------  ^
+     |                                                   |  |
+     |                  Er                               |  |
+     |                                                   |  |
+     |            -----------       -----------          |  H
+     |            &lt;----w----&gt;&lt;--s--&gt;&lt;----w----&gt;          |  |
+     |                                                   |  |
+     |                                                   |  |
+     |                                                   |  |
+     -----------------------------------------------------  v
+     &lt;-------------------------W-------------------------&gt;
+
+     The program reports: H = 1.0, ; w = 1.44  ;  s  =  0.44  The
+     height  of the box H must be small compared to the length L,
+     (perhaps no more than 7% of the length), or 17.5 mm in  this
+     case,  with  a  length of 250 mm, otherwise fringing effects
+     will be significant. The width of the structure W should  be
+     as  large  as  possible.  The  program  suggests making this
+     5*H+2*w+s. The 7% and 5*H+2*w+s are educated guesses, rather
+     than  exact figures. There is no problem in making the width
+     larger than 5*H+2*w+s. The length L must be kept at 250  mm.
+     The  RATIO of the dimensions H, w and s (but not L or W must
+     be kept constant. W just needs to be sufficiently large - it
+     is uncritical.
+
+     If you happened to have some 15 mm square  brass  available,
+     then  using  that  for  the  side-walls would require that H
+     becomes 15*1.0 = 15 mm, w = 15*1.44  =  21.6  mm   and  s  =
+     15*0.44 = 6.6 mm
+
+     There is no need to compute the above scaling with a  calcu-
+     lator,  as  using  The  -H  option allows one to specify the
+     height H. The program then reports the exact dimensions  for
+     the  length  L,  height H, w, s and suggests a minimum width
+     for W.
+
+     In summary we have:
+         30 dB coupler +1.02 dB / -0.78 dB for 130 to 170 MHz
+         Length L = 250 mm, height H = 15 mm, stripline spacing s
+     = 6.3 mm
+          stripline width w = 21.6 mm enclosure width W &gt;= 124 mm
+
+     By default, design_coupler prints a lot  of  information  to
+     the screen.  This can be reduced by the -q option or reduced
+     to only one line with -qq Other options include -Z to change
+     the  impedance  from  the  default 50 Ohms and -C to see the
+     fully copyright, Licensing and distribution information
+
+
+</PRE>
+<H2>FILES</H2><PRE>
+     No files are created at all.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>
+     <B>create_bmp_for_circ_in_circ(1)</B>
+     <B>create_bmp_for_circ_in_rect(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_rect_in_rect(1)</B>
+     <B>create_bmp_for_stripline_coupler(1)</B>
+     <B>create_bmp_for_symmetrical_stripline(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B>
+     <B>readbin(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/design_coupler.pdf       -
+     theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/determine_dimensions_of_couplers.html b/docs/html-docs/determine_dimensions_of_couplers.html
new file mode 100644 (file)
index 0000000..9e12502
--- /dev/null
@@ -0,0 +1,128 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="How to determine the physical dimensions of a directional coupler for its specifiations of frequency and coupling factor.">
+<META name="KEYWORDS" content="directional coupler Zodd Zeven mode">
+<TITLE>How to determine the physical dimensions of directional coupler</TITLE>
+</HEAD>
+<BODY>
+<H1>How to convert a specification of a coupler in to a practical design</H1>
+
+The program program <CODE>design_coupler</CODE> can generate a set of dimensions needed for making a directional coupler like that below<br>
+<img src="jpgs/3dcoup.jpg" width="616" height="140" ALT="a directional coupler"><br>
+and end-view of which is shown here:<br>
+<img src="jpgs/coupler3.jpg"  width="616" height="140" ALT="a directional coupler"><br>
+The width of the blue and red conductors (w) is computed as is the spacing between them s, for any frequency range and coupling factor.
+Here is an  example of how to use <CODE>design_coupler</CODE>. In this example, the % sign is used in front of anything you must type which is what you will probably see when using the csh or tcsh as a shell. It would probably be a $ sign if using the sh or bash shell. <p>
+
+Currently a man page does not exist for design_couupler. However, running the program with no arguments <a href="usage_design_coupler.html">gives usage information.</a>
+
+To find the odd and even mode impedances and frequency response of a 50 Ohm coupler, covering 130 to 170 MHz, with a coupling coefficient of 30 dB:<pre>
+
+% design_coupler 30 130 170
+
+For a 30.000 dB 50.000 Ohm coupler with a length of 0.5000 m,
+you need to have an odd-mode impedance Zodd of 48.443 Ohms and
+an even mode impedance Zeven of 51.607 Ohms
+
+30.000 dB down &lt--- ************************** ---&gt 50.000 Ohm termination
+
+Drive this port --&gt ************************** ---&gt 50.000 Ohm termination
+                    &lt-------   0.5000 m -----&gt
+
+Drive Port 1, coupler out of port 2 and terminate the other ports in Zo
+Such a coupler will have the response indicated below.
+
+f = 130.000 MHz   coupling is -30.192 dB down on the main arm
+f = 140.000 MHz   coupling is -30.048 dB down on the main arm
+f = 150.000 MHz   coupling is -30.000 dB down on the main arm
+f = 160.000 MHz   coupling is -30.048 dB down on the main arm
+f = 170.000 MHz   coupling is -30.192 dB down on the main arm
+
+</pre>
+
+Note the frequency response is symmetrical about the centre frequency at 0.192 dB below that wanted. You may wish to redesign this for a coupling coefficient of  about 29.9 dB, so the maximum deviation from the ideal 30.0 dB never exceeds 0.1 dB Note the length suggested is 0.5 m (nearly 20") is a quarter wave at the centre frequency of 150 MHz. You might find this a bit too long, so let's specify a length of 0.25 m.<p>
+
+<pre>% design_coupler -L 0.25 30 130 170
+
+f = 130.000 MHz   coupling is -31.012 dB down on the main arm
+f = 140.000 MHz   coupling is -30.479 dB down on the main arm
+f = 150.000 MHz   coupling is -30.000 dB down on the main arm
+f = 160.000 MHz   coupling is -29.568 dB down on the main arm
+f = 170.000 MHz   coupling is -29.180 dB down on the main arm
+</pre>
+<p>
+What you may notice is that while the coupling to the coupled port is exactly 30 dB below the input power at the centre frequency (150 MHz) it is  no longer symmetrical about the centre frequency. Also, deviations from the ideal 30 dB are now much larger, with a maximum error of 1.012 dB Unlike the case when the length is the default quarter wave, there is not much you can do about this, since the deviations occur in both directions.
+<p>
+Now assume you are reasonably happy with the response when the length is 250 mm but would like to see the response at every 2.5 MHz. This can be done using the -s option to design_coupler.
+<p>
+<pre>% design_coupler -L 0.25 -s 2.5 30 130 170
+f = 130.000 MHz   coupling is -31.012 dB down on the main arm
+f = 132.500 MHz   coupling is -30.874 dB down on the main arm
+f = 135.000 MHz   coupling is -30.739 dB down on the main arm
+f = 137.500 MHz   coupling is -30.607 dB down on the main arm
+f = 140.000 MHz   coupling is -30.479 dB down on the main arm
+f = 142.500 MHz   coupling is -30.355 dB down on the main arm
+f = 145.000 MHz   coupling is -30.233 dB down on the main arm
+f = 147.500 MHz   coupling is -30.115 dB down on the main arm
+f = 150.000 MHz   coupling is -30.000 dB down on the main arm
+f = 152.500 MHz   coupling is -29.888 dB down on the main arm
+f = 155.000 MHz   coupling is -29.778 dB down on the main arm
+f = 157.500 MHz   coupling is -29.672 dB down on the main arm
+f = 160.000 MHz   coupling is -29.568 dB down on the main arm
+f = 162.500 MHz   coupling is -29.467 dB down on the main arm
+f = 165.000 MHz   coupling is -29.369 dB down on the main arm
+f = 167.500 MHz   coupling is -29.273 dB down on the main arm
+f = 170.000 MHz   coupling is -29.180 dB down on the main arm
+</pre>
+<p>
+Assuming the performance is acceptable, the dimensions of the coupler can be determined by adding the -d option. This will design a coupler that must look like the structure below. The two inner conductors, which are spaced equally between the top and bottom edges of the outer conductor, must be very thin. These are placed along the length of a box of width W, height H and of a length L determined by the user, which in this case is 250 mm.
+
+<pre>
+|-----------^------------------------------------------------------------------|
+|           |                                                                  |
+|           |              &lt---w---&gt&lt-----s----&gt&lt--w---&gt                       |
+|           H              ---------            --------                       |
+|           |                                                                  |
+|           |   Er=1.0 (air)                                                   |
+------------v------------------------------------------------------------------
+&lt-----------------------------------------W-----------------------------------&gt
+</pre>
+
+The program reports: 
+<PRE>H = 1.0, ; w = 1.44 ; s = 0.44 </PRE>
+The height of the box H must be small compared to the length L, (perhaps no more than 7% of the length), or 17.5 mm in this case, with a length of 250 mm, otherwise fringing effects will be significant. The width of the structure W should be as large as possible. The program suggests making this 5*H+2*w+s. The 7% and 5*H+2*w+s are educated guesses, rather than exact figures. There is no problem in making the width  larger than 5*H+2*w+s. The length L must be kept at 250 mm. The RATIO of the dimensions H, w and s (but not L or W must be kept constant. W just needs to be sufficiently large - it is uncritical.  
+ <p>
+If you happened to have some 15 mm square brass available, then using that  or the side-walls would require that H becomes 15*1.0 = 15 mm,
+w = 15*1.44 = 21.6 mm  and s = 15*0.44 = 6.6 mm
+<p>
+There is no need to compute the above scaling with a calculator, as using The -H option allows one to specify the height H. The program then reports the exact dimensions for the length L, height H, w, s and suggests a minimum width for W.
+
+In summary we have:
+<pre>
+                   30 dB coupler +1.02 dB / -0.78 dB for 130 to 170 MHz
+                   Length L = 250 mm, height H = 15 mm, stripline spacing s
+                   = 6.6 mm, stripline width w = 21.6 mm, width W &gt= 124 mm
+</pre>            
+       <p>
+By default, design_coupler prints a lot of information to the screen. This can be reduced by the -q option or reduced to only one line with -Q Other options include -Z to change the impedance from the default 50 Ohms and -C to see the fully copyright, Licensing and distribution information<p>
+<CODE>atlc</CODE> is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/errors.html b/docs/html-docs/errors.html
new file mode 100644 (file)
index 0000000..2e41692
--- /dev/null
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="atlc's Binary File Format">
+<META name="KEYWORDS" content="atlc transmission line calculator error messages">
+<TITLE>atlc's Binary File Format.</TITLE>
+</HEAD>
+<BODY>
+
+<H1>Error messages.</H1>
+Like any programme, <COde>atlc</code> generates error messages. Most are pretty obvious in meaning, but you might get an error like this, which is not quite so obvious:
+
+<pre>
+sparrow /export/home/davek/atlc/src/non_gui % !at
+atlc x.bmp
+Error#7: The colour r=0x8b g=0x8d b=0xff (0x8b8dff) exists at pixel 242,6.
+However, atlc does not know how to interpret this colour. This is not a
+conductor (pure red, green or blue), nor is it one of the 13 dielectrics that
+are predefined in Erdata.h, nor is a corresponding dielectric constant defined
+on the command line with the -d option. Sometimes this occurs when a
+graphics package is used to make the bitmap, but it performs some form of
+anti-aliasing or smooting. If this is the case, redraw the image turning such
+options off. If this is not the case then re-run atlc adding the -d option
+to define the relative permittivity of the dielectric
+
+e.g. atlc -d 8b8dff=1.9 x.bmp  
+
+if this colour has a permittivity of 1.9. If there are multiple undefined
+dielectrics, then there will need to be multiple copies of the -d option given.
+
+</pre>
+You may get this error if you simply try to use a different colour for another dielectric but forgot to define it. This can also happen if your graphics programme interpolates the colours in your image. For example, assume you intend drawing an elliptical conductor inside a rectangular cross section. The square grid will never fit an ellipse precisely, so the shape will look like this, which is shown on a very low-resolution image to make it more obvious<br>
+<img src="jpgs/not-aliased.jpg" ALT="Not aliased" width="128" height="128"><br>
+However, many graphics packages implement 'anti aliasing' or 'smoothing' or other such method to smooth the edges of sharp objects. Hence what your graphics package <STRONG>may</STRONG> produce is like this <br>
+<img src="jpgs/aliased.jpg" ALT="Aliased" width="128" height="128"><br>
+For most applications, the smoother edges are preferable. However, this is not so if the bitmaps are to be read by <COde>atlc</code>. At any sensible size of bitmap, the smoothing will not be obvious, so you may find <COde>atlc</code> exits, when the image looks fine.<br>
+You should be aware of this problem and turn off any such smoothing functions in your graphics package. In <a href="http://www.gimp.org">Gimp</A>, you should make sure that both <STRONG>feather</STRONG> and <STRONG>antialising</STRONG> are turned off (buttons up) for any tool you use. (double click on the ellipse or rectangle tools, to view or set these options)<br>
+Sometimes one makes a mistake and sets a background, (rgb=255,0,1), instead of  rgb=255,0,0. However, whatever causes this message, it is a result of using a colour which <COde>atlc</code> is not able to interpret. 
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html">.
+</a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</body>
+</html>
diff --git a/docs/html-docs/examples.html b/docs/html-docs/examples.html
new file mode 100644 (file)
index 0000000..1c13704
--- /dev/null
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. ">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+<meta name="author" content="Dr. David Kirkby">
+<META name="DESCRIPTION" content="FAQ for atlc">
+<META name="KEYWORDS" content="FAQ atlc transmission line calculator">
+<TITLE>The arbitrary transmission line calculator FAQ</TITLE>
+</HEAD>
+<BODY>
+
+<p>Here are a number of examples of using <COde>atlc</code>. Most of the example files can be found in the examples directory or if atlc is installed on the system, they will normally be located at /usr/local/share/atlc/examples. The very largest files, are not distributed to save disk space.</p>
+<TABLE>
+<TR>
+<TD><STRONG>Cross section</STRONG></TD>
+<TD><STRONG>Properties</STRONG></TD>
+<TD><STRONG>E-field</STRONG></TD>
+<TD><STRONG>Ex field </STRONG></TD>
+<TD><STRONG>Ey-field</STRONG></TD>
+<TD><STRONG>Voltage</STRONG></TD>
+<TD><STRONG>Energy</STRONG></TD>
+<TD><STRONG>Permittivity</STRONG></TD>
+</TR>
+<TR>
+<TD><img src="jpgs/multi-dielectric.jpg"  width="100" height="100" ALT="multiple dielectric"></TD>
+<TD><STRONG>multi-dielectric.bmp:</STRONG> <br>C= 94.3325 pF/m <br>L= 274.7756 nH/m <br>Zo= 53.9708 Ohms</TD>
+<TD><img src="jpgs/multi-dielectric.E.jpg"  width="100" height="100" ALT="multiple dielectric E-field"></TD>
+<TD><img src="jpgs/multi-dielectric.Ex.jpg"  width="100" height="100" ALT="multiple dielectric Ex-field"></TD>
+<TD><img src="jpgs/multi-dielectric.Ey.jpg"  width="100" height="100" ALT="multiple dielectric Ey-field"></TD>
+<TD><img src="jpgs/multi-dielectric.V.jpg"  width="100" height="100" ALT="multiple dielectric V-field"></TD>
+<TD><img src="jpgs/multi-dielectric.U.jpg"  width="100" height="100" ALT="multiple dielectric U-field"></TD>
+<TD><img src="jpgs/multi-dielectric.Er.jpg"  width="100" height="100" ALT="multiple dielectric Er-field"></TD>
+</TR>
+<TR>
+<TD><img src="jpgs/ushape.jpg"  width="100" height="100" ALT="ushaped-line"></TD>
+<TD><STRONG>ushape.bmp:</STRONG> <br>C= 76.4283<br>L= 145.5809 nH/m <br>Zo= 43.6441 Ohms</TD>
+<TD><img src="jpgs/ushape.E.jpg"  width="100" height="100" ALT="ushaped-line-E"></TD>
+<TD><img src="jpgs/ushape.Ex.jpg"  width="100" height="100" ALT="ushaped-line-Ex"></TD>
+<TD><img src="jpgs/ushape.Ey.jpg"  width="100" height="100" ALT="ushaped-line-Ey"></TD>
+<TD><img src="jpgs/ushape.V.jpg"  width="100" height="100" ALT="ushaped-line-voltage"></TD>
+<TD><img src="jpgs/ushape.U.jpg"  width="100" height="100" ALT="ushaped-line-energy"></TD>
+<TD><img src="jpgs/ushape.Er.jpg"  width="100" height="100" ALT="ushaped-line-permittivity"></TD>
+</TR>
+<TR>
+<TD><img src="jpgs/coax2.jpg"  width="100" height="100" ALT="Coax"></TD>
+<TD><STRONG>coax2.bmp:</STRONG> <br>C= 47.6374 pF/m<br> L= 233.5667 nH/m<br> Zo= 70.0215 Ohms</TD>
+<TD><img src="jpgs/coax2.E.jpg"  width="100" height="100" ALT="Coax-E-field"></TD>
+<TD><img src="jpgs/coax2.Ex.jpg"  width="100" height="100" ALT="Coax-Ex field"></TD>
+<TD><img src="jpgs/coax2.Ey.jpg"  width="100" height="100" ALT="Coax-Ey-field"></TD>
+<TD><img src="jpgs/coax2.V.jpg"  width="100" height="100" ALT="Coax-Voltage"></TD>
+<TD><img src="jpgs/coax2.U.jpg"  width="100" height="100" ALT="Coax-Energy"></TD>
+<TD><img src="jpgs/coax2.Er.jpg"  width="100" height="100" ALT="Coax-Energy"></TD>
+</TR>
+<TR>
+<TD><img src="jpgs/very-odd.jpg"  width="100" height="100" ALT="very odd transmission line"></TD>
+<TD><STRONG>very-odd.bmp:</STRONG><br>C=59.1756 pF/m <br>L= 188.0251 nH/m<br> Zo= 56.3685 Ohms</TD>
+<TD><img src="jpgs/very-odd.E.jpg"  width="100" height="100" ALT="E-field"></TD>
+<TD><img src="jpgs/very-odd.Ex.jpg"  width="100" height="100" ALT="Ex field"></TD>
+<TD><img src="jpgs/very-odd.Ey.jpg"  width="100" height="100" ALT="Ey field"></TD>
+<TD><img src="jpgs/very-odd.V.jpg"  width="100" height="100" ALT="Voltage"></TD>
+<TD><img src="jpgs/very-odd.U.jpg"  width="100" height="100" ALT="Energy"></TD>
+<TD><img src="jpgs/very-odd.Er.jpg"  width="100" height="100" ALT="Energy"></TD>
+</TR>
+
+</TABLE>
+<br>
+The full details of exactly what the files mean is given <a href="fileformat.html">here.</a> 
+<p>In the case of the open structures (such as microstrip or twin-wire cables) the electric field extends to infinity, as there is no surrounding conductor like in the case of the coax, u-shaped conductor of the very odd shape. By putting an open structure onto a finite grid, which does not extend to infintiy, we have introduced an error. You should check that the electric field in the file <code>
+ of such structures is zero close to the edges - if not, a significant error will be introduced. </p>
+
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public Licence</A><p>
+
+<BR>
+<BR>
+
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A><a href="http://validator.w3.org/check/referer"><img border="0"
+src="valid-html40.gif"
+alt="Valid HTML 4.01!" height="31" width="88"></a>
+<a href="http://bluefish.openoffice.nl/"><img SRC="jpgs/bluefish.jpg" WIDTH="88" HEIGHT="31" ALT="Bluefish"></a>
+
+
+<p>The following is a trap for smammers, so they can gather loads of ficticious email address, so don't click<a href="http://homepage.ntlworld.com/drkirkby/list1.html"> anywhere</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"> o</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html">n</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"> this</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"> line</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"> th</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"> anks.</a>
+</body>
+</html>
diff --git a/docs/html-docs/fileformat.html b/docs/html-docs/fileformat.html
new file mode 100644 (file)
index 0000000..50a87b3
--- /dev/null
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes Netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="<COde>atlc</code>'s Binary File Format">
+<META name="KEYWORDS" content="transmission line calculator <COde>atlc</code> binary file">
+<TITLE>Files saved by<COde>atlc</code>.</TITLE>
+</HEAD>
+<BODY>
+
+<H1>Files produced by atlc.</H1>
+
+<COde>atlc</code> reads a <a href="bmp.html">bitmap file</a>, such as pcb.bmp After running atlc<p>
+
+<CODE>% atlc pcb.bmp</CODE><br><br>
+<CODE>atlc</CODE> will produce:
+<OL>
+       <LI>A single line of text on the standard output. It is not
+       written to a file, but can be done so using the &gt or appended
+       to a file using &gt&gt. The line can be a little long, so it may appear to span multiple lines, but all the results are on one line of text. Multiple lines will be produced if the -v option is used to show intermediate results.
+       A new option -L will be added to atlc. This will force the
+       results to be printed to 14 significant figures and is intended
+       for testsing only. If the -L option is added, the line will
+       appear very long indeed.
+       </LI>
+       <LI>Some bitmap files, ending in .bmp, showing images of the transmission lines properties.</LI>
+       <LI>Some binary files, ending in .bin, which are likely to be of academic interest only, showing the similar information to the bitmap files, but in an exact, quantitive manner, rather than an image made to <EM>look nice </EM></LI>
+</OL>
+The -s option can be used on <CODE>atlc</CODE> to suppress the production of the .bmp files and the -S option can be used to suppress the generation of the .bin files. You might well wish to use both options nearly all the time, as writing these files take a few seconds and for the case of 2 conductor lines, takes up about 9x as much disk space as the original bitmap. For 3 conductor lines, the files produced take up about 27 times the disk space of the original bitmap. <br><br>
+The format of the output depends on whether a 2-conductor lines is analysed or a 3 conductor directional coupler. The first column sent to standard output will always be the filename. The second column will always be either a 2 if analysing 2-conductor lines (like coaxial cable) or a 3 if analysing transmission lines with 3 conductors (couplers). Beyond these two columns, the output will differer significantly and is therefore discussed in separate sections. Note <CODE>atlc </CODE>is run in exactly the same way for 2 or 3 conductor transmission lines. The filename must always be supplied and the same options 
+(-C, -s, -S, -v, -c, -d, -i, -r or -t) can always be used. 
+
+<code>
+
+
+<H1>Files produced by atlc for 2 conductor transmission lines.</H1>
+% atlc pcb.bmp
+
+</code>
+<p>
+ you will have the following files. 
+<TABLE border width="700">
+<TR>
+       <TD><img src="jpgs/pcb.jpg" ALT="Original PCB"></TD>
+       <TD><img src="jpgs/pcb.Er.jpg" ALT="Permittivity"></TD>
+       <TD><img src="jpgs/pcb.Ex.jpg" ALT="x-directed E-field"></TD>
+       
+</TR>
+<TR>
+       <TD><STRONG>pcb.bmp</STRONG> Original microstrip enclosed in a box. Note the thin red inner conductor, the green outer conductor, the white vacuum and the turquoise dielectric (E<sub>r</sub>=4.8).</TD>
+       <TD><STRONG>pcb.Er.bmp</STRONG> Permittivity diagram. This  shows the permittivity  as a grayscale - lighter for increasing permittivity. The conductors are shown red, green and blue,  +1 V is shown red, 0V green and -1V blue. 
+       <TD><STRONG>pcb.Ex.bmp</STRONG> x-directed electric field. Blue is negative, Red is positive. Recall Ex=-dV/dx.</TD>
+</TR>
+<TR>
+       <TD><img src="jpgs/pcb.Ey.jpg" ALT="y-directed E-field"></TD>
+       <TD><img src="jpgs/pcb.E.jpg" ALT="E-field (Ex^2+Ey^2)"></TD>
+       <TD><img src="jpgs/pcb.V.jpg" ALT="Voltage"></TD>
+</TR>
+<TR>
+       <TD><STRONG>pcb.Ey.bmp</STRONG> y-directed electric field. Blue is negative, Red is positive. Recall Ey=-dV/dy.</TD>
+       <TD><STRONG>pcb.E.bmp</STRONG> Magnitude of the electric field. E=Ex<sup>2</sup>+Ey<sup>2</sup>. Shown lighter for increasing E-field. </TD>
+       <TD><STRONG>pcb.V.bmp</STRONG> Voltage field. Red is shown positive, black as no voltage and negative voltages would be shown as blue.</TD>
+</TR>
+<TR>
+       <TD><img src="jpgs/pcb.U.jpg" ALT="Energy"></TD>
+       <TD><CODE>pcb.bmp Er= MIXED C= 94.2540 pF/m L= 387.2186 nH/m Zo= 64.0956 Ohms v= 1.65528e+
+08 m/sv_f= 0.5521 VERSION=3.0.1</CODE></TD>
+       <TD><CODE>01010010<br>00101010<br>00011101<br>00001111<br>11110010<br>00000001<br>11111110</CODE></TD>
+</TR>
+<TR>
+       <TD><STRONG>pcb.U.bmp</STRONG> Energy. Since E=0.5 C V<sup>2</sup>, this is proportional to capacitance (and hence Er) and the E-field on a pixel</TD>
+       <TD>The stadnard output shows all the results from the simulation on one line. </TD>
+       <TD><STRONG>pcb.Er.bin, pcb.Ex.bin, pcb.Ey.bin, pb.E.bin, pcb.V.bin and pcbU.bin</STRONG> Six binary files have the same data as the bitmaps, but in a quantitative manner. </TD>
+</TR>
+<TR>
+       <TD></TD>
+       <TD></TD>
+       <TD></TD>
+</TR>
+<TR>
+       <TD></TD>
+       <TD></TD>
+       <TD></TD>
+</TR>
+<TR>
+       <TD></TD>
+       <TD></TD>
+       <TD></TD>
+</TR>
+</TABLE>
+<PRE>
+
+</PRE>
+The bitmap files do not show quantitative data - i.e. the numbers are optimised to look okay, rather than to be scientifically rigorous.<p>
+The binary files show similar data to the bitmaps, but in a more scientific way. They show the electric field in volts/pixel (.Ex.bmp, .Ey.bmp and .E.bmp) and voltage (.V.bmp)  assuming one conductor is earthed to 0v (the green one) and the other is at +1V (the red one). If your two conductors have a real voltage difference of V between them, the data file shows a value of E_data V/m, the dimensions of your transmission line are X mm across and the number of pixels in the x-direction allocated for the transmission line is N, then the true field strength that will be achieved in practice is 
+E_real=E_data * N / X        (V/mm)<p>
+The -s option can be used on atlc to suppress the production of the .bmp files and the -S option can be used to suppress the generation of the .bin files.
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It is issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</body>
+</HTML>
diff --git a/docs/html-docs/generate_for_coupler.html b/docs/html-docs/generate_for_coupler.html
new file mode 100644 (file)
index 0000000..2495e87
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="">
+<META name="KEYWORDS" content="atlc generate bitmap coupler directional">
+<TITLE>How to generate a bitmap for a directional coupler</TITLE>
+</HEAD>
+<BODY>
+<H1>How to generate a bitmap for a directional coupler</H1>
+
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+
+</BODY>
+</HTML>
diff --git a/docs/html-docs/generators.html b/docs/html-docs/generators.html
new file mode 100644 (file)
index 0000000..f7d19d4
--- /dev/null
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<html>
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org">
+<meta name="generator" content="Mostly bluefish &amp; vi. Sometimes netscape">
+<meta http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<meta name="DESCRIPTION" content="Transmission line calculator, or *any* cross section">
+<meta name="KEYWORDS" content="Transmission line calculator arbitrary any cross section">
+<title>Arbitrary Transmission Line Calculator - atlc</title>
+</head>
+<body>
+<h1>Automatic Bitmap Generators.</h1>
+
+In order to describe the cross sections of the transmission lines, you can either use a graphics programme to draw it manually, or one of several programs which will be written in order to generate bitmaps more quickly. Currently several automatic bitmap generators have been written, which handle some of the more common combination of circular and rectangular conductors. Note <CODE>create_bmp_for_circ_in_circ</CODE> which handles the eccentric coax, with a circular inner and outer, was written to test <CODE>atlc</CODE>, - since there is an exact analytical formula for that case, there is no point in simulating it.  UNIX manual pages are available for most, but not all of the programs.<p> <STRONG>NOTE: The HTML versions of the UNIX man pages are produces automatically from the UNIX man pages. They are not very well produced and any diagrams are very poorly shown. Hence don't expect too much of the hyperlinks below - the man pages when viewed using <CODE>man</CODE> are much better.</STRONG></p>
+<TABLE border>
+
+       
+       <TR><TD><a href="create_bmp_for_circ_in_circ.1.html">create_bmp_for_circ_in_circ</a> <CODE>100 30 25 1.0006 off-centre2.bmp</CODE><br>This is used for producing bitmaps of a circular conductor inside another circular conductor. In this example, the inner diameter of the outer conductor is 100 mm, the outer diameter of inner conductor is 30 mm. The inner is offset 25 mm from the centre. The dielectric constant of the material between the inner and outer is 1.0006 (air). The fact the outer looks square, not circular, is of no consequence. The shape <STRONG>inside</STRONG> of the outer conductor is round - the shape outside is irrelevant..</TD><TD><img src="jpgs/off-centre2.jpg" alt="eccentric coax" width="150"></TD></TR>
+       <TR><TD><a href="create_bmp_for_rect_cen_in_rect.1.html">create_bmp_for_rect_cen_in_rect</a>  <CODE>268 100 100 50 4.8 central.bmp</CODE> <br>This is used for creating bitmaps of a rectangular conductor placed centrally inside another  rectangular conductor. Only a single dielectric exists.</TD><TD><img src="jpgs/central.jpg" alt="centralised rectangular"></TD></TR>
+       <TR><TD><a href="create_bmp_for_circ_in_rect.1.html">create_bmp_for_circ_in_rect</a> 20 200 100 50 -5 10.2 cir.bmp<br>This is used for the generation of bitmap with a  circular conductor inside a rectangular conductor.</TD><TD><img src="jpgs/cir.jpg" alt="odd one again"></TD></TR>
+       <TR><TD><CODE>create_bmp_for_rect_in_circ</CODE>  has not been finished yet.<br>But this is what it will do - calculate the properties of a transmission line formed from a circular outer and a rectangular inner.</TD><TD><img src="jpgs/ric.jpg" alt="odd one again" width="150"></TD></TR>
+       <TR><TD><CODE><a href="create_bmp_for_stripline_coupler.1.html">create_bmp_for_stripline_coupler</a> -v  2.0  1.01  1.02 1.0 coupler.bmp</CODE><br>This is used for creating bitmaps for a directional coupler. In this example, the height H of the enclosure is 2 mm, the width of the conductors w is 1.01 mm, the spacing between them is 1.02 m. The dielectric between them has a permittivity of 1.0. The width of the enclosure W is automatically set, to be sufficiently large to make no significant difference to the results. The inner conductors are made only one pixel high, so that the bitmap produced closely approximates a geometry that has an exact analytical solution, which the -v option causes the program to compute (Zodd=93.196255, Zeven=106.612606 and Zo=99.678963 Ohms). The thickness of the inner conductors is shown exaggerated here, otherwise you would be unable to see them. You will really need to zoom in with a graphics package to see the inner conductors.</TD><TD><img src="jpgs/coupler.jpg" alt="coupled lines" width="268">.</TD></TR>
+<TR><TD><CODE><a href="create_bmp_for_symmetrical_stripline.1.html">create_bmp_for_symmetrical_stripline</a></code> <code> 1 201 301 wide.bmp</CODE><br>This is used for creating bitmaps of a thin strip line between two wide conductors. The program also calculates the theoretical impedance, assuming the stripline is infinitely thin and the width W infinite wide. The inner conductor that is produced is one pixel high, in order that <CODE>atlc</CODE> may be tested against theoretical data. It is often difficult to see the inner conductor unless you zoom into a bitmap. Hence it is  shown very exaggerated in this diagramme. </TD><TD><img src="jpgs/wide.jpg" alt="wide stripline">.</TD></TR>
+       <TR><TD><a href="create_bmp_for_rect_in_rect.1.html">create_bmp_for_rect_in_rect</a> <CODE>268 100 10 40 25 200 100 45 1.0 4.8 pcb2.bmp</CODE><br>This is used for creating bitmaps for a rectangular conductor placed anywhere inside another  rectangular conductor, with one conductor place on top of another dielectric. The programme create_bmp_for_rect_in_rect  is quite hard to use, as it has so many parameters that must be supplied. Don't try using this one before some of the others.</TD><TD><img src="jpgs/pcb2.jpg" alt="odd rectangular"></TD></TR>
+       <TR><TD><code><a href="create_bmp_for_microstrip_coupler.1.html">create_bmp_for_microstrip_coupler</a>  2.5 2.0 1 1.593 0.53 1 3.7</CODE><br>This is used when one wishes to create bitmaps for two coupled lines microstrip lines on a PCB. In this example, the width of the coupled lines (w) is 2.5 mm, there is a 2 mm space (s) between the two coupled lines, there is a gap (g) of 1 mm between the edges of the coupled lines and the top groundplane. The dielectric is 1.593 mm thick and the copper tracks 0.53 mm thick. The permittivity of the material (air) above the PCB is 1.0 and that of the PCB is 3.7. This has an odd mode impedance of 43.96 Ohms and an even mode impedance of 55.06 Ohms. .</TD><TD><img src="jpgs/ms_coupler.jpg" alt="microstrip coupler"></TD></TR>
+       <TR><TD></TD><TD></TD><TD></TD></TR>
+</TABLE>
+<p>
+The above programs will, by default, produce a bitmap of around 500 kb, which should be analysed in about 3  minutes at most, depending on the speed of your computer. You can increase or decrease the size of the bitmap, by use of the -b option. <br>
+<br>
+<p>
+<CODE>create_bmp_for_symmetrical_stripline</CODE> is different from the other programmes used for bitmap generation, in that instead of the programme automatically determining the optimal bitmap dimensions, <CODE>create_bmp_for_symmetrical_stripline</CODE> must be provided with them. Whereas all the other programs can accept floating point numbers for the dimensions of the conductors, <CODE>create_bmp_for_symmetrical_stripline </CODE>will only accept integer numbers and translates them directly to the bitmap size.  The program <CODE>create_bmp_for_symmetrical_stripline</CODE> was put together quickly and has no finess.
+
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it\10 issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</body>
+</html>
+
diff --git a/docs/html-docs/index.html b/docs/html-docs/index.html
new file mode 100644 (file)
index 0000000..8c788f8
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html>
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org">
+<meta name="GENERATOR" content="Bluefish 0.6 and vi on a Sun SPARCstation 20">
+
+<meta name="KEYWORDS" content="transmission lines, tranmission line, CAD, electrical, atlc, impedance, Z0, transmission, line, lines, arbitrary, cross, section, shape, Zo">
+<meta name="DESCRIPTION" content="A finite difference program for computing the  properties of any transmission line ">
+<title>atlc - Arbitrary Transmission Line Calculator</title>
+</head>
+<frameset rows="120,*">
+<frame src="banner.html" name="RTOP" marginwidth="1" marginheight="1">
+<frame src="index2.html" name="RBOTTOM" marginwidth="1" marginheight="1">
+<noframes>
+<body>
+<p>atlc can compute the properties of transmission lines of any shape using a numerical technique called finite difference.</p>
+<BR><BR>
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+</body>
+</noframes>
+</frameset>
+<A href="http://sourceforge.net"> <IMG src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"></A> 
+
+
+
+
+
+
+
+
+</html>
+
diff --git a/docs/html-docs/index2.html b/docs/html-docs/index2.html
new file mode 100644 (file)
index 0000000..fe9c6c6
--- /dev/null
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<TITLE>Homepage of atlc - Arbitrary Transmission Line Calculator</TITLE>
+<META name="generator" content="Mostly bluefish and vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+<meta name="author" content="Dr. David Kirkby">
+<META name="DESCRIPTION" content="Transmission lines, transmission line, atlc, calculator, transmission-lines, transmission-line">
+<META name="KEYWORDS" content="atlc, transmission lines,  tranmission line, calculator, finite difference">
+</HEAD>
+<BODY>
+
+<H1><CODE>atlc</CODE> - Arbitrary Transmission Line Calculator (for electrical transmission lines)</H1>
+<p>
+<EM>atlc</EM> is a computer aided design (CAD) package for the design and analysis of electrical transmission lines and directional couplers of totally arbitrary cross section and an arbitrary number of different dielectrics.  By analysis, it is assumed one requires finding the electrical properties of transmission lines or couplers, where the physical dimensions are known. By design, it is assumed one requires a transmission line or coupler to have certain electrical properties and one wishes to find how to physically realise such a structure.</p>
+<P><EM>atlc</EM>  likely to be of use to radio amateurs, professional RF engineers, students and academics.</P> 
+
+
+
+<p>Great effort has been put into making <em>atlc</em> portable. Whilst written under UNIX, <em>atlc's</em> portability means pre-compiled command-line Windows binaries have been produced by Mark Chun KH6HPQ and others from the source code without any changes at all. A port to <a href="http://www.openvms.org">OpenVMS</a> in a possibility, although the main development is aimed very much at UNIX. </p>
+
+<p> In addition to the the commmon Linux PC, <em>atlc</em> has been tested on a <a href="http://wuarchive.wustl.edu/mirrors/NetBSD/NetBSD-current/pkgsrc/cad/atlc/README.html">Sony Playstation 2</a> as well as the <a href="http://www.cray-cyber.org/systems/yel.php">Cray YMP-EL</a> supercomputer, which is available for free public access at <a href="http://www.cray-cyber.org/general/start.php">Cray-Cyber network</a>. 
+
+It has also been tested on <a href="http://www.debian.org/">Debian</a> Linux, <a href="http://www.slackware.com/">Slackware</a> Linux, <a href="http://www.gentoo.org/">Gentoo</a> Linux, <a href="http://www.redhat.com">Redhat </a> Linux, <a href="http://www.suse.com">Suse</a> Linux, IBM's <a href="http://www.ibm.com/servers/aix/">AIX</a>, Apples's <a href="http://www.apple.com/macosx/">OS X for Mac</a>, 
+
+HP's <a href="http://www.hp.com/products1/UNIX/operating/">HP-UX</A> (both PA-RISC and Itanium), SGI's <a href="http://www.sgi.com/">IRIX</a>, Sun's <a href="http://www.sun.com/solaris/">Solaris</a>, SCO's <a href="http://www.caldera.com/products/UNIXware/">UNIXWare</a>, HP's <a href="http://h30097.www3.hp.com/">Tru64</a>, Cray's <a href="http://www.cray.com/products/software/unicos.html">UNICOS</a>, <a href="http://www.netbsd.org/">NetBSD</a>, <a href="http://www.openbsd.org/">OpenBSD</a> and <a href="http://www.freebsd.org/">FreeBSD</a>. If you run <em>atlc</em> on any other operating system, please let me know. </p>
+<p>Previous version of <em>atlc</em> could use multiple-processors if present, to reduce execution time. This has been temporarily disabled, as the algorithm had some intermittent problems on IBM's. Careful checking showed the problem that only seemed to affect AIX, was a real bug with the potential to occur on other operating systems, although it only ever showed up under AIX. Hence the current release has disabled the support for multiple processors - <em>atlc</em> will fun fine on multi-processor machines, but it will only use one of them. A revised method of computation has been determined, which will re-enable the use of multiple processors. It is hoped to release this by early February 2004 at the latest - probably some time in January 2004.</p>
+
+<TABLE>
+<TR>
+<TD><img src="jpgs/coax2.jpg" ALT="round coax" > </TD>
+<TD><img src="jpgs/very-odd.jpg" ALT="very odd line" ></TD>
+<TD><img src="jpgs/cop1.jpg" ALT="directional coupler" width="128" height="128"></TD>
+<TD><img src="jpgs/coupler9.jpg" ALT="directional coupler" height="128"></TD>
+</TR>
+<TR>
+<TD>Coaxial cable<br>Zo= 70.0215 Ohms<BR>C=47.637 pF/m<BR>L=233.557 nH/m<BR></TD>
+<TD>Really odd!!!<br>Zo= 56.020  Ohms<br> C= 59.544 pF/m <br>L= 186.862 nH/m</TD>
+<TD>Directional coupler<br>Zo= 64.7449  Ohms<br> Zeven=65.3682 Ohms<br>Zodd= 64.1275 Ohms<br></TD>
+<TD>Microstrip coupler on double-sided PCB<br>Zodd=  35.10 Ohms Zeven=  50.93 Ohms<br>Zdiff=  70.21 Ohms Zcomm=  25.46 Ohms</td>
+</TR>
+</TABLE>
+There are 12 programs that comprise the package <EM>atlc</EM>. One of the programs is called <CODE>atlc</CODE>; the other 11  have different names. Using the programs comprising the package <EM>atlc</EM> one is able to:.
+<OL>
+       <LI>Calculate the characteristic impedance and other properties of two conductor transmission lines, like coaxial cable (far left above), but the cross section can be of any shape whatsoever, including that second from the left. A technique known as finite difference is used for this. There can be an arbitrary number of different dielectrics. Note the inner conductor is shown red, the outer green and a vacuum dielectric is shown as white - for all practical purposes, the permittivity of a vacuum (1.0 by definition) dielectric is the same as that of air (approximately 1.0006)</LI>
+       <LI>Calculate the impedance's for both the odd-mode and even-mode, along with many other properties of <a href="couplers.html">directional couplers</a> of arbitrary cross section, like that third from the left below. Note, with couplers, there is two inner conductors, with - one red as before, but another one blue, in addition to the green outer conductor.  The finite difference technique is used for this too. Analysis extends to couplers with multiple dielectrics, such as the microstrip coupler on the PCB on the right below. </LI>
+       <LI>Compute the common-mode impedance Zcomm and differential-mode impdance Zdiff of arbitrary directional couplers. </LI>
+       <LI><a href="examples.html">Compute the values of electric field, voltage, energy stored etc</a> in 2 and 3 conductor transmission lines and save this data to binary files, as well as bitmaps which can be viewed in a graphics package. </LI>
+       <LI> <a href="generators.html">Automatically create bitmaps</a> for some common transmission lines, to save the user having to create them in a graphics package, which would soon become tedious.</LI>
+       <LI>Compute the odd and even mode impedances required of an arbitrary directional coupler to satisfy a given frequency response and coupling factor.</LI>
+       <LI>In the case of a coupled stripline with thin conductors, the program <code>design_coupler</code> can fairly quickly (within a few minutes) compute the dimensions of a directional coupler to satisfy your requirements of frequency response, coupling factor and optionally length. If you wish to implement the design on a double-sided printed circuit board like that on the right below, the program <code>find_optimal_dimensions_for_microstrip_coupler</code> will do this for you, but it takes several hours (perhaps a couple of days) to find a solution, although some well-timed and sensible human intervention can reduce this considerably.</LI>
+       <LI>Since the program <code>atlc</code> can save quantitative data on the x and y components of electric field, energy, voltage etc to binary files, there is a program <code>readbin</code> that can read the binary files and tell you something about the data saved in them. This information is for debugging only - it is not expected the user will use <code>readbin</code>. The user is expected to write their own programs to read this binary information, in the very unlikely event they wish to use the information. It is likely to be of academic interest only. The normal output from <code>atlc</code> is in simply text. 
+</OL>
+
+<p>In any example which has been checked against exact analytical solutions, the <a href="accuracy.html">errors</a> in <code>atlc</code> are under 1% and usually under 0.4%</p>
+In order to perform 1, 2, 3 or 4 above, the programme  <COde>atlc</code> needs to know shape of the transmission line's cross section. This cross section is stored in a data file, which happens to be a Windows bitmap file. The  bitmap file is read by <COde>atlc</code>, following which the  programme performs the analysis. <br><br>There are two ways to generate the bitmap for <COde>atlc</code>. 
+<OL>
+        <LI> As you might expect, you can draw the transmission line's cross-section in a graphics programme such as <A HREF="http://www.gimp.org">Gimp</A>, <A HREF="http://www.adobe.com/products/photoshop/main.html">Photoshop</A>, Windows <A HREF="http://www.microsoft.com">Paint</A>, Corel Photopaint etc. The programme must be able to save images as bitmap (.BMP or .bmp) files, in 24-bit (true colour) mode. The graphics programme can run under whatever operating system you like.  If for example you have some U-section brass and some hollow rectangular tube, and wanted to know the properties of a transmission line formed from these, you might draw something like this, and save it as a file, which we might call <CODE>ushape.bmp</CODE><br><br><img src="jpgs/ushape.jpg" ALT="U-section" > </LI>
+       <LI> In the case of simple cross-sections, the bitmaps can be generated automatically. Currently 7 such programmes have been written:
+       <OL>
+<LI><CODE>create_bmp_for_circ_in_circ</CODE></LI>
+<LI><CODE>create_bmp_for_circ_in_rect</CODE></LI>
+<LI><CODE>create_bmp_for_rect_cen_in_rect</CODE></LI>
+<LI><CODE>create_bmp_for_rect_in_rect</CODE></LI>
+<LI><CODE>create_bmp_for_symmetrical_stripline</CODE></LI>
+<LI><CODE>create_bmp_for_stripline_coupler</CODE></LI>
+<LI><CODE>create_bmp_for_microstrip_coupler</CODE></LI>
+</OL>
+       to quickly generate bitmaps for transmission lines. The first five are for two-conductor transmission lines, whereas the last two are for directional couplers. See the section <a href="generators.html">Automatic Bitmap Generators</a> for information about what cross sections these programs generate. Using these programs to create bitmaps is very fast - much faster than creating them with a graphics programme. </LI>
+</OL>
+A UNIX computer, with a <A HREF="http://www.gnu.org/software/gcc/gcc.html">gcc</A> or other C compiler, is needed  to build <EM>atlc</EM>. The programme should compile very easily and quickly. Being rather CPU intensive, <COde>atlc</code> has been written to support multiple processors if available. Here is an example of using atlc, with the file <CODE>ushape.bmp</CODE>, which was drawn by a graphics programme. <br>
+
+<br>
+<pre>
+sparrow % atlc -v ushape.bmp
+ushape.bmp 2 Er= 1.00 Zo= 43.55 Ohms C= 76.6 pF/m L= 145.3 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.2.2
+ushape.bmp 2 Er= 1.00 Zo= 43.64 Ohms C= 76.4 pF/m L= 145.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.2.2
+ushape.bmp 2 Er= 1.00 Zo= 43.64 Ohms C= 76.4 pF/m L= 145.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.2.2
+</pre>
+It will be seen that <CODE>atlc</CODE> makes several estimates of the transmission line's properties, each subsequent one being closer to the true values (normally only the final result is shown, but the -v option added above causes <CODE>atlc</CODE> to print intermediate results).
+<br><br>
+<CODE>atlc</CODE> produces numberous bitmap and binary files, in addition to the text shown above. Hopefully some of the text output is comprehensible, but the exact format of all of atlc's outputs is disucced in the <a href="fileformat.html">fileformat</a> section. <br><br>
+Here's an example of using <CODE>create_bmp_for_circ_in_circ</CODE> to create a bitmap, following which is it analysed using <CODE>atlc</CODE>. The programme <CODE>create_bmp_for_circ_in_circ</CODE> creates a bitmap (.bmp file) for a cicular conductor inside another circular conductor - like coaxial cable. The program takes takes 5 command line arguments which (in order) are:
+<OL>
+       <LI>D - The inner diameter of the outer conductor.</LI>
+       <LI>d  - The outer diameter of the inner conductor</LI>
+       <LI>O - The offset between the inner and outer conductors (this is zero for standard coax)</LI>
+       <LI>Er - The relative permittivity of the dielectric between the conductors</LI>
+       <LI>filename - The filename to write the bitmap file to, which would normally end in .bmp</LI>
+</OL>
+
+
+<pre>
+sparrow % create_bmp_for_circ_in_circ 500 100 100 1 x.bmp
+sparrow % atlc  x.bmp
+x.bmp 2 Er=1.00 Zo= 85.44 Ohms C= 39.0 pF/m L= 285.0 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.2 2
+</pre>
+
+How to use  <CODE>create_bmp_for_circ_in_circ</CODE> (or any other program) is best determined by reading the UNIX man page, seeing an <a href="generators.html">example</a> or by running the program with no arguments, where it will print a usage message. An html version of the  <a href="create_bmp_for_circ_in_circ.1.html">man page for <CODE>create_bmp_for_circ_in_circ</CODE> </a> is available, but the all-important diagram is not clear. <br>
+<br>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+
+<br><br>
+atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A>
+<br>
+<BR>
+<BR>
+
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A><a href="http://validator.w3.org/check/referer"><img border="0"
+src="valid-html40.gif"
+alt="Valid HTML 4.01!" height="31" width="88"></a>
+<a href="http://bluefish.openoffice.nl/"><img SRC="jpgs/bluefish.jpg" WIDTH="88" HEIGHT="31" ALT="Bluefish"></a>
+<p><a href="http://homepage.ntlworld.com/drkirkby/list1.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html">.</a>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/installing.html b/docs/html-docs/installing.html
new file mode 100644 (file)
index 0000000..f96f1f4
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+<meta name="author" content="Dr. David Kirkby">
+<META name="DESCRIPTION" content="How to build atlc - Arbitrary Transmission Line Calculator from sources.">
+<META name="KEYWORDS" content="Transmission line calculator atlc">
+<TITLE>Building atlc</TITLE>
+</HEAD>
+<BODY>
+
+<H1>Installing <COde>atlc</code></H1>
+<p><EM>atlc</EM> is highly portable program and should run on any UNIX system and some non-UNIX systems, including Microsoft Windows. 
+
+<h2> Installing atlc on UNIX systems</h2>
+There are two ways to install atlc on a UNIX system:<ol>
+       <li>Install a binary package. Binary packages are available for <a href="http://packages.debian.org/unstable/electronics/atlc.html">Debian Linux</a>. A very old version is available for <a href="http://wuarchive.wustl.edu/mirrors/NetBSD/NetBSD-current/pkgsrc/cad/atlc/README.html">NetBSD</a>, but I would not advise installing from the old NetBSD packages. </p>
+<p>By default, the binaries will be installed in <code>/usr/local/bin</code>, the man pages in <code>/usr/local/man/man1</code>, the examples in <code>/usr/local/share/atlc/examples</code>, the html-formatted documentation to<code> /usr/local/share/atlc/docs/html-docs</code>, and some other documentation will go into <code>/usr/local/share/docs</code>. A copy of a paper published about atlc in 1996 can be found in the <code>/usr/local/share/atlc/docs/qex_december_1996</code> directory. The exact method of installing binaries is operating system specific. Under Solaris, the pkgadd command is used, although there are currently no pre-compiled Solaris binaries.</p></li>
+
+       <li>The preferred way to <a href="building.html">install atlc from sources</a>, as you can always tweak the compiler to suit your system, to get maximum performance. Binary distributins are often older than the current sources too.</li>
+</ol>
+<h2>Installing atlc on computers running Microsoft Windoze</h2>
+On Microsoft Windoze systems, atlc can be built using <a href="http://www.cygwin.com/">Cygwin</a>, which gives a UNIX-like enviroment on a Windoze PC.<br><br>
+<A href="http://sourceforge.net"> <IMG src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"></A><a href="http://validator.w3.org/check/referer"><img border="0" src="valid-html40.gif" alt="Valid HTML 4.01!" height="31" width="88"></a>
+<a href="http://bluefish.openoffice.nl/"><img SRC="jpgs/bluefish.jpg" WIDTH="88" HEIGHT="31" ALT="Bluefish"></a>
+<br>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html">.</a>
+
+</body>
+</html>
diff --git a/docs/html-docs/jpgs/000000.jpg b/docs/html-docs/jpgs/000000.jpg
new file mode 100644 (file)
index 0000000..ef0d602
Binary files /dev/null and b/docs/html-docs/jpgs/000000.jpg differ
diff --git a/docs/html-docs/jpgs/0000ff.jpg b/docs/html-docs/jpgs/0000ff.jpg
new file mode 100644 (file)
index 0000000..b549804
Binary files /dev/null and b/docs/html-docs/jpgs/0000ff.jpg differ
diff --git a/docs/html-docs/jpgs/00ff00.jpg b/docs/html-docs/jpgs/00ff00.jpg
new file mode 100644 (file)
index 0000000..b9ab932
Binary files /dev/null and b/docs/html-docs/jpgs/00ff00.jpg differ
diff --git a/docs/html-docs/jpgs/00ffff.jpg b/docs/html-docs/jpgs/00ffff.jpg
new file mode 100644 (file)
index 0000000..48bfa9c
Binary files /dev/null and b/docs/html-docs/jpgs/00ffff.jpg differ
diff --git a/docs/html-docs/jpgs/1aefb3.jpg b/docs/html-docs/jpgs/1aefb3.jpg
new file mode 100644 (file)
index 0000000..1ffc1a9
Binary files /dev/null and b/docs/html-docs/jpgs/1aefb3.jpg differ
diff --git a/docs/html-docs/jpgs/3dcoup.jpg b/docs/html-docs/jpgs/3dcoup.jpg
new file mode 100644 (file)
index 0000000..52afd37
Binary files /dev/null and b/docs/html-docs/jpgs/3dcoup.jpg differ
diff --git a/docs/html-docs/jpgs/50.jpg b/docs/html-docs/jpgs/50.jpg
new file mode 100644 (file)
index 0000000..b221e4e
Binary files /dev/null and b/docs/html-docs/jpgs/50.jpg differ
diff --git a/docs/html-docs/jpgs/696969.jpg b/docs/html-docs/jpgs/696969.jpg
new file mode 100644 (file)
index 0000000..e48bbe5
Binary files /dev/null and b/docs/html-docs/jpgs/696969.jpg differ
diff --git a/docs/html-docs/jpgs/8235ef.jpg b/docs/html-docs/jpgs/8235ef.jpg
new file mode 100644 (file)
index 0000000..7614e5a
Binary files /dev/null and b/docs/html-docs/jpgs/8235ef.jpg differ
diff --git a/docs/html-docs/jpgs/8e8e8e.jpg b/docs/html-docs/jpgs/8e8e8e.jpg
new file mode 100644 (file)
index 0000000..bad044f
Binary files /dev/null and b/docs/html-docs/jpgs/8e8e8e.jpg differ
diff --git a/docs/html-docs/jpgs/Makefile.am b/docs/html-docs/jpgs/Makefile.am
new file mode 100644 (file)
index 0000000..fa4f1ef
--- /dev/null
@@ -0,0 +1,207 @@
+# This is Makefile.am, which is proceed by automake
+
+jpgdir=$(datadir)/atlc/docs/html-docs/jpgs
+
+jpg_DATA= 000000.jpg \
+home-email.jpg \
+0000ff.jpg \
+00ff00.jpg \
+00ffff.jpg \
+1aefb3.jpg \
+3dcoup.jpg \
+50.jpg \
+696969.jpg \
+8235ef.jpg \
+8e8e8e.jpg \
+aliased.jpg \
+bc7f60.jpg \
+bluefish.jpg \
+central.jpg \
+centred.jpg \
+cir.jpg \
+coax2.E.jpg \
+coax2.Er.jpg \
+coax2.Ex.jpg \
+coax2.Ey.jpg \
+coax2.U.jpg \
+coax2.V.jpg \
+coax2.jpg \
+coaxial1.jpg \
+cop1.jpg \
+coupler.jpg \
+coupler3.jpg \
+coupler4.jpg \
+coupler9.jpg \
+d5a04d.jpg \
+dcdcdc.jpg \
+dff788.jpg \
+eccentric_coax.jpg \
+eccentric_coax2.jpg \
+efcc1a.jpg \
+elliptical.jpg \
+enclosed-microstrip.jpg \
+ff0000.jpg \
+ff0001.jpg \
+ff00ff.jpg \
+ffcaca.jpg \
+ffff00.jpg \
+ffffff.jpg \
+full-size.jpg \
+ms_coupler.jpg \
+multi-dielectric.E.jpg \
+multi-dielectric.Er.jpg \
+multi-dielectric.Ex.jpg \
+multi-dielectric.Ey.jpg \
+multi-dielectric.U.jpg \
+multi-dielectric.V.jpg \
+multi-dielectric.jpg \
+not-aliased.jpg \
+off-centre.jpg \
+off-centre2.jpg \
+pcb.E.jpg \
+pcb.Er.jpg \
+pcb.Ex.jpg \
+pcb.Ey.jpg \
+pcb.U.jpg \
+pcb.V.jpg \
+pcb.jpg \
+pcb2.jpg \
+rect.jpg \
+rect2.jpg \
+rect9.jpg \
+ric.jpg \
+symmetrical_strip.jpg \
+test.jpg \
+too-small.jpg \
+twin-wire.E.jpg \
+twin-wire.Er.jpg \
+twin-wire.Ex.jpg \
+twin-wire.Ey.jpg \
+twin-wire.U.jpg \
+twin-wire.V.jpg \
+twin-wire.jpg \
+twin-wire2.E.jpg \
+twin-wire2.jpg \
+ushape.E.jpg \
+ushape.Er.jpg \
+ushape.Ex.jpg \
+ushape.Ey.jpg \
+ushape.U.jpg \
+ushape.V.jpg \
+ushape.jpg \
+very-odd-dark.E.jpg \
+very-odd-dark.Ex.jpg \
+very-odd-dark.Ey.jpg \
+very-odd-light.E.jpg \
+very-odd-light.Ex.jpg \
+very-odd-light.Ey.jpg \
+very-odd.E.jpg \
+very-odd.Er.jpg \
+very-odd.Ex.jpg \
+very-odd.Ey.jpg \
+very-odd.U.jpg \
+very-odd.V.jpg \
+very-odd.jpg \
+wide.jpg  
+
+EXTRA_DIST = 000000.jpg \
+home-email.jpg \
+0000ff.jpg \
+00ff00.jpg \
+00ffff.jpg \
+1aefb3.jpg \
+3dcoup.jpg \
+50.jpg \
+696969.jpg \
+8235ef.jpg \
+8e8e8e.jpg \
+aliased.jpg \
+bluefish.jpg \
+bc7f60.jpg \
+central.jpg \
+centred.jpg \
+cir.jpg \
+coax2.E.jpg \
+coax2.Er.jpg \
+coax2.Ex.jpg \
+coax2.Ey.jpg \
+coax2.U.jpg \
+coax2.V.jpg \
+coax2.jpg \
+coaxial1.jpg \
+cop1.jpg \
+coupler.jpg \
+coupler3.jpg \
+coupler4.jpg \
+coupler9.jpg \
+d5a04d.jpg \
+dcdcdc.jpg \
+dff788.jpg \
+eccentric_coax.jpg \
+eccentric_coax2.jpg \
+efcc1a.jpg \
+elliptical.jpg \
+enclosed-microstrip.jpg \
+ff0000.jpg \
+ff0001.jpg \
+ff00ff.jpg \
+ffcaca.jpg \
+ffff00.jpg \
+ffffff.jpg \
+full-size.jpg \
+ms_coupler.jpg \
+multi-dielectric.E.jpg \
+multi-dielectric.Er.jpg \
+multi-dielectric.Ex.jpg \
+multi-dielectric.Ey.jpg \
+multi-dielectric.U.jpg \
+multi-dielectric.V.jpg \
+multi-dielectric.jpg \
+not-aliased.jpg \
+off-centre.jpg \
+off-centre2.jpg \
+pcb.E.jpg \
+pcb.Er.jpg \
+pcb.Ex.jpg \
+pcb.Ey.jpg \
+pcb.U.jpg \
+pcb.V.jpg \
+pcb.jpg \
+pcb2.jpg \
+rect.jpg \
+rect2.jpg \
+rect9.jpg \
+ric.jpg \
+symmetrical_strip.jpg \
+test.jpg \
+too-small.jpg \
+twin-wire.E.jpg \
+twin-wire.Er.jpg \
+twin-wire.Ex.jpg \
+twin-wire.Ey.jpg \
+twin-wire.U.jpg \
+twin-wire.V.jpg \
+twin-wire.jpg \
+twin-wire2.E.jpg \
+twin-wire2.jpg \
+ushape.E.jpg \
+ushape.Er.jpg \
+ushape.Ex.jpg \
+ushape.Ey.jpg \
+ushape.U.jpg \
+ushape.V.jpg \
+ushape.jpg \
+very-odd-dark.E.jpg \
+very-odd-dark.Ex.jpg \
+very-odd-dark.Ey.jpg \
+very-odd-light.E.jpg \
+very-odd-light.Ex.jpg \
+very-odd-light.Ey.jpg \
+very-odd.E.jpg \
+very-odd.Er.jpg \
+very-odd.Ex.jpg \
+very-odd.Ey.jpg \
+very-odd.U.jpg \
+very-odd.V.jpg \
+very-odd.jpg \
+wide.jpg 
diff --git a/docs/html-docs/jpgs/Makefile.in b/docs/html-docs/jpgs/Makefile.in
new file mode 100644 (file)
index 0000000..690e4d3
--- /dev/null
@@ -0,0 +1,488 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# This is Makefile.am, which is proceed by automake
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+jpgdir = $(datadir)/atlc/docs/html-docs/jpgs
+
+jpg_DATA = 000000.jpg \
+home-email.jpg \
+0000ff.jpg \
+00ff00.jpg \
+00ffff.jpg \
+1aefb3.jpg \
+3dcoup.jpg \
+50.jpg \
+696969.jpg \
+8235ef.jpg \
+8e8e8e.jpg \
+aliased.jpg \
+bc7f60.jpg \
+bluefish.jpg \
+central.jpg \
+centred.jpg \
+cir.jpg \
+coax2.E.jpg \
+coax2.Er.jpg \
+coax2.Ex.jpg \
+coax2.Ey.jpg \
+coax2.U.jpg \
+coax2.V.jpg \
+coax2.jpg \
+coaxial1.jpg \
+cop1.jpg \
+coupler.jpg \
+coupler3.jpg \
+coupler4.jpg \
+coupler9.jpg \
+d5a04d.jpg \
+dcdcdc.jpg \
+dff788.jpg \
+eccentric_coax.jpg \
+eccentric_coax2.jpg \
+efcc1a.jpg \
+elliptical.jpg \
+enclosed-microstrip.jpg \
+ff0000.jpg \
+ff0001.jpg \
+ff00ff.jpg \
+ffcaca.jpg \
+ffff00.jpg \
+ffffff.jpg \
+full-size.jpg \
+ms_coupler.jpg \
+multi-dielectric.E.jpg \
+multi-dielectric.Er.jpg \
+multi-dielectric.Ex.jpg \
+multi-dielectric.Ey.jpg \
+multi-dielectric.U.jpg \
+multi-dielectric.V.jpg \
+multi-dielectric.jpg \
+not-aliased.jpg \
+off-centre.jpg \
+off-centre2.jpg \
+pcb.E.jpg \
+pcb.Er.jpg \
+pcb.Ex.jpg \
+pcb.Ey.jpg \
+pcb.U.jpg \
+pcb.V.jpg \
+pcb.jpg \
+pcb2.jpg \
+rect.jpg \
+rect2.jpg \
+rect9.jpg \
+ric.jpg \
+symmetrical_strip.jpg \
+test.jpg \
+too-small.jpg \
+twin-wire.E.jpg \
+twin-wire.Er.jpg \
+twin-wire.Ex.jpg \
+twin-wire.Ey.jpg \
+twin-wire.U.jpg \
+twin-wire.V.jpg \
+twin-wire.jpg \
+twin-wire2.E.jpg \
+twin-wire2.jpg \
+ushape.E.jpg \
+ushape.Er.jpg \
+ushape.Ex.jpg \
+ushape.Ey.jpg \
+ushape.U.jpg \
+ushape.V.jpg \
+ushape.jpg \
+very-odd-dark.E.jpg \
+very-odd-dark.Ex.jpg \
+very-odd-dark.Ey.jpg \
+very-odd-light.E.jpg \
+very-odd-light.Ex.jpg \
+very-odd-light.Ey.jpg \
+very-odd.E.jpg \
+very-odd.Er.jpg \
+very-odd.Ex.jpg \
+very-odd.Ey.jpg \
+very-odd.U.jpg \
+very-odd.V.jpg \
+very-odd.jpg \
+wide.jpg  
+
+
+EXTRA_DIST = 000000.jpg \
+home-email.jpg \
+0000ff.jpg \
+00ff00.jpg \
+00ffff.jpg \
+1aefb3.jpg \
+3dcoup.jpg \
+50.jpg \
+696969.jpg \
+8235ef.jpg \
+8e8e8e.jpg \
+aliased.jpg \
+bluefish.jpg \
+bc7f60.jpg \
+central.jpg \
+centred.jpg \
+cir.jpg \
+coax2.E.jpg \
+coax2.Er.jpg \
+coax2.Ex.jpg \
+coax2.Ey.jpg \
+coax2.U.jpg \
+coax2.V.jpg \
+coax2.jpg \
+coaxial1.jpg \
+cop1.jpg \
+coupler.jpg \
+coupler3.jpg \
+coupler4.jpg \
+coupler9.jpg \
+d5a04d.jpg \
+dcdcdc.jpg \
+dff788.jpg \
+eccentric_coax.jpg \
+eccentric_coax2.jpg \
+efcc1a.jpg \
+elliptical.jpg \
+enclosed-microstrip.jpg \
+ff0000.jpg \
+ff0001.jpg \
+ff00ff.jpg \
+ffcaca.jpg \
+ffff00.jpg \
+ffffff.jpg \
+full-size.jpg \
+ms_coupler.jpg \
+multi-dielectric.E.jpg \
+multi-dielectric.Er.jpg \
+multi-dielectric.Ex.jpg \
+multi-dielectric.Ey.jpg \
+multi-dielectric.U.jpg \
+multi-dielectric.V.jpg \
+multi-dielectric.jpg \
+not-aliased.jpg \
+off-centre.jpg \
+off-centre2.jpg \
+pcb.E.jpg \
+pcb.Er.jpg \
+pcb.Ex.jpg \
+pcb.Ey.jpg \
+pcb.U.jpg \
+pcb.V.jpg \
+pcb.jpg \
+pcb2.jpg \
+rect.jpg \
+rect2.jpg \
+rect9.jpg \
+ric.jpg \
+symmetrical_strip.jpg \
+test.jpg \
+too-small.jpg \
+twin-wire.E.jpg \
+twin-wire.Er.jpg \
+twin-wire.Ex.jpg \
+twin-wire.Ey.jpg \
+twin-wire.U.jpg \
+twin-wire.V.jpg \
+twin-wire.jpg \
+twin-wire2.E.jpg \
+twin-wire2.jpg \
+ushape.E.jpg \
+ushape.Er.jpg \
+ushape.Ex.jpg \
+ushape.Ey.jpg \
+ushape.U.jpg \
+ushape.V.jpg \
+ushape.jpg \
+very-odd-dark.E.jpg \
+very-odd-dark.Ex.jpg \
+very-odd-dark.Ey.jpg \
+very-odd-light.E.jpg \
+very-odd-light.Ex.jpg \
+very-odd-light.Ey.jpg \
+very-odd.E.jpg \
+very-odd.Er.jpg \
+very-odd.Ex.jpg \
+very-odd.Ey.jpg \
+very-odd.U.jpg \
+very-odd.V.jpg \
+very-odd.jpg \
+wide.jpg 
+
+subdir = docs/html-docs/jpgs
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DATA = $(jpg_DATA)
+
+DIST_COMMON = Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  docs/html-docs/jpgs/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+jpgDATA_INSTALL = $(INSTALL_DATA)
+install-jpgDATA: $(jpg_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(jpgdir)
+       @list='$(jpg_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " $(jpgDATA_INSTALL) $$d$$p $(DESTDIR)$(jpgdir)/$$f"; \
+         $(jpgDATA_INSTALL) $$d$$p $(DESTDIR)$(jpgdir)/$$f; \
+       done
+
+uninstall-jpgDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(jpg_DATA)'; for p in $$list; do \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " rm -f $(DESTDIR)$(jpgdir)/$$f"; \
+         rm -f $(DESTDIR)$(jpgdir)/$$f; \
+       done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+
+installdirs:
+       $(mkinstalldirs) $(DESTDIR)$(jpgdir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-jpgDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-jpgDATA
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-jpgDATA \
+       install-man install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+       uninstall-am uninstall-info-am uninstall-jpgDATA
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/html-docs/jpgs/aliased.jpg b/docs/html-docs/jpgs/aliased.jpg
new file mode 100644 (file)
index 0000000..f4a8644
Binary files /dev/null and b/docs/html-docs/jpgs/aliased.jpg differ
diff --git a/docs/html-docs/jpgs/bc7f60.jpg b/docs/html-docs/jpgs/bc7f60.jpg
new file mode 100644 (file)
index 0000000..ecb0412
Binary files /dev/null and b/docs/html-docs/jpgs/bc7f60.jpg differ
diff --git a/docs/html-docs/jpgs/bluefish.jpg b/docs/html-docs/jpgs/bluefish.jpg
new file mode 100644 (file)
index 0000000..e90b8c6
Binary files /dev/null and b/docs/html-docs/jpgs/bluefish.jpg differ
diff --git a/docs/html-docs/jpgs/central.jpg b/docs/html-docs/jpgs/central.jpg
new file mode 100644 (file)
index 0000000..8d8970c
Binary files /dev/null and b/docs/html-docs/jpgs/central.jpg differ
diff --git a/docs/html-docs/jpgs/centred.jpg b/docs/html-docs/jpgs/centred.jpg
new file mode 100644 (file)
index 0000000..7ec988a
Binary files /dev/null and b/docs/html-docs/jpgs/centred.jpg differ
diff --git a/docs/html-docs/jpgs/cir.jpg b/docs/html-docs/jpgs/cir.jpg
new file mode 100644 (file)
index 0000000..4bffa63
Binary files /dev/null and b/docs/html-docs/jpgs/cir.jpg differ
diff --git a/docs/html-docs/jpgs/coax2.E.jpg b/docs/html-docs/jpgs/coax2.E.jpg
new file mode 100644 (file)
index 0000000..ad13685
Binary files /dev/null and b/docs/html-docs/jpgs/coax2.E.jpg differ
diff --git a/docs/html-docs/jpgs/coax2.Er.jpg b/docs/html-docs/jpgs/coax2.Er.jpg
new file mode 100644 (file)
index 0000000..33324d8
Binary files /dev/null and b/docs/html-docs/jpgs/coax2.Er.jpg differ
diff --git a/docs/html-docs/jpgs/coax2.Ex.jpg b/docs/html-docs/jpgs/coax2.Ex.jpg
new file mode 100644 (file)
index 0000000..be2ac18
Binary files /dev/null and b/docs/html-docs/jpgs/coax2.Ex.jpg differ
diff --git a/docs/html-docs/jpgs/coax2.Ey.jpg b/docs/html-docs/jpgs/coax2.Ey.jpg
new file mode 100644 (file)
index 0000000..e9fd8f0
Binary files /dev/null and b/docs/html-docs/jpgs/coax2.Ey.jpg differ
diff --git a/docs/html-docs/jpgs/coax2.U.jpg b/docs/html-docs/jpgs/coax2.U.jpg
new file mode 100644 (file)
index 0000000..95c10f6
Binary files /dev/null and b/docs/html-docs/jpgs/coax2.U.jpg differ
diff --git a/docs/html-docs/jpgs/coax2.V.jpg b/docs/html-docs/jpgs/coax2.V.jpg
new file mode 100644 (file)
index 0000000..2ed4a52
Binary files /dev/null and b/docs/html-docs/jpgs/coax2.V.jpg differ
diff --git a/docs/html-docs/jpgs/coax2.jpg b/docs/html-docs/jpgs/coax2.jpg
new file mode 100644 (file)
index 0000000..a299280
Binary files /dev/null and b/docs/html-docs/jpgs/coax2.jpg differ
diff --git a/docs/html-docs/jpgs/coaxial1.jpg b/docs/html-docs/jpgs/coaxial1.jpg
new file mode 100644 (file)
index 0000000..f91218c
Binary files /dev/null and b/docs/html-docs/jpgs/coaxial1.jpg differ
diff --git a/docs/html-docs/jpgs/cop1.jpg b/docs/html-docs/jpgs/cop1.jpg
new file mode 100644 (file)
index 0000000..a8e5f92
Binary files /dev/null and b/docs/html-docs/jpgs/cop1.jpg differ
diff --git a/docs/html-docs/jpgs/coupler.jpg b/docs/html-docs/jpgs/coupler.jpg
new file mode 100644 (file)
index 0000000..388c58f
Binary files /dev/null and b/docs/html-docs/jpgs/coupler.jpg differ
diff --git a/docs/html-docs/jpgs/coupler3.jpg b/docs/html-docs/jpgs/coupler3.jpg
new file mode 100644 (file)
index 0000000..8080d97
Binary files /dev/null and b/docs/html-docs/jpgs/coupler3.jpg differ
diff --git a/docs/html-docs/jpgs/coupler4.jpg b/docs/html-docs/jpgs/coupler4.jpg
new file mode 100644 (file)
index 0000000..22e4ea9
Binary files /dev/null and b/docs/html-docs/jpgs/coupler4.jpg differ
diff --git a/docs/html-docs/jpgs/coupler9.jpg b/docs/html-docs/jpgs/coupler9.jpg
new file mode 100644 (file)
index 0000000..1f2cfac
Binary files /dev/null and b/docs/html-docs/jpgs/coupler9.jpg differ
diff --git a/docs/html-docs/jpgs/d5a04d.jpg b/docs/html-docs/jpgs/d5a04d.jpg
new file mode 100644 (file)
index 0000000..44862cb
Binary files /dev/null and b/docs/html-docs/jpgs/d5a04d.jpg differ
diff --git a/docs/html-docs/jpgs/dcdcdc.jpg b/docs/html-docs/jpgs/dcdcdc.jpg
new file mode 100644 (file)
index 0000000..7ca9075
Binary files /dev/null and b/docs/html-docs/jpgs/dcdcdc.jpg differ
diff --git a/docs/html-docs/jpgs/dff788.jpg b/docs/html-docs/jpgs/dff788.jpg
new file mode 100644 (file)
index 0000000..dffe492
Binary files /dev/null and b/docs/html-docs/jpgs/dff788.jpg differ
diff --git a/docs/html-docs/jpgs/eccentric_coax.jpg b/docs/html-docs/jpgs/eccentric_coax.jpg
new file mode 100644 (file)
index 0000000..6bc2e05
Binary files /dev/null and b/docs/html-docs/jpgs/eccentric_coax.jpg differ
diff --git a/docs/html-docs/jpgs/eccentric_coax2.jpg b/docs/html-docs/jpgs/eccentric_coax2.jpg
new file mode 100644 (file)
index 0000000..6bc2e05
Binary files /dev/null and b/docs/html-docs/jpgs/eccentric_coax2.jpg differ
diff --git a/docs/html-docs/jpgs/efcc1a.jpg b/docs/html-docs/jpgs/efcc1a.jpg
new file mode 100644 (file)
index 0000000..0f0923d
Binary files /dev/null and b/docs/html-docs/jpgs/efcc1a.jpg differ
diff --git a/docs/html-docs/jpgs/elliptical.jpg b/docs/html-docs/jpgs/elliptical.jpg
new file mode 100644 (file)
index 0000000..8de2973
Binary files /dev/null and b/docs/html-docs/jpgs/elliptical.jpg differ
diff --git a/docs/html-docs/jpgs/enclosed-microstrip.jpg b/docs/html-docs/jpgs/enclosed-microstrip.jpg
new file mode 100644 (file)
index 0000000..aae34c8
Binary files /dev/null and b/docs/html-docs/jpgs/enclosed-microstrip.jpg differ
diff --git a/docs/html-docs/jpgs/ff0000.jpg b/docs/html-docs/jpgs/ff0000.jpg
new file mode 100644 (file)
index 0000000..0688e08
Binary files /dev/null and b/docs/html-docs/jpgs/ff0000.jpg differ
diff --git a/docs/html-docs/jpgs/ff0001.jpg b/docs/html-docs/jpgs/ff0001.jpg
new file mode 100644 (file)
index 0000000..694b65d
Binary files /dev/null and b/docs/html-docs/jpgs/ff0001.jpg differ
diff --git a/docs/html-docs/jpgs/ff00ff.jpg b/docs/html-docs/jpgs/ff00ff.jpg
new file mode 100644 (file)
index 0000000..4daa88a
Binary files /dev/null and b/docs/html-docs/jpgs/ff00ff.jpg differ
diff --git a/docs/html-docs/jpgs/ffcaca.jpg b/docs/html-docs/jpgs/ffcaca.jpg
new file mode 100644 (file)
index 0000000..3917259
Binary files /dev/null and b/docs/html-docs/jpgs/ffcaca.jpg differ
diff --git a/docs/html-docs/jpgs/ffff00.jpg b/docs/html-docs/jpgs/ffff00.jpg
new file mode 100644 (file)
index 0000000..6f77e83
Binary files /dev/null and b/docs/html-docs/jpgs/ffff00.jpg differ
diff --git a/docs/html-docs/jpgs/ffffff.jpg b/docs/html-docs/jpgs/ffffff.jpg
new file mode 100644 (file)
index 0000000..4e7db51
Binary files /dev/null and b/docs/html-docs/jpgs/ffffff.jpg differ
diff --git a/docs/html-docs/jpgs/full-size.jpg b/docs/html-docs/jpgs/full-size.jpg
new file mode 100644 (file)
index 0000000..95167e1
Binary files /dev/null and b/docs/html-docs/jpgs/full-size.jpg differ
diff --git a/docs/html-docs/jpgs/home-email.jpg b/docs/html-docs/jpgs/home-email.jpg
new file mode 100644 (file)
index 0000000..1d82cd3
Binary files /dev/null and b/docs/html-docs/jpgs/home-email.jpg differ
diff --git a/docs/html-docs/jpgs/ms_coupler.jpg b/docs/html-docs/jpgs/ms_coupler.jpg
new file mode 100644 (file)
index 0000000..40a1bb5
Binary files /dev/null and b/docs/html-docs/jpgs/ms_coupler.jpg differ
diff --git a/docs/html-docs/jpgs/multi-dielectric.E.jpg b/docs/html-docs/jpgs/multi-dielectric.E.jpg
new file mode 100644 (file)
index 0000000..1e361a1
Binary files /dev/null and b/docs/html-docs/jpgs/multi-dielectric.E.jpg differ
diff --git a/docs/html-docs/jpgs/multi-dielectric.Er.jpg b/docs/html-docs/jpgs/multi-dielectric.Er.jpg
new file mode 100644 (file)
index 0000000..82f58e0
Binary files /dev/null and b/docs/html-docs/jpgs/multi-dielectric.Er.jpg differ
diff --git a/docs/html-docs/jpgs/multi-dielectric.Ex.jpg b/docs/html-docs/jpgs/multi-dielectric.Ex.jpg
new file mode 100644 (file)
index 0000000..258719e
Binary files /dev/null and b/docs/html-docs/jpgs/multi-dielectric.Ex.jpg differ
diff --git a/docs/html-docs/jpgs/multi-dielectric.Ey.jpg b/docs/html-docs/jpgs/multi-dielectric.Ey.jpg
new file mode 100644 (file)
index 0000000..a4664a9
Binary files /dev/null and b/docs/html-docs/jpgs/multi-dielectric.Ey.jpg differ
diff --git a/docs/html-docs/jpgs/multi-dielectric.U.jpg b/docs/html-docs/jpgs/multi-dielectric.U.jpg
new file mode 100644 (file)
index 0000000..c7d98d6
Binary files /dev/null and b/docs/html-docs/jpgs/multi-dielectric.U.jpg differ
diff --git a/docs/html-docs/jpgs/multi-dielectric.V.jpg b/docs/html-docs/jpgs/multi-dielectric.V.jpg
new file mode 100644 (file)
index 0000000..2543eeb
Binary files /dev/null and b/docs/html-docs/jpgs/multi-dielectric.V.jpg differ
diff --git a/docs/html-docs/jpgs/multi-dielectric.jpg b/docs/html-docs/jpgs/multi-dielectric.jpg
new file mode 100644 (file)
index 0000000..3fd1403
Binary files /dev/null and b/docs/html-docs/jpgs/multi-dielectric.jpg differ
diff --git a/docs/html-docs/jpgs/not-aliased.jpg b/docs/html-docs/jpgs/not-aliased.jpg
new file mode 100644 (file)
index 0000000..f3c3323
Binary files /dev/null and b/docs/html-docs/jpgs/not-aliased.jpg differ
diff --git a/docs/html-docs/jpgs/off-centre.jpg b/docs/html-docs/jpgs/off-centre.jpg
new file mode 100644 (file)
index 0000000..a7c8231
Binary files /dev/null and b/docs/html-docs/jpgs/off-centre.jpg differ
diff --git a/docs/html-docs/jpgs/off-centre2.jpg b/docs/html-docs/jpgs/off-centre2.jpg
new file mode 100644 (file)
index 0000000..cb99259
Binary files /dev/null and b/docs/html-docs/jpgs/off-centre2.jpg differ
diff --git a/docs/html-docs/jpgs/pcb.E.jpg b/docs/html-docs/jpgs/pcb.E.jpg
new file mode 100644 (file)
index 0000000..a3cd491
Binary files /dev/null and b/docs/html-docs/jpgs/pcb.E.jpg differ
diff --git a/docs/html-docs/jpgs/pcb.Er.jpg b/docs/html-docs/jpgs/pcb.Er.jpg
new file mode 100644 (file)
index 0000000..218c150
Binary files /dev/null and b/docs/html-docs/jpgs/pcb.Er.jpg differ
diff --git a/docs/html-docs/jpgs/pcb.Ex.jpg b/docs/html-docs/jpgs/pcb.Ex.jpg
new file mode 100644 (file)
index 0000000..68f6457
Binary files /dev/null and b/docs/html-docs/jpgs/pcb.Ex.jpg differ
diff --git a/docs/html-docs/jpgs/pcb.Ey.jpg b/docs/html-docs/jpgs/pcb.Ey.jpg
new file mode 100644 (file)
index 0000000..0f1373d
Binary files /dev/null and b/docs/html-docs/jpgs/pcb.Ey.jpg differ
diff --git a/docs/html-docs/jpgs/pcb.U.jpg b/docs/html-docs/jpgs/pcb.U.jpg
new file mode 100644 (file)
index 0000000..8374768
Binary files /dev/null and b/docs/html-docs/jpgs/pcb.U.jpg differ
diff --git a/docs/html-docs/jpgs/pcb.V.jpg b/docs/html-docs/jpgs/pcb.V.jpg
new file mode 100644 (file)
index 0000000..35acc9e
Binary files /dev/null and b/docs/html-docs/jpgs/pcb.V.jpg differ
diff --git a/docs/html-docs/jpgs/pcb.jpg b/docs/html-docs/jpgs/pcb.jpg
new file mode 100644 (file)
index 0000000..7d79858
Binary files /dev/null and b/docs/html-docs/jpgs/pcb.jpg differ
diff --git a/docs/html-docs/jpgs/pcb2.jpg b/docs/html-docs/jpgs/pcb2.jpg
new file mode 100644 (file)
index 0000000..5281609
Binary files /dev/null and b/docs/html-docs/jpgs/pcb2.jpg differ
diff --git a/docs/html-docs/jpgs/rect.jpg b/docs/html-docs/jpgs/rect.jpg
new file mode 100644 (file)
index 0000000..2583483
Binary files /dev/null and b/docs/html-docs/jpgs/rect.jpg differ
diff --git a/docs/html-docs/jpgs/rect2.jpg b/docs/html-docs/jpgs/rect2.jpg
new file mode 100644 (file)
index 0000000..479742b
Binary files /dev/null and b/docs/html-docs/jpgs/rect2.jpg differ
diff --git a/docs/html-docs/jpgs/rect9.jpg b/docs/html-docs/jpgs/rect9.jpg
new file mode 100644 (file)
index 0000000..133effa
Binary files /dev/null and b/docs/html-docs/jpgs/rect9.jpg differ
diff --git a/docs/html-docs/jpgs/ric.jpg b/docs/html-docs/jpgs/ric.jpg
new file mode 100644 (file)
index 0000000..9a9fe44
Binary files /dev/null and b/docs/html-docs/jpgs/ric.jpg differ
diff --git a/docs/html-docs/jpgs/symmetrical_strip.jpg b/docs/html-docs/jpgs/symmetrical_strip.jpg
new file mode 100644 (file)
index 0000000..05358c5
Binary files /dev/null and b/docs/html-docs/jpgs/symmetrical_strip.jpg differ
diff --git a/docs/html-docs/jpgs/test.jpg b/docs/html-docs/jpgs/test.jpg
new file mode 100644 (file)
index 0000000..f0ad8f6
Binary files /dev/null and b/docs/html-docs/jpgs/test.jpg differ
diff --git a/docs/html-docs/jpgs/too-small.jpg b/docs/html-docs/jpgs/too-small.jpg
new file mode 100644 (file)
index 0000000..f2fe8ee
Binary files /dev/null and b/docs/html-docs/jpgs/too-small.jpg differ
diff --git a/docs/html-docs/jpgs/twin-wire.E.jpg b/docs/html-docs/jpgs/twin-wire.E.jpg
new file mode 100644 (file)
index 0000000..8fa9605
Binary files /dev/null and b/docs/html-docs/jpgs/twin-wire.E.jpg differ
diff --git a/docs/html-docs/jpgs/twin-wire.Er.jpg b/docs/html-docs/jpgs/twin-wire.Er.jpg
new file mode 100644 (file)
index 0000000..166fbca
Binary files /dev/null and b/docs/html-docs/jpgs/twin-wire.Er.jpg differ
diff --git a/docs/html-docs/jpgs/twin-wire.Ex.jpg b/docs/html-docs/jpgs/twin-wire.Ex.jpg
new file mode 100644 (file)
index 0000000..688d9ab
Binary files /dev/null and b/docs/html-docs/jpgs/twin-wire.Ex.jpg differ
diff --git a/docs/html-docs/jpgs/twin-wire.Ey.jpg b/docs/html-docs/jpgs/twin-wire.Ey.jpg
new file mode 100644 (file)
index 0000000..7208d0d
Binary files /dev/null and b/docs/html-docs/jpgs/twin-wire.Ey.jpg differ
diff --git a/docs/html-docs/jpgs/twin-wire.U.jpg b/docs/html-docs/jpgs/twin-wire.U.jpg
new file mode 100644 (file)
index 0000000..e19399e
Binary files /dev/null and b/docs/html-docs/jpgs/twin-wire.U.jpg differ
diff --git a/docs/html-docs/jpgs/twin-wire.V.jpg b/docs/html-docs/jpgs/twin-wire.V.jpg
new file mode 100644 (file)
index 0000000..e991576
Binary files /dev/null and b/docs/html-docs/jpgs/twin-wire.V.jpg differ
diff --git a/docs/html-docs/jpgs/twin-wire.jpg b/docs/html-docs/jpgs/twin-wire.jpg
new file mode 100644 (file)
index 0000000..194b38c
Binary files /dev/null and b/docs/html-docs/jpgs/twin-wire.jpg differ
diff --git a/docs/html-docs/jpgs/twin-wire2.E.jpg b/docs/html-docs/jpgs/twin-wire2.E.jpg
new file mode 100644 (file)
index 0000000..7bbbade
Binary files /dev/null and b/docs/html-docs/jpgs/twin-wire2.E.jpg differ
diff --git a/docs/html-docs/jpgs/twin-wire2.jpg b/docs/html-docs/jpgs/twin-wire2.jpg
new file mode 100644 (file)
index 0000000..a8b57fc
Binary files /dev/null and b/docs/html-docs/jpgs/twin-wire2.jpg differ
diff --git a/docs/html-docs/jpgs/ushape.E.jpg b/docs/html-docs/jpgs/ushape.E.jpg
new file mode 100644 (file)
index 0000000..9416a75
Binary files /dev/null and b/docs/html-docs/jpgs/ushape.E.jpg differ
diff --git a/docs/html-docs/jpgs/ushape.Er.jpg b/docs/html-docs/jpgs/ushape.Er.jpg
new file mode 100644 (file)
index 0000000..b12f3ed
Binary files /dev/null and b/docs/html-docs/jpgs/ushape.Er.jpg differ
diff --git a/docs/html-docs/jpgs/ushape.Ex.jpg b/docs/html-docs/jpgs/ushape.Ex.jpg
new file mode 100644 (file)
index 0000000..5dc887c
Binary files /dev/null and b/docs/html-docs/jpgs/ushape.Ex.jpg differ
diff --git a/docs/html-docs/jpgs/ushape.Ey.jpg b/docs/html-docs/jpgs/ushape.Ey.jpg
new file mode 100644 (file)
index 0000000..97b5e33
Binary files /dev/null and b/docs/html-docs/jpgs/ushape.Ey.jpg differ
diff --git a/docs/html-docs/jpgs/ushape.U.jpg b/docs/html-docs/jpgs/ushape.U.jpg
new file mode 100644 (file)
index 0000000..51d9965
Binary files /dev/null and b/docs/html-docs/jpgs/ushape.U.jpg differ
diff --git a/docs/html-docs/jpgs/ushape.V.jpg b/docs/html-docs/jpgs/ushape.V.jpg
new file mode 100644 (file)
index 0000000..58d1f9b
Binary files /dev/null and b/docs/html-docs/jpgs/ushape.V.jpg differ
diff --git a/docs/html-docs/jpgs/ushape.jpg b/docs/html-docs/jpgs/ushape.jpg
new file mode 100644 (file)
index 0000000..ca304bb
Binary files /dev/null and b/docs/html-docs/jpgs/ushape.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd-dark.E.jpg b/docs/html-docs/jpgs/very-odd-dark.E.jpg
new file mode 100644 (file)
index 0000000..1e425ee
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd-dark.E.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd-dark.Ex.jpg b/docs/html-docs/jpgs/very-odd-dark.Ex.jpg
new file mode 100644 (file)
index 0000000..e0a5d9b
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd-dark.Ex.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd-dark.Ey.jpg b/docs/html-docs/jpgs/very-odd-dark.Ey.jpg
new file mode 100644 (file)
index 0000000..117fb16
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd-dark.Ey.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd-light.E.jpg b/docs/html-docs/jpgs/very-odd-light.E.jpg
new file mode 100644 (file)
index 0000000..86801c7
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd-light.E.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd-light.Ex.jpg b/docs/html-docs/jpgs/very-odd-light.Ex.jpg
new file mode 100644 (file)
index 0000000..8fc256f
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd-light.Ex.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd-light.Ey.jpg b/docs/html-docs/jpgs/very-odd-light.Ey.jpg
new file mode 100644 (file)
index 0000000..58e56e8
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd-light.Ey.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd.E.jpg b/docs/html-docs/jpgs/very-odd.E.jpg
new file mode 100644 (file)
index 0000000..b4f2697
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd.E.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd.Er.jpg b/docs/html-docs/jpgs/very-odd.Er.jpg
new file mode 100644 (file)
index 0000000..7af911b
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd.Er.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd.Ex.jpg b/docs/html-docs/jpgs/very-odd.Ex.jpg
new file mode 100644 (file)
index 0000000..aef52db
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd.Ex.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd.Ey.jpg b/docs/html-docs/jpgs/very-odd.Ey.jpg
new file mode 100644 (file)
index 0000000..0e18c4c
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd.Ey.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd.U.jpg b/docs/html-docs/jpgs/very-odd.U.jpg
new file mode 100644 (file)
index 0000000..192011a
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd.U.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd.V.jpg b/docs/html-docs/jpgs/very-odd.V.jpg
new file mode 100644 (file)
index 0000000..448cb58
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd.V.jpg differ
diff --git a/docs/html-docs/jpgs/very-odd.jpg b/docs/html-docs/jpgs/very-odd.jpg
new file mode 100644 (file)
index 0000000..bc4642f
Binary files /dev/null and b/docs/html-docs/jpgs/very-odd.jpg differ
diff --git a/docs/html-docs/jpgs/wide.jpg b/docs/html-docs/jpgs/wide.jpg
new file mode 100644 (file)
index 0000000..ea68dfd
Binary files /dev/null and b/docs/html-docs/jpgs/wide.jpg differ
diff --git a/docs/html-docs/make-check.html b/docs/html-docs/make-check.html
new file mode 100644 (file)
index 0000000..4bcbaa0
--- /dev/null
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+<meta name="author" content="Dr. David Kirkby">
+<META name="DESCRIPTION" content="How to build atlc - Arbitrary Transmission Line Calculator from sources.">
+<META name="KEYWORDS" content="Transmission lines, calculator, atlc">
+<TITLE>How make check works</TITLE>
+</HEAD>
+<BODY>
+<H1>How 'make check' works</H1>
+<p>Extensive work has been put into testing the <a href="accuracy.html">accuracy</a> of <em>atlc</em>, so I have a high-degree of confidence in the code. However, over the years that <em>atlc</em> has been developed, a few problems have been discovered, often only affecting one hardware system, or one operating system, or one compiler or one set of optimisation flags. For this reason, extenive self-checking is performed to try to discover any problems.</p>
+
+After <code>make</code> is run, one should run <code>make check</code>, which will run a series of about 90 (as of 3rd August 2003) self-tests. This page describes what the self-tests do, how they work etc. </p>
+<OL>
+<LI>First, the basic <a href="accuracy.html">accuracy</a> of the code has been checked on a Sun Ultra 80, where all development is done. That checks the results are correct, but only on one platform.<br><br></li>
+<LI>A number of self tests call the programs <code>create_bmp_for_circ_in_circ,  create_bmp_for_circ_in_rect, create_bmp_for_microstrip_coupler, create_bmp_for_rect_cen_in_rect,  
+create_bmp_for_rect_cen_in_rect_coupler, create_bmp_for_rect_in_circ, create_bmp_for_stripline_coupler</code> and <code>create_bmp_for_symmetrical_stripline.</code> These programs create bitmap files. The validity of the bitmaps files is checked with Gimp, to meansure the width and height of the generated bitmaps, the diameters or sizes of conductors, etc. Note, it would take an error both in Gimp and one of <br>the <code>create_bmp_for_*</code> files for an error to not be detected when viewed in the Gimp.<br><br></li>
+
+<li>The MD5 checksums of these bitmaps are computed with the program <code>mymd5sum</code> in the <code>tools/src subdirectory</code>. The MD5 checksums of the generated should be identical to those expected. For example, test <code>2a-create_bmp_for_rect_in_rect.bmp.test</code> executes<br><br>
+<code>create_bmp_for_rect_in_rect -b 4 500 100 20 240 20 460 50 40 1 4.8 test_rect_in_rect.bmp</code>
+<br><br>
+The MD5 checksum of <code>test_rect_in_rect.bmp</code> should be <code>c761645b57a08057064eb284a44859e9</code> and if not, test <code>2a-create_bmp_for_rect_in_rect.bmp.test</code> will fail.<br><br> 
+</li>
+<li>The program <code>atlc</code>, is run, using the bitmaps generated above. For example, test <code>2b-create_bmp_for_rect_in_rect.txt.test</code> executes:<br><br>
+atlc  -S test_rect_in_rect.bmp > test_rect_in_rect.txt<br><br>
+This creates the text file <code>test_rect_in_rect.txt</code> as well as the bitmaps <code>test_rect_in_rect.Ex.bmp, test_rect_in_rect.Ey.bmp, test_rect_in_rect.E.bmp, test_rect_in_rect.V.bmp, test_rect_in_rect.U.bmp</code> and <code>test_rect_in_rect.Er.bmp<br><br></code>.</li>
+<li>The results of the numerical computations are checked against those expected, which should be close to the theoretical values. For example, in test <code>create_bmp_for_rect_in_rect.txt.test</code> the capacitance computation is expected to be 121.0 pF/m and the impedance 44.61 Ohms. If not, test <code>2b-create_bmp_for_rect_in_rect.txt.test</code> will fail. <br><br></li>
+<li>The MD5 checksums of the bitmap files created by <code>atlc</code> are computed and checked against what is expected. For example, test <code>2c-create_bmp_for_rect_in_rect.E.bmp.test</code> compares the MD5 checksum of 
+<code>test_rect_in_rect.E.bmp</code> to that was expected (<code>49ce7df03fcd0ee4e0120269e136f506</code>), test <code>2d-create_bmp_for_rect_in_rect.Er.bmp.test</code> that of <code>test_rect_in_rect.Er.bmp</code> to that expected (<code>83c85493d8cfc248b65b72fc6bb1935d</code>) etc. In a few rare incidences, a single pixel of the bitmaps created in step 4 depend on the platform. The differences are due to rounding errors. For example, in test </code>1g-create_bmp_for_symmetrical_stripline.U.bmp.test</code>, the MD5 checksum is computed of the file <code>test_sym_strip.U.bmp</code>, but depending on the platform, one pixel will vary in gray level by one shade of gray, so two MD5 checksums are considered acceptable - <code>353a368663a112d7e8f0af6a63df75f3</code> and <code>a983da63a2f7b5d56d263d93988c1f8d.</code>  Such instances are rare.<br><br></li>
+<LI><code>atlc</code> will, unless the <code>-S</code> option is given, write binary files, with the .bin extension. Only the lengths of these are currently checked - not their contents, as that would be too dependant on rounding errors. Perhaps at a later date their binary data will be convered into an integer format (say 256 levels) and the data compared. Currently no use is made of the binary data files, so not much effort has been put into checking them. </li>
+
+<br><br>
+To be continued. 
+
+</ol>
+
+</body>
+
+</html>
diff --git a/docs/html-docs/man-pages.html b/docs/html-docs/man-pages.html
new file mode 100644 (file)
index 0000000..4aa79bc
--- /dev/null
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish and vi">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+<meta name="author" content="Dr. David Kirkby">
+<META name="DESCRIPTION" content="Manual pages for atlc - Arbitrary Transmission Line Calculator from sources.">
+<META name="KEYWORDS" content="Transmission line calculator atlc">
+<TITLE>Building atlc</TITLE>
+</HEAD>
+<BODY>
+
+<H1>UNIX manual pages.</H1>
+The following are HTML versions of the standard UNIX manual pages for a number of programs. Although man pages have been produced, I don't think they are a very good way of explaining how to use <code><a href="atlc.1.html">atlc</a></code> or some of the other complex programs, although man pages are perfectly adequate for programs such as <code><a href="coax.1.html">coax(1)</a>, <a
+href="dualcoax.1.html">dualcoax(1)</a> and <a href="sysdata.1.html">sysdata(1)</a></code>. The HTML documentation is ususally better, but in the tradition of UNIX systems, man pages are present. All the HTML formatted man pages were generated with the aid of <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>  by ehood@medusa.acs.uci.edu This has some quite severe problems with some pages, so they don't look too good at all. 
+<UL>
+<LI><a href="atlc.1.html"><code>atlc(1)</code></a>   This is the main finite-difference calculation routine.</LI>
+<LI><a href="coax.1.html"><code>coax(1)</code> </a> Computes impedance of standard coax or eccentric coax. See
+also <a href="dualcoax.1.html"><code>dualcoax(1)</code></LI>
+<LI><a href="create_bmp_for_circ_in_circ.1.html"><code>create_bmp_for_circ_in_circ(1)</code></a>  For a circular conductor inside a circular conductor.</LI>
+<LI><a href="create_bmp_for_circ_in_rect.1.html"><code>create_bmp_for_circ_in_rect(1)</code></a>  For a circular conductor inside a rectangular one</LI>
+<LI><a href="create_bmp_for_rect_in_rect.1.html"><code>create_bmp_for_rect_in_rect(1)</code> </a>   For quickly generating bitmaps of rectangular conductors inside rectangular conductors. </LI>
+<LI><a href="create_bmp_for_rect_cen_in_rect.1.html"><code>create_bmp_for_rect_cen_in_rect(1)</code></a>  For quickly generating bitmaps of rectangular conductors <STRONG>placed centrally</STRONG> inside rectangular conductors.</LI>
+<LI><a href="create_bmp_for_rect_cen_in_rect_coupler.1.html"><code>create_bmp_for_rect_cen_in_rect_coupler(1)</code></a>  For quickly generating bitmaps of a coupler with think conductors rectangular conductors <STRONG>placed centrally</STRONG> inside rectangular conductors.</LI>
+<LI><a href="create_bmp_for_rect_in_circ.1.html"><code>create_bmp_for_rect_in_circ(1)</code></a> <FONT COLOR="#FF0000">  Currently the programme has not been finished</FONT></LI>
+<LI><a href="create_bmp_for_symmetrical_stripline.1.html"><code>create_bmp_for_symmetrical_stripline(1)</code> </a>   For quickly generating bitmaps of thin conductor between two wide groundplanes. Since exact analytical results exist, this is good for testing atlc </LI>
+<LI><a href="create_bmp_for_stripline_coupler.1.html"><code>create_bmp_for_stripline_coupler(1)</code> </a>For  quickly generating bitmaps of directional couplers like this <img src="jpgs/coupler3.jpg"  width="616" height="140" ALT="a directional coupler"> <br>Since this structure has an exact  analytical result when the conductors are infinitely thin and the groundplanes infinitely wide,  it is useful for testing atlc's   <a href="accuracy.html#Accuracy_coupler">performance on coupled lines.</a></LI>
+<LI><a href="design_coupler.1.html"><code>design_coupler(1)</code></a> is quite complex and probably best understood with the use of the HTML-formatted pages, rather than a man page, but one exists for completeness. Running <CODE>design_coupler -e</CODE> gives a <a href="determine_dimensions_of_couplers.html">complete example</a> of the use of <code>design_coupler</code>.</LI>
+<LI><a href="dualcoax.1.html"><code>dualcoax(1)</code> </a> Computes impedance of a coaxial cable with two
+concentric dielectrics. See also <a href="coax.1.html"><code>coax(1)</code></LI>
+
+<LI><a href="readbin.1.html"><code>readbin(1)</code></a> For finding information on the binary files produced.
+<LI><a href="sysdata.1.html"><code>sysdata(1)</code> </a> For gathering some hardware infomation. </LI>
+
+
+</UL>
+<br><br>
+atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A>
+<br>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A><a href="http://validator.w3.org/check/referer"><img border="0"
+src="valid-html40.gif"
+alt="Valid HTML 4.01!" height="31" width="88"></a>
+<a href="http://bluefish.openoffice.nl/"><img SRC="jpgs/bluefish.jpg" WIDTH="88" HEIGHT="31" ALT="Bluefish"></a>
+
+
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html">.</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html">.</a>
+</body>
+</HTML>
diff --git a/docs/html-docs/options.html b/docs/html-docs/options.html
new file mode 100644 (file)
index 0000000..d88acb3
--- /dev/null
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="Transmission line calculator, or *any* cross section">
+<META name="KEYWORDS" content="Transmission line calculator arbitrary any cross section">
+<TITLE>Arbitrary Transmission Line Calculator (atlc) version 2</TITLE>
+</HEAD>
+<BODY>
+
+<H1><COde>atlc</code>'s Options.</H1>
+<COde>atlc</code> supports a few options on the command line. All except the  <code>-v</code> option, require something to follow them, which is usually a number, but in the case of the <CODE>-d</CODE> option, it is more complex. The available options can be seen if you run <CODE>atlc</CODE> without any arguments. As of  version 3.0.0, these options are:
+<pre>
+Usage: atlc [<a href="#-v">-v</A>][<a href="#-c">-c </A>cutoff][<a href="#-d">-d</a> rrggbb=Er][<a href="#-F">-F</A> appendfile]
+[<a href="#-i">-i</a> factor][<a href="#-r">-r</a> rate_multiplier][<a href="#-t">-t</a> THREADs]  bitmap
+
+options are:
+  -c cutoff
+      where 'cutoff' sets the cutoff criteria - see html docs or man page.
+  -d rrggbb=Er
+      where the colour rrggbb (in hex) is a (d)ielectric of permittivity Er.
+  -F appendfile
+      appends all data to 'appendfile'.
+  -i factor
+      which lightens (factor &gt 2.0) or darkens (1.0 &lt factor &lt  2.0) output bitmaps.
+  -t threads. 
+      Where 'threads' is the number of threads to use (normally best set to 
+      the number of cpus).
+  -r rate_multiplier
+      where 'rate_multiplier' sets the rate multipler (called r in source code)
+  -v       
+      Verbose option. Print extra data to stdout.
+
+</pre>
+Unless you <a href="building.html">compile with multi-processor support</a>, the <CODE>-t</CODE> option will not  be seen. These options, while on the whole fairly self-explanatory, are described below.
+<br><br>
+<strong><a name="-c">-c</A> cutoff </strong><br>
+The programme solves a problem iteratively - i.e. it gets closer and closer to the true solution. It never gives the exact answer, but can (at least in theory) give an answer to any desired accuracy. The programme needs to know when to stop and give the user the answer. It does this by comparing two subsequent estimates of the transmission line's capacitance and stoping it these two estimates are within a certain tolerance of each other. By default, the programme stops when two iterations differ by less than 0.01%, but this can be changed with the <CODE>-c</CODE> option. For example, here are two runs of the same problem, one with the cutoff at the default (0.0001=0.01%) and anothe with the cutoff changed to a larger value (0.1 or 10%). 
+<pre>
+% atlc -v 200-Ohm-401.bmp
+200-Ohm-401.bmp Er= 1.0000 C= 22.2637 pF/m L= 499.7606 nH/m Zo= 149.8245 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 19.4557 pF/m L= 571.8880 nH/m Zo= 171.4477 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 18.2779 pF/m L= 608.7418 nH/m Zo= 182.4962 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 17.6339 pF/m L= 630.9716 nH/m Zo= 189.1605 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 17.2563 pF/m L= 644.7799 nH/m Zo= 193.3001 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 17.0244 pF/m L= 653.5612 nH/m Zo= 195.9327 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.8772 pF/m L= 659.2639 nH/m Zo= 197.6423 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.7812 pF/m L= 663.0335 nH/m Zo= 198.7724 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.7174 pF/m L= 665.5623 nH/m Zo= 199.5306 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.6744 pF/m L= 667.2796 nH/m Zo= 200.0454 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.6450 pF/m L= 668.4575 nH/m Zo= 200.3985 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.6248 pF/m L= 669.2723 nH/m Zo= 200.6428 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.6107 pF/m L= 669.8398 nH/m Zo= 200.8129 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.6008 pF/m L= 670.2371 nH/m Zo= 200.9320 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.5939 pF/m L= 670.5166 nH/m Zo= 201.0158 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.5890 pF/m L= 670.7138 nH/m Zo= 201.0750 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.5856 pF/m L= 670.8533 nH/m Zo= 201.1168 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.5832 pF/m L= 670.9520 nH/m Zo= 201.1464 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.5814 pF/m L= 671.0220 nH/m Zo= 201.1673 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.5802 pF/m L= 671.0714 nH/m Zo= 201.1821 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 16.5802 pF/m L= 671.0714 nH/m Zo= 201.1821 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+</pre>
+Now here is a run with the cutoff set to a much larger value. atlc will iterate less and so give a less accurate answer quickly. 
+<pre>
+% atlc -v -c 0.1 200-Ohm-401.bmp
+200-Ohm-401.bmp Er= 1.0000 C= 22.2637 pF/m L= 499.7606 nH/m Zo= 149.8245 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 19.4557 pF/m L= 571.8880 nH/m Zo= 171.4477 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 18.2779 pF/m L= 608.7418 nH/m Zo= 182.4962 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+200-Ohm-401.bmp Er= 1.0000 C= 18.2779 pF/m L= 608.7418 nH/m Zo= 182.4962 Ohms v= 2.99792e+08 m/s v_f= 1.0000 VERSION= 3.0.1
+</pre>
+<strong><a name="-d">-d rrggbb=Er</a></STRONG><br>
+ If you wish to analyse a structure, such as this microstrip in a closed box.<br>
+<img src="jpgs/enclosed-microstrip.jpg" ALT="Enclosed microstrip">
+<br>Green is the outer conductor, red the microstrip's conductor, white is vacuum and the brownish colour (rgb=0x654D65) is supposed to represent your substrate, which we will assume has an Er of 3.0 <br>
+It is now necessary to use the <CODE>-d</CODE> option to <COde>atlc</code>, so that it understands this brownish colour is a dielectric with a permittivity of 3.0, like this<br>
+<pre>
+% atlc -d654D65=3.0 enclosed-microstrip.bmp
+% atlc -d654D65=3.0 enclosed-microstrip.bmp
+enclosed-microstrip.bmp Er= MIXED C= 68.0545 pF/m L= 345.145352 nH/m Zo= 71.215160 Ohms v= 206333823.992669 m/s     v_f= 0.688256 VERSION=3.0.0
+</pre>
+If instead the permittivity was 300, not 3, we could indicate this to atlc. We would expect the capacitance to rise a lot and Zo to fall a lot. 
+<pre>
+% atlc -d654D65=300 enclosed-microstrip.bmp
+enclosed-microstrip.bmp Er= MIXED C= 5162.48 pF/m L= 320.454031 nH/m Zo= 7.878680 Ohms v= 24585992.507328 m/s     v_f= 0.082010 VERSION=3.0.0
+</pre>
+<strong><a name="-f">-f</a> appendfile</STRONG><br>
+Causes the results to be appended to <EM>appendfile</EM>, which will then just contain text. (Obviously <EM>appendfile</EM> can be any file name you want, it does not need to be 'appendfile').  Notes  results will be written to files with the original filename, appended with .txt. So this is only necessary to keep a number of results in one file. Note if the -v option is added too, then the intermediate results will be included. Here's an example of its usage. <pre>
+atlc -F results_from_all_tests.txt test123a.bmp </pre>
+<br><br>
+<strong><a name="-i">-i factor</a></STRONG><br>
+The programme prints the electric field intensity, both as a binary file, and as bitmaps. The binary files have <STRONG>quantitative</STRONG> data in them, but the bitmaps have only <STRONG>qualitative</STRONG> data and are scaled so that black is no field, white is maximum. Exactly how a image appear, depends on may things, including the response of the human eye, the gamma of your CRT tube, and just how <COde>atlc</code> equates field strength to gray levels. The last of these, are user defineaable in <CODE>atlc</CODE>. Setting the factor &gt; 2 lightens the images, but setting it between 1 and 2 lightens them. Note, the factor of 2 may be changed in the header file, like this
+<pre>
+#define IMAGE_FIDDLE_FACTOR 2.0
+</pre>
+It is possible the user may wish to change the default. If this is done, the programme will always show the default, if ran with no filename. ie 
+<pre>
+% atlc
+</pre>
+<TABLE>
+<TR>
+<TD></TD>
+<TD>E</TD>
+<TD>Ex</TD>
+<TD>Ey</TD>
+</TR>
+<TR>
+<TD>light (factor = 4)</TD>
+<TD><img src="jpgs/very-odd-light.E.jpg"  width="128" height="128" ALT="E-field of odd transmission line"></TD>
+<TD><img src="jpgs/very-odd-light.Ex.jpg"  width="128" height="128" ALT="Ex field of odd transmission line"></TD>
+<TD><img src="jpgs/very-odd-light.Ey.jpg"  width="128" height="128" ALT="Ey field of odd transmission line"></TD>
+</TR>
+<TR>
+<TD>default (factor = 2.0)</TD>
+<TD><img src="jpgs/very-odd.E.jpg"  width="128" height="128" ALT="E-field of odd transmission line"></TD>
+<TD><img src="jpgs/very-odd.Ex.jpg"  width="128" height="128" ALT="Ex field of odd transmission line"></TD>
+<TD><img src="jpgs/very-odd.Ey.jpg"  width="128" height="128" ALT="Ey field of odd transmission line"></TD>
+</TR>
+<TR>
+<TD>dark (factor = 1.1)</TD>
+<TD><img src="jpgs/very-odd-dark.E.jpg"  width="128" height="128" ALT="E-field of odd transmission line"></TD>
+<TD><img src="jpgs/very-odd-dark.Ex.jpg"  width="128" height="128" ALT="Ex field of odd transmission line"></TD>
+<TD><img src="jpgs/very-odd-dark.Ey.jpg"  width="128" height="128" ALT="Ey field of odd transmission line"></TD>
+</TR>
+</TABLE>
+Given that it is time consuming to calculate the electric fields, it seems silly to expect the user to re-run <COde>atlc</code>, if the images are too light or dark. It would be more sensible to have a sepparate programme that is able to generate the bitamps quickly from the binary files. A programme with a name something like bin2bmp may be added later to do this. <STRONG>Note also that the the <CODE>-i image_fiddle_factor</CODE> will be replaced with a <CODE>-g gamma </CODE>option later, when a more scientific method is developed for this. The current method really is a fiddle!!</STRONG>
+<br><br>
+<strong><a name="-p">-t threads</a></STRONG><br>
+If the computer has multiple processors, you should be able to gain an increase in performance by using them. To do this, but must install pthreads, and configured with the <CODE>--with-threads</CODE> option. One this is done, the programme will be optimised to use 2 cpus. If you have more than 2, you might want to use the <CODE>-t</CODE> option. <br>
+If you attempt do to do this on a version of <COde>atlc</code> that has not be compiled with multi-processor support, it will exit with an error message. <br><br>
+<strong><a name="-v">-v</a></STRONG><br>
+This is the verbose option, so it prints extra data to stdout. <br>
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</body>
+</html>
diff --git a/docs/html-docs/readbin.1.html b/docs/html-docs/readbin.1.html
new file mode 100644 (file)
index 0000000..1439b3a
--- /dev/null
@@ -0,0 +1,132 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>readbin</B> - ATLC's binary file information provider
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>readbin</B>  <B>filename.bin</B>
+
+
+</PRE>
+<H2>WARNING</H2><PRE>
+     This man page is not a complete set of documentation  -  the
+     complexity  of the atlc project makes man pages not an ideal
+     way to document it, although out of completeness, man  pages
+     are produced. The best documentation that was current at the
+     time this version was produced should be found on your  hard
+     drive, usually at
+     /usr/local/share/atlc/docs/html-docs/index.html
+     although it might be elsewhere if your system  administrator
+     chose  to  install  the package elsewhere. Sometimes, errors
+     are  corrected  in   the   documentation   and   placed   at
+     http://atlc.sourceforge.net/ before a new release of atlc is
+     released.  Please, if you notice a problem with the documen-
+     tation - even spelling errors and typos, please let me know.
+
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     <B>readbin</B>  reports on the number and type of pixels created by
+     the program atlc.
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+     There are no options for readbin
+
+
+</PRE>
+<H2>EXAMPLE</H2><PRE>
+     % readbin coax2.V.bin
+     file length=127008 bytes = 15876 pixels
+     there are: 489 ones, 10852 zeros, 0 -ones, 4535 other values
+
+
+</PRE>
+<H2>FILES</H2><PRE>
+     atlc-X.Y.Z/docs/html-docs/index.html
+     the full documentation. bitmapfile.bmp
+        Original bitmap file. Must be 24-bit colour uncompressed.
+     bitmapfile.Ex.bin
+        X-component of E-field as a binary.
+     bitmapfile.Ey.bin
+        y-component of E-field as a binary. .
+     bitmapfile.E.bin
+        Sqrt(Ex^2+Ey^2), as a binary. bitmapfile.V.bin
+     bitmapfile.V.bin
+        Voltage as a binary.
+
+     All the saved binary files (.bin's) are saved  as  a  double
+     precision number for each of the pixels. The first double is
+     the top left, the last the bottom right.
+
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>                       <B>create_bmp_for_circ_in_circ(1)</B>
+     <B>create_bmp_for_circ_in_rect(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_rect_in_rect(1)</B>
+     <B>create_bmp_for_stripline_coupler(1)</B>
+     <B>create_bmp_for_symmetrical_stripline(1)</B>    <B>design_coupler(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/rect_in_rect.html b/docs/html-docs/rect_in_rect.html
new file mode 100644 (file)
index 0000000..51d879c
--- /dev/null
@@ -0,0 +1,221 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="FAQ for atlc">
+<META name="KEYWORDS" content="atlc tutorial arbitrary transmission line calculator">
+<TITLE>The arbitrary transmission line calculator (atlc) Tutorial</TITLE>
+</HEAD>
+<BODY>
+
+<H1><CODE>create_bmp_for_rect_in_rect</CODE></H1>
+<strong><a name="create_bmp_for_rect_in_rect">create_bmp_for_rect_in_rect</a></strong> is used for generating a bitmap containing a  <strong>rect</strong>angular conductor placed <STRONG>in</STRONG>side  another <strong>rect</strong>angular conductor. There can be two dielectrics and the inner conductor can be placed at any position inside the outer conductor. This makes <STRONG>create_bmp_for_rect_in_rect</STRONG> very powerful. If there is only one dielectric and the two rectangular conductors are coaxial with one another, then <a href="create_bmp_for_rect_cen_in_rect.1.html">create_bmp_for_rect_cen_in_rect</a> is easier to use. 
+
+<pre>
+parrot /export/home/davek/atlc-2.02/src % create_bmp_for_rect_in_rect
+Usage: create_bmp_for_rect_in_rect [-b bmp_size] [-f outfile] [-v] W H a b c d w h Er1 Er2 
+
+where W, H, a, b, c, d, w, and h  are all in mm or all in inches
+(they *must* use the same units. Non-integers allowed for all parameters)
+options are:
+  -b bmp_size
+     Sets the size of the bitmap, the range 1 to 15 (default 3).
+  -f outfile 
+     Write output to 'outfile' instead of stdout
+  -v         
+     Write diagnostic information to stderr
+-----------------------------------------------------------------------  ^
+|                                                                     |  |
+|               Dielectric, permittivity=Er1                          |  |
+|                                                                     |  |
+|       &lt----------------d-------------------------&gt;                  |  |
+|                                                                     |  |
+|             &lt----------w-----------&gt;                                |  |
+|             ------------------------   ^                            |  |
+|             |                      |   |                            |  |
+|             |  Metallic conductor  |   |                            |  H
+|&lt-----b-----&gt;|  conductor (can be   |   c                            |  |
+|             |  off-centre)         |   |                            |  |
+|             |                      |   |                            |  |
+|       |------------------------------------------- ^                |  |
+|       |..........................................| |                |  |
+|       |.....Dielectric, permittivity=Er2.........| |                |  |
+|&lt--a--&gt;|.......(can be off centre )...............| h                |  |
+|       |..........................................| |                |  |
+|       |..........................................| |                |  |
+-----------------------------------------------------------------------  v
+&lt;----------------------------------W---------------------------------&gt;
+
+***WARNING*** Since the output from create_bmp_for_rect_in_rect is binary data (the bitmap) it
+will screw up your terminal unless you redirect the output to a file. The '-f' option can be used to send the output to 'outfile' 
+parrot /export/home/davek/atlc-2.02/src % 
+
+</pre>
+
+Here's an example of using <code>create_bmp_for_rect_in_rect</code>.<br>
+<img src="jpgs/test.jpg" alt="test for create_bmp_for_rect_in_rect" height="128"><br>
+The outer conductor (green) has internal dimensons of 61.5 x 20.13 mm (W=61.5, H=20.13), the dielectric PTFE (blue) is 50 x 5.1 mm (d=50.0, h=5.1) and the conductor has dimensions of 15 x 1 mm (w=15.0, h=1.0). The left hand edge of the dielectric is 5.1 mm from the outer conductor's side wall (a=5.1) and the left hand edge of the conductor is 22.5 mm (b=22.5) from outer conductor's side wall. Since PTFE has a relative permittivity of 2.1 (a value known by <code>atlc</code> and <code>create_bmp_for_rect_in_rect</code>) it is simply put on the command line, as is the vacuum (white region). 
+
+<pre>
+create_bmp_for_rect_in_rect 61.5 20.13 5.1 22.5 0.5 50 15.0 5.0 1.0 2.1; test.bmp
+</pre>
+
+The output was redirected to a file <code>test.bmp</code>, which would then be read with atlc. 
+
+<pre>
+% atlc test.bmp
+</pre>
+
+That is all that needs to be done.<br>
+<br>
+It should be noted that <code>create_bmp_for_rect_in_rect</code> must attempt to fit your dimensions to a square grid. If all dimensions are small integers, this is easy to do, but in some cases this is not possible without having very large grids. In this case, <code>create_bmp_for_rect_in_rect</code> can only generate an approximation of what you want. For example, assume a structure is 120x240.0001 mm wide. It's impossible to represent that on a square grid, without having a grid of at least 1200000 x 2400001, which would be prohibitively large and requre an enormous amount of time for <code>atlc</code> to analyse. In this case, <code>create_bmp_for_rect_in_rect</code> will approximate this structure. Here is a very approximate idea of the sizes of the bitmaps, and the time to analyse in atlc, for various values of b. 
+
+<table border="10">
+<tr>
+<td>b</td>
+<td>size (kb)</td>
+<td>time (min:sec, for single 125 MHz CPU, Er1=Er2)</td>
+</tr>
+
+<tr>
+<td>1</td>
+<td>35</td>
+<td>0:10</td>
+</tr>
+
+<tr>
+<td>2</td>
+<td>74</td>
+<td>0:38</td>
+</tr>
+
+<tr>
+<td>3</td>
+<td>74</td>
+<td>0:38</td>
+</tr>
+
+<tr>
+<td>4</td>
+<td>195</td>
+<td>3:59</td>
+</tr>
+
+<tr>
+<td>5</td>
+<td>278</td>
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+</table>
+
+<br>
+<br>
+There are a few options to create_bmp_for_rect_in_rect that might be useful.<br><br>
+ One that might be very useful, is the -v option, which prints information about the grid sizes to stderr. 
+
+<pre>
+% create_bmp_for_rect_in_rect -v 61.5 20.13 5.1 22.5 0.5 50 15.0 5.0 1.0 2.1  test.bmp
+User requested: WW=61.500000 HH=20.130000 a=5.100000 b=22.500000 c=0.500000
+d=50.000000 w=15.000000 h=5.000000Er1=1.000000 Er2=2.100000
+
+Internally the programme is using the following grid:
+W=492 H=161 a=41 b=180 c=4 d=400 w=120 h=40. 
+The  grid size is 0.125000 mm, inches or whatever
+
+This means we are simulating a transmission line with these dimensions:
+W=61.500000 H=20.125000 a=5.125000 b=22.500000 c=0.500000 d=50.000000
+w=15.000000 h=5.000000 (mm, inches or whatever)
+These may be slightly different to what you indicated on the command line,
+but they are the best approximation possible, given the grid size
+parrot /export/home/davek/atlc-2.02/src % 
+
+</pre>
+
+<br>
+<br>
+Another the -b option, which alters the size of the bitmap produced, and so the accuracy. The default bitmap size is 3, which equates to bitmaps of around 250 kb, which should mean they can be analysed with <code>atlc</code> in a reasonable time. It's possible to reduce the size of the bitmap, so giving lower accuracy, but in less time, by setting b to 1 or 2, as like this.<br>
+<pre>
+% create_bmp_for_rect_in_rect  -b 1 61.5 20.13 5.1 22.5 0.5 50 15.0 5.0 1.0 2.1  test2.bmp
+% atlc test2.bmp
+</pre>
+
+or of course accuracy can be improved, by making b larger, as in: 
+
+<pre>
+% create_bmp_for_rect_in_rect  -b 6 61.5 20.13 5.1 22.5 0.5 50 15.0 5.0 1.0 2.1  test3.bmp
+% atlc test3.bmp
+</pre>
+
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</body>
+</html>
diff --git a/docs/html-docs/sysdata.1.html b/docs/html-docs/sysdata.1.html
new file mode 100644 (file)
index 0000000..210d79d
--- /dev/null
@@ -0,0 +1,388 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+     <B>sysdata</B> - find basic hardware system data
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+     <B>sysdata</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+     After the <B>atlc</B> package is built, a small benchmark is run as
+     part  of  the testing procedure. This benchmark tries to get
+     some information about the  hardware.  The  program  <B>sysdata</B>
+     displays  the  same  hardware information that the benchmark
+     will display, but runs in a fraction of  a  second,  whereas
+     the  benchmark  can  take from 19 s (quad 1.4 GHz Itainium 2
+     machine) to 14,906 s (for a very old 33.3  MHz  Cray  Y-MP).
+     There are no options or arguments to <B>sysdata</B>
+
+     The information  gathered  on  hardware  and  software  both
+     developed  by the same company (i.e. Solaris on Suns, AIX on
+     IBM RS/6000, IRIX on SGI, ... etc  etc)  is  generally  more
+     informative  than  the free systems (Linux, NetBSD, OpenBSD,
+     FreeBSD) where it is usually impossible to get much hardware
+     information.
+
+
+</PRE>
+<H2>EXAMPLES</H2><PRE>
+     Here are some examples of the use of <B>sysdata</B> on a number  of
+     systems.  The  large number of examples is for my own use as
+     much as anything, so I can keep track of the development  of
+     sysdata  and  see  easily where it needs extending. Examples
+     are presented for:
+
+     1) Sun Ultra 80 running Solaris 9
+     2) HP C3000 running HP-UX 11
+     3) SGI Octane running IRIX 6.5.16
+     4) IBM RS/6000 running AIX 5.2
+     5) Dec Alpha 600a Personal Workstation running Tru64 5.1B
+     6) Cray Y-MP running UNICOS 9
+     7) Sun SPARCstation 20 running NetBSD 1.6
+     8) Sun SPARCstation 20 running OpenBSD 3.2
+     9) Sun SPARCstation 20 running Debian Linux
+     10) Sun SPARCstation 20 running Solaris 2.5
+     11) Generic PC with 350 MHz Pentium II running Redhat  Linux
+     7.2
+
+     Here's the output from <B>sysdata</B> on these 11 systems.
+
+     <B>e.g.</B> <B>1</B> <B>(Sun</B> <B>Ultra</B> <B>80</B> <B>running</B> <B>Solaris</B> <B>9)</B>
+     Hardware provider:    Sun_Microsystems
+     Hardware platform:    SUNW,Ultra-80
+     Machine:              sun4u
+     Sysname:              SunOS
+     Release:              5.9
+     Version:              Generic_112233-06
+     Nodename:             sparrow
+     #CPUs supported:      4
+     #CPUs online:         4
+     CPU type:             sparcv9
+     FPU type:             sparcv9
+     Speed:                450 MHz
+     RAM:                  4096 Mb
+     L1 data cache         unknown kB
+     L1 instruction cache: unknown kB
+     L2 cache:             unknown kB
+
+     Here's an example on a HP 9000 series Visualize C3000 works-
+     tation,  fitted with one 400 MHz PA-RISC 8500 CPU and 1.5 Gb
+     of RAM
+
+     <B>e.g.</B> <B>2</B> <B>(HP</B> <B>9000</B> <B>series</B> <B>Visualize</B> <B>C3000)</B>
+     Hardware provider:    HP
+     Hardware platform:    unknown
+     Machine:              9000/785
+     Sysname:              HP-UX
+     Release:              B.11.00
+     Version:              A
+     Nodename:             robin
+     #CPUs supported:      1
+     #CPUs online:         1
+     CPU type:             532
+     FPU type:             1048577
+     Speed:                400.0 MHz
+     RAM:                  1536 Mb
+     L1 data cache         unknown kb
+     L1 instruction cache: unknown kb
+     L2 cache:             unknown kb
+
+     Here's another example this time on  an  SGI  Octane  R10000
+     with  2  x  195  MHz  processors. Note the CPU and FPU types
+     reported at not the R10000 and R10010 that are  reported  by
+     SGI's  hinv.  <B>sysdata</B>  is  not  meant  to replace other more
+     sophisticated ways of obtaining system information (such  as
+     hinv  on  IRIX), but its data is useful to record for bench-
+     marking purposes.
+
+     <B>e.g.</B> <B>3</B> <B>(SGI</B> <B>Octane</B> <B>R1000)</B>
+     Hardware provider:    SGI
+     Hardware platform:    unknown
+     Machine:              IP30
+     Sysname:              IRIX64
+     Release:              6.5
+     Version:              04101931
+     Nodename:             owl
+     #CPUs supported:      unknown
+     #CPUs online:         2
+     CPU type:             2343
+     FPU type:             2304
+     Speed:                195 MHz
+     RAM:                  1024 Mb
+     L1 data cache         32 kB
+     L1 instruction cache: 32 kB
+     L2 cache:             1024 kB
+
+     Here's an example using an IBM RS/6000 F50 with 4 x 332  MHz
+     CPUs and 1 GB of RAM.
+
+     <B>e.g.</B> <B>4</B> <B>(IBM</B> <B>RS/6000</B> <B>F50)</B>
+     Hardware provider:    IBM
+     Hardware platform:    unknown
+     Machine:              000245984C00
+     Sysname:              AIX
+     Release:              2
+     Version:              5
+     Nodename:             starling
+     #CPUs supported:      unknown
+     #CPUs online:         4
+     CPU type:             unknown
+     FPU type:             unknown
+     Speed:                unknown MHz
+     RAM:                  1024 Mb
+     L1 data cache         unknown kB
+     L1 instruction cache: unknown kB
+     L2 cache:             unknown kB
+
+     And here's an example from a single 599  MHz  processor  Dec
+     Alpha 600a Personal Workstation running Tru64 5.1B
+
+     <B>e.g.</B> <B>5</B> <B>(Dec</B> <B>Alpha</B> <B>600a</B> <B>Personal</B> <B>Workstation)</B>
+     Hardware provider:    unknown
+     Hardware platform:    Digital_Personal_WorkStation_600au
+     Machine:              alpha
+     Sysname:              OSF1
+     Release:              V5.1
+     Version:              2650
+     Nodename:             dobermann.localhost.ntlworld.co
+     #CPUs supported:      1
+     #CPUs online:         1
+     CPU type:             EV5.6_(21164A)
+     FPU type:             unknown
+     Speed:                599 MHz
+     RAM:                  1024 Mb
+     L1 data cache         unknown kb
+     L1 instruction cache: unknown kb
+     L2 cache:             unknown kb
+
+     Here's some data collected on a very old  Cray  Y-MP,  which
+     was introduced in 1991.
+
+     <B>e.g</B> <B>6</B> <B>(Cray</B> <B>Y-MP</B> <B>running</B> <B>UNICOS)</B>
+
+     Hardware provider:    Cray
+     Hardware platform:    Y-MP
+     Machine:              CRAY_Y-MP
+     Sysname:              sn5176
+     Release:              9.0.2.2
+     Version:              sin.0
+     Nodename:             sn5176
+     #CPUs supported:      unknown
+     #CPUs online:         4
+     CPU type:             unknown
+     FPU type:             unknown
+     Speed:                33.3 MHz
+     RAM:                  unknown Mb
+     L1 data cache         unknown kb
+     L1 instruction cache: unknown kb
+     L2 cache:             unknown kb
+
+     That is all the examples of commercial hardware running  the
+     operating systems made by the manufacturers of the hardware.
+     The following are free UNIX versions.  In  these  cases  the
+     data gathered is never as complete. In particular the amoumt
+     of memory reported if often less than the real amount due to
+     memory  taken  by  the  operating  system  (kernel etc). The
+     number of processors the system can support is never  avail-
+     able.
+
+     Here's the first such non-commercial UNIX from a single pro-
+     cessor Sun SPARCstation 20 running NetBSD 1.6.
+
+     <B>e.g.</B> <B>7</B> <B>(Sun</B> <B>SPARCstation</B> <B>20</B> <B>running</B> <B>NetBSD</B> <B>1.6)</B>
+     Hardware provider:    unknown
+     Hardware platform:    unknown
+     Machine:              sparc
+     Sysname:              NetBSD
+     Release:              1.6
+     Version:
+     NetBSD_1.6_(GENERIC)_#0:_Mon_Sep__9_08:2sparc
+     Nodename:             blackbird
+     #CPUs supported:      unknown
+     #CPUs online:         1
+     CPU                                                    type:
+     rg:/autobuild/sparc/OBJ/autobuild/src/sys/arch/sparc/compile/GENERIC
+     FPU type:             unknown
+     Speed:                unknown MHz
+     RAM:                  255 Mb
+     L1 data cache         unknown kb
+     L1 instruction cache: unknown kb
+     L2 cache:             unknown kb
+
+
+     Here's data from a Sun SPARCstation 20 running OpenBSD  3.2.
+     The  machine has 320 Mb of RAM, not 318 Mb as indicated. The
+     number of processors the  system  supports  is  reported  as
+     unknown,  but should the system have been running Solaris 9,
+     as in the example 1 (sparrow), then this  information  would
+     have  been determined, but it is not available under OpenBSD
+     - or Solaris 2.5 for that matter.
+
+     <B>e.g.</B> <B>8</B> <B>(Sun</B> <B>SPARCstation</B> <B>20</B> <B>running</B> <B>OpenBSD</B> <B>3.2)</B>
+     Hardware provider:    unknown
+     Hardware platform:    unknown
+     Machine:              sparc
+     Sysname:              OpenBSD
+     Release:              3.2
+     Version:              GENERIC#36
+     Nodename:             crow.crow.localdomain
+     #CPUs supported:      unknown
+     #CPUs online:         1
+     CPU type:             unknown
+     FPU type:             unknown
+     Speed:                unknown MHz
+     RAM:                  319 Mb
+     L1 data cache         unknown kb
+     L1 instruction cache: unknown kb
+     L2 cache:             unknown kb
+     The next machine is a Sun  SPARCstation  20  running  Debian
+     Linux. The version of Debian is unknown, but clearly <B>sysdata</B>
+     is unable to determine this.
+
+     <B>e.g.</B> <B>9</B> <B>(Sun</B> <B>SPARCstation</B> <B>20</B> <B>running</B> <B>Debian</B> <B>Linux)</B>
+
+     Hardware provider:    unknown
+     Hardware platform:    unknown
+     Machine:              sparc
+     Sysname:              Linux
+     Release:              2.2.20
+     Version:              #1_Fri_Nov_16_15:48:02_EST_2001
+     Nodename:             dove
+     #CPUs supported:      unknown
+     #CPUs online:         1
+     CPU type:             unknown
+     FPU type:             unknown
+     Speed:                unknown MHz
+     RAM:                  281 Mb
+     L1 data cache         unknown kb
+     L1 instruction cache: unknown kb
+     L2 cache:             unknown kb
+
+     Here's data from a Sun SPARCstation 20 running  Solaris  2.5
+     (SunOS 5.5). The machine probably does have 352 Mb of RAM as
+     reported. The number of processors the  system  supports  is
+     reported as unknown, but should the system have been running
+     Solaris 9, as in the example 1 (sparrow), then this informa-
+     tion  would  have  been  determined, but it is not available
+     under Solaris 2.5.
+
+     <B>e.g.</B> <B>10</B> <B>(Sun</B> <B>SPARCstation</B> <B>20</B> <B>Solaris</B> <B>2.5)</B>
+     Hardware provider:    Sun_Microsystems
+     Hardware platform:    SUNW,SPARCstation-20
+     Machine:              sun4m
+     Sysname:              SunOS
+     Release:              5.5
+     Version:              Generic
+     Nodename:             bluetit
+     #CPUs supported:      unknown
+     #CPUs online:         2
+     CPU type:             sparc
+     FPU type:             sparc
+     Speed:                125 MHz
+     RAM:                  352 Mb
+     L1 data cache         unknown kb
+     L1 instruction cache: unknown kb
+     L2 cache:             unknown kb
+
+
+     Here's a standard PC, fitted with one processor
+
+     <B>e.g.</B> <B>11</B> <B>(350</B> <B>MHz</B> <B>Pentium</B> <B>II</B> <B>PC</B> <B>running</B> <B>Redhat</B> <B>Linux)</B>
+     Hardware provider:    unknown
+     Hardware platform:    unknown
+     Machine:              i686
+     Sysname:              Linux
+     Release:              2.4.18-5
+     Version:              #1_Mon_Jun_10_15:31:48_EDT_2002
+     Nodename:             tiger
+     #CPUs supported:      unknown
+     #CPUs online:         1
+     CPU type:             unknown
+     FPU type:             unknown
+     Speed:                unknown MHz
+     RAM:                  123 Mb
+     L1 data cache         unknown kb
+     L1 instruction cache: unknown kb
+     L2 cache:             unknown kb
+
+
+
+</PRE>
+<H2>FILES</H2><PRE>
+     sysdata does not read/write any files.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+     <B>atlc(1)</B>
+     <B>create_bmp_for_circ_in_circ(1)</B>
+     <B>create_bmp_for_circ_in_rect(1)</B>
+     <B>create_bmp_for_microstrip_coupler(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect(1)</B>
+     <B>create_bmp_for_rect_cen_in_rect_coupler(1)</B>
+     <B>create_bmp_for_rect_in_circ(1)</B>
+     <B>create_bmp_for_rect_in_rect(1)</B>
+     <B>create_bmp_for_stripline_coupler(1)</B>
+     <B>create_bmp_for_symmetrical_stripline(1)</B>
+     <B>design_coupler(1)</B>
+     <B>find_optimal_dimensions_for_microstrip_coupler(1)</B>
+     hinv - SGI's IRIX only.
+     <B>readbin(1)</B>
+
+     http://atlc.sourceforge.net                - Home page
+     http://sourceforge.net/projects/atlc       - Download area
+     atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+     atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+     atlc-X.Y.Z/examples                        - examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/docs/html-docs/theory.html b/docs/html-docs/theory.html
new file mode 100644 (file)
index 0000000..e41d70d
--- /dev/null
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="How to build atlc - Arbitrary Transmission Line Calculator from sources.">
+<META name="KEYWORDS" content="Transmission line calculator atlc">
+<TITLE>Building atlc</TITLE>
+</HEAD>
+<BODY>
+
+<H1>The theory of <COde>atlc</code></H1>
+The finite differnece program <CODE>atlc</CODE> is not that complex to understand, but neither is
+it trivual. There are 5 places you will find information on the theory of <code>atlc</code>.
+<OL>
+       <LI>An article <a href="../qex-december-1996/atlc.pdf">docs/qex-december-1996/atlc.pdf</a>
+       written for the amatuer radio Journal QEX back in 1996. This gives a basic introduction, but it is
+       not up to date at all. <code>atlc</code> has changed a lot since 1996.</LI>
+       <LI>The notes in the Word file <a href="../theory/atlc-theory1.doc">docs/theory/atlc-theory1.doc</a> This is written by me, for me and as such it is not written in a coherent way, but it might be
+       of use to someone. </LI>
+       <LI>The notes in the Word file <a href="../theory/atlc-theory2.doc">docs/theory/atlc-theory2.doc</a> This is written by me, for me and as such it is not written in a coherent way, but it might be
+       of use to someone. DESPITE THE 2 AS A SUFFIX, THIS MIGHT BE EARLER THAN THE FILE MENTIONED
+       ABOVE, I DON'T KNOW.</LI>
+       <LI>The notes in the StarOffice/OpenOffice file <a href="../theory/ideas-for-gui.sxw">docs/theory/ideas-for-a-gui.sxw</a> This is just a few thoughts I had on a GUI. There is no doubt a nice GUI
+       <LI>Books on finite difference and EM theory.</LI>
+</OL>
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+ </body>
+ </html>
diff --git a/docs/html-docs/todo.html b/docs/html-docs/todo.html
new file mode 100644 (file)
index 0000000..9c82c84
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish & vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="Transmission line calculator, or *any* cross section">
+<META name="KEYWORDS" content="Transmission line calculator arbitrary any cross section">
+<TITLE>Arbitrary Transmission Line Calculator (atlc) version 2.02</TITLE>
+</HEAD>
+<BODY>
+
+<H1>To Do list..</H1>
+Here is a list of the ways I would like to expand <COde>atlc</code>, in a rough order of time.
+<OL>
+       <LI>Improve consistancy amonst the programs <a href="create_bmp_for_rect_in_rect.1.html">create_bmp_for_rect_in_rect</a>, <a href="create_bmp_for_rect_cen_in_rect.1.html">create_bmp_for_rect_cen_in_rect</a>, <a href="create_bmp_for_rect_in_circ.1.html">create_bmp_for_rect_in_circ</a>, <a href="create_bmp_for_circ_in_rect.1.html">create_bmp_for_circ_in_rect</a>, generate_ coupler_bitmap <a href="create_bmp_for_sym_strip.1.html">create_bmp_for_sym_strip</a>. Most write to standard output, some write to a file given on the comand line, some take integer arguments, some take floats etc. It's all a bit confusing.<p> </LI>
+
+<LI>Improve support for coupled transmission lines. It is very weak at the present time,being unable to handle any dielectric other tthan a vacuum and not being able to give any images showing the fields, energy or whatever. Additions may include some software to make use of the impedance values to calculate the properties of a directional coupler, although you should be able to use these in the free versions of spice or pspice. I have not tried that I must admit. There is also a cheapish programme called Puff available from <a href="http://www.its.caltech.edu/~mmic/puffindex/puffE/puffE.htm">http://www.its.caltech.edu/~mmic/puffindex/puffE/puffE.htm </a> . That would certinaly allow such calculations. There's a UNIX verison too at <a href="http://wwwhome.cs.utwente.nl/~ptdeboer/ham/puff.html">http://wwwhome.cs.utwente.nl/~ptdeboer/ham/puff.html</a>  <br><br></LI>
+       <LI>Implement a better way of enabling a user to change the contrast/brightness in an image. Current, this can only be done with the '<a href ="options.html">-f option</a> to <code>atlc</code>, but this requires a re-run of <code>atlc</code> to do this, which is hardly very useful, given <code>atlc</code> is so CPU intensive. There are faster ways of doing this, just from the binary files (example.E.bin, example.Ex.bin, example.Ey.bin, example.U.bin, example.V.bin and example.Er.bin)..<br><br></LI>
+       <LI>Try other methods of thread syncronisation in the version of atlc that supports multiple CPUs. Currently, threads are created and destroyed to give syncronisation. I think there may be a faster method by the use of 'mutex variables', but this has not be tried.<br><br></LI>
+
+</OL>
+
+If anyone has any suggestions for how to improve <COde>atlc</code>, please <a href="">email me</A>.
+<p>atlc is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+</BODY>
+
+</HTML>
diff --git a/docs/html-docs/tutorial.html b/docs/html-docs/tutorial.html
new file mode 100644 (file)
index 0000000..4fae544
--- /dev/null
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<META name="generator" content="Mostly bluefish and vi. Sometimes netscape">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+
+<META name="DESCRIPTION" content="FAQ for atlc">
+<META name="KEYWORDS" content="atlc tutorial arbitrary transmission line calculator">
+<TITLE>atlc - Arbitrary Transmission Line Calculator Tutorial</TITLE>
+</HEAD>
+<BODY>
+
+<H1><CODE>atlc's</CODE> Tutorial</H1>
+The arbitrary transmission line calculator (<CODE>atlc</CODE>) project is used when you wish to know the properties (Zo, capacitance per unit length, velocity factor, electric-field distribution, etc) of a transmission line or directional copuler. Unlike the well known analytical formulas printed in any book on transmission lines, <CODE>atlc</CODE> has great flexibility, as <STRONG>any</STRONG> cross section can be analysed, even one like this. <br>
+<img src="jpgs/very-odd.jpg" ALT="very odd line"><p>
+All this is required, is that the cross section can be drawn and saved as a bitmap file and the programme <CODE>atlc</CODE> used to evaluate the bitmap. 
+
+The following examples show how this is done. 
+<OL>
+
+<br>
+<LI> <a href="#very_odd">Very odd transmission line</A> In the first tutorial, that very odd transmissionl line  will be analysed. It is shown just how easy it is. By far the most difficult part in using atlc is drawing the cross-section, but luckily this is rarely necessary</LI>
+        <LI><a href="#coax">Coaxial cable</A> In the second example, a standard piece of coaxial cable will be analysed. This has the advantage for now that we calculate the answer from stardard formula for a sanity check.</LI>
+        <LI><a href="#sym_rectangular">Symmetrical rectangular transmission line.</A> In the example, a transmission line with one <STRONG>rect</STRONG>angular conductor <STRONG>cen</STRONG>trally located <STRONG>in</STRONG>side another <STRONG>rect</STRONG>angular conductor will be analysed. The programme <CODE>create_bmp_for_rect_cen_in_rect</CODE> will be used for this - the name hopefully conveying the conductor shapes and the symmetry. </LI>
+        <LI><a href="#coupler1">Directional coupler.</A> Assume we wished to analyse the coupling between two closely spaced square conductors in a rectangular outer conductor, with a vacuum dielectric. </LI>
+</OL>
+
+<OL>
+
+
+<LI>
+<a name="very_odd" ><STRONG>Very odd line</STRONG></a> Assuming we wanted to analyse that rather strange transmission line above, its cross-section would first be saved as a bitmap. One conductor would be drawn pure red, the other pure green. Assuming for a monent the dielectric is a vacuum (virtually the same permittivity as air), the dielectic would be drawn pure whilte. (The colours are critical and are discussed more in the section marked <a href="colours.html">Colours</a> at the top of the page). Assuming the cross section was in a file very_odd.bmp, we would run atlc like this:
+<PRE>
+wren % atlc very-odd.bmp
+</PRE>
+atlc would produce the following output. 
+<pre>
+very-odd.bmp 2 Er=  1.00 Zo=  56.557 Ohms C=   59.0 pF/m L=  188.7 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
+</PRE>
+All information is printed on one long line so its easy to process with other software. Note the impedance Zo  is 56.557 Ohms. 
+<p>
+The size (number of pixels) in the bitmap should be sufficient that the structure can be drawn accurately, but not so large that it takes too long to process. About 1 MB is reasonable. 
+</LI>
+
+<LI>
+<STRONG><a name="coax" >Coaxial cable</a></STRONG> To analyse coaxial cable, we would normally use the formulas published in book. The impedance for instance, is given by Zo=59.95849160*log<sub>e</sub>(D/d))/sqrt(Er) - (the 59.958 .. is ussually seen in books as 60).  <CODE>atlc</CODE> can be used too. We are not suggesting that <CODE>atlc</CODE> is used instead of the normal formula for coax on a regular basis, but since it's a simple example, it is useful for demonstration. Also, as there is an analytical expression for Zo, we can get some idea of the <a href="accuracy.html">accuracy</a> of <CODE><a href="atlc.1.html">atlc</a></CODE>
+<br>
+<br>
+Since the cross section consists of a <STRONG>circ</STRONG>ular conductor <STRONG>in</STRONG>side another <STRONG>circ</STRONG>ular conductor, the programme <CODE><a href="create_bmp_for_circ_in_circ.1.html">create_bmp_for_circ_in_circ</a></CODE> can be used to generate the bitmap, rather than the more time consuming procedure of using a graphics package and drawing it manually.. <br><br>
+We will assume that the inner diameter of the outer conductor is 12 mm, the outer diameter of the inner conductor is 3.9  mm, and the dielectric has a permittivity of 1.0. Since the conductors are coaxial, there is zero offset between their centres. The programme <a href="create_bmp_for_circ_in_circ.1.html"><CODE>create_bmp_for_circ_in_circ</CODE></a> will be used to generate the bitmap, with these physical dimensions <br>
+<br>
+If we run  <CODE><a href="create_bmp_for_circ_in_circ.1.html">create_bmp_for_circ_in_circ</a></CODE> without any arguments, it will print a usage message, showing the first argument should the the outer diamater (D=12 mm), the second the inner conductor (d=3.9 mm), the third the offset 'O' between the conductors (O is zero since they are coaxial and there is therefore no offset between centres).  The fourth argument is the relative permittivity (1.0 in this case).
+
+Ignoring the options, which are not necessary unless we wish to change the behaviour of  <CODE><a href="create_bmp_for_circ_in_circ.1.html">create_bmp_for_circ_in_circ</a></CODE>, we would type <br><br>
+<CODE>
+% create_bmp_for_circ_in_circ 12 3.9 0 1.0 coaxial_1.bmp <br> 
+</code>
+This will produce a bitmap like the image on the left. The inner conductor is red, the outer green and the dielectric is white in this case, as Er=1.0. Don't worry about the fact that the outer conductor is square, as the inside of it is round, which is all that matters. 
+<br>
+<img src="jpgs/coaxial1.jpg" ALT="coax 12/3.9 mm" >
+<br>
+To calculate the properties of this coaxial cable, we then run    <CODE><a href="atlc.1.html">atlc</a></CODE>, where it will print the important properties to the screen, again on one long line (you will have to scroll the brower to see it all).<p>
+<pre>
+% atlc coaxial_1.bmp
+coaxial_1.bmp 2 Er=  1.00 Zo=  67.390 Ohms C=   49.5 pF/m L=  224.8 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
+</pre>
+<br>
+The correct answer, given by the formula  Zo=59.95849160*log<sub>e</sub>(D/d)/sqrt(Er) is 67.3892 Ohms, so atlc's estimate of Zo= 67.390 Ohms is in error by only 0.001%!! We could probably increase the accuracy further, by generating a larger bitmap with <CODE>create_bmp_for_circ_in_circ</CODE>, by adding the -b command line option, but there is no point. Who can argue with an error of just 0.001% ???
+<p>We could if we wanted use an outer conductor which is round on both the inner and outer like this:<br>
+<img src="jpgs/true-round-coax.jpg" ALT="coax 12/3.9 mm" >
+<br>
+so it looks more like normal coax. However, there are three good reasons <strong>not</strong> to do this. This applies to any structure you draw.
+<ul>
+<li>It is more difficult to draw in a graphics package</LI>
+<LI>atlc will run slower. This is because it needs to compute the voltage at each pixel outside the outer conductor, rather than just know all pixels are at zero. In fact the computation time rises from 1 minute and 34 s to 1 minute and 51s - an increase of 18%.</LI>
+<LI>If the voltage on the outer conductor was non-zero (say +1 V for example), atlc would be less accurate too. This is because atlc would have to calculate the voltage everywhere outside the outer conductor, which should in theory be 1 V everwhere, but atlc would need to compute this.  This is not an issue when the outer conductor is 0 V (green) since the voltages on all dielectrics are initalised to 0 V. But if the outer conductor was +1 V for example, these voltages would need to be computed and whilst they would all end up close to +1 V, they would not be exactly +1 V. 
+</LI>
+</uL><br>
+<strong>Hence there are a number of good reasons to replace any dielectric with a conductor, when it is obvious it does not change the impedance. </strong><br><br>
+</LI>
+
+
+
+
+
+
+<LI>
+<STRONG><a name="sym_rectangular" >Symmetrical rectangular transmission line.</a></STRONG> In this tutorial we will analyse a <STRONG>rect</STRONG>angular conductor placed <STRONG>cen</STRONG>trally <STRONG>in</STRONG>side a second <STRONG>rect</STRONG>angular conductor. We will assume the outer is 10x7  mm, the inner 2 by 5 mm and assume the dielectric is not air, but a polystryene with a relative permittity of Er=2.5. The section marked <a href="colours.html">Colours</A> will show that for a dielectric of Er=2.5, the dielectric must be drawn in yellow, with 255 parts red, 255 parts green and no blue. We could draw this quite easily by a graphics package and produce someting like this. <p>
+<img src="jpgs/rect9.jpg" ALT="rectangular transmission line">
+<p>The outer conductor needs only to be 2 pixels thick. Drawing a few more is usually benificial, as otherwise they can be hard to see. Do not make it too thick (say more than 30 pixels) as it will start to  slow atlc. <p>
+Once the bitmap is drawn, a copy of which is in atlc-x.y.z/examples/rect9.bmp, <CODE>atlc</CODE> is used to process the bitmap. 
+<pre>
+% atlc rect9.bmp</pre>
+
+Although drawning that would not be hard in the Gimp, Photoshop or whatever, it is even easier to use  <a href="create_bmp_for_rect_cen_in_rect.1.html"><code>create_bmp_for_rect_cen_in_rect</code></a> to generate the bitmap, giving it the 4 dimensions in the order W H w h and the permittivity, which in the following example is 2.5.
+<pre>
+% create_bmp_for_rect_cen_in_rect 10 7 2 5 2.5  rect10.bmp
+% atlc rect10.bmp
+rect10.bmp 2 Er=  2.50 Zo=  23.95 Ohms C= 220.2 pF/m L= 126.3 nH/m v= 1.896e+08 m/s v_f= 0.632 VERSION= 4.2.5
+</pre>
+In order to understand how to use <CODE>create_bmp_for_rect_cen_in_rect</CODE> (or any other programme for that matter), we should run it with no arguments, to get a list of the paramters it needs and any options it may have.  <br>
+</LI>
+<LI>
+<a name="coupler1" >Directional coupler.</a> Now consider analysing this structure, which is a coupler. A bitmap of it can be found in atlc-x.y.z/examples/cop1.bmp
+<p>
+<img src="jpgs/cop1.jpg" ALT="rectangular transmission line" width="50%"><p>
+This time, since this is a coupler, the second inner conductor must be drawn pure blue. Coupled lines are quite a complex suhject, but the important properties to know are the odd and even mode impedance, Zodd and Zeven. Again <CODE>atlc</CODE> is used to determine these. 
+<pre>
+% atlc cop1.bmp
+</pre>
+atlc responds, but this time giving both the odd mode impedance, the even mode impedance and the characteristic impedance Zo. 
+<pre>
+cop1.bmp 3 Er_odd= 1.00 Er_even= 1.00 Zodd= 31.69 Zeven= 138.99 Zo=  66.37 Zdiff=  63.38 Zcomm=  69.50 Ohms VERSION=4.2.5
+</pre>
+<P>The characteristic impedance Zo is the square root of the odd and even mode impedances. Zo=sqrt(Zodd*Zeven)=sqrt(31.59*138.99)=66.37.
+<br>The common mode impedance Zcomm is Zeven/2 and the differential mode impedance Zdiff is  2*Zodd.</P>
+<P>Please see the tutorial on <a href="couplers.html">couplers</a> for further examples on the use of couplers.</P>
+</LI>
+</OL>
+<p><EM>atlc</EM> is written and supported by <a href="jpgs/home-email.jpg">Dr. David Kirkby (G8WRB)</A> It it issued under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</A><p>
+<a href="http://atlc.sourceforge.net">Return to the atlc homepage</a>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</body>
+</html>
diff --git a/docs/html-docs/usage_design_coupler.html b/docs/html-docs/usage_design_coupler.html
new file mode 100644 (file)
index 0000000..7854fea
--- /dev/null
@@ -0,0 +1,58 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
+<HTML>
+<HEAD>
+<TITLE>Homepage of atlc - Arbitrary Transmission Line Calculator</TITLE>
+<META name="generator" content="Mostly bluefish and vi">
+<META http-equiv="CONTENT-TYPE" content="text/html; charset=iso-8859-1">
+<meta name="author" content="Dr. David Kirkby">
+<META name="DESCRIPTION" content="Transmission line design_coupler design coupler calculator, of *any* cross section">
+<META name="KEYWORDS" content="Transmission line calculator design_coupler arbitrary any shape cross section finite difference">
+</HEAD>
+<BODY>
+
+
+<H1>Arguments and options for  <CODE>design_coupler</CODE></H1>
+If<CODE> design_coupler</CODE>  is run with the wrong number of arguments (there should be 3), it prints information on what it expects for its 3 arguments and the options available. . 
+<pre>
+sparrow /export/home/davek/atlc/src/non_gui % design_coupler
+
+Usage: design_coupler [-d] -[e] [-q] [-s fstep] [-C] [-H height] [-L length] [-Z Zo] CF fmin fmax
+where: 
+     CF          is the coupling factor required in dB [10 log(P1/P2)]
+     fmin        is the minimum frequency (MHz)
+     fman        is the maximum frequency (MHz)
+Options are:
+      -d           Calculate physical dimensions (takes a while).
+      -e           Give lots of examples of usage.
+      -q           Run in quite mode, giving less output.
+      -s fstep     Set the analysis frequency step in MHz.
+      -C           Print Copyright, Licencing and Distribution information.
+      -H height    to set the height of the enclosure (defaults to 1 unit).
+      -L length    to set the coupler length (m). Defaults to lambda/4.
+      -Q           Run in very quite mode, giving just one line of output
+      -Z Zo        Set the design impedance (default is 50 Ohms)
+coupled port 2 ************************************************ reflected port 3
+
+input port 1   ************************************************ output port 4
+               <--------------------L------------------------->
+Drive Port 1. The main power comes out from port 4. A fraction (set by the 
+coupling factor) of the forward power comes from port 2. A fraction of the
+
+</pre>
+<a href="http://homepage.ntlworld.com/drkirkby/list1.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list2.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list3.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list4.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list5.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list6.html"></a>
+<a href="http://homepage.ntlworld.com/drkirkby/list7.html"></a>
+<BR>
+<BR>
+<A href="http://sourceforge.net"> <IMG
+src="http://sourceforge.net/sflogo.php?group_id=25836&amp;type=5"
+width="210" height="62" border="0" alt="SourceForge.net
+Logo"></A>
+</body>
+</html>
diff --git a/docs/html-docs/valid-html40.gif b/docs/html-docs/valid-html40.gif
new file mode 100644 (file)
index 0000000..c5e9402
Binary files /dev/null and b/docs/html-docs/valid-html40.gif differ
diff --git a/docs/qex-december-1996/ATLC.C b/docs/qex-december-1996/ATLC.C
new file mode 100644 (file)
index 0000000..1321797
--- /dev/null
@@ -0,0 +1,66 @@
+#include <stdio.h> /* ATLC - Arbitrary Transmission Line Calculator. ver 1.0 */\r
+#include <math.h>        /* By D. Kirkby G8WRB.  Compiles okay with          */\r
+#include <stdlib.h>      /* Microsoft  Quick C, version 2.0 and GNU C.       */\r
+#define Imax 126         /* Voltage array size will be 0..Imax               */\r
+#define Jmax 126         /* ie v[0..Imax][[0..Jmax]                          */\r
+float v[Imax+1][Jmax+1]; /* Declare an array to hold the voltages            */\r
+void arbitrary_transmission_line(int W, int H, int w, int h, int t);\r
+\r
+void main(int argc, char **argv) /* Read parameters from command line here   */\r
+{\r
+         int W, H, w, h, t; /* integers for number of grid squares to use. */\r
+         if((argc!=6) ) /* Check the number of command line arguments are correct */\r
+         {\r
+                   printf("Usage: %s W(shield) H(shield) width height thickness\n", argv[0]);\r
+                   exit(1); /* Exit - program called with wrong number of arguments */\r
+         }\r
+         W=atoi(argv[1]); /* Read shield width (in grid points) from command line.    */\r
+         H=atoi(argv[2]); /* Read shield height (in grid points) from command line.   */\r
+         w=atoi(argv[3]); /* Read strip width (in grid points) from command line.     */\r
+         h=atoi(argv[4]); /* Read strip height (in grid points) from command line.    */\r
+         t=atoi(argv[5]); /* Read strip thickness (in grid points) from command line. */\r
+         if((W>Imax)||(H>Jmax)||(h+t>H-1)||(w>W-2)||(h<0)||(t<0)||(W<0)||(H<0)) /* Basic checks */\r
+         {\r
+                    printf("Sorry - one of the arguments is silly - too big, too small ?\n");\r
+                    exit(2);\r
+         }\r
+         arbitrary_transmission_line(W,H,w,h,t); /* Calculate L, C and Zo     */\r
+}\r
+\r
+void arbitrary_transmission_line(int W, int H, int w, int h, int t)\r
+{\r
+         double Eo=8.854e-12, Er=1.0, mu=12.57e-7, c, l, Zo, vnew,r=1.5, c_old;\r
+         int i, j, k=0, done=0; \r
+         for(i=0;i<=W;i=i+1)    /* Zero the voltage array. Its essential that the  */\r
+                   for(j=0;j<=H;j=j+1) /* outer is at 0V, but desirable for everywhere to */\r
+                            v[i][j]=0.0;     /* start at 0 V. */\r
+         for(i=(W-w)/2;i<=(W-w)/2+w;i=i+1) /* Put stripline in centre of x axis, */\r
+                   for(j=h;j<=h+t;j=j+1)          /* and between h and h+t on the y axis,*/\r
+                            v[i][j]=1.0;                /* then set stripline there to 1 V */\r
+         do{ /* Set up a relaxation loop, to find the voltage at every point */\r
+                   k=k+1; /* increment the counter used to count the iterations */   \r
+                   for(i=1;i<=W-1;i=i+1) /* Data at i=0 must stay fixed at v=0 */\r
+                            for(j=1;j<=H-1;j=j+1) /* as this is a 'boundary condition' */\r
+                                      if(v[i][j]!=1.0) /*ie. don't do this where the stripline is */\r
+                                      {\r
+                                         vnew=r*(v[i+1][j]+v[i-1][j]+v[i][j+1]+v[i][j-1])/4+(1-r)*v[i][j];\r
+                                               v[i][j]=vnew; /* New voltage is calculated */\r
+                                      }\r
+                   if(k%10==0) /* Now we have v distribution we find C every 10 iterations */\r
+                   {\r
+                            c_old=c; c=0.0; \r
+                            for(i=0;i<=W-1;i=i+1) /* Sum v over cross-section to get C, which  */\r
+                                  for(j=0;j<=H-1;j=j+1) /* is easy for a rectangular cross section */\r
+                                       c=c+pow(v[i][j]-v[i+1][j+1],2.0)+pow(v[i+1][j]-v[i][j+1],2.0);\r
+                            c=c*Eo/2.0; /* Find capacitance - only correct if air-spaced */\r
+                            l=mu*Eo/c;  /* Calculate the line inductance - always correct */\r
+                            c=c*Er;          /* Correct the capacitance if line has a dielectric */\r
+                            Zo=sqrt(l/c);    /* Calculate the characteristic impedance */\r
+                            printf("%5d c=%.2lfpF/m l=%.2lfnH/m Zo=%lf Ohms\n",k,c*1e12,l*1e9,Zo);\r
+                            if(fabs(c_old-c)/c < 0.00001) /* Until they differ by < 0.001 % */\r
+                                      done=1;  /* Little change in calculated value of C - so we finish*/\r
+                            else\r
+                                      done=0; /* Large change in calculated value of C - lets continue */\r
+                   }\r
+         }while(done==0); /* Repeat for until the capacitance has converged */\r
+} /* End line of program - line 66 */\r
diff --git a/docs/qex-december-1996/Makefile.am b/docs/qex-december-1996/Makefile.am
new file mode 100644 (file)
index 0000000..d1e454c
--- /dev/null
@@ -0,0 +1,6 @@
+
+qexdir = $(datadir)/atlc/docs/qex_december_1996
+
+qex_DATA = README atlc.pdf ATLC.C
+
+EXTRA_DIST = ATLC.C README atlc.pdf 
diff --git a/docs/qex-december-1996/Makefile.in b/docs/qex-december-1996/Makefile.in
new file mode 100644 (file)
index 0000000..2188ae4
--- /dev/null
@@ -0,0 +1,284 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+qexdir = $(datadir)/atlc/docs/qex_december_1996
+
+qex_DATA = README atlc.pdf ATLC.C
+
+EXTRA_DIST = ATLC.C README atlc.pdf 
+subdir = docs/qex-december-1996
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DATA = $(qex_DATA)
+
+DIST_COMMON = README Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  docs/qex-december-1996/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+qexDATA_INSTALL = $(INSTALL_DATA)
+install-qexDATA: $(qex_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(qexdir)
+       @list='$(qex_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " $(qexDATA_INSTALL) $$d$$p $(DESTDIR)$(qexdir)/$$f"; \
+         $(qexDATA_INSTALL) $$d$$p $(DESTDIR)$(qexdir)/$$f; \
+       done
+
+uninstall-qexDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(qex_DATA)'; for p in $$list; do \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " rm -f $(DESTDIR)$(qexdir)/$$f"; \
+         rm -f $(DESTDIR)$(qexdir)/$$f; \
+       done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+
+installdirs:
+       $(mkinstalldirs) $(DESTDIR)$(qexdir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-qexDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-qexDATA
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-qexDATA install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+       uninstall-am uninstall-info-am uninstall-qexDATA
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/qex-december-1996/README b/docs/qex-december-1996/README
new file mode 100644 (file)
index 0000000..d524081
--- /dev/null
@@ -0,0 +1,8 @@
+The file atlc.pdf is a copy of a paper I wrote describing a very early version of
+this programme in QEX - an amatuer radio journal. The file ATLC.C is the C source
+that accompanied that paper. ATLC.EXE is a DOS executable. 
+
+The DOS version is no longer developed, but this is included for completeness. 
+
+Dr. David Kirkby, G8WRB
+
diff --git a/docs/qex-december-1996/atlc.pdf b/docs/qex-december-1996/atlc.pdf
new file mode 100644 (file)
index 0000000..8c96ecf
Binary files /dev/null and b/docs/qex-december-1996/atlc.pdf differ
diff --git a/docs/theory/Makefile.am b/docs/theory/Makefile.am
new file mode 100644 (file)
index 0000000..b22b067
--- /dev/null
@@ -0,0 +1 @@
+EXTRA_DIST = README atlc-theory1.doc  atlc-theory2.doc  ideas-for-gui.sxw
diff --git a/docs/theory/Makefile.in b/docs/theory/Makefile.in
new file mode 100644 (file)
index 0000000..e48b5de
--- /dev/null
@@ -0,0 +1,258 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = README atlc-theory1.doc  atlc-theory2.doc  ideas-for-gui.sxw
+subdir = docs/theory
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = README Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  docs/theory/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile
+
+installdirs:
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/theory/README b/docs/theory/README
new file mode 100644 (file)
index 0000000..3a11c47
--- /dev/null
@@ -0,0 +1,11 @@
+Here are 2 files in word format,
+atlc-theory1.doc  atlc-theory2.doc
+describing the theory of atlc. They were written by me for
+me and not in a particulary coherent way. 
+
+Another in StarOffice/OpenOffice format
+ideas-for-gui.sxw
+describes a few ideas I had for a GUI
+
+Dr. David Kirkby, G8WRB 12 Jan 2003
+
diff --git a/docs/theory/atlc-theory1.doc b/docs/theory/atlc-theory1.doc
new file mode 100644 (file)
index 0000000..1e9a5fd
Binary files /dev/null and b/docs/theory/atlc-theory1.doc differ
diff --git a/docs/theory/atlc-theory2.doc b/docs/theory/atlc-theory2.doc
new file mode 100644 (file)
index 0000000..50ef337
Binary files /dev/null and b/docs/theory/atlc-theory2.doc differ
diff --git a/docs/theory/ideas-for-gui.sxw b/docs/theory/ideas-for-gui.sxw
new file mode 100644 (file)
index 0000000..012006e
Binary files /dev/null and b/docs/theory/ideas-for-gui.sxw differ
diff --git a/examples/100ohm-201h.bmp b/examples/100ohm-201h.bmp
new file mode 100644 (file)
index 0000000..55e90d3
Binary files /dev/null and b/examples/100ohm-201h.bmp differ
diff --git a/examples/100ohm-201h.bmp.txt b/examples/100ohm-201h.bmp.txt
new file mode 100644 (file)
index 0000000..3a32dac
--- /dev/null
@@ -0,0 +1 @@
+100ohm-201h.bmp 2 Er=  1.00 Zo= 100.319 Ohms C=   33.3 pF/m L=  334.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/100ohm-401h.bmp b/examples/100ohm-401h.bmp
new file mode 100644 (file)
index 0000000..d4d17da
Binary files /dev/null and b/examples/100ohm-401h.bmp differ
diff --git a/examples/100ohm-401h.bmp.txt b/examples/100ohm-401h.bmp.txt
new file mode 100644 (file)
index 0000000..91edb6e
--- /dev/null
@@ -0,0 +1 @@
+100ohm-401h.bmp 2 Er=  1.00 Zo=  99.998 Ohms C=   33.4 pF/m L=  333.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/100ohm-801h.bmp b/examples/100ohm-801h.bmp
new file mode 100644 (file)
index 0000000..2094e30
Binary files /dev/null and b/examples/100ohm-801h.bmp differ
diff --git a/examples/100ohm-801h.bmp.txt b/examples/100ohm-801h.bmp.txt
new file mode 100644 (file)
index 0000000..36f096c
--- /dev/null
@@ -0,0 +1 @@
+100ohm-801h.bmp 2 Er=  1.00 Zo=  99.857 Ohms C=   33.4 pF/m L=  333.1 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/200ohm-201h.bmp b/examples/200ohm-201h.bmp
new file mode 100644 (file)
index 0000000..5186d52
Binary files /dev/null and b/examples/200ohm-201h.bmp differ
diff --git a/examples/200ohm-201h.bmp.txt b/examples/200ohm-201h.bmp.txt
new file mode 100644 (file)
index 0000000..db9cf77
--- /dev/null
@@ -0,0 +1 @@
+200ohm-201h.bmp 2 Er=  1.00 Zo= 204.210 Ohms C=   16.3 pF/m L=  681.2 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/200ohm-401h.bmp b/examples/200ohm-401h.bmp
new file mode 100644 (file)
index 0000000..d531235
Binary files /dev/null and b/examples/200ohm-401h.bmp differ
diff --git a/examples/200ohm-401h.bmp.txt b/examples/200ohm-401h.bmp.txt
new file mode 100644 (file)
index 0000000..41ea5c1
--- /dev/null
@@ -0,0 +1 @@
+200ohm-401h.bmp 2 Er=  1.00 Zo= 201.844 Ohms C=   16.5 pF/m L=  673.3 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/200ohm-801h.bmp b/examples/200ohm-801h.bmp
new file mode 100644 (file)
index 0000000..f86c5ba
Binary files /dev/null and b/examples/200ohm-801h.bmp differ
diff --git a/examples/200ohm-801h.bmp.txt b/examples/200ohm-801h.bmp.txt
new file mode 100644 (file)
index 0000000..a91d20f
--- /dev/null
@@ -0,0 +1 @@
+200ohm-801h.bmp 2 Er=  1.00 Zo= 199.734 Ohms C=   16.7 pF/m L=  666.2 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/25ohm-201h.E.bmp b/examples/25ohm-201h.E.bmp
new file mode 100644 (file)
index 0000000..82eb7f8
Binary files /dev/null and b/examples/25ohm-201h.E.bmp differ
diff --git a/examples/25ohm-201h.Er.bmp b/examples/25ohm-201h.Er.bmp
new file mode 100644 (file)
index 0000000..f17101d
Binary files /dev/null and b/examples/25ohm-201h.Er.bmp differ
diff --git a/examples/25ohm-201h.Ex.bmp b/examples/25ohm-201h.Ex.bmp
new file mode 100644 (file)
index 0000000..d65ea84
Binary files /dev/null and b/examples/25ohm-201h.Ex.bmp differ
diff --git a/examples/25ohm-201h.Ey.bmp b/examples/25ohm-201h.Ey.bmp
new file mode 100644 (file)
index 0000000..473881d
Binary files /dev/null and b/examples/25ohm-201h.Ey.bmp differ
diff --git a/examples/25ohm-201h.U.bmp b/examples/25ohm-201h.U.bmp
new file mode 100644 (file)
index 0000000..6cc0933
Binary files /dev/null and b/examples/25ohm-201h.U.bmp differ
diff --git a/examples/25ohm-201h.V.bmp b/examples/25ohm-201h.V.bmp
new file mode 100644 (file)
index 0000000..56c4f3b
Binary files /dev/null and b/examples/25ohm-201h.V.bmp differ
diff --git a/examples/25ohm-201h.bmp b/examples/25ohm-201h.bmp
new file mode 100644 (file)
index 0000000..220a9a3
Binary files /dev/null and b/examples/25ohm-201h.bmp differ
diff --git a/examples/25ohm-201h.bmp.txt b/examples/25ohm-201h.bmp.txt
new file mode 100644 (file)
index 0000000..85633be
--- /dev/null
@@ -0,0 +1 @@
+25ohm-201h.bmp 2 Er=  1.00 Zo=  24.932 Ohms C=  133.8 pF/m L=   83.2 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/25ohm-401h.bmp b/examples/25ohm-401h.bmp
new file mode 100644 (file)
index 0000000..70970f9
Binary files /dev/null and b/examples/25ohm-401h.bmp differ
diff --git a/examples/25ohm-401h.bmp.txt b/examples/25ohm-401h.bmp.txt
new file mode 100644 (file)
index 0000000..f4e08b3
--- /dev/null
@@ -0,0 +1 @@
+25ohm-401h.bmp 2 Er=  1.00 Zo=  24.940 Ohms C=  133.7 pF/m L=   83.2 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/25ohm-801h.bmp b/examples/25ohm-801h.bmp
new file mode 100644 (file)
index 0000000..08ab860
Binary files /dev/null and b/examples/25ohm-801h.bmp differ
diff --git a/examples/400ohm-1551h.bmp b/examples/400ohm-1551h.bmp
new file mode 100644 (file)
index 0000000..b8f69ec
Binary files /dev/null and b/examples/400ohm-1551h.bmp differ
diff --git a/examples/400ohm-1551h.bmp.txt b/examples/400ohm-1551h.bmp.txt
new file mode 100644 (file)
index 0000000..f3c0491
--- /dev/null
@@ -0,0 +1 @@
+400ohm-1551h.bmp 2 Er=  1.00 Zo= 417.700 Ohms C=    8.0 pF/m L= 1393.3 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/50ohm-201h.E.bmp b/examples/50ohm-201h.E.bmp
new file mode 100644 (file)
index 0000000..8c21e2d
Binary files /dev/null and b/examples/50ohm-201h.E.bmp differ
diff --git a/examples/50ohm-201h.Er.bmp b/examples/50ohm-201h.Er.bmp
new file mode 100644 (file)
index 0000000..0003384
Binary files /dev/null and b/examples/50ohm-201h.Er.bmp differ
diff --git a/examples/50ohm-201h.Ex.bmp b/examples/50ohm-201h.Ex.bmp
new file mode 100644 (file)
index 0000000..a410f6e
Binary files /dev/null and b/examples/50ohm-201h.Ex.bmp differ
diff --git a/examples/50ohm-201h.Ey.bmp b/examples/50ohm-201h.Ey.bmp
new file mode 100644 (file)
index 0000000..6aa7c36
Binary files /dev/null and b/examples/50ohm-201h.Ey.bmp differ
diff --git a/examples/50ohm-201h.U.bmp b/examples/50ohm-201h.U.bmp
new file mode 100644 (file)
index 0000000..6a3d436
Binary files /dev/null and b/examples/50ohm-201h.U.bmp differ
diff --git a/examples/50ohm-201h.V.bmp b/examples/50ohm-201h.V.bmp
new file mode 100644 (file)
index 0000000..d021ea4
Binary files /dev/null and b/examples/50ohm-201h.V.bmp differ
diff --git a/examples/50ohm-201h.bmp b/examples/50ohm-201h.bmp
new file mode 100644 (file)
index 0000000..994ca63
Binary files /dev/null and b/examples/50ohm-201h.bmp differ
diff --git a/examples/50ohm-401h.bmp b/examples/50ohm-401h.bmp
new file mode 100644 (file)
index 0000000..1d4bb3b
Binary files /dev/null and b/examples/50ohm-401h.bmp differ
diff --git a/examples/50ohm-401h.bmp.txt b/examples/50ohm-401h.bmp.txt
new file mode 100644 (file)
index 0000000..df57ad6
--- /dev/null
@@ -0,0 +1 @@
+50ohm-401h.bmp 2 Er=  1.00 Zo=  49.944 Ohms C=   66.8 pF/m L=  166.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/50ohm-801h.bmp b/examples/50ohm-801h.bmp
new file mode 100644 (file)
index 0000000..8991ead
Binary files /dev/null and b/examples/50ohm-801h.bmp differ
diff --git a/examples/50ohm-801h.bmp.txt b/examples/50ohm-801h.bmp.txt
new file mode 100644 (file)
index 0000000..97cf752
--- /dev/null
@@ -0,0 +1 @@
+50ohm-801h.bmp 2 Er=  1.00 Zo=  49.878 Ohms C=   66.9 pF/m L=  166.4 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/Makefile.am b/examples/Makefile.am
new file mode 100644 (file)
index 0000000..80915da
--- /dev/null
@@ -0,0 +1,186 @@
+# This is Makefile.am, which is processed by automake
+
+examplesdir = $(datadir)/atlc/examples
+
+examples_DATA= \
+100ohm-201h.bmp \
+100ohm-201h.bmp.txt \
+100ohm-401h.bmp \
+100ohm-401h.bmp.txt \
+100ohm-801h.bmp \
+100ohm-801h.bmp.txt \
+200ohm-201h.bmp \
+200ohm-201h.bmp.txt \
+200ohm-401h.bmp \
+200ohm-401h.bmp.txt \
+200ohm-801h.bmp \
+200ohm-801h.bmp.txt \
+25ohm-201h.E.bmp \
+25ohm-201h.Er.bmp \
+25ohm-201h.Ex.bmp \
+25ohm-201h.Ey.bmp \
+25ohm-201h.U.bmp \
+25ohm-201h.V.bmp \
+25ohm-201h.bmp \
+25ohm-201h.bmp.txt \
+25ohm-401h.bmp \
+25ohm-401h.bmp.txt \
+25ohm-801h.bmp \
+400ohm-1551h.bmp \
+400ohm-1551h.bmp.txt \
+50ohm-201h.E.bmp \
+50ohm-201h.Er.bmp \
+50ohm-201h.Ex.bmp \
+50ohm-201h.Ey.bmp \
+50ohm-201h.U.bmp \
+50ohm-201h.V.bmp \
+50ohm-201h.bmp \
+50ohm-401h.bmp \
+50ohm-401h.bmp.txt \
+50ohm-801h.bmp \
+50ohm-801h.bmp.txt \
+aliased.bmp \
+an_odd_er.bmp \
+bigger_not_in_centre.bmp \
+bigger_not_in_centre.bmp.txt \
+coax-500-100.bmp \
+coax-500-100.bmp.txt \
+coax-500-200-Er=100.bmp \
+coax-500-200-Er=100.bmp.txt \
+coax-500-200.E.bmp \
+coax-500-200.Er.bmp \
+coax-500-200.Ex.bmp \
+coax-500-200.Ey.bmp \
+coax-500-200.U.bmp \
+coax-500-200.V.bmp \
+coax-500-200.bmp \
+coax-500-200.bmp.txt \
+coax-500-25.bmp \
+coax-500-25.bmp.txt \
+coax-500-400.bmp \
+coax-500-400.bmp.txt \
+coax-500-50.bmp \
+coax-500-50.bmp.txt \
+coax2.E.bmp \
+coax2.Er.bmp \
+coax2.Ex.bmp \
+coax2.Ey.bmp \
+coax2.U.bmp \
+coax2.V.bmp \
+coax2.bmp \
+coax2.bmp.txt \
+coaxtest.bmp \
+coaxtest.bmp.txt \
+coaxtest2.bmp \
+coaxtest2.bmp.txt \
+coupler.bmp \
+coupler.bmp.txt \
+create_for_Makefile.am \
+cvsignore \
+dual-dielectric-coax.bmp \
+ground-negative-short.bmp \
+ground-negative-short.bmp.txt \
+microstrip_coupler.bmp \
+microstrip_coupler.bmp.txt \
+multi-dielectric.bmp \
+multi-dielectric.bmp.txt \
+not-aliased.bmp \
+not-aliased.bmp.txt \
+not_in_centre.bmp \
+not_in_centre.bmp.txt \
+odd-coupler.bmp \
+off-centre-coax.bmp \
+offset.bmp \
+offset.bmp.txt \
+pcb-coupler.bmp \
+pcb-coupler.bmp.txt \
+pcb.bmp \
+pcb.bmp.txt \
+positive-ground-short.bmp \
+positive-negative-short.bmp \
+test-coupler1.E.even.bmp \
+test-coupler1.E.odd.bmp \
+test-coupler1.Er.bmp \
+test-coupler1.Ex.even.bmp \
+test-coupler1.Ex.odd.bmp \
+test-coupler1.Ey.even.bmp \
+test-coupler1.Ey.odd.bmp \
+test-coupler1.U.even.bmp \
+test-coupler1.U.odd.bmp \
+test-coupler1.V.even.bmp \
+test-coupler1.V.odd.bmp \
+test-coupler1.bmp \
+test-coupler1.bmp.txt \
+test-coupler2.E.even.bmp \
+test-coupler2.E.odd.bmp \
+test-coupler2.Er.bmp \
+test-coupler2.Ex.even.bmp \
+test-coupler2.Ex.odd.bmp \
+test-coupler2.Ey.even.bmp \
+test-coupler2.Ey.odd.bmp \
+test-coupler2.U.even.bmp \
+test-coupler2.U.odd.bmp \
+test-coupler2.V.even.bmp \
+test-coupler2.V.odd.bmp \
+test-coupler2.bmp \
+test-coupler2.bmp.txt \
+test.E.bmp \
+test.Er.bmp \
+test.Ex.bmp \
+test.Ey.bmp \
+test.U.bmp \
+test.V.bmp \
+test.bmp \
+test.bmp.txt \
+test3.bmp \
+test3.bmp.txt \
+test4.bmp \
+test4.bmp.txt \
+test5.bmp \
+test6.bmp \
+test6.bmp.txt \
+test7.bmp \
+test7.bmp.txt \
+test_rect_in_rect.E.bmp \
+test_rect_in_rect.Er.bmp \
+test_rect_in_rect.Ex.bmp \
+test_rect_in_rect.Ey.bmp \
+test_rect_in_rect.U.bmp \
+test_rect_in_rect.V.bmp \
+test_rect_in_rect.bmp \
+test_rect_in_rect.bmp.txt \
+test_stripline_coupler.E.even.bmp \
+test_stripline_coupler.E.odd.bmp \
+test_stripline_coupler.Er.bmp \
+test_stripline_coupler.Ex.even.bmp \
+test_stripline_coupler.Ex.odd.bmp \
+test_stripline_coupler.Ey.even.bmp \
+test_stripline_coupler.Ey.odd.bmp \
+test_stripline_coupler.U.even.bmp \
+test_stripline_coupler.U.odd.bmp \
+test_stripline_coupler.V.even.bmp \
+test_stripline_coupler.V.odd.bmp \
+test_stripline_coupler.bmp \
+test_stripline_coupler.bmp.txt \
+test_stripline_coupler2.bmp \
+test_sym_strip.Ex.bmp \
+test_sym_strip.U.bmp \
+test_sym_strip.V.bmp \
+test_sym_strip.bmp \
+test_sym_strip.bmp.txt \
+twin-wire.bmp \
+twin-wire.bmp.txt \
+twin-wire2.bmp \
+twin-wire2.bmp.txt \
+twin-wire3.bmp \
+twin-wire3.bmp.txt \
+twin-wire4.bmp \
+twin-wire4.bmp.txt \
+ushape.bmp \
+ushape.bmp.txt \
+very-odd.bmp \
+very-odd.bmp.txt \
+wide-9pixel.bmp \
+wide-9pixel.bmp.txt 
+
+EXTRA_DIST = $(examples_DATA)
diff --git a/examples/Makefile.in b/examples/Makefile.in
new file mode 100644 (file)
index 0000000..c6124ad
--- /dev/null
@@ -0,0 +1,466 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# This is Makefile.am, which is processed by automake
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+examplesdir = $(datadir)/atlc/examples
+
+examples_DATA = \
+100ohm-201h.bmp \
+100ohm-201h.bmp.txt \
+100ohm-401h.bmp \
+100ohm-401h.bmp.txt \
+100ohm-801h.bmp \
+100ohm-801h.bmp.txt \
+200ohm-201h.bmp \
+200ohm-201h.bmp.txt \
+200ohm-401h.bmp \
+200ohm-401h.bmp.txt \
+200ohm-801h.bmp \
+200ohm-801h.bmp.txt \
+25ohm-201h.E.bmp \
+25ohm-201h.Er.bmp \
+25ohm-201h.Ex.bmp \
+25ohm-201h.Ey.bmp \
+25ohm-201h.U.bmp \
+25ohm-201h.V.bmp \
+25ohm-201h.bmp \
+25ohm-201h.bmp.txt \
+25ohm-401h.bmp \
+25ohm-401h.bmp.txt \
+25ohm-801h.bmp \
+400ohm-1551h.bmp \
+400ohm-1551h.bmp.txt \
+50ohm-201h.E.bmp \
+50ohm-201h.Er.bmp \
+50ohm-201h.Ex.bmp \
+50ohm-201h.Ey.bmp \
+50ohm-201h.U.bmp \
+50ohm-201h.V.bmp \
+50ohm-201h.bmp \
+50ohm-401h.bmp \
+50ohm-401h.bmp.txt \
+50ohm-801h.bmp \
+50ohm-801h.bmp.txt \
+aliased.bmp \
+an_odd_er.bmp \
+bigger_not_in_centre.bmp \
+bigger_not_in_centre.bmp.txt \
+coax-500-100.bmp \
+coax-500-100.bmp.txt \
+coax-500-200-Er=100.bmp \
+coax-500-200-Er=100.bmp.txt \
+coax-500-200.E.bmp \
+coax-500-200.Er.bmp \
+coax-500-200.Ex.bmp \
+coax-500-200.Ey.bmp \
+coax-500-200.U.bmp \
+coax-500-200.V.bmp \
+coax-500-200.bmp \
+coax-500-200.bmp.txt \
+coax-500-25.bmp \
+coax-500-25.bmp.txt \
+coax-500-400.bmp \
+coax-500-400.bmp.txt \
+coax-500-50.bmp \
+coax-500-50.bmp.txt \
+coax2.E.bmp \
+coax2.Er.bmp \
+coax2.Ex.bmp \
+coax2.Ey.bmp \
+coax2.U.bmp \
+coax2.V.bmp \
+coax2.bmp \
+coax2.bmp.txt \
+coaxtest.bmp \
+coaxtest.bmp.txt \
+coaxtest2.bmp \
+coaxtest2.bmp.txt \
+coupler.bmp \
+coupler.bmp.txt \
+create_for_Makefile.am \
+cvsignore \
+dual-dielectric-coax.bmp \
+ground-negative-short.bmp \
+ground-negative-short.bmp.txt \
+microstrip_coupler.bmp \
+microstrip_coupler.bmp.txt \
+multi-dielectric.bmp \
+multi-dielectric.bmp.txt \
+not-aliased.bmp \
+not-aliased.bmp.txt \
+not_in_centre.bmp \
+not_in_centre.bmp.txt \
+odd-coupler.bmp \
+off-centre-coax.bmp \
+offset.bmp \
+offset.bmp.txt \
+pcb-coupler.bmp \
+pcb-coupler.bmp.txt \
+pcb.bmp \
+pcb.bmp.txt \
+positive-ground-short.bmp \
+positive-negative-short.bmp \
+test-coupler1.E.even.bmp \
+test-coupler1.E.odd.bmp \
+test-coupler1.Er.bmp \
+test-coupler1.Ex.even.bmp \
+test-coupler1.Ex.odd.bmp \
+test-coupler1.Ey.even.bmp \
+test-coupler1.Ey.odd.bmp \
+test-coupler1.U.even.bmp \
+test-coupler1.U.odd.bmp \
+test-coupler1.V.even.bmp \
+test-coupler1.V.odd.bmp \
+test-coupler1.bmp \
+test-coupler1.bmp.txt \
+test-coupler2.E.even.bmp \
+test-coupler2.E.odd.bmp \
+test-coupler2.Er.bmp \
+test-coupler2.Ex.even.bmp \
+test-coupler2.Ex.odd.bmp \
+test-coupler2.Ey.even.bmp \
+test-coupler2.Ey.odd.bmp \
+test-coupler2.U.even.bmp \
+test-coupler2.U.odd.bmp \
+test-coupler2.V.even.bmp \
+test-coupler2.V.odd.bmp \
+test-coupler2.bmp \
+test-coupler2.bmp.txt \
+test.E.bmp \
+test.Er.bmp \
+test.Ex.bmp \
+test.Ey.bmp \
+test.U.bmp \
+test.V.bmp \
+test.bmp \
+test.bmp.txt \
+test3.bmp \
+test3.bmp.txt \
+test4.bmp \
+test4.bmp.txt \
+test5.bmp \
+test6.bmp \
+test6.bmp.txt \
+test7.bmp \
+test7.bmp.txt \
+test_rect_in_rect.E.bmp \
+test_rect_in_rect.Er.bmp \
+test_rect_in_rect.Ex.bmp \
+test_rect_in_rect.Ey.bmp \
+test_rect_in_rect.U.bmp \
+test_rect_in_rect.V.bmp \
+test_rect_in_rect.bmp \
+test_rect_in_rect.bmp.txt \
+test_stripline_coupler.E.even.bmp \
+test_stripline_coupler.E.odd.bmp \
+test_stripline_coupler.Er.bmp \
+test_stripline_coupler.Ex.even.bmp \
+test_stripline_coupler.Ex.odd.bmp \
+test_stripline_coupler.Ey.even.bmp \
+test_stripline_coupler.Ey.odd.bmp \
+test_stripline_coupler.U.even.bmp \
+test_stripline_coupler.U.odd.bmp \
+test_stripline_coupler.V.even.bmp \
+test_stripline_coupler.V.odd.bmp \
+test_stripline_coupler.bmp \
+test_stripline_coupler.bmp.txt \
+test_stripline_coupler2.bmp \
+test_sym_strip.Ex.bmp \
+test_sym_strip.U.bmp \
+test_sym_strip.V.bmp \
+test_sym_strip.bmp \
+test_sym_strip.bmp.txt \
+twin-wire.bmp \
+twin-wire.bmp.txt \
+twin-wire2.bmp \
+twin-wire2.bmp.txt \
+twin-wire3.bmp \
+twin-wire3.bmp.txt \
+twin-wire4.bmp \
+twin-wire4.bmp.txt \
+ushape.bmp \
+ushape.bmp.txt \
+very-odd.bmp \
+very-odd.bmp.txt \
+wide-9pixel.bmp \
+wide-9pixel.bmp.txt 
+
+
+EXTRA_DIST = $(examples_DATA)
+subdir = examples
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DATA = $(examples_DATA)
+
+DIST_COMMON = README Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  examples/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+examplesDATA_INSTALL = $(INSTALL_DATA)
+install-examplesDATA: $(examples_DATA)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(examplesdir)
+       @list='$(examples_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " $(examplesDATA_INSTALL) $$d$$p $(DESTDIR)$(examplesdir)/$$f"; \
+         $(examplesDATA_INSTALL) $$d$$p $(DESTDIR)$(examplesdir)/$$f; \
+       done
+
+uninstall-examplesDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(examples_DATA)'; for p in $$list; do \
+         f="`echo $$p | sed -e 's|^.*/||'`"; \
+         echo " rm -f $(DESTDIR)$(examplesdir)/$$f"; \
+         rm -f $(DESTDIR)$(examplesdir)/$$f; \
+       done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+
+installdirs:
+       $(mkinstalldirs) $(DESTDIR)$(examplesdir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-examplesDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-examplesDATA uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am install-examplesDATA \
+       install-exec install-exec-am install-info install-info-am \
+       install-man install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+       uninstall-am uninstall-examplesDATA uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/examples/README b/examples/README
new file mode 100644 (file)
index 0000000..2ff7a74
--- /dev/null
@@ -0,0 +1,15 @@
+Here are a number of example files, falling into 4 catabories:
+
+foo.bmp                       (a bitmap showing the cross section)
+foo.V.bmo, foo.E.bmp ..       (showing the voltage, electric field etc)
+foo.bmp.txt                   (the result of running atlc on foo.bmp)
+foo.V.even.bmp, foo.E.odd.bmp (voltage, E-field etc for coupled lines).
+
+Formally a lot of examples were created during the 'make check' stage.
+However, users of the automake mailing list all thought this was not
+such a good idea and that the files should be distributed. Hence a lot
+more examples are now distrubted. Whilst this makes the package bigger,
+it solves a lot of problems with automake. 
+
+Dr. David Kirkby
+29th March 2003.
diff --git a/examples/aliased.bmp b/examples/aliased.bmp
new file mode 100644 (file)
index 0000000..18d6bd9
Binary files /dev/null and b/examples/aliased.bmp differ
diff --git a/examples/an_odd_er.bmp b/examples/an_odd_er.bmp
new file mode 100644 (file)
index 0000000..6221e22
Binary files /dev/null and b/examples/an_odd_er.bmp differ
diff --git a/examples/bigger_not_in_centre.bmp b/examples/bigger_not_in_centre.bmp
new file mode 100644 (file)
index 0000000..110c293
Binary files /dev/null and b/examples/bigger_not_in_centre.bmp differ
diff --git a/examples/bigger_not_in_centre.bmp.txt b/examples/bigger_not_in_centre.bmp.txt
new file mode 100644 (file)
index 0000000..96531f6
--- /dev/null
@@ -0,0 +1 @@
+bigger_not_in_centre.bmp 2 Er=  2.10 Zo=  24.247 Ohms C=  199.4 pF/m L=  117.2 nH/m v= 2.069e+08 m/s v_f= 0.690 VERSION= 4.6.0
diff --git a/examples/coax-500-100.bmp b/examples/coax-500-100.bmp
new file mode 100644 (file)
index 0000000..3270f87
Binary files /dev/null and b/examples/coax-500-100.bmp differ
diff --git a/examples/coax-500-100.bmp.txt b/examples/coax-500-100.bmp.txt
new file mode 100644 (file)
index 0000000..50e9f8c
--- /dev/null
@@ -0,0 +1 @@
+coax-500-100.bmp 2 Er=  1.00 Zo=  96.448 Ohms C=   34.6 pF/m L=  321.7 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/coax-500-200-Er=100.bmp b/examples/coax-500-200-Er=100.bmp
new file mode 100644 (file)
index 0000000..9ed84ee
Binary files /dev/null and b/examples/coax-500-200-Er=100.bmp differ
diff --git a/examples/coax-500-200-Er=100.bmp.txt b/examples/coax-500-200-Er=100.bmp.txt
new file mode 100644 (file)
index 0000000..6cb5bdf
--- /dev/null
@@ -0,0 +1 @@
+coax-500-200-Er=100.bmp 2 Er= 100.00 Zo=   5.492 Ohms C= 6073.8 pF/m L=  183.2 nH/m v= 2.998e+07 m/s v_f= 0.100 VERSION= 4.6.0
diff --git a/examples/coax-500-200.E.bmp b/examples/coax-500-200.E.bmp
new file mode 100644 (file)
index 0000000..061ba8c
Binary files /dev/null and b/examples/coax-500-200.E.bmp differ
diff --git a/examples/coax-500-200.Er.bmp b/examples/coax-500-200.Er.bmp
new file mode 100644 (file)
index 0000000..ba7d845
Binary files /dev/null and b/examples/coax-500-200.Er.bmp differ
diff --git a/examples/coax-500-200.Ex.bmp b/examples/coax-500-200.Ex.bmp
new file mode 100644 (file)
index 0000000..6df0ae8
Binary files /dev/null and b/examples/coax-500-200.Ex.bmp differ
diff --git a/examples/coax-500-200.Ey.bmp b/examples/coax-500-200.Ey.bmp
new file mode 100644 (file)
index 0000000..73fe630
Binary files /dev/null and b/examples/coax-500-200.Ey.bmp differ
diff --git a/examples/coax-500-200.U.bmp b/examples/coax-500-200.U.bmp
new file mode 100644 (file)
index 0000000..c426907
Binary files /dev/null and b/examples/coax-500-200.U.bmp differ
diff --git a/examples/coax-500-200.V.bmp b/examples/coax-500-200.V.bmp
new file mode 100644 (file)
index 0000000..db46d40
Binary files /dev/null and b/examples/coax-500-200.V.bmp differ
diff --git a/examples/coax-500-200.bmp b/examples/coax-500-200.bmp
new file mode 100644 (file)
index 0000000..826ae90
Binary files /dev/null and b/examples/coax-500-200.bmp differ
diff --git a/examples/coax-500-200.bmp.txt b/examples/coax-500-200.bmp.txt
new file mode 100644 (file)
index 0000000..28eef02
--- /dev/null
@@ -0,0 +1 @@
+coax-500-200.bmp 2 Er=  1.00 Zo=  54.919 Ohms C=   60.7 pF/m L=  183.2 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/coax-500-25.bmp b/examples/coax-500-25.bmp
new file mode 100644 (file)
index 0000000..b76b7b3
Binary files /dev/null and b/examples/coax-500-25.bmp differ
diff --git a/examples/coax-500-25.bmp.txt b/examples/coax-500-25.bmp.txt
new file mode 100644 (file)
index 0000000..dc28b8e
--- /dev/null
@@ -0,0 +1 @@
+coax-500-25.bmp 2 Er=  1.00 Zo= 180.022 Ohms C=   18.5 pF/m L=  600.5 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/coax-500-400.bmp b/examples/coax-500-400.bmp
new file mode 100644 (file)
index 0000000..3dd1f44
Binary files /dev/null and b/examples/coax-500-400.bmp differ
diff --git a/examples/coax-500-400.bmp.txt b/examples/coax-500-400.bmp.txt
new file mode 100644 (file)
index 0000000..9d6eefa
--- /dev/null
@@ -0,0 +1 @@
+coax-500-400.bmp 2 Er=  1.00 Zo=  13.381 Ohms C=  249.3 pF/m L=   44.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/coax-500-50.bmp b/examples/coax-500-50.bmp
new file mode 100644 (file)
index 0000000..adc7268
Binary files /dev/null and b/examples/coax-500-50.bmp differ
diff --git a/examples/coax-500-50.bmp.txt b/examples/coax-500-50.bmp.txt
new file mode 100644 (file)
index 0000000..0e4ae1a
--- /dev/null
@@ -0,0 +1 @@
+coax-500-50.bmp 2 Er=  1.00 Zo= 137.944 Ohms C=   24.2 pF/m L=  460.1 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/coax2.E.bmp b/examples/coax2.E.bmp
new file mode 100644 (file)
index 0000000..0b982f6
Binary files /dev/null and b/examples/coax2.E.bmp differ
diff --git a/examples/coax2.Er.bmp b/examples/coax2.Er.bmp
new file mode 100644 (file)
index 0000000..7d7710e
Binary files /dev/null and b/examples/coax2.Er.bmp differ
diff --git a/examples/coax2.Ex.bmp b/examples/coax2.Ex.bmp
new file mode 100644 (file)
index 0000000..b8bbc33
Binary files /dev/null and b/examples/coax2.Ex.bmp differ
diff --git a/examples/coax2.Ey.bmp b/examples/coax2.Ey.bmp
new file mode 100644 (file)
index 0000000..856d84a
Binary files /dev/null and b/examples/coax2.Ey.bmp differ
diff --git a/examples/coax2.U.bmp b/examples/coax2.U.bmp
new file mode 100644 (file)
index 0000000..67ae9b7
Binary files /dev/null and b/examples/coax2.U.bmp differ
diff --git a/examples/coax2.V.bmp b/examples/coax2.V.bmp
new file mode 100644 (file)
index 0000000..d48d6b5
Binary files /dev/null and b/examples/coax2.V.bmp differ
diff --git a/examples/coax2.bmp b/examples/coax2.bmp
new file mode 100644 (file)
index 0000000..f7c3f41
Binary files /dev/null and b/examples/coax2.bmp differ
diff --git a/examples/coax2.bmp.txt b/examples/coax2.bmp.txt
new file mode 100644 (file)
index 0000000..7672c0e
--- /dev/null
@@ -0,0 +1 @@
+coax2.bmp 2 Er=  1.00 Zo=  70.199 Ohms C=   47.5 pF/m L=  234.2 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/coaxtest.bmp b/examples/coaxtest.bmp
new file mode 100644 (file)
index 0000000..058cce2
Binary files /dev/null and b/examples/coaxtest.bmp differ
diff --git a/examples/coaxtest.bmp.txt b/examples/coaxtest.bmp.txt
new file mode 100644 (file)
index 0000000..5c6affd
--- /dev/null
@@ -0,0 +1 @@
+coaxtest.bmp 2 Er=  4.80 Zo=   6.106 Ohms C= 1196.9 pF/m L=   44.6 nH/m v= 1.368e+08 m/s v_f= 0.456 VERSION= 4.6.0
diff --git a/examples/coaxtest2.bmp b/examples/coaxtest2.bmp
new file mode 100644 (file)
index 0000000..9160173
Binary files /dev/null and b/examples/coaxtest2.bmp differ
diff --git a/examples/coaxtest2.bmp.txt b/examples/coaxtest2.bmp.txt
new file mode 100644 (file)
index 0000000..3cbb0b5
--- /dev/null
@@ -0,0 +1 @@
+coaxtest2.bmp 2 Er=  1.00 Zo=  13.378 Ohms C=  249.3 pF/m L=   44.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/coupler.bmp b/examples/coupler.bmp
new file mode 100644 (file)
index 0000000..9bc34b6
Binary files /dev/null and b/examples/coupler.bmp differ
diff --git a/examples/coupler.bmp.txt b/examples/coupler.bmp.txt
new file mode 100644 (file)
index 0000000..ff5141b
--- /dev/null
@@ -0,0 +1 @@
+coupler.bmp 3 Er_odd=   1.000 Er_even=   1.000 Zodd=  58.039 Zeven= 217.091 Zo= 112.248 Zdiff= 116.077 Zcomm= 108.546 Ohms VERSION=4.6.0
diff --git a/examples/create_for_Makefile.am b/examples/create_for_Makefile.am
new file mode 100644 (file)
index 0000000..0876220
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+ls * | awk '{ print $1,"\\"}'
diff --git a/examples/cvsignore b/examples/cvsignore
new file mode 100644 (file)
index 0000000..a8a0dce
--- /dev/null
@@ -0,0 +1 @@
+*.bin
diff --git a/examples/dual-dielectric-coax.bmp b/examples/dual-dielectric-coax.bmp
new file mode 100644 (file)
index 0000000..91ccf51
Binary files /dev/null and b/examples/dual-dielectric-coax.bmp differ
diff --git a/examples/ground-negative-short.bmp b/examples/ground-negative-short.bmp
new file mode 100644 (file)
index 0000000..d5d0099
Binary files /dev/null and b/examples/ground-negative-short.bmp differ
diff --git a/examples/ground-negative-short.bmp.txt b/examples/ground-negative-short.bmp.txt
new file mode 100644 (file)
index 0000000..cfa9f66
--- /dev/null
@@ -0,0 +1 @@
+ground-negative-short.bmp 3 Er_odd=   1.000 Er_even=   1.000 Zodd= 102.935 Zeven= 102.935 Zo= 102.935 Zdiff= 205.869 Zcomm=  51.467 Ohms VERSION=4.6.0
diff --git a/examples/microstrip_coupler.bmp b/examples/microstrip_coupler.bmp
new file mode 100644 (file)
index 0000000..84cc834
Binary files /dev/null and b/examples/microstrip_coupler.bmp differ
diff --git a/examples/microstrip_coupler.bmp.txt b/examples/microstrip_coupler.bmp.txt
new file mode 100644 (file)
index 0000000..a8db50f
--- /dev/null
@@ -0,0 +1 @@
+microstrip_coupler.bmp 3 Er_odd=   2.417 Er_even=   2.652 Zodd=  67.257 Zeven=  81.221 Zo=  73.910 Zdiff= 134.514 Zcomm=  40.611 Ohms VERSION=4.6.0
diff --git a/examples/multi-dielectric.bmp b/examples/multi-dielectric.bmp
new file mode 100644 (file)
index 0000000..d49d8d2
Binary files /dev/null and b/examples/multi-dielectric.bmp differ
diff --git a/examples/multi-dielectric.bmp.txt b/examples/multi-dielectric.bmp.txt
new file mode 100644 (file)
index 0000000..c4af2a1
--- /dev/null
@@ -0,0 +1 @@
+multi-dielectric.bmp 2 Er=  1.11 Zo=   6.444 Ohms C=  544.3 pF/m L=   22.6 nH/m v= 2.851e+08 m/s v_f= 0.951 VERSION= 4.6.0
diff --git a/examples/not-aliased.bmp b/examples/not-aliased.bmp
new file mode 100644 (file)
index 0000000..e71f733
Binary files /dev/null and b/examples/not-aliased.bmp differ
diff --git a/examples/not-aliased.bmp.txt b/examples/not-aliased.bmp.txt
new file mode 100644 (file)
index 0000000..e71a929
--- /dev/null
@@ -0,0 +1 @@
+not-aliased.bmp 2 Er=  1.00 Zo=  45.555 Ohms C=   73.2 pF/m L=  152.0 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/not_in_centre.bmp b/examples/not_in_centre.bmp
new file mode 100644 (file)
index 0000000..f8fba78
Binary files /dev/null and b/examples/not_in_centre.bmp differ
diff --git a/examples/not_in_centre.bmp.txt b/examples/not_in_centre.bmp.txt
new file mode 100644 (file)
index 0000000..8a71671
--- /dev/null
@@ -0,0 +1 @@
+not_in_centre.bmp 2 Er=  2.10 Zo=  24.261 Ohms C=  199.2 pF/m L=  117.3 nH/m v= 2.069e+08 m/s v_f= 0.690 VERSION= 4.6.0
diff --git a/examples/odd-coupler.bmp b/examples/odd-coupler.bmp
new file mode 100644 (file)
index 0000000..9c7a588
--- /dev/null
@@ -0,0 +1,4 @@
+% atlc -v -d 9ed89e=4.3 odd-coupler.bmp
+
+odd-coupler.bmp 3 Er_odd=   2.159 Er_even=   2.179 Zodd=  48.371 Zeven= 51.889 Zo=  50.099 Zdiff=  96.741 Zcomm=  25.945 Ohms VERSION=4.6.0
+
diff --git a/examples/off-centre-coax.bmp b/examples/off-centre-coax.bmp
new file mode 100644 (file)
index 0000000..e66c5c5
Binary files /dev/null and b/examples/off-centre-coax.bmp differ
diff --git a/examples/offset.bmp b/examples/offset.bmp
new file mode 100644 (file)
index 0000000..0a9a73d
Binary files /dev/null and b/examples/offset.bmp differ
diff --git a/examples/offset.bmp.txt b/examples/offset.bmp.txt
new file mode 100644 (file)
index 0000000..1e28759
--- /dev/null
@@ -0,0 +1 @@
+offset.bmp 2 Er=  1.00 Zo=  41.555 Ohms C=   80.3 pF/m L=  138.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/pcb-coupler.bmp b/examples/pcb-coupler.bmp
new file mode 100644 (file)
index 0000000..dd0fc95
Binary files /dev/null and b/examples/pcb-coupler.bmp differ
diff --git a/examples/pcb-coupler.bmp.txt b/examples/pcb-coupler.bmp.txt
new file mode 100644 (file)
index 0000000..67f8fb3
--- /dev/null
@@ -0,0 +1 @@
+pcb-coupler.bmp 3 Er_odd=   2.879 Er_even=   3.372 Zodd=  56.214 Zeven=  73.842 Zo=  64.428 Zdiff= 112.428 Zcomm=  36.921 Ohms VERSION=4.6.0
diff --git a/examples/pcb.bmp b/examples/pcb.bmp
new file mode 100644 (file)
index 0000000..41f5457
Binary files /dev/null and b/examples/pcb.bmp differ
diff --git a/examples/pcb.bmp.txt b/examples/pcb.bmp.txt
new file mode 100644 (file)
index 0000000..159d76a
--- /dev/null
@@ -0,0 +1 @@
+pcb.bmp 2 Er=  3.17 Zo=  65.468 Ohms C=   90.7 pF/m L=  388.6 nH/m v= 1.685e+08 m/s v_f= 0.562 VERSION= 4.6.0
diff --git a/examples/positive-ground-short.bmp b/examples/positive-ground-short.bmp
new file mode 100644 (file)
index 0000000..a19bab2
Binary files /dev/null and b/examples/positive-ground-short.bmp differ
diff --git a/examples/positive-negative-short.bmp b/examples/positive-negative-short.bmp
new file mode 100644 (file)
index 0000000..2e922d7
Binary files /dev/null and b/examples/positive-negative-short.bmp differ
diff --git a/examples/test-coupler1.E.even.bmp b/examples/test-coupler1.E.even.bmp
new file mode 100644 (file)
index 0000000..78f6bda
Binary files /dev/null and b/examples/test-coupler1.E.even.bmp differ
diff --git a/examples/test-coupler1.E.odd.bmp b/examples/test-coupler1.E.odd.bmp
new file mode 100644 (file)
index 0000000..a8944a3
Binary files /dev/null and b/examples/test-coupler1.E.odd.bmp differ
diff --git a/examples/test-coupler1.Er.bmp b/examples/test-coupler1.Er.bmp
new file mode 100644 (file)
index 0000000..2634a2d
Binary files /dev/null and b/examples/test-coupler1.Er.bmp differ
diff --git a/examples/test-coupler1.Ex.even.bmp b/examples/test-coupler1.Ex.even.bmp
new file mode 100644 (file)
index 0000000..78c4d63
Binary files /dev/null and b/examples/test-coupler1.Ex.even.bmp differ
diff --git a/examples/test-coupler1.Ex.odd.bmp b/examples/test-coupler1.Ex.odd.bmp
new file mode 100644 (file)
index 0000000..9cb4801
Binary files /dev/null and b/examples/test-coupler1.Ex.odd.bmp differ
diff --git a/examples/test-coupler1.Ey.even.bmp b/examples/test-coupler1.Ey.even.bmp
new file mode 100644 (file)
index 0000000..1f75c7f
Binary files /dev/null and b/examples/test-coupler1.Ey.even.bmp differ
diff --git a/examples/test-coupler1.Ey.odd.bmp b/examples/test-coupler1.Ey.odd.bmp
new file mode 100644 (file)
index 0000000..2889bff
Binary files /dev/null and b/examples/test-coupler1.Ey.odd.bmp differ
diff --git a/examples/test-coupler1.U.even.bmp b/examples/test-coupler1.U.even.bmp
new file mode 100644 (file)
index 0000000..85dfca3
Binary files /dev/null and b/examples/test-coupler1.U.even.bmp differ
diff --git a/examples/test-coupler1.U.odd.bmp b/examples/test-coupler1.U.odd.bmp
new file mode 100644 (file)
index 0000000..90525af
Binary files /dev/null and b/examples/test-coupler1.U.odd.bmp differ
diff --git a/examples/test-coupler1.V.even.bmp b/examples/test-coupler1.V.even.bmp
new file mode 100644 (file)
index 0000000..4301276
Binary files /dev/null and b/examples/test-coupler1.V.even.bmp differ
diff --git a/examples/test-coupler1.V.odd.bmp b/examples/test-coupler1.V.odd.bmp
new file mode 100644 (file)
index 0000000..8506792
Binary files /dev/null and b/examples/test-coupler1.V.odd.bmp differ
diff --git a/examples/test-coupler1.bmp b/examples/test-coupler1.bmp
new file mode 100644 (file)
index 0000000..84fdab2
Binary files /dev/null and b/examples/test-coupler1.bmp differ
diff --git a/examples/test-coupler1.bmp.txt b/examples/test-coupler1.bmp.txt
new file mode 100644 (file)
index 0000000..80bf751
--- /dev/null
@@ -0,0 +1 @@
+test-coupler1.bmp 3 Er_odd=   1.000 Er_even=   1.000 Zodd=  31.777 Zeven= 139.081 Zo=  66.480 Zdiff=  63.553 Zcomm=  69.540 Ohms VERSION=4.6.0
diff --git a/examples/test-coupler2.E.even.bmp b/examples/test-coupler2.E.even.bmp
new file mode 100644 (file)
index 0000000..08bcddb
Binary files /dev/null and b/examples/test-coupler2.E.even.bmp differ
diff --git a/examples/test-coupler2.E.odd.bmp b/examples/test-coupler2.E.odd.bmp
new file mode 100644 (file)
index 0000000..24746f9
Binary files /dev/null and b/examples/test-coupler2.E.odd.bmp differ
diff --git a/examples/test-coupler2.Er.bmp b/examples/test-coupler2.Er.bmp
new file mode 100644 (file)
index 0000000..2ae38cc
Binary files /dev/null and b/examples/test-coupler2.Er.bmp differ
diff --git a/examples/test-coupler2.Ex.even.bmp b/examples/test-coupler2.Ex.even.bmp
new file mode 100644 (file)
index 0000000..d95334d
Binary files /dev/null and b/examples/test-coupler2.Ex.even.bmp differ
diff --git a/examples/test-coupler2.Ex.odd.bmp b/examples/test-coupler2.Ex.odd.bmp
new file mode 100644 (file)
index 0000000..606161d
Binary files /dev/null and b/examples/test-coupler2.Ex.odd.bmp differ
diff --git a/examples/test-coupler2.Ey.even.bmp b/examples/test-coupler2.Ey.even.bmp
new file mode 100644 (file)
index 0000000..303831d
Binary files /dev/null and b/examples/test-coupler2.Ey.even.bmp differ
diff --git a/examples/test-coupler2.Ey.odd.bmp b/examples/test-coupler2.Ey.odd.bmp
new file mode 100644 (file)
index 0000000..4050b4f
Binary files /dev/null and b/examples/test-coupler2.Ey.odd.bmp differ
diff --git a/examples/test-coupler2.U.even.bmp b/examples/test-coupler2.U.even.bmp
new file mode 100644 (file)
index 0000000..e3fddc4
Binary files /dev/null and b/examples/test-coupler2.U.even.bmp differ
diff --git a/examples/test-coupler2.U.odd.bmp b/examples/test-coupler2.U.odd.bmp
new file mode 100644 (file)
index 0000000..1a3d763
Binary files /dev/null and b/examples/test-coupler2.U.odd.bmp differ
diff --git a/examples/test-coupler2.V.even.bmp b/examples/test-coupler2.V.even.bmp
new file mode 100644 (file)
index 0000000..f9d25e2
Binary files /dev/null and b/examples/test-coupler2.V.even.bmp differ
diff --git a/examples/test-coupler2.V.odd.bmp b/examples/test-coupler2.V.odd.bmp
new file mode 100644 (file)
index 0000000..38e1d5d
Binary files /dev/null and b/examples/test-coupler2.V.odd.bmp differ
diff --git a/examples/test-coupler2.bmp b/examples/test-coupler2.bmp
new file mode 100644 (file)
index 0000000..0c8148e
Binary files /dev/null and b/examples/test-coupler2.bmp differ
diff --git a/examples/test-coupler2.bmp.txt b/examples/test-coupler2.bmp.txt
new file mode 100644 (file)
index 0000000..519b1e6
--- /dev/null
@@ -0,0 +1 @@
+test-coupler2.bmp 3 Er_odd=   1.000 Er_even=   1.000 Zodd=  39.809 Zeven= 120.801 Zo=  69.347 Zdiff=  79.617 Zcomm=  60.401 Ohms VERSION=4.6.0
diff --git a/examples/test.E.bmp b/examples/test.E.bmp
new file mode 100644 (file)
index 0000000..eff99b3
Binary files /dev/null and b/examples/test.E.bmp differ
diff --git a/examples/test.Er.bmp b/examples/test.Er.bmp
new file mode 100644 (file)
index 0000000..b38adbd
Binary files /dev/null and b/examples/test.Er.bmp differ
diff --git a/examples/test.Ex.bmp b/examples/test.Ex.bmp
new file mode 100644 (file)
index 0000000..768491c
Binary files /dev/null and b/examples/test.Ex.bmp differ
diff --git a/examples/test.Ey.bmp b/examples/test.Ey.bmp
new file mode 100644 (file)
index 0000000..67f3776
Binary files /dev/null and b/examples/test.Ey.bmp differ
diff --git a/examples/test.U.bmp b/examples/test.U.bmp
new file mode 100644 (file)
index 0000000..327fb47
Binary files /dev/null and b/examples/test.U.bmp differ
diff --git a/examples/test.V.bmp b/examples/test.V.bmp
new file mode 100644 (file)
index 0000000..f2af89b
Binary files /dev/null and b/examples/test.V.bmp differ
diff --git a/examples/test.bmp b/examples/test.bmp
new file mode 100644 (file)
index 0000000..1cfe42f
Binary files /dev/null and b/examples/test.bmp differ
diff --git a/examples/test.bmp.txt b/examples/test.bmp.txt
new file mode 100644 (file)
index 0000000..a0d2889
--- /dev/null
@@ -0,0 +1 @@
+test.bmp 2 Er=  1.00 Zo= 102.506 Ohms C=   32.5 pF/m L=  341.9 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/test3.bmp b/examples/test3.bmp
new file mode 100644 (file)
index 0000000..d98079c
Binary files /dev/null and b/examples/test3.bmp differ
diff --git a/examples/test3.bmp.txt b/examples/test3.bmp.txt
new file mode 100644 (file)
index 0000000..fc79c38
--- /dev/null
@@ -0,0 +1 @@
+test3.bmp 2 Er=  0.75 Zo=  15.183 Ohms C=  190.1 pF/m L=   43.8 nH/m v= 3.465e+08 m/s v_f= 1.156 VERSION= 4.6.0
diff --git a/examples/test4.bmp b/examples/test4.bmp
new file mode 100644 (file)
index 0000000..79dd3b7
Binary files /dev/null and b/examples/test4.bmp differ
diff --git a/examples/test4.bmp.txt b/examples/test4.bmp.txt
new file mode 100644 (file)
index 0000000..a371409
--- /dev/null
@@ -0,0 +1 @@
+test4.bmp 2 Er=  1.00 Zo= 122.614 Ohms C=   27.2 pF/m L=  409.1 nH/m v= 2.997e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/test5.bmp b/examples/test5.bmp
new file mode 100644 (file)
index 0000000..e285340
Binary files /dev/null and b/examples/test5.bmp differ
diff --git a/examples/test6.bmp b/examples/test6.bmp
new file mode 100644 (file)
index 0000000..77cb288
Binary files /dev/null and b/examples/test6.bmp differ
diff --git a/examples/test6.bmp.txt b/examples/test6.bmp.txt
new file mode 100644 (file)
index 0000000..bdb5375
--- /dev/null
@@ -0,0 +1 @@
+test6.bmp 2 Er=  1.13 Zo=  12.353 Ohms C=  287.1 pF/m L=   43.8 nH/m v= 2.819e+08 m/s v_f= 0.940 VERSION= 4.6.0
diff --git a/examples/test7.bmp b/examples/test7.bmp
new file mode 100644 (file)
index 0000000..d7e2502
Binary files /dev/null and b/examples/test7.bmp differ
diff --git a/examples/test7.bmp.txt b/examples/test7.bmp.txt
new file mode 100644 (file)
index 0000000..baac63d
--- /dev/null
@@ -0,0 +1 @@
+test7.bmp 2 Er=  1.21 Zo=  11.935 Ohms C=  307.6 pF/m L=   43.8 nH/m v= 2.724e+08 m/s v_f= 0.909 VERSION= 4.6.0
diff --git a/examples/test_rect_in_rect.E.bmp b/examples/test_rect_in_rect.E.bmp
new file mode 100644 (file)
index 0000000..c624987
Binary files /dev/null and b/examples/test_rect_in_rect.E.bmp differ
diff --git a/examples/test_rect_in_rect.Er.bmp b/examples/test_rect_in_rect.Er.bmp
new file mode 100644 (file)
index 0000000..7d0a7c4
Binary files /dev/null and b/examples/test_rect_in_rect.Er.bmp differ
diff --git a/examples/test_rect_in_rect.Ex.bmp b/examples/test_rect_in_rect.Ex.bmp
new file mode 100644 (file)
index 0000000..67b76cf
Binary files /dev/null and b/examples/test_rect_in_rect.Ex.bmp differ
diff --git a/examples/test_rect_in_rect.Ey.bmp b/examples/test_rect_in_rect.Ey.bmp
new file mode 100644 (file)
index 0000000..f7be6f2
Binary files /dev/null and b/examples/test_rect_in_rect.Ey.bmp differ
diff --git a/examples/test_rect_in_rect.U.bmp b/examples/test_rect_in_rect.U.bmp
new file mode 100644 (file)
index 0000000..621f970
Binary files /dev/null and b/examples/test_rect_in_rect.U.bmp differ
diff --git a/examples/test_rect_in_rect.V.bmp b/examples/test_rect_in_rect.V.bmp
new file mode 100644 (file)
index 0000000..2f6e12d
Binary files /dev/null and b/examples/test_rect_in_rect.V.bmp differ
diff --git a/examples/test_rect_in_rect.bmp b/examples/test_rect_in_rect.bmp
new file mode 100644 (file)
index 0000000..cd9ed7a
Binary files /dev/null and b/examples/test_rect_in_rect.bmp differ
diff --git a/examples/test_rect_in_rect.bmp.txt b/examples/test_rect_in_rect.bmp.txt
new file mode 100644 (file)
index 0000000..790832d
--- /dev/null
@@ -0,0 +1 @@
+test_rect_in_rect.bmp 2 Er=  2.55 Zo=  45.245 Ohms C=  117.8 pF/m L=  241.1 nH/m v= 1.877e+08 m/s v_f= 0.626 VERSION= 4.6.0
diff --git a/examples/test_stripline_coupler.E.even.bmp b/examples/test_stripline_coupler.E.even.bmp
new file mode 100644 (file)
index 0000000..85a40c7
Binary files /dev/null and b/examples/test_stripline_coupler.E.even.bmp differ
diff --git a/examples/test_stripline_coupler.E.odd.bmp b/examples/test_stripline_coupler.E.odd.bmp
new file mode 100644 (file)
index 0000000..c285fa1
Binary files /dev/null and b/examples/test_stripline_coupler.E.odd.bmp differ
diff --git a/examples/test_stripline_coupler.Er.bmp b/examples/test_stripline_coupler.Er.bmp
new file mode 100644 (file)
index 0000000..7b31132
Binary files /dev/null and b/examples/test_stripline_coupler.Er.bmp differ
diff --git a/examples/test_stripline_coupler.Ex.even.bmp b/examples/test_stripline_coupler.Ex.even.bmp
new file mode 100644 (file)
index 0000000..5f541e5
Binary files /dev/null and b/examples/test_stripline_coupler.Ex.even.bmp differ
diff --git a/examples/test_stripline_coupler.Ex.odd.bmp b/examples/test_stripline_coupler.Ex.odd.bmp
new file mode 100644 (file)
index 0000000..c1cfe02
Binary files /dev/null and b/examples/test_stripline_coupler.Ex.odd.bmp differ
diff --git a/examples/test_stripline_coupler.Ey.even.bmp b/examples/test_stripline_coupler.Ey.even.bmp
new file mode 100644 (file)
index 0000000..69618c6
Binary files /dev/null and b/examples/test_stripline_coupler.Ey.even.bmp differ
diff --git a/examples/test_stripline_coupler.Ey.odd.bmp b/examples/test_stripline_coupler.Ey.odd.bmp
new file mode 100644 (file)
index 0000000..0d10f43
Binary files /dev/null and b/examples/test_stripline_coupler.Ey.odd.bmp differ
diff --git a/examples/test_stripline_coupler.U.even.bmp b/examples/test_stripline_coupler.U.even.bmp
new file mode 100644 (file)
index 0000000..76f914f
Binary files /dev/null and b/examples/test_stripline_coupler.U.even.bmp differ
diff --git a/examples/test_stripline_coupler.U.odd.bmp b/examples/test_stripline_coupler.U.odd.bmp
new file mode 100644 (file)
index 0000000..b576893
Binary files /dev/null and b/examples/test_stripline_coupler.U.odd.bmp differ
diff --git a/examples/test_stripline_coupler.V.even.bmp b/examples/test_stripline_coupler.V.even.bmp
new file mode 100644 (file)
index 0000000..1337b8f
Binary files /dev/null and b/examples/test_stripline_coupler.V.even.bmp differ
diff --git a/examples/test_stripline_coupler.V.odd.bmp b/examples/test_stripline_coupler.V.odd.bmp
new file mode 100644 (file)
index 0000000..080b7ec
Binary files /dev/null and b/examples/test_stripline_coupler.V.odd.bmp differ
diff --git a/examples/test_stripline_coupler.bmp b/examples/test_stripline_coupler.bmp
new file mode 100644 (file)
index 0000000..248eccc
Binary files /dev/null and b/examples/test_stripline_coupler.bmp differ
diff --git a/examples/test_stripline_coupler.bmp.txt b/examples/test_stripline_coupler.bmp.txt
new file mode 100644 (file)
index 0000000..d9a778d
--- /dev/null
@@ -0,0 +1 @@
+test_stripline_coupler.bmp 3 Er_odd=   1.000 Er_even=   1.000 Zodd=  64.074 Zeven=  65.283 Zo=  64.676 Zdiff= 128.148 Zcomm=  32.642 Ohms VERSION=4.6.0
diff --git a/examples/test_stripline_coupler2.bmp b/examples/test_stripline_coupler2.bmp
new file mode 100644 (file)
index 0000000..6aa9c83
Binary files /dev/null and b/examples/test_stripline_coupler2.bmp differ
diff --git a/examples/test_sym_strip.Ex.bmp b/examples/test_sym_strip.Ex.bmp
new file mode 100644 (file)
index 0000000..ee3de58
Binary files /dev/null and b/examples/test_sym_strip.Ex.bmp differ
diff --git a/examples/test_sym_strip.U.bmp b/examples/test_sym_strip.U.bmp
new file mode 100644 (file)
index 0000000..c6b91bd
Binary files /dev/null and b/examples/test_sym_strip.U.bmp differ
diff --git a/examples/test_sym_strip.V.bmp b/examples/test_sym_strip.V.bmp
new file mode 100644 (file)
index 0000000..ceabfbf
Binary files /dev/null and b/examples/test_sym_strip.V.bmp differ
diff --git a/examples/test_sym_strip.bmp b/examples/test_sym_strip.bmp
new file mode 100644 (file)
index 0000000..3520147
Binary files /dev/null and b/examples/test_sym_strip.bmp differ
diff --git a/examples/test_sym_strip.bmp.txt b/examples/test_sym_strip.bmp.txt
new file mode 100644 (file)
index 0000000..0043861
--- /dev/null
@@ -0,0 +1 @@
+test_sym_strip.bmp 2 Er=  1.00 Zo= 122.792 Ohms C=   27.2 pF/m L=  409.6 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/twin-wire.bmp b/examples/twin-wire.bmp
new file mode 100644 (file)
index 0000000..f848b02
Binary files /dev/null and b/examples/twin-wire.bmp differ
diff --git a/examples/twin-wire.bmp.txt b/examples/twin-wire.bmp.txt
new file mode 100644 (file)
index 0000000..4ac32e3
--- /dev/null
@@ -0,0 +1 @@
+twin-wire.bmp 2 Er=  1.00 Zo=  52.090 Ohms C=   64.0 pF/m L=  173.8 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/twin-wire2.bmp b/examples/twin-wire2.bmp
new file mode 100644 (file)
index 0000000..201e37e
Binary files /dev/null and b/examples/twin-wire2.bmp differ
diff --git a/examples/twin-wire2.bmp.txt b/examples/twin-wire2.bmp.txt
new file mode 100644 (file)
index 0000000..edba547
--- /dev/null
@@ -0,0 +1 @@
+twin-wire2.bmp 2 Er=  1.00 Zo=  64.159 Ohms C=   52.0 pF/m L=  214.0 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/twin-wire3.bmp b/examples/twin-wire3.bmp
new file mode 100644 (file)
index 0000000..9e95605
Binary files /dev/null and b/examples/twin-wire3.bmp differ
diff --git a/examples/twin-wire3.bmp.txt b/examples/twin-wire3.bmp.txt
new file mode 100644 (file)
index 0000000..8eb8645
--- /dev/null
@@ -0,0 +1 @@
+twin-wire3.bmp 2 Er=  1.00 Zo=  59.859 Ohms C=   55.7 pF/m L=  199.7 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/twin-wire4.bmp b/examples/twin-wire4.bmp
new file mode 100644 (file)
index 0000000..570b1c4
Binary files /dev/null and b/examples/twin-wire4.bmp differ
diff --git a/examples/twin-wire4.bmp.txt b/examples/twin-wire4.bmp.txt
new file mode 100644 (file)
index 0000000..5af4b80
--- /dev/null
@@ -0,0 +1 @@
+twin-wire4.bmp 2 Er=  1.00 Zo=  61.873 Ohms C=   53.9 pF/m L=  206.4 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/ushape.bmp b/examples/ushape.bmp
new file mode 100644 (file)
index 0000000..3e10d53
Binary files /dev/null and b/examples/ushape.bmp differ
diff --git a/examples/ushape.bmp.txt b/examples/ushape.bmp.txt
new file mode 100644 (file)
index 0000000..351349d
--- /dev/null
@@ -0,0 +1 @@
+ushape.bmp 2 Er=  1.00 Zo=  43.859 Ohms C=   76.1 pF/m L=  146.3 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/very-odd.bmp b/examples/very-odd.bmp
new file mode 100644 (file)
index 0000000..4b4ee5a
Binary files /dev/null and b/examples/very-odd.bmp differ
diff --git a/examples/very-odd.bmp.txt b/examples/very-odd.bmp.txt
new file mode 100644 (file)
index 0000000..7f5400e
--- /dev/null
@@ -0,0 +1 @@
+very-odd.bmp 2 Er=  1.00 Zo=  56.557 Ohms C=   59.0 pF/m L=  188.7 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/examples/wide-9pixel.bmp b/examples/wide-9pixel.bmp
new file mode 100644 (file)
index 0000000..e71986a
Binary files /dev/null and b/examples/wide-9pixel.bmp differ
diff --git a/examples/wide-9pixel.bmp.txt b/examples/wide-9pixel.bmp.txt
new file mode 100644 (file)
index 0000000..23214a4
--- /dev/null
@@ -0,0 +1 @@
+wide-9pixel.bmp 2 Er=  1.00 Zo=  34.022 Ohms C=   98.0 pF/m L=  113.5 nH/m v= 2.998e+08 m/s v_f= 1.000 VERSION= 4.6.0
diff --git a/install-sh b/install-sh
new file mode 100644 (file)
index 0000000..e9de238
--- /dev/null
@@ -0,0 +1,251 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.  It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+       -c) instcmd="$cpprog"
+           shift
+           continue;;
+
+       -d) dir_arg=true
+           shift
+           continue;;
+
+       -m) chmodcmd="$chmodprog $2"
+           shift
+           shift
+           continue;;
+
+       -o) chowncmd="$chownprog $2"
+           shift
+           shift
+           continue;;
+
+       -g) chgrpcmd="$chgrpprog $2"
+           shift
+           shift
+           continue;;
+
+       -s) stripcmd="$stripprog"
+           shift
+           continue;;
+
+       -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+           shift
+           continue;;
+
+       -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+           shift
+           continue;;
+
+       *)  if [ x"$src" = x ]
+           then
+               src=$1
+           else
+               # this colon is to work around a 386BSD /bin/sh bug
+               :
+               dst=$1
+           fi
+           shift
+           continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+       echo "install:  no input file specified"
+       exit 1
+else
+       true
+fi
+
+if [ x"$dir_arg" != x ]; then
+       dst=$src
+       src=""
+       
+       if [ -d $dst ]; then
+               instcmd=:
+               chmodcmd=""
+       else
+               instcmd=mkdir
+       fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad 
+# if $src (and thus $dsttmp) contains '*'.
+
+       if [ -f $src -o -d $src ]
+       then
+               true
+       else
+               echo "install:  $src does not exist"
+               exit 1
+       fi
+       
+       if [ x"$dst" = x ]
+       then
+               echo "install:  no destination specified"
+               exit 1
+       else
+               true
+       fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+       if [ -d $dst ]
+       then
+               dst="$dst"/`basename $src`
+       else
+               true
+       fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='   
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+       pathcomp="${pathcomp}${1}"
+       shift
+
+       if [ ! -d "${pathcomp}" ] ;
+        then
+               $mkdirprog "${pathcomp}"
+       else
+               true
+       fi
+
+       pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+       $doit $instcmd $dst &&
+
+       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+       if [ x"$transformarg" = x ] 
+       then
+               dstfile=`basename $dst`
+       else
+               dstfile=`basename $dst $transformbasename | 
+                       sed $transformarg`$transformbasename
+       fi
+
+# don't allow the sed command to completely eliminate the filename
+
+       if [ x"$dstfile" = x ] 
+       then
+               dstfile=`basename $dst`
+       else
+               true
+       fi
+
+# Make a temp file name in the proper directory.
+
+       dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+       $doit $instcmd $src $dsttmp &&
+
+       trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+       $doit $rmcmd -f $dstdir/$dstfile &&
+       $doit $mvcmd $dsttmp $dstdir/$dstfile 
+
+fi &&
+
+
+exit 0
diff --git a/m4/Makefile.am b/m4/Makefile.am
new file mode 100644 (file)
index 0000000..c27528f
--- /dev/null
@@ -0,0 +1,5 @@
+EXTRA_DIST = \
+README \
+acx_pthread.m4 \
+gtk.m4 \
+acx_mpi.m4
diff --git a/m4/Makefile.in b/m4/Makefile.in
new file mode 100644 (file)
index 0000000..09e9718
--- /dev/null
@@ -0,0 +1,263 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+README \
+acx_pthread.m4 \
+gtk.m4 \
+acx_mpi.m4
+
+subdir = m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = README Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  m4/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile
+
+installdirs:
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/m4/README b/m4/README
new file mode 100644 (file)
index 0000000..c546bc0
--- /dev/null
+++ b/m4/README
@@ -0,0 +1,10 @@
+These are m4 macros used by autoconf. Many come from:
+http://www.gnu.org/software/ac-archive/htmldoc/index.html
+
+gsl.m4, which did exist in version of atlc up to 4.4.5
+has been removed, as the gsl library is no logner needed
+as the functionality has been included in the atlc
+source. 
+
+Re: atlc-4.5.0 10th October 2003
+
diff --git a/m4/acx_mpi.m4 b/m4/acx_mpi.m4
new file mode 100644 (file)
index 0000000..e362165
--- /dev/null
@@ -0,0 +1,70 @@
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_mpi.html
+dnl
+AC_DEFUN([ACX_MPI], [
+AC_PREREQ(2.50) dnl for AC_LANG_CASE
+
+AC_LANG_CASE([C], [
+       AC_REQUIRE([AC_PROG_CC])
+       AC_CHECK_PROGS(MPICC, mpicc hcc mpcc mpcc_r mpxlc, $CC)
+       acx_mpi_save_CC="$CC"
+       CC="$MPICC"
+       AC_SUBST(MPICC)
+],
+[C++], [
+       AC_REQUIRE([AC_PROG_CXX])
+       AC_CHECK_PROGS(MPICXX, mpiCC mpCC, $CXX)
+       acx_mpi_save_CXX="$CXX"
+       CXX="$MPICXX"
+       AC_SUBST(MPICXX)
+],
+[Fortran 77], [
+       AC_REQUIRE([AC_PROG_F77])
+       AC_CHECK_PROGS(MPIF77, mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r, $F77)
+       acx_mpi_save_F77="$F77"
+       F77="$MPIF77"
+       AC_SUBST(MPIF77)
+])
+
+if test x = x"$MPILIBS"; then
+       AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
+               [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
+               [Fortran 77], [AC_MSG_CHECKING([for MPI_Init])
+                       AC_TRY_LINK([],[      call MPI_Init], [MPILIBS=" "
+                               AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])])
+fi
+if test x = x"$MPILIBS"; then
+       AC_CHECK_LIB(mpi, MPI_Init, [MPILIBS="-lmpi"])
+fi
+if test x = x"$MPILIBS"; then
+       AC_CHECK_LIB(mpich, MPI_Init, [MPILIBS="-lmpich"])
+fi
+
+dnl We have to use AC_TRY_COMPILE and not AC_CHECK_HEADER because the
+dnl latter uses $CPP, not $CC (which may be mpicc).
+AC_LANG_CASE([C], [if test x != x"$MPILIBS"; then
+       AC_MSG_CHECKING([for mpi.h])
+       AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""
+               AC_MSG_RESULT(no)])
+fi],
+[C++], [if test x != x"$MPILIBS"; then
+       AC_MSG_CHECKING([for mpi.h])
+       AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""
+               AC_MSG_RESULT(no)])
+fi])
+
+AC_LANG_CASE([C], [CC="$acx_mpi_save_CC"],
+       [C++], [CXX="$acx_mpi_save_CXX"],
+       [Fortran 77], [F77="$acx_mpi_save_F77"])
+
+AC_SUBST(MPILIBS)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x = x"$MPILIBS"; then
+        $2
+        :
+else
+        ifelse([$1],,[AC_DEFINE(HAVE_MPI,1,[Define if you have the MPI library.])],[$1])
+        :
+fi
+])dnl ACX_MPI
diff --git a/m4/acx_pthread.m4 b/m4/acx_pthread.m4
new file mode 100644 (file)
index 0000000..d318ab0
--- /dev/null
@@ -0,0 +1,190 @@
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_pthread.html
+dnl
+AC_DEFUN([ACX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_SAVE
+AC_LANG_C
+acx_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+        AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
+        AC_MSG_RESULT($acx_pthread_ok)
+        if test x"$acx_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all.
+
+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+
+case "${host_cpu}-${host_os}" in
+        *solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthread or
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
+        ;;
+esac
+
+if test x"$acx_pthread_ok" = xno; then
+for flag in $acx_pthread_flags; do
+
+        case $flag in
+                none)
+                AC_MSG_CHECKING([whether pthreads work without any flags])
+                ;;
+
+                -*)
+                AC_MSG_CHECKING([whether pthreads work with $flag])
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+                *)
+                AC_MSG_CHECKING([for the pthreads library -l$flag])
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        AC_TRY_LINK([#include <pthread.h>],
+                    [pthread_t th; pthread_join(th, 0);
+                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
+                     pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+                    [acx_pthread_ok=yes])
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        AC_MSG_RESULT($acx_pthread_ok)
+        if test "x$acx_pthread_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$acx_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: threads are created detached by default
+        # and the JOINABLE attribute has a nonstandard name (UNDETACHED).
+        AC_MSG_CHECKING([for joinable pthread attribute])
+        AC_TRY_LINK([#include <pthread.h>],
+                    [int attr=PTHREAD_CREATE_JOINABLE;],
+                    ok=PTHREAD_CREATE_JOINABLE, ok=unknown)
+        if test x"$ok" = xunknown; then
+                AC_TRY_LINK([#include <pthread.h>],
+                            [int attr=PTHREAD_CREATE_UNDETACHED;],
+                            ok=PTHREAD_CREATE_UNDETACHED, ok=unknown)
+        fi
+        if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then
+                AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok,
+                          [Define to the necessary symbol if this constant
+                           uses a non-standard name on your system.])
+        fi
+        AC_MSG_RESULT(${ok})
+        if test x"$ok" = xunknown; then
+                AC_MSG_WARN([we do not know how to create joinable pthreads])
+        fi
+
+        AC_MSG_CHECKING([if more special flags are required for pthreads])
+        flag=no
+        case "${host_cpu}-${host_os}" in
+                *-aix* | *-freebsd*)     flag="-D_THREAD_SAFE";;
+                *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+        esac
+        AC_MSG_RESULT(${flag})
+        if test "x$flag" != xno; then
+                PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: must compile with cc_r
+        AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
+else
+        PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$acx_pthread_ok" = xyes; then
+        ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+        :
+else
+        acx_pthread_ok=no
+        $2
+fi
+AC_LANG_RESTORE
+])dnl ACX_PTHREAD
diff --git a/m4/gtk.m4 b/m4/gtk.m4
new file mode 100644 (file)
index 0000000..9e30b78
--- /dev/null
+++ b/m4/gtk.m4
@@ -0,0 +1,95 @@
+# AC_MSG_ERROR(ERROR, [EXIT-STATUS = 1])
+# --------------------------------------
+AC_DEFUN([AC_MSG_ERROR2],
+[{ AC_MSG_WARN([configure: error: $1], 2); exit m4_default([$2], 1); }])
+
+
+# This macro is copied from the wxWindows distribution. 
+
+# ---------------------------------------------------------------------------
+# AC_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+# Test for GTK, and define GTK_CFLAGS and GTK_LIBS. Uses variables
+# gtk_config_prefix and/or gtk_config_exec_prefix if defined.
+# ---------------------------------------------------------------------------
+#
+AC_DEFUN([AC_PATH_GTK],
+[
+  if test x$gtk_config_exec_prefix != x ; then
+     gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
+     if test x${GTK_CONFIG+set} != xset ; then
+        GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
+     fi
+  fi
+  if test x$gtk_config_prefix != x ; then
+     gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
+     if test x${GTK_CONFIG+set} != xset ; then
+        GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
+     fi
+  fi
+
+  AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
+  min_gtk_version=ifelse([$1], ,0.99.7,$1)
+  AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
+  no_gtk=""
+  if test "$GTK_CONFIG" != "no" ; then
+    GTK_CFLAGS=`$GTK_CONFIG --cflags`
+    GTK_LIBS=`$GTK_CONFIG --libs gthread`
+    ac_save_CFLAGS="$CFLAGS"
+    ac_save_LIBS="$LIBS"
+    CFLAGS="$CFLAGS $GTK_CFLAGS"
+    LIBS="$LIBS $GTK_LIBS"
+#
+# Now check if the installed GTK is sufficiently new. (Also sanity
+# checks the results of gtk-config to some extent)
+#
+    AC_TRY_RUN([
+#include <gtk/gtk.h>
+#include <gtk/gtkfeatures.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+  int major, minor, micro;
+
+  if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_gtk_version");
+     exit(1);
+   }
+
+   if ((GTK_MAJOR_VERSION != gtk_major_version) ||
+       (GTK_MINOR_VERSION != gtk_minor_version) ||
+       (GTK_MICRO_VERSION != gtk_micro_version)) {
+     printf("Headers vs. library version mismatch!\n");
+     exit(1);
+   }
+
+   if (gtk_minor_version == 1) return FALSE;
+
+   return !((gtk_major_version > major) ||
+    ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+    ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
+}
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+     CFLAGS="$ac_save_CFLAGS"
+     LIBS="$ac_save_LIBS"
+  else
+     no_gtk=yes
+  fi
+  if test "x$no_gtk" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])
+  else
+     AC_MSG_RESULT(no)
+     GTK_CFLAGS=""
+     GTK_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GTK_CFLAGS)
+  AC_SUBST(GTK_LIBS)
+])
+
+
+
+
diff --git a/man/Makefile.am b/man/Makefile.am
new file mode 100644 (file)
index 0000000..b82305e
--- /dev/null
@@ -0,0 +1,3 @@
+SUBDIRS = man1 
+#EXTRA_DIST = $(man_MANS) makehtml
+
diff --git a/man/Makefile.in b/man/Makefile.in
new file mode 100644 (file)
index 0000000..ad14123
--- /dev/null
@@ -0,0 +1,399 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+SUBDIRS = man1 
+subdir = man
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+       ps-recursive install-info-recursive uninstall-info-recursive \
+       all-recursive install-data-recursive install-exec-recursive \
+       installdirs-recursive install-recursive uninstall-recursive \
+       check-recursive installcheck-recursive
+DIST_COMMON = Makefile.am Makefile.in
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  man/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
+
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$(top_distdir)" \
+               distdir=../$(distdir)/$$subdir \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+       clean-generic clean-recursive ctags ctags-recursive distclean \
+       distclean-generic distclean-recursive distclean-tags distdir \
+       dvi dvi-am dvi-recursive info info-am info-recursive install \
+       install-am install-data install-data-am install-data-recursive \
+       install-exec install-exec-am install-exec-recursive \
+       install-info install-info-am install-info-recursive install-man \
+       install-recursive install-strip installcheck installcheck-am \
+       installdirs installdirs-am installdirs-recursive \
+       maintainer-clean maintainer-clean-generic \
+       maintainer-clean-recursive mostlyclean mostlyclean-generic \
+       mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
+       ps-recursive tags tags-recursive uninstall uninstall-am \
+       uninstall-info-am uninstall-info-recursive uninstall-recursive
+
+#EXTRA_DIST = $(man_MANS) makehtml
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/man/man1/Makefile.am b/man/man1/Makefile.am
new file mode 100644 (file)
index 0000000..22d5458
--- /dev/null
@@ -0,0 +1,18 @@
+man_MANS =  \
+atlc.1 \
+coax.1 \
+create_bmp_for_circ_in_circ.1 \
+create_bmp_for_circ_in_rect.1 \
+create_bmp_for_microstrip_coupler.1 \
+create_bmp_for_rect_cen_in_rect.1 \
+create_bmp_for_rect_cen_in_rect_coupler.1 \
+create_bmp_for_rect_in_circ.1 \
+create_bmp_for_rect_in_rect.1 \
+create_bmp_for_stripline_coupler.1 \
+create_bmp_for_symmetrical_stripline.1 \
+design_coupler.1 \
+dualcoax.1 \
+find_optimal_dimensions_for_microstrip_coupler.1 \
+readbin.1 \
+sysdata.1
+EXTRA_DIST = $(man_MANS)
diff --git a/man/man1/Makefile.in b/man/man1/Makefile.in
new file mode 100644 (file)
index 0000000..4c6d24a
--- /dev/null
@@ -0,0 +1,325 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+man_MANS = \
+atlc.1 \
+coax.1 \
+create_bmp_for_circ_in_circ.1 \
+create_bmp_for_circ_in_rect.1 \
+create_bmp_for_microstrip_coupler.1 \
+create_bmp_for_rect_cen_in_rect.1 \
+create_bmp_for_rect_cen_in_rect_coupler.1 \
+create_bmp_for_rect_in_circ.1 \
+create_bmp_for_rect_in_rect.1 \
+create_bmp_for_stripline_coupler.1 \
+create_bmp_for_symmetrical_stripline.1 \
+design_coupler.1 \
+dualcoax.1 \
+find_optimal_dimensions_for_microstrip_coupler.1 \
+readbin.1 \
+sysdata.1
+
+EXTRA_DIST = $(man_MANS)
+subdir = man/man1
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+NROFF = nroff
+MANS = $(man_MANS)
+DIST_COMMON = Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  man/man1/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+
+man1dir = $(mandir)/man1
+install-man1: $(man1_MANS) $(man_MANS)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(man1dir)
+       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+       for i in $$l2; do \
+         case "$$i" in \
+           *.1*) list="$$list $$i" ;; \
+         esac; \
+       done; \
+       for i in $$list; do \
+         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+         else file=$$i; fi; \
+         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+         case "$$ext" in \
+           1*) ;; \
+           *) ext='1' ;; \
+         esac; \
+         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed -e 's/^.*\///'`; \
+         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+         echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
+         $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
+       done
+uninstall-man1:
+       @$(NORMAL_UNINSTALL)
+       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+       for i in $$l2; do \
+         case "$$i" in \
+           *.1*) list="$$list $$i" ;; \
+         esac; \
+       done; \
+       for i in $$list; do \
+         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed -e 's/^.*\///'`; \
+         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+         echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
+         rm -f $(DESTDIR)$(man1dir)/$$inst; \
+       done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS)
+
+installdirs:
+       $(mkinstalldirs) $(DESTDIR)$(man1dir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man: install-man1
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-man
+
+uninstall-man: uninstall-man1
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-man1 install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+       uninstall-am uninstall-info-am uninstall-man uninstall-man1
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/man/man1/atlc.1 b/man/man1/atlc.1
new file mode 100644 (file)
index 0000000..8f9e249
--- /dev/null
@@ -0,0 +1,254 @@
+.TH atlc 1 "atlc-4.4.2 10th Sept 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBatlc\fR - an Arbitrary Transmission Line Calculator
+.SH SYNOPSIS
+\fBatlc  [-C] [-s] [-S] [-v] [-c cutoff] [-d rrggbb=Er] [-i factor] [-i prefix] [-t threads] [-r rate_multiplier] bitmapfile\fR
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time the version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBatlc\fR is a finite difference program that is used to calculate the 
+properties of a two-conductor electrical transmission line of arbitrary 
+cross section. It is used whenever there are no analytical formula known, 
+yet you still require an answer. It can calculate:
+.br
+   The impedance Zo  (in Ohms)
+.br
+   The capacitance per unit length (pF/m)
+.br
+   The inductance per unit length (nF/m)
+.br
+   The velocity of propagation v (m/s)
+.br
+   The velocity factor, v/c, which is dimensionless. 
+.PP 
+A bitmap file (usually with the extension .bmp or .BMP) is drawn in a graphics 
+package such as \fBGimp\fR available from http://www.gimp.org. The bitmap 
+file \fBmust\fR be saved as a 24-bit (16,777,216 colour) uncompqessed file. The 
+colours used in the bitmap indicate whether the region is a conductor (pure 
+red, pure green or pure blue) or a dielectric (anything else). Pure white 
+is assumed to be a vacuum dielectric, but other colours have different meanings. 
+See COLOURS below for precise definitions of the colours. 
+.SH OPTIONS
+\fB-C\fR
+.br
+print copyright, licensing and copying information. 
+.br
+\fB-s\fR
+.br
+Skip writing the Ex, Ey, E, V, U and Er bitmap (.bmp) files 
+\fB-S\fR
+.br
+Skip writing the Ex, Ey, E, V, U and Er binary (.bin) files 
+.br
+\fB-v\fR
+.br
+makes the output more verbose/talkative.
+.br
+\fB-c cutoff\fR
+.br
+Sets the convergence criteria of the finite difference program. The
+default is 0.0001, meaning two separate iterations must be within
+01% for the program to stop iterating. Setting to a smaller positive
+number gives more accuracy, but takes longer. 
+.PP
+\fB-d rrggbb=Er\fR
+.br
+is used to indicate the colour 0xrrggbb in the bitmap is used to
+represent a material with permittivity Er. See also COLOURS below
+.PP
+\fB-i factor\fR
+.br
+is used to lighten or darken the .bmp electric field profile images
+produced by atlc. Set factor > 2 to lighten or between 1 and 2 to
+darken.
+.PP
+\fB-r ratemultiplier\fR
+.br
+Sets the parameter 'r' used internally when computing the voltage at a point w,h.
+The default, which is (as of version 3.0.0) 1.95, results in what is believed to be
+optimal results. Setting to 1.0 will avoid the use of the fast convergence method,
+which is generally not a good idea. 
+.PP
+\fB-p prefix\fR
+.br
+Adds 'prefix', which is usually a directory name, in front of the output files.
+.PP
+.br
+.PP
+.br
+.br
+.br
+.SH COLOURS
+The 24-bitmaps that atlc uses have 8 bits assigned 
+to represent the amount of red, 8 for blue and 8 for green. Hence there are 
+256 levels of red, green and blue, making a total of 256*256*256=16777216 colours. 
+Every one of the possible 16777216 colours can be defined precisely by the stating the exact amount 
+of red, green and blue, as in:
+.PP
+.br
+red         = 255,000,000 or 0xff0000
+.br
+green       = 000,255,000 or 0x00ff00
+.br
+blue        = 000,000,255 or 0x0000ff
+.br
+black       = 000,000,000 or 0x000000
+.br
+white       = 255,255,255 or 0xffffff
+.br
+Brown       = 255,000,255 or 0xff00ff 
+.br
+gray        = 142,142,142 or 0x8e8e8e
+.PP
+Some colours, such as pink, turquiose, sandy, brown, gray etc may mean slightly
+different things to different people. This is not so with atlc, as the 
+program expects the colours below to be exactly defined as given. Whether 
+you feel the colour is sandy or yellow is up to you, but if you use it in 
+your bitmap, then it either needs to be a colour reconised by atlc, \fBor\fR 
+you \fBmust\fR define it with a command line option (see OPTIONS).
+.br
+red    = 255,000,000 or 0xFF0000 is the live conductor. 
+.br
+green  = 000,255,000 or 0x00FF00 is the grounded conductor. 
+.br
+blue   = 000,000,255 or 0x0000FF is the negative conductor 
+.PP
+All bitmaps \fBmust\fR have the live (red) and grounded (green) conductor. The blue
+conductor is used to indicate a negative conductor, is needed when the program 
+is used to analyse directional couplers. 
+.PP
+The following dielectrics are reconised by \fRatlc\fB:
+.PP
+.br
+white     255,255,255 or 0xFFFFFF as Er=1.0    (vacuum)
+.br
+pink      255,202,202 or 0xFFCACA as Er=1.0006 (air)
+.br
+L. blue   130,052,255 or 0x8235EF as Er=2.1    (PTFE)
+.br
+Mid gray  142,242,142 or 0x8E8E8E as Er=2.2    (duroid 5880)
+.br
+mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+.br
+yellow    255,255,000 or 0xFFFF00 as Er=2.5    (polystyrene)
+.br
+sandy     239,203,027 or 0xEFCC1A as Er=3.3    (PVC)
+.br
+brown     188,127,096 or 0xBC7F60 as Er=3.335  (epoxy resin)
+.br
+L. yellow 223,247,136 or 0xDFF788 as Er=3.7    (FR4 PCB)
+.br
+Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8    (glass PCB)
+.br
+Dark gray 142,142,142 or 0x696969 as Er=6.15   (duroid 6006)
+.br
+L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+.br
+D. orange 213,160,067 or 0xD5A04D as Er=100.0 (mainly for test purposes)
+.br
+.br
+.SH EXAMPLES
+Here are a few examples of the use of atlc. Again, see the html documentation in atlc-X.Y.Z\docs\html-docs,
+the documentation on your system (normally at /usr/local/share/atlc/docs/html\-docs/index.html ) or online
+at http://atlc.sourceforge.net for examples.     
+.PP
+\fBex_1 % atlc coax2.bmp\fR
+.br
+This is a simple example (ex_1), in which the geometry of a transmission line is defined in coax2.bmp. In
+this example, only the predefined dielectrics (Er =1.0, 1.0006, 2.1, 2.2, 2.33, 2.5, 3.3, 3.335, 3.7,
+4.8, 6.15
+or 10.2) could have been used in the bitmap, which would have been done with one of 13 different colours. white (0xFFFFFF) for Er=1.0, pink (0xFFCACA) for 1.0006 etc.
+No other colour (dielectric) could have been used, since it was not
+specified with the -d option. 
+.br
+.PP
+\fBex_2 % atlc -d f9e77d=2.43 somefile.bmp \fR 
+.br
+In ex_2, a dielectric with Er=2.43 was wanted. A colour with the RGB values of 0xF9E7&d was
+used. The -d option tells atlc what Er this colour refers to.
+.br
+.PP
+\fBex_3 % atlc -v coax2.bmp\fR 
+.br 
+In ex_3, atlc has been instructed to print the results of intermediate calculations to stdout.
+Normally, only the final result is printed. Using -vv even more information may be produced, but this
+is really of only use to the developer of the project. 
+.br
+.SH FILES
+bitmapfile.bmp
+   Original bitmap file. Must be 24-bit colour uncompressed.
+.br
+bitmapfile.Ex.bmp
+.br
+   X-component of E-field as a bitmap. Red=+dV/dx, blue =-dV/dx
+.br 
+bitmapfile.Ey.bmp
+   y-component of E-field as a bitmap. Red=+y, blue =-y
+.br
+bitmapfile.E.bmp
+.br 
+   E-field, as E=sqrt(Ex^2+Ey^2).
+.br
+bitmapfile.V.bin
+.br 
+   Voltage as a bitmap, red= positive, blue =negative.
+.br
+bitmapfile.Er.bin
+.br
+   Bitmap showing the permittivity as a grayscale. Lighter is a higher
+   permittivity. 
+.br 
+bitmapfile.U.bmp
+.br 
+   Energy. 
+.br
+.P
+In addition to the bitmaps, the data is also saved in binary files. 
+.PP
+All the saved binary files (.bin's) are saved as a double precision
+number for each of the pixels. The first double is the top left, the
+last the bottom right. If the original image has width W and height H,
+the saved binary files will be W-1 by H-1. 
+.PP
+All the saved bitmap files are 24-bit uncompressed, just like the input
+files. 
+.
+.SH SEE ALSO
+atlc(1)
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_circ_in_rect(1)
+create_bmp_for_microstrip_coupler(1)
+create_bmp_for_rect_cen_in_rect(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_rect_in_rect(1)
+create_bmp_for_stripline_coupler(1)
+create_bmp_for_symmetrical_stripline(1)
+design_coupler(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
+.br
diff --git a/man/man1/coax.1 b/man/man1/coax.1
new file mode 100644 (file)
index 0000000..426d91a
--- /dev/null
@@ -0,0 +1,65 @@
+.TH coax 1 "atlc-4.6.0 28th Oct 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBcoax\fR - determine impedance of a coaxial structure, where the inner may be offset from the centre if
+necessary.
+.SH SYNOPSIS
+\fBcoax [-O offset] d D Er\fR
+.br
+.SH DESCRIPTION
+coax computes the impedance of a coaxial cable, given the 
+outside diameter of the inner conductor d, the internal diameter of the outer 
+conductor D and the relative permittivity of the dielectric Er. If there is 
+an offset between the inner and outer (i.e. the coax is eccentric), 
+the offset can be given as a option. coax uses the 
+equation 
+.br
+.br
+Zo=59.95849160 ln(x+sqrt(x^2-1)) /sqrt(Er)  Ohms
+.br
+.br
+where x=(d^2+D^2-4 O^2)/(2*D*d) 
+.br
+.br
+.SH FILES 
+coax does not read/write any files. 
+.SH SEE ALSO
+atlc(1)
+.br
+create_bmp_for_circ_in_circ(1)
+.br
+create_bmp_for_circ_in_rect(1)
+.br
+create_bmp_for_microstrip_coupler(1)
+.br
+create_bmp_for_rect_cen_in_rect(1)
+.br
+create_bmp_for_rect_cen_in_rect_coupler(1)
+.br
+create_bmp_for_rect_in_circ(1)
+.br
+create_bmp_for_rect_in_rect(1)
+.br
+create_bmp_for_stripline_coupler(1)
+.br
+create_bmp_for_symmetrical_stripline(1)
+.br
+design_coupler(1)
+.br
+dualcoax(1)
+.br
+find_optimal_dimensions_for_microstrip_coupler(1)
+.br
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net      - Home page 
+.br
+http://sourceforge.net/projects/atlc   - Download area
+.br
+/usr/local/share/atlc/docs/html-docs/index.html  - HTML docs
+.br
+/usr/local/share/atlc/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+/usr/local/share/atlc/examples    - examples
+.br
diff --git a/man/man1/create_bmp_for_circ_in_circ.1 b/man/man1/create_bmp_for_circ_in_circ.1
new file mode 100644 (file)
index 0000000..33d0857
--- /dev/null
@@ -0,0 +1,298 @@
+.TH create_bmp_for_circ_in_circ 1 "atlc-4.4.2 10th Sept 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBcreate_bmp_for_circ_in_circ\fR - bitmap generator for circular conductor inside circular conductor (part of \fBatlc\fR)
+.SH SYNOPSIS
+\fBcreate_bmp_for_circ_in_circ [options... ] D d O Er filename.bmp\fR
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time the version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBcreate_bmp_for_circ_in_circ\fR is a pre-processor for \fBatlc\fR, the finite difference program that is used to calculate the 
+properties of a two and three conductor electrical transmission line of arbitrary 
+cross section. The program \fBcreate_bmp_for_circ_in_circ\fR is used as a fast way of
+generating bitmaps (there is no need to use a graphics program), for a circular conductor inside a circular conductor (coaxial conductors), like this:
+
+.P
+                    *****************
+.br
+                ****                 ****
+.br
+             ****    <-----d------>     ****
+.br
+           ***            *****            ***
+.br
+         ***           ***********           ***
+.br
+       ***            *************            ***
+.br
+      ***            ***************            ***
+.br
+     ***      ^      ***************             ***
+.br
+    ***       |      ***************              ***
+.br
+   ***        |       *************                ***
+.br
+   **         O        ***********                  **
+.br
+  ***         |            ***                      ***
+.br
+  **          |                                      **
+.br
+  *<------------------------D------------------------>*
+.br
+  **                                                 **
+.br
+  **                                                 **
+.br
+  **                                                 **
+.br
+  ***                                               ***
+.br
+   **                                               **
+.br
+   ***                                             ***
+.br
+    **                                             **
+.br
+     **                                           **
+.br
+      **                                         **
+.br
+       ***                                     ***
+.br
+        ****                                 ****
+.br
+          ****                             ****
+.br
+            *****                       *****
+.br
+               ******               ******
+.br
+                   *******************
+.br
+                           ***
+.br
+.P
+The parameter 'D' is the inner dimensions of the outer conductor and 'd'
+is the outer diameter of the inner conductor. 
+The inner conductor is offset 'h' from the centre of the
+outer conductor. The whole region is surrounded by a
+dielectric of relative permittivity 'Er'. 
+.PP 
+.br
+The bitmap is printed to 'outfile.bmp' - the last command line argument.
+.P
+.br
+The bitmaps produced by \fBcreate_bmp_for_circ_in_circ\fR are 24-bit bit colour bitmaps, as are required by \fBatlc\fR. 
+
+The permittivities of the dielectric 'Er' determines the
+colours in the bitmap. If Er is 1.0, 1.006, 2.1, 2.2, 2.33, 2.5, 3.3,
+3.335, 3,7, 4.8, 10.2 or 100, then the colour corresponding to that permittivity
+will be set according to the colours defined in COLOURS below. If Er
+is not one of those permittivities, the region of permittivity Er
+will be set to the colour 0xCAFF00. The
+program \fBatlc\fR does not know what this permittivity is, so 
+\fBatlc\fR, must be told with the command line option -d, as in example 4
+below.
+.P
+.SH OPTIONS
+\fB-b bitmapsize\fR
+.br
+is used to set the size of the bitmap, and so the accuracy to which atlc
+is able to calculate the transmission line's properties. The default
+value for 'bitmapsize' is normally 4, although this is set at compile
+time. The value can be set anywhere from 1 to 15, but more than 8 is
+probably not sensible. 
+.PP
+\fB-f outfile\fR
+.br
+Set the output filename. By default, the bitmap is sent to stdout, but
+it *must* be sent to a file, with this option, or as described above. 
+.P
+\fB-v \fR
+.br
+Causes \fBcreate_bmp_for_circ_in_circ\fR to print some data to stderr. Note, nothing
+extra goes to standard output, as that is expected to be redirected to a
+bitmap file.
+
+.SH COLOURS
+The 24-bit bitmaps that \fBatlc\fR expects, have 8 bits assigned 
+to represent the amount of red, 8 for blue and 8 for green. Hence there are 
+256 levels of red, green and blue, making a total of 256*256*256=16777216 colours. 
+Every one of the possible 16777216 colours can be defined precisely by the stating the exact amount 
+of red, green and blue, as in:
+.PP
+.br
+red         = 255,000,000 or 0xff0000
+.br
+green       = 000,255,000 or 0x00ff00
+.br
+blue        = 000,000,255 or 0x0000ff
+.br
+black       = 000,000,000 or 0x000000
+.br
+white       = 255,255,255 or 0xffffff
+.br
+Brown       = 255,000,255 or 0xff00ff 
+.br
+gray        = 142,142,142 or 0x8e8e8e
+.PP
+Some colours, such as pink, turquoise, sandy, brown, gray etc may mean slightly
+different things to different people. This is not so with \fBatlc\fR, as the 
+program expects the colours below to be EXACTLY defined as given. Whether 
+you feel the colour is sandy or yellow is up to you, but if you use it in 
+your bitmap, then it either needs to be a colour reconised by atlc, \fBor\fR
+you must define it with a command line option (see OPTIONS and example 5
+below).
+.br
+The following conductors are reconised by atlc:
+.br
+red    = 255,000,000 or 0xff0000 is the live conductor. 
+.br
+green  = 000,255,000 or 0x00ff00 is the grounded conductor. 
+.br
+blue   = 000,000,000 or 0x000000 is the negative conductor 
+.PP
+All bitmaps \fBmust\fR have the live (red) and grounded (green) conductor. The blue
+conductor is not currently supported, but it will be used to indicate a 
+negative conductor, which will be needed if/when the program gets extended 
+to analyse directional couplers. 
+.PP
+The following dielectrics are reconised by \fRatlc\fB and so are
+produced by \fRcreate_bmp_for_circ_in_circ\fB. 
+.PP
+.br
+white     255,255,255 or 0xFFFFFF as Er=1.0   (vacuum)
+.br
+pink      255,202,202 or 0xFFCACA as Er=1.0006 (air)
+.br
+blue      000,000,255 or 0x0000FF as Er=2.1   (PTFE)
+.br
+Mid gray  142,242,142 or 0x8E8E8E as Er=2.2   (duroid 5880)
+.br
+mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+.br
+yellow    255,255,000 or 0xFFFF00 as Er=2.5   (polystyrene)
+.br
+sandy     239,203,027 or 0xEFCC1A as Er=3.3   (PVC)
+.br
+brown     188,127,096 or 0xBC7F60 as Er=3.335 (epoxy resin)
+.br
+Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8   (glass PCB)
+.br
+Dark gray 142,142,142 or ox696969 as Er=6.15  (duroid 6006)
+.br
+L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+.br
+.SH NOTE 
+Although \fBcreate_bmp_for_circ_in_circ\fR is used for circular inner and outer
+conductors, the outside of the outer conductor is drawn as a square. This is 
+for convenience and makes no difference to the calculations. The inside
+is of the outer conductor is drawn as a circle. 
+.SH EXAMPLES
+Here are a few examples of the use of \fBcreate_bmp_for_circ_in_circ\fR. Again, see the html documentation in atlc-X.Y.Z/docs/html-docs/index.html for more examples.     
+.P
+1) In the first example, the outer conductor has an inside diameter of 12
+units (inches, mm, feet etc.), the inner has an outside diameter of 3.9 units.
+The inner is placed centrally (h=0) and the dielectric is vacuum (Er=1.0).
+.br
+\fB% create_bmp_for_circ_in_circ 12 3.9 0 1.0 coaxial_1.bmp
+.br
+% atlc coaxial_1.bmp\fR
+.br
+\fBatlc\fR will indicate the correct value of impedance to be 67.3667 Ohms,
+whereas an exact analysis will show the true value to be 67.4358 Ohms,
+so \fBatlc\fR has an error of 0.102%. 
+.P 
+2) In this second example, the conductor sizes are the sames as in example 1, but the inner is located 3.5 units
+off-centre and the dielectric has a relative permittivity of 2.1 
+(Er of PTFE) The output is sent to a file not_in_centre.bmp
+which is then processed by \fBatlc\fR 
+.br
+\fB% create_bmp_for_circ_in_circ 12 3.9 3.5 2.1 not_in_centre.bmp\fR
+.br
+\fB% atlc not_in_centre.bmp\fR
+.br
+The impedance of this is theoretically 24.315342 Ohms, as create_bmp_for_circ_in_circ
+will calculate for you. atlc's estimate is 24.2493 Ohms, an error of
+only -0.271 %. 
+.P
+3) In the third example the bitmap is made larger, to increase accuracy, but
+otherwise this is identical to the previous one. 
+.br
+\fB% create_bmp_for_circ_in_circ -b8 12 3.9 3.5 2.1 bigger_not_in_centre.bmp \fR
+.br
+\fB% atlc bigger_not_in_centre.bmp\fR
+.br
+This time atlc will take much longer to calculate Zo, since the bitmap is larger and so it needs to do more calculations. However,
+the final result should be more accurate. In this case, the result reported is 24.2461 Ohms, an error that's marginally smaller than before at 0.285 %.
+It is possible there may be something to be gained by decreasing the
+cutoff at larger grids, so this is being investigated. However, errors
+almost always below 0.25 %, no matter what is being analysed. 
+.P
+In the fourth example, a material with a relativity permittivity 7.89 of is 
+used. There is no change in how to use \fBcreate_bmp_for_circ_in_circ\fR, but since
+this permittivity is not one of the pre-defined values (see COLOURS), we must tell \fBatlc\fR what it is.
+The colour will be set an olive green one, with a hexacidcal representation of red=0xCA, blue=OxFF and
+green = 0x00. This just happens to be the default colour  used when the permittivity is unknown. So atlc
+must be given this information, like thisL
+.br
+\fB% create_bmp_for_circ_in_circ 23 9 0 7.89 an_odd_er.bmp
+.br
+% atlc -d CAFF00=7.89 an_odd_er.bmp
+\fR
+This has a theoretical impedance of 20.041970 Ohms, but atlc version
+3.0.1 will calculate it to be 20.0300, an error of -0.058 % !!! If you look at the file 
+an_odd_er.bmp with a graphics package, you will see there are 3 colours in it 
+- the red inner conductor, the green outer and an olive-green dielectric. 
+\fR
+.SH SEE ALSO
+
+atlc(1)
+.br
+create_bmp_for_circ_in_rect(1)
+.br
+create_bmp_for_microstrip_coupler(1)
+.br
+create_bmp_for_rect_cen_in_rect(1)
+.br
+create_bmp_for_rect_cen_in_rect_coupler(1)
+.br
+create_bmp_for_rect_in_circ(1)
+.br
+create_bmp_for_rect_in_rect(1)
+.br
+create_bmp_for_stripline_coupler(1)
+.br
+create_bmp_for_symmetrical_stripline(1)
+.br
+design_coupler(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
+.br
+.br
+.br
diff --git a/man/man1/create_bmp_for_circ_in_rect.1 b/man/man1/create_bmp_for_circ_in_rect.1
new file mode 100644 (file)
index 0000000..4fe57c9
--- /dev/null
@@ -0,0 +1,271 @@
+.TH create_bmp_for_circ_in_rect 1 "atlc-4.4.2 10/09/03" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBcreate_bmp_for_circ_in_rect\fR - bitmap generator for a circular conductor inside a rectangular conductor (part of \fBatlc\fR)
+.SH SYNOPSIS
+\fBcreate_bmp_for_circ_in_rect [options... ] d W H x y Er outfile.bmp\fR
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time the version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBcreate_bmp_for_circ_in_rect\fR is a pre-processor for \fBatlc\fR, the finite difference program that is used to calculate the 
+properties of a two-conductor electrical transmission line of arbitrary 
+cross section. The program \fBcreate_bmp_for_circ_in_rect\fR is used as a fast way of
+generating bitmaps (there is no need to use a graphics program), for a circular conductor inside a rectangular conductor, like this:
+.P
+--------------------------------------------------------  ^
+.br
+|                                                      |  |
+.br
+|                                                      |  |
+.br
+|                                                      |  |
+.br
+|                                                      |  |
+.br
+|                                                      |  |
+.br
+|           Dielectric, permittivity=Er                |  |
+.br
+|                                                      |  |
+.br
+|                                                      |  |
+.br
+|                                                      |  |
+.br
+|                                                      |  |
+.br
+|         <------x------> ^                            |  H
+.br
+|       *****             |                            |  |
+.br
+|    ***********          y                            |  | 
+.br
+|   *************         |                            |  |
+.br
+|   **************        |                            |  |   
+.br
+|   <-----d------>        v                            |  |
+.br
+|   **************                                     |  |
+.br
+|   *************                                      |  |
+.br
+|    ***********                                       |  |
+.br
+|        ***                                           |  |
+.br
+|                                                      |  |
+.br
+-------------------------------------------------------   v
+.br
+<---------------------------W-------------------------->
+.br
+
+The parameters 'W' and 'H' and the inner dimensions of the outer conductor.
+The inner conductor has a diameter of 'd' and is offset from the centre
+of the outer conductor by an amount 'x' horizontally and 'y' vertically.
+The space between the inner and outer conductors is a 
+dielectric of relative permittivity 'Er'. If there is just a vacuum dielectric,
+then 'Er' should be set to 1.0 
+.PP 
+.br
+The bitmap is printed to standard output, which \fBMUST\fR be re-directed
+to either a file in one of the following two ways. 
+.P
+\fBcreate_bmp_for_circ_in_rect  d W H x y Er > filename.bmp\fR OR
+.br
+\fBcreate_bmp_for_circ_in_rect -f filename.bmp d W H x y Er\fR
+.P
+.br
+The bitmaps produced by \fBcreate_bmp_for_circ_in_rect\fR are 24-bit bit colour bitmaps, as are required by \fBatlc\fR. 
+
+The permittivities of the bitmap, set by 'Er', determine the
+colours in the bitmap. If Er1 is 1.0, 1.006, 2.1, 2.2, 2.33, 2.5, 3.3,
+3.335, 3.7, 4.8, 10.2 or 100 then the colour corresponding to that permittivity
+will be set according to the colours defined in COLOURS below. If Er
+is not one of those permittivities, the region of permittivity Er
+will be set to the colour 0xCAFF00. The
+program \fBatlc\fR does not know what these permittivites are, so 
+\fBatlc\fR, must be told with the -d command line option, as in example 4
+below.
+.P
+.SH OPTIONS
+\fB-b bitmapsize\fR
+.br
+is used to set the size of the bitmap, and so the accuracy to which atlc
+is able to calculate the transmission line's properties. The default
+value for 'bitmapsize' is normally 4, although this is set at compile
+time. The value can be set anywhere from 1 to 15, but more than 8 is
+probably not sensible. 
+.PP
+\fB-f outfile\fR
+.br
+.P
+\fB-v \fR
+.br
+Causes \fBcreate_bmp_for_circ_in_rect\fR to print some data to stderr. Note, nothing
+extra goes to standard output, as that is expected to be redirected to a
+bitmap file.
+
+.SH COLOURS
+The 24-bit bitmaps that \fBatlc\fR expects, have 8 bits assigned 
+to represent the amount of red, 8 for blue and 8 for green. Hence there are 
+256 levels of red, green and blue, making a total of 256*256*256=16777216 colours. 
+Every one of the possible 16777216 colours can be defined precisely by the stating the exact amount 
+of red, green and blue, as in:
+.PP
+.br
+red         = 255,000,000 or 0xff0000
+.br
+green       = 000,255,000 or 0x00ff00
+.br
+blue        = 000,000,255 or 0x0000ff
+.br
+black       = 000,000,000 or 0x000000
+.br
+white       = 255,255,255 or 0xffffff
+.br
+Brown       = 255,000,255 or 0xff00ff 
+.br
+gray        = 142,142,142 or 0x8e8e8e
+.PP
+Some colours, such as pink, turquoise, sandy, brown, gray etc may mean slightly
+different things to different people. This is not so with \fBatlc\fR, as the 
+program expects the colours below to be EXACTLY defined as given. Whether 
+you feel the colour is sandy or yellow is up to you, but if you use it in 
+your bitmap, then it either needs to be a colour recognised by atlc, \fBor\fR
+you must define it with a command line option (see OPTIONS and example 5
+below).
+.br
+The following conductors are recognised by atlc:
+.br
+red    = 255,000,000 or 0xff0000 is the live conductor. 
+.br
+green  = 000,255,000 or 0x00ff00 is the grounded conductor. 
+.br
+black  = 000,000,000 or 0x000000 is the negative conductor 
+.PP
+All bitmaps \fBmust\fR have the live (red) and grounded (green) conductor. The black 
+conductor is not currently supported, but it will be used to indicate a 
+negative conductor, which will be needed if/when the program gets extended 
+to analyse directional couplers. 
+.PP
+The following dielectrics are recognised by \fRatlc\fB and so are
+produced by \fRcreate_bmp_for_circ_in_rect\fB. 
+.PP
+.br
+white     255,255,255 or 0xFFFFFF as Er=1.0   (vacuum)
+.br
+white     255,202,202 or 0xFFCACA as Er=1.0006 (air)
+.br
+blue      000,000,255 or 0x0000FF as Er=2.1   (PTFE)
+.br
+Mid gray  142,242,142 or 0x8E8E8E as Er=2.2   (duroid 5880)
+.br
+mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+.br
+yellow    255,255,000 or 0xFFFF00 as Er=2.5   (polystyrene)
+.br
+sandy     239,203,027 or 0xEFCC1A as Er=3.3   (PVC)
+.br
+brown     188,127,096 or 0xBC7F60 as Er=3.335 (epoxy resin)
+.br
+Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8   (glass PCB)
+.br
+Dark gray 142,142,142 or ox696969 as Er=6.15  (duroid 6006)
+.br
+L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+.br
+D. Orange 213,160,077 or 0xD5A04D as Er=100   (for testing)
+.br
+If the permittivity is one not in the above list, then those parts of
+the image with Er1 will be set to 0xCAFF00, and those parts with Er2 to
+0xAC82AC.
+.SH EXAMPLES
+Here are a few examples of the use of \fBcreate_bmp_for_circ_in_rect\fR. Again, see the html documentation in atlc-X.Y.Z/docs/html-docs for more examples.     
+.P
+In the first example, there is just an air dielectric, so Er1=Er2=1.0.
+The inner of 1x1 inches (or mm, miles etc) is placed centrally in an
+outer with dimensions 3 x 3 inches. 
+
+The exact place where the dielectric starts (a) and its width (d) are
+unimportant, but they must still be entered. 
+
+\fB% create_bmp_for_circ_in_rect 3 3 1 1 1 1 1 1 > ex1.bmp
+.br
+% atlc ex1.bmp\fR
+
+In this second example, an inner of 15.0 mm x 0.5 mm is surrounded by an
+outer with internal dimensions of 61.5 x 20.1 mm. There is a material
+with permittivity 2.1 (Er of PTFE) below the inner conductor. The output
+from \fBcreate_bmp_for_circ_in_rect\fR is sent to a file ex1.bmp, which is then processed by
+\fBatlc\fR 
+
+\fB% create_bmp_for_circ_in_rect 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1 > ex2.bmp\fR
+.br
+\fB% atlc ex2.bmp\fR
+.br
+
+In example 3, the bitmap is made larger, to increase accuracy, but
+otherwise this is identical to the second example. 
+\fB% create_bmp_for_circ_in_rect -b7 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1 > ex3.bmp\fR
+.br
+\fB% atlc ex3.bmp\fR
+.br
+.P
+In the fourth example, instead of re-directing \fBcreate_bmp_for_circ_in_rect's\fR output
+to a file with the > sign, it is done using the -f option. 
+.br
+\fB% create_bmp_for_circ_in_rect -f ex4.bmp 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1\fR
+.br
+\fB% atlc ex4.bmp\fR
+.P
+In the fifth example, materials with permittivites 2.78 and 7.89 are
+used. While there is no change in how to use \fBcreate_bmp_for_circ_in_rect\fR, since
+these permittivities are not known, we must tell \fBatlc\fR what they
+are.
+\fB
+% create_bmp_for_circ_in_rect 61 20 1 4 22 0.5 50 15 5 2.78 7.89 > ex5.bmp
+% atlc -d CAFF00=2.78 -d AC82AC=7.89 ex5.bmp
+\fR
+In the sixth and final example, the -v option is used to print some
+extra data to stderr from \fBcreate_bmp_for_circ_in_rect\fR. 
+.
+.SH SEE ALSO
+
+atlc(1)
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_microstrip_coupler(1)
+create_bmp_for_rect_cen_in_rect(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_rect_in_rect(1)
+create_bmp_for_stripline_coupler(1)
+create_bmp_for_symmetrical_stripline(1)
+design_coupler(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
+.br
diff --git a/man/man1/create_bmp_for_microstrip_coupler.1 b/man/man1/create_bmp_for_microstrip_coupler.1
new file mode 100644 (file)
index 0000000..827d2ea
--- /dev/null
@@ -0,0 +1,255 @@
+.TH create_bmp_for_microstrip_coupler 1 "atlc-4.4.2 10th Sept 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBcreate_bmp_for_microstrip_coupler\fR - bitmap generator for microstrip coupler (part of \fBatlc\fR)
+.SH SYNOPSIS
+\fBcreate_bmp_for_microstrip_coupler [-b bmp_size] [-v] w s g h t Er1 Er2 filename
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time the version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBcreate_bmp_for_microstrip_coupler\fR is a pre-processor for \fBatlc\fR, part of atlc
+properties of a two and three conductor electrical transmission line of arbitrary 
+cross section. The program \fBcreate_bmp_for_microstrip_coupler\fR is used as a fast way of
+generating bitmaps (there is no need to use a graphics program), for microstrip couplers. Hence if the dimensions of a
+coupler are known the odd mode, even mode, differential mode and common mode impedances can be found. If you know what
+impedances you require and want to find the dimentions, then use \fBfind_optimal_dimensions_for_microstrip_coupler\fR instead. This
+makes repeated calls to  \fBcreate_bmp_for_microstrip_coupler\fR. The structure for which bitmaps are generated by
+\fBcreate_bmp_for_microstrip_coupler\fR is shown below.
+.P
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  ^
+.br
+G                                                     G  |
+.br
+G                                                     G  |
+.br
+G                                                     G  |
+.br
+G                                                     G  |
+.br
+G                                                     G  |
+.br
+G                                                     G  |
+.br
+G |                                                   G  |
+.br
+G |                                                   G  |
+.br
+G |                                                   G  H
+.br
+G v       <--g--><--w--><---s---><--w--><--g-->       G  |
+.br
+GGGGGGGGGG       ccccccc         ccccccc       GGGGGGGG  |
+.br
+GGGGGGGGGG.......ccccccc.........ccccccc.......GGGGGGGG  |
+.br
+G.^.....................................^.............G  |
+.br
+G.|.....................................|.............G  |
+.br
+G.|t.Dielectric, permittivity=Er2.......h.............G  |
+.br
+G.|...(3.7 for FR4 PCB).................|.............G  |
+.br
+G.......................................V.............G  |
+.br
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  |
+.br
+GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG. v
+.br
+<------------------------W---------------------------->
+
+
+The parameters 'W' and 'H' and the inner dimensions of the a metal enclosure. These will generall be quite large compared to
+the dimensions of the the PC - the diagram above is not to scale. 
+The gap between the two coupled lines is s, the width of the coupled lines is w and the spacing between the edges of the
+coupled lines and the groundplane on the top is g. Often, the upper groundplane is not close to the coupled lines, in which
+case g will be quite large. The thickness of the dielectic is h. Note that he is just the dielectric, and does not include the
+thichkness of the copper on the double-sided PCB. The thickness of copper on the top layer is t. It is immaterial what the
+thickkness of the lower layer is. The relative permittivity above the dielectric is normally 1, but the relative permittivity
+of the dielectric material will need to be either pre-defined or defined on the command lines. See the section colours below
+for more information on dielectrics. 
+.PP 
+.br
+The bitmap is printed to the file specified as the last argument
+.P
+.br
+The bitmaps produced by \fBcreate_bmp_for_microstrip_coupler\fR are 24-bit bit colour bitmaps, as are required by \fBatlc\fR. 
+
+The permittivities of the bitmap, set by 'Er1' and 'Er2', determine the
+colours in the bitmap. If Er1 or Er2 is 1.0, 1.0006, 2.1, 2.2, 2.33, 2.5, 3.3,
+3.335, 3.7, 4.8, 10.2 or 100, then the colour corresponding to that permittivity
+will be set according to the colours defined in COLOURS below. If Er1
+is not one of those permittivities, the region of permittivity Er1
+will be set to the colour 0xCAFF00. If Er2 is not one of those values,
+then the region of the image will be set to the colour 0xAC82AC. The
+program \fBatlc\fR does not know what these two permittivites are, so they
+\fBatlc\fR, must be told with the comand line option -d, as in example 4
+below.
+.P
+.SH OPTIONS
+\fb-C\fR
+Causes \fBcreate_bmp_for_microstrip_coupler\fR to print copyright and licensing information.
+\fB-b bitmapsize\fR
+.br
+is used to set the size of the bitmap, and so the accuracy to which atlc
+is able to calculate the transmission line's properties. The default
+value for 'bitmapsize' is normally 4, although this is set at compile
+time. The value can be set anywhere from 1 to 15, but more than 8 is
+probably not sensible. 
+.PP
+.P
+\fB-v \fR
+.br
+Causes \fBcreate_bmp_for_microstrip_coupler\fR to print some data to stderr. Note, nothing
+extra goes to standard output, as that is expected to be redirected to a
+bitmap file.
+
+.SH COLOURS
+The 24-bit bitmaps that \fBatlc\fR expects, have 8 bits assigned 
+to represent the amount of red, 8 for blue and 8 for green. Hence there are 
+256 levels of red, green and blue, making a total of 256*256*256=16777216 colours. 
+Every one of the possible 16777216 colours can be defined precisely by the stating the exact amount 
+of red, green and blue, as in:
+.PP
+.br
+red         = 255,000,000 or 0xff0000
+.br
+green       = 000,255,000 or 0x00ff00
+.br
+blue        = 000,000,255 or 0x0000ff
+.br
+black       = 000,000,000 or 0x000000
+.br
+white       = 255,255,255 or 0xffffff
+.br
+Brown       = 255,000,255 or 0xff00ff 
+.br
+gray        = 142,142,142 or 0x8e8e8e
+.PP
+Some colours, such as pink, turquoise, sandy, brown, gray etc may mean slightly
+different things to different people. This is not so with \fBatlc\fR, as the 
+program expects the colours below to be EXACTLY defined as given. Whether 
+you feel the colour is sandy or yellow is up to you, but if you use it in 
+your bitmap, then it either needs to be a colour recognised by atlc, \fBor\fR
+you must define it with a command line option (see OPTIONS and example 5
+below).
+.br
+red    = 255,000,000 or 0xFF0000 is the live conductor. 
+.br
+green  = 000,255,000 or 0x00FF00 is the grounded conductor. 
+.br
+blue   = 000,000,000 or 0x0000FF is the negative conductor 
+.PP
+All bitmaps \fBmust\fR have the live (red) and grounded (green) conductor. The blue
+conductor is not currently supported, but it will be used to indicate a 
+negative conductor, which will be needed if/when the program gets extended 
+to analyse directional couplers. 
+.PP
+The following dielectrics are recognised by \fRatlc\fB and so are
+produced by \fRcreate_bmp_for_rect_cen_in_rect\fB. 
+.PP
+.br
+white     255,255,255 or 0xFFFFFF as Er=1.0    (vacuum)
+.br
+pink      255,202,202 or 0xFFCACA as Er=1.0006 (air)
+.br
+L. blue   130,052,255 or 0x8235EF as Er=2.1    (PTFE)
+.br
+Mid gray  142,242,142 or 0x8E8E8E as Er=2.2    (duroid 5880)
+.br
+mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+.br
+yellow    255,255,000 or 0xFFFF00 as Er=2.5    (polystyrene)
+.br
+sandy     239,203,027 or 0xEFCC1A as Er=3.3    (PVC)
+.br
+brown     188,127,096 or 0xBC7F60 as Er=3.335  (epoxy resin)
+.br
+Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8    (glass PCB)
+.br
+Dark gray 142,142,142 or 0x696969 as Er=6.15   (duroid 6006)
+.br
+L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+.br
+D. orange 213,160,067 or 0xD5A04D as Er=100.0 (mainly for test purposes)
+.br
+.br
+.SH EXAMPLES
+Here are a few examples of the use of \fBcreate_bmp_for_microstrip_coupler\fR. Again, see the html documentation in atlc-X.Y.Z/docs/html-docs/index.html for more examples.     
+.P
+In the first example, there is just an air dielectric, so Er1=Er2=1.0.
+The inner of 1x1 inches (or mm, miles etc) is placed centrally in an
+outer with dimensions 3 x 3 inches. 
+
+The exact place where the dielectric starts (a) and its width (d) are
+unimportant, but they must still be entered. 
+
+\fB% create_bmp_for_microstrip_coupler 3 3 1 1 1 1 1 1 > ex1.bmp
+.br
+% atlc ex1.bmp\fR
+
+In this second example, an inner of 15.0 mm x 0.5 mm is surrounded by an
+outer with internal dimensions of 61.5 x 20.1 mm. There is a material
+with permittivity 2.1 (Er of PTFE) below the inner conductor. The output
+from \fBcreate_bmp_for_microstrip_coupler\fR is sent to a file ex1.bmp, which is then processed by
+\fBatlc\fR 
+
+\fB% create_bmp_for_microstrip_coupler 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1 > ex2.bmp\fR
+.br
+\fB% atlc ex2.bmp\fR
+.br
+
+In example 3, the bitmap is made larger, to increase accuracy, but
+otherwise this is identical to the second example. 
+\fB% create_bmp_for_microstrip_coupler -b7 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1 > ex3.bmp\fR
+.br
+\fB% atlc ex3.bmp\fR
+.br
+.P
+In the fourth example, materials with permittivites 2.78 and 7.89 are
+used. While there is no change in how to use \fBcreate_bmp_for_microstrip_coupler\fR, since
+these permittivities are not known, we must tell \fBatlc\fR what they
+are.
+\fB
+% create_bmp_for_microstrip_coupler 61 20 1 4 22 0.5 50 15 5 2.78 7.89 > ex5.bmp
+% atlc -d CAFF00=2.78 -d AC82AC=7.89 ex5.bmp
+\fR
+In the sixth and final example, the -v option is used to print some
+extra data to stderr from \fBcreate_bmp_for_microstrip_coupler\fR. 
+.
+.SH SEE ALSO
+atlc(1)
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_circ_in_rect(1)
+create_bmp_for_rect_cen_in_rect(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_stripline_coupler(1)
+create_bmp_for_symmetrical_stripline(1)
+design_coupler(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
+.br
diff --git a/man/man1/create_bmp_for_rect_cen_in_rect.1 b/man/man1/create_bmp_for_rect_cen_in_rect.1
new file mode 100644 (file)
index 0000000..1f19afa
--- /dev/null
@@ -0,0 +1,243 @@
+.TH create_bmp_for_circ_in_circ 1 "atlc-4.4.2" "10th Sept 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBcreate_bmp_for_rect_cen_in_rect\fR - bitmap generator for rectangular conductor inside rectangular conductor (part of \fBatlc\fR)
+.SH SYNOPSIS
+\fBcreate_bmp_for_rect_cen_in_rect [options... ] W H w h Er outfile.bmp\fR
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time the version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBcreate_bmp_for_rect_cen_in_rect\fR is a pre-processor for \fBatlc\fR, the finite difference program that is used to calculate the 
+properties of a two-conductor electrical transmission line of arbitrary 
+cross section. The program \fBcreate_bmp_for_rect_cen_in_rect\fR is used as a fast way of
+generating bitmaps (there is no need to use a graphics program), for a rectangular conductor placed centrally inside another rectangular conductor, like this:
+.P
+-----------------------------------------------------  ^
+.br
+|                                                   |  |
+.br
+|            Dielectric, permittivity=Er            |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+|             <----------w----------->              |  |
+.br
+|             ------------------------   ^          |  |
+.br
+|             |                      |   |          |  |
+.br
+|             |  Metallic conductor  |   |          |  H
+.br
+|             |  conductor (must be  |   h          |  |
+.br
+|             |  in  the centre)     |   |          |  |
+.br
+|             |                      |   |          |  |
+.br
+|             ------------------------   ^          |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+-----------------------------------------------------  |
+.br
+<---------------------------W----------------------->
+.br
+
+The parameters 'W' and 'H' and the inner dimensions of the outer conductor.
+The outer dimensions of the inner conductor are 'w' and 'h'. The inner 
+conductor is assumed be be placed centrally inside the outer conductor. The
+spaced between the two conductors is filled with a dielectric of
+relative permittivity Er
+.PP 
+.br
+.P
+.br
+The bitmaps produced by \fBcreate_bmp_for_rect_cen_in_rect\fR are 24-bit bit colour bitmaps, 
+as required by \fBatlc\fR. 
+
+The permittivity of the bitmap, set by 'Er', determine the
+colours in the bitmap. If Er is 1.0, 2.1, 2.2, 2.33, 2.5, 3.3,
+3.335, 4.8 or 10.2, then the colour corresponding to that permittivity
+will be set according to the colours defined in COLOURS below. If Er
+is not one of those permittivities, the region of permittivity Er
+will be set to the colour 0xCAFF00. 
+The program \fBatlc\fR does not know what these permittivites are, so they
+\fBatlc\fR, must be told with the comand line option -d, as in example 4
+below.
+.P
+.SH OPTIONS
+\fB-b bitmapsize\fR
+.br
+is used to set the size of the bitmap, and so the accuracy to which atlc
+is able to calculate the transmission line's properties. The default
+value for 'bitmapsize' is normally 4, although this is set at compile
+time. The value can be set anywhere from 1 to 15, but more than 8 is
+probably not sensible. 
+.PP
+\fB-f outfile\fR
+.br
+Set the output filename. By default, the bitmap is sent to stdout, but
+it *must* be sent to a file, with this option, or as described above. 
+.P
+\fB-v \fR
+.br
+Causes \fBcreate_bmp_for_rect_cen_in_rect\fR to print some data to stdout.
+
+.SH COLOURS
+The 24-bit bitmaps that \fBatlc\fR expects, have 8 bits assigned 
+to represent the amount of red, 8 for blue and 8 for green. Hence there are 
+256 levels of red, green and blue, making a total of 256*256*256=16777216 colours. 
+Every one of the possible 16777216 colours can be defined precisely by the stating the exact amount 
+of red, green and blue, as in:
+.PP
+.br
+red         = 255,000,000 or 0xff0000
+.br
+green       = 000,255,000 or 0x00ff00
+.br
+blue        = 000,000,255 or 0x0000ff
+.br
+black       = 000,000,000 or 0x000000
+.br
+white       = 255,255,255 or 0xffffff
+.br
+Brown       = 255,000,255 or 0xff00ff 
+.br
+gray        = 142,142,142 or 0x8e8e8e
+.PP
+Some colours, such as pink, turquoise, sandy, brown, gray etc may mean slightly
+different things to different people. This is not so with \fBatlc\fR, as the 
+program expects the colours below to be EXACTLY defined as given. Whether 
+you feel the colour is sandy or yellow is up to you, but if you use it in 
+your bitmap, then it either needs to be a colour recognised by atlc, \fBor\fR
+you must define it with a command line option (see OPTIONS and example 5
+below).
+.br
+The following conductors are recognised by atlc:
+.br
+red    = 255,000,000 or 0xff0000 is the live conductor. 
+.br
+green  = 000,255,000 or 0x00ff00 is the grounded conductor. 
+.br
+blue   = 000,000,000 or 0x000000 is the negative conductor 
+.PP
+All bitmaps \fBmust\fR have the live (red) and grounded (green) conductor. The blue
+conductor is not currently supported, but it will be used to indicate a 
+negative conductor, which will be needed if/when the program gets extended 
+to analyse directional couplers. 
+.PP
+The following dielectrics are recognised by \fRatlc\fB and so are
+produced by \fRcreate_bmp_for_rect_cen_in_rect\fB. 
+.PP
+.br
+white      255,255,255 or 0xFFFFFF as Er=1.0   (vacuum)
+.br
+pink       255,202,202 or 0xFFCACA as Er=1.0006 (air)
+.br
+light blue 130,052,255 or 0x8235Ef as Er=2.1   (PTFE)
+.br
+Mid gray   142,242,142 or 0x8E8E8E as Er=2.2   (duroid 5880)
+.br
+mauve      255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+.b r
+yellow     255,255,000 or 0xFFFF00 as Er=2.5   (polystyrene)
+.br
+sandy      239,203,027 or 0xEFCC1A as Er=3.3   (PVC)
+.br
+brown      188,127,096 or 0xBC7F60 as Er=3.335 (epoxy resin)
+.br
+Turquoise  026,239,179 or 0x1AEFB3 as Er=4.8   (glass PCB)
+.br
+Dark gray  142,142,142 or ox696969 as Er=6.15  (duroid 6006)
+.br
+L. gray    240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+.br
+D. orange  213,130,067 or 0xD5A04D as Er=100.0 (mainly for test purposes)
+.br
+If the permittivity is one not in the above list, then those parts of
+the image with Er will be set to 0xCAFF00.
+.SH EXAMPLES
+Here are a few examples of the use of \fBcreate_bmp_for_rect_cen_in_rect\fR. Again, see the html documentation in atlc-X.Y.Z/docs/html-doc/index.html for more examples.     
+.P
+1) In the first example, there is just a vacuum dielectric, so Er=1.0.
+The inner of 1x1 inches (or mm, miles etc) is placed centrally in an
+outer with dimensions 3.3 x 3.9 inches. 
+
+\fB% create_bmp_for_rect_cen_in_rect 3.3 3.9 1 1 1 > 1.bmp
+.br
+% atlc 1.bmp\fR
+
+2) In this second example, an inner of 15.0 mm x 5.0 mm is surrounded by an
+outer with internal dimensions of 71.5 x 60.0 mm. There is a material
+with permittivity 2.1 (Er of PTFE) around the inner conductor. The output
+from \fBcreate_bmp_for_rect_cen_in_rect\fR is sent to a file 2.bmp, which is then processed by
+\fBatlc\fR 
+
+\fB% create_bmp_for_rect_cen_in_rect 71.5 60.0 15.0 5.0 2.1 > 2.bmp\fR
+.br
+\fB% atlc 2.bmp\fR
+.br
+
+3) In example 3, the bitmap is made larger, to increase accuracy, but
+otherwise this is identical to the second example. 
+\fB% create_bmp_for_rect_cen_in_rect -b7 71.5 60 15 5 2.1 > 3.bmp\fR
+.br
+\fB% atlc 3.bmp\fR
+.br
+.P
+In the fourth example, instead of re-directing \fBcreate_bmp_for_rect_cen_in_rect's\fR output
+to a file with the > sign, it is done using the -f option. 
+.br
+\fB% create_bmp_for_rect_cen_in_rect -f 4.bmp 61.5 28.1 5 22 2.1\fR
+.br
+\fB% atlc 4.bmp\fR
+.SH SEE ALSO
+atlc(1)
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_circ_in_rect(1)
+create_bmp_for_microstrip_coupler(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_rect_in_rect(1)
+create_bmp_for_stripline_coupler(1)
+create_bmp_for_symmetrical_stripline(1)
+design_coupler(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
diff --git a/man/man1/create_bmp_for_rect_cen_in_rect_coupler.1 b/man/man1/create_bmp_for_rect_cen_in_rect_coupler.1
new file mode 100644 (file)
index 0000000..30d093a
--- /dev/null
@@ -0,0 +1,4 @@
+.TH sorry_no_written_yet 1 "atlc-4.5.0 11th Oct 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBsorry_no_written_yet\fR - part of atlc
diff --git a/man/man1/create_bmp_for_rect_in_circ.1 b/man/man1/create_bmp_for_rect_in_circ.1
new file mode 100644 (file)
index 0000000..ed39710
--- /dev/null
@@ -0,0 +1,4 @@
+.TH sorry_no_written_yet 1 "atlc-4.4.2" "10th Sept 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBsorry_no_written_yet\fR - part of atlc
diff --git a/man/man1/create_bmp_for_rect_in_rect.1 b/man/man1/create_bmp_for_rect_in_rect.1
new file mode 100644 (file)
index 0000000..8b47332
--- /dev/null
@@ -0,0 +1,251 @@
+.TH create_bmp_for_rect_in_rect 1 "atlc-4.5.0 28th Sept 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBcreate_bmp_for_rect_in_rect\fR - bitmap generator for rectangular conductor inside rectangular conductor (part of \fBatlc\fR)
+.SH SYNOPSIS
+\fBcreate_bmp_for_rect_in_rect [options... ] W H a b c d w h Er1 Er2 filename.bmp\fR
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time the version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBcreate_bmp_for_rect_in_rect\fR is a pre-processor for \fBatlc\fR, the finite difference program that is used to calculate the 
+properties of a two and three conductor electrical transmission line of arbitrary 
+cross section. The program \fBcreate_bmp_for_rect_in_rect\fR is used as a fast way of
+generating bitmaps (there is no need to use a graphics program), for a rectangular conductor inside a rectangular conductor, with two dieletrics, like this:
+.P
+-----------------------------------------------------  ^
+.br
+|                                                   |  |
+.br
+|     <--------------d------------------->          |  |
+.br
+|                                                   |  |
+.br
+|         <----------w----------->                  |  |
+.br
+|         ------------------------   ^              |  |
+.br
+|         |                      |   |              |  |
+.br
+|         |  Metallic conductor  |   |              |  H
+.br
+|<----b-->|  conductor (can be   |   c   Er1        |  |
+.br
+|         |  off-centre)         |   |              |  |
+.br
+|         |                      |   |              |  |
+.br
+|     ------------------------------------ ^        |  |
+.br
+|     |..................................| |        |  |
+.br
+|     |...Dielectric, permittivity=Er2...| |        |  |
+.br
+|<-a->|.....(can be off centre ).........| h        |  |
+.br
+|     |..................................| |        |  |
+.br
+|     |..................................| |        |  |
+.br
+-----------------------------------------------------  |
+.br
+<---------------------------W----------------------->
+.br
+
+The parameters 'W' and 'H' and the inner dimensions of the outer conductor.
+The outer dimensions of the inner conductor are 'w' and 'c'. The inner
+conductor is assumed to rest on a dielectric (Er2) which is 'd' wide and
+'h' tall. The dielectric is offset 'a' from the left hand side wall of the
+outer conductor an the inner conductor is offset 'b' from the left hand
+sidewall of the outer conductor. The whole region is surrounded by a
+dielectric of relative permittivity 'Er1'. The dielectrics 'Er1' and
+'Er2' can be different, or the same. If there is just an air dilectric,
+then 'Er1' and 'Er2' will both be 1.0 
+.PP 
+.br
+The bitmap is printed to the file specifiled as the last argument
+.P
+\fBcreate_bmp_for_rect_in_rect -f filename.bmp W H a b c d w h Er1 Er2\fR
+.P
+.br
+The bitmaps produced by \fBcreate_bmp_for_rect_in_rect\fR are 24-bit bit colour bitmaps, as are required by \fBatlc\fR. 
+
+The permittivities of the bitmap, set by 'Er1' and 'Er2', determine the
+colours in the bitmap. If Er1 or Er2 is 1.0, 1.0006, 2.1, 2.2, 2.33, 2.5, 3.3,
+3.335, 3.7, 4.8, 10.2 or 100, then the colour corresponding to that permittivity
+will be set according to the colours defined in COLOURS below. If Er1
+is not one of those permittivities, the region of permittivity Er1
+will be set to the colour 0xCAFF00. If Er2 is not one of those values,
+then the region of the image will be set to the colour 0xAC82AC. The
+program \fBatlc\fR does not know what these permittivites are, so they
+\fBatlc\fR, must be told with the comand line option -d, as in example 4
+below.
+.P
+.SH OPTIONS
+\fB-b bitmapsize\fR
+.br
+is used to set the size of the bitmap, and so the accuracy to which atlc
+is able to calculate the transmission line's properties. The default
+value for 'bitmapsize' is normally 4, although this is set at compile
+time. The value can be set anywhere from 1 to 15, but more than 8 is
+probably not sensible. 
+.PP
+\fB-f outfile\fR
+.br
+Set the output filename. By default, the bitmap is sent to stdout, but
+it *must* be sent to a file, with this option, or as described above. 
+.P
+\fB-v \fR
+.br
+Causes \fBcreate_bmp_for_rect_in_rect\fR to print some data to stderr. Note, nothing
+extra goes to standard output, as that is expected to be redirected to a
+bitmap file.
+
+.SH COLOURS
+The 24-bit bitmaps that \fBatlc\fR expects, have 8 bits assigned 
+to represent the amount of red, 8 for blue and 8 for green. Hence there are 
+256 levels of red, green and blue, making a total of 256*256*256=16777216 colours. 
+Every one of the possible 16777216 colours can be defined precisely by the stating the exact amount 
+of red, green and blue, as in:
+.PP
+.br
+red         = 255,000,000 or 0xff0000
+.br
+green       = 000,255,000 or 0x00ff00
+.br
+blue        = 000,000,255 or 0x0000ff
+.br
+black       = 000,000,000 or 0x000000
+.br
+white       = 255,255,255 or 0xffffff
+.br
+Brown       = 255,000,255 or 0xff00ff 
+.br
+gray        = 142,142,142 or 0x8e8e8e
+.PP
+Some colours, such as pink, turquoise, sandy, brown, gray etc may mean slightly
+different things to different people. This is not so with \fBatlc\fR, as the 
+program expects the colours below to be EXACTLY defined as given. Whether 
+you feel the colour is sandy or yellow is up to you, but if you use it in 
+your bitmap, then it either needs to be a colour recognised by atlc, \fBor\fR
+you must define it with a command line option (see OPTIONS and example 5
+below).
+.br
+red    = 255,000,000 or 0xFF0000 is the live conductor. 
+.br
+green  = 000,255,000 or 0x00FF00 is the grounded conductor. 
+.br
+blue   = 000,000,000 or 0x0000FF is the negative conductor 
+.PP
+All bitmaps \fBmust\fR have the live (red) and grounded (green) conductor. The blue
+conductor is not currently supported, but it will be used to indicate a 
+negative conductor, which will be needed if/when the program gets extended 
+to analyse directional couplers. 
+.PP
+The following dielectrics are recognised by \fRatlc\fB and so are
+produced by \fRcreate_bmp_for_rect_cen_in_rect\fB. 
+.PP
+.br
+white     255,255,255 or 0xFFFFFF as Er=1.0    (vacuum)
+.br
+pink      255,202,202 or 0xFFCACA as Er=1.0006 (air)
+.br
+L. blue   130,052,255 or 0x8235EF as Er=2.1    (PTFE)
+.br
+Mid gray  142,242,142 or 0x8E8E8E as Er=2.2    (duroid 5880)
+.br
+mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+.br
+yellow    255,255,000 or 0xFFFF00 as Er=2.5    (polystyrene)
+.br
+sandy     239,203,027 or 0xEFCC1A as Er=3.3    (PVC)
+.br
+brown     188,127,096 or 0xBC7F60 as Er=3.335  (epoxy resin)
+.br
+Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8    (glass PCB)
+.br
+Dark gray 142,142,142 or 0x696969 as Er=6.15   (duroid 6006)
+.br
+L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+.br
+D. orange 213,160,067 or 0xD5A04D as Er=100.0 (mainly for test purposes)
+.br
+.br
+.SH EXAMPLES
+Here are a few examples of the use of \fBcreate_bmp_for_rect_in_rect\fR. Again, see the html documentation in atlc-X.Y.Z/docs/html-docs/index.html for more examples.     
+.P
+In the first example, there is just an air dielectric, so Er1=Er2=1.0.
+The inner of 1x1 inches (or mm, miles etc) is placed centrally in an
+outer with dimensions 3 x 3 inches. 
+
+The exact place where the dielectric starts (a) and its width (d) are
+unimportant, but they must still be entered. 
+
+\fB% create_bmp_for_rect_in_rect 3 3 1 1 1 1 1 1 > ex1.bmp
+.br
+% atlc ex1.bmp\fR
+
+In this second example, an inner of 15.0 mm x 0.5 mm is surrounded by an
+outer with internal dimensions of 61.5 x 20.1 mm. There is a material
+with permittivity 2.1 (Er of PTFE) below the inner conductor. The output
+from \fBcreate_bmp_for_rect_in_rect\fR is sent to a file ex1.bmp, which is then processed by
+\fBatlc\fR 
+
+\fB% create_bmp_for_rect_in_rect 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1 > ex2.bmp\fR
+.br
+\fB% atlc ex2.bmp\fR
+.br
+
+In example 3, the bitmap is made larger, to increase accuracy, but
+otherwise this is identical to the second example. 
+\fB% create_bmp_for_rect_in_rect -b7 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1 > ex3.bmp\fR
+.br
+\fB% atlc ex3.bmp\fR
+.br
+.P
+In the fourth example, materials with permittivites 2.78 and 7.89 are
+used. While there is no change in how to use \fBcreate_bmp_for_rect_in_rect\fR, since
+these permittivities are not known, we must tell \fBatlc\fR what they
+are.
+\fB
+% create_bmp_for_rect_in_rect 61 20 1 4 22 0.5 50 15 5 2.78 7.89 > ex5.bmp
+% atlc -d CAFF00=2.78 -d AC82AC=7.89 ex5.bmp
+\fR
+In the sixth and final example, the -v option is used to print some
+extra data to stderr from \fBcreate_bmp_for_rect_in_rect\fR. 
+.
+.SH SEE ALSO
+atlc(1)
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_circ_in_rect(1)
+create_bmp_for_microstrip_coupler(1)
+create_bmp_for_rect_cen_in_rect(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_stripline_coupler(1)
+create_bmp_for_symmetrical_stripline(1)
+design_coupler(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
diff --git a/man/man1/create_bmp_for_stripline_coupler.1 b/man/man1/create_bmp_for_stripline_coupler.1
new file mode 100644 (file)
index 0000000..4fab026
--- /dev/null
@@ -0,0 +1,157 @@
+.TH create_bmp_for_stripline_coupler 1 "atlc-.4.6.0  6th Dec 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBcreate_bmp_for_stripline_coupler\fR - bitmap generator for coupler with thin striplines between two infinitely wide groundplanes (part of \fBatlc\fR)
+.SH SYNOPSIS
+\fBcreate_bmp_for_stripline_coupler [-C] [-b bitmapsize] [-v] H w s Er outputfile\fR
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time the version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBcreate_bmp_for_stripline_coupler\fR is a pre-processor for \fBatlc\fR, the finite difference 
+program that is used to calculate the 
+properties of a two and three conductor electrical transmission lines of arbitrary 
+cross section. The program \fBcreate_bmp_for_stripline_coupler\fR is used as a fast way of
+generating bitmaps (there is no need to use a graphics program), for a
+pair of 1 pixel thick conductors of width w, spaced a distance s apart, 
+inside a pair of
+groundplanes of  separation H. This has an exact analytical
+answer, when the inner is infinitely thin and the overall width W is infinitely
+wide. This theoretical impedance is calculated and printed to stderr if 
+the -v option is given on create_bmp_for_stripline_coupler's command line.
+.P
+-----------------------------------------------------  ^
+.br
+|                                                   |  |
+.br                                                     
+|                  Er                               |  |
+.br                                                     
+|                                                   |  |
+.br                                                     
+|            -----------       -----------          |  H
+.br
+|            <----w----><--s--><----w---->          |  |
+.br       
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+-----------------------------------------------------  v
+.br
+<-------------------------W------------------------->
+.br
+
+The overall width W is calculated internally to be large enough that
+making it any larger will have negligible effect on the results.
+The dielectric is assumed that of vacuum.
+.PP 
+.br
+The bitmaps produced by \fBcreate_bmp_for_stripline_coupler\fR are 24-bit bit colour bitmaps, as are required by \fBatlc\fR.
+
+.SH OPTIONS
+.PP
+\fB-C \fR
+.br
+Print the full copyright information and exit.
+.PP
+.br
+\fB-b bitmapsize\fR
+.br
+is used to set the size of the bitmap, and so the accuracy to which atlc
+is able to calculate the coupler's properties. The default
+value for 'bitmapsize' is normally 18 although this can be set at
+compile time. (see 'DEFAULT_COUPLER_BITMAP_SIZE' in definitions.h). The value can be set anywhere from 6 to 28. The size of bitmap produced will be
+between 2^(bitmapsize-1) and 2^(bitmapsize+1), so if its set to 28 the
+bitmap could be as big as 512 Mb, which would take an eternity to
+compute. 
+.PP
+\fB-v \fR
+.br
+Print some extra data to stdout on the theoretical impedance of the
+structure. This is useful to compare with the numerical result from
+\fBatlc\fR
+.SH EXAMPLES
+.br
+In the first example, a standard coupler is created, where the 
+
+
+eg1. create_bmp_for_stripline_coupler  1.23 0.7 1.2 1.0  coupler.bmp
+.br
+eg2. create_bmp_for_stripline_coupler -b 8 1.23 0.7 3.3  small.bmp 
+.br
+eg3. create_bmp_for_stripline_coupler -v 12 1.23 0.7 4.8  theory.bmp  
+.br
+
+
+
+
+
+
+
+
+
+
+
+
+
+.P
+.SH SEE ALSO
+atlc(1)
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_circ_in_rect(1)
+create_bmp_for_microstrip_coupler(1)
+create_bmp_for_rect_cen_in_rect(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_rect_in_rect(1)
+create_bmp_for_symmetrical_stripline(1)
+design_coupler(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
+.br
+.SH AUTHOR
+Dr. David Kirkby PhD, drkirkby at ntlworld.com 
+.SH "COPYRIGHT"
+.IX Header "COPYRIGHT"
+Copyright (c) 2002 Dr. David Kirkby. 
+.PP
+
+This program is 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.
+.pp
+This program 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.
+.p
+You should have received a copy of the GNU General Public License (in
+the file COPYING) along with this program. You may get a full copy of it
+by running the program with the -C option. Otherwise you can write to the 
+Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 
+MA  02111-1307, USA.
diff --git a/man/man1/create_bmp_for_symmetrical_stripline.1 b/man/man1/create_bmp_for_symmetrical_stripline.1
new file mode 100644 (file)
index 0000000..3ddbddf
--- /dev/null
@@ -0,0 +1,99 @@
+.TH create_bmp_for_symmetrical_stripline 1 "atlc-4.6.0 8th December 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBcreate_bmp_for_symmetrical_stripline\fR - bitmap generator for thin conductor between two
+infinite groundplanes (part of \fBatlc\fR)
+.SH SYNOPSIS
+\fBcreate_bmp_for_symmetrical_stripline [-v] W H w bitmapfile\fR
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time the version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBcreate_bmp_for_symmetrical_stripline\fR is a pre-processor for \fBatlc\fR, the finite difference 
+program that is used to calculate the 
+properties of a two-conductor electrical transmission line of arbitrary 
+cross section. The program \fBcreate_bmp_for_symmetrical_stripline\fR is used as a fast way of
+generating bitmaps (there is no need to use a graphics program), for a
+1 pixel thick conductor of width w, centrally located inside a pair of
+groundplanes of width W and separation H. This has an exact analytical
+answer, when the inner is infinitely thin and the width W is infinitely
+wide. This theoretical impedance is also calculated by the create_bmp_for_symmetrical_stripline. It is therefore used
+as a test of atlc. 
+.P
+-----------------------------------------------------  ^
+.br
+|                                                   |  |
+.br                                                     
+|                                                   |  |
+.br
+|              <----------w----------->             |  |
+.br
+|                                                   |  H
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+-----------------------------------------------------  v
+.br
+<-------------------------W------------------------->
+.br
+
+The parameters 'W' and 'H' and the inner dimensions of the outer conductor.
+The outer dimensions of the inner conductor are 'w' and 'c'. The inner
+conductor is assumed to rest on a dielectric (Er2) which is 'd' wide and
+'h' tall. The dielectric is offset 'a' from the left hand side wall of the
+outer conductor an the inner conductor is offset 'b' from the left hand
+sidewall of the outer conductor. The whole region is surrounded by a
+dielectric of relative permittivity 'Er1'. The dielectrics 'Er1' and
+'Er2' can be different, or the same. If there is just an air dilectric,
+then 'Er1' and 'Er2' will both be 1.0 
+.PP 
+.br
+The bitmaps produced by \fBcreate_bmp_for_symmetrical_stripline\fR are 24-bit bit colour bitmaps, as are required by \fBatlc\fR. Currently create_bmp_for_symmetrical_stripline only produces bitmaps with
+white (vacuum) dielectrics. 
+
+.SH OPTIONS
+\fB-v\fR
+.br
+Print the theoeretical impedance Zo. This only works if the width W is sufficiently
+wide, otherwise atlc and the value printed here would disagree wildly. 
+.br
+
+.P
+.SH SEE ALSO
+atlc(1)
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_circ_in_rect(1)
+create_bmp_for_microstrip_coupler(1)
+create_bmp_for_rect_cen_in_rect(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_rect_in_rect(1)
+create_bmp_for_stripline_coupler(1)
+design_coupler(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
+.br
diff --git a/man/man1/design_coupler.1 b/man/man1/design_coupler.1
new file mode 100644 (file)
index 0000000..4059b58
--- /dev/null
@@ -0,0 +1,270 @@
+.TH design_coupler 1 "atlc-4.4.2 10th Sept 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBdesign_coupler\fR - for designing directional couplers (part of the \fBatlc\fR package)
+.SH SYNOPSIS
+\fBdesign_coupler [-C][-d][-e][-H height][-L length][-q]
+.br
+[s fstep][-Z Zo] CF fmin fmax \fR
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time this version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBdesign_coupler\fR is used to design directional couplers. It it \fBnot\fR
+used to analyse couplers for which you know the dimensions. Instead, it
+is used but when you require a coupler to have specific properties, but don't know the
+required odd and even mode impedances or the required physical dimensions
+that will achieve those required properties.
+.P
+As a minimum the user must specify the coupling factor CF in dB, the
+minimum frequency fmin in MHz and the maximum frequency fmax in MHz.
+With this information, the \fBdesign_coupler\fR will 
+.br
+a) Tell you the required odd and even mode impedances Zodd and Zeven
+assuming the coupler is for 50 Ohms and assuming the coupler is is a 
+quarter wave long, which might be an impractical length. There a numerous
+ways of making a coupler having those impedances and \fBdesign_coupler\fR does
+not (without the addition of options mentioned later), tell you how to
+make such a coupler. 
+b) Given you the frequency response of the coupler, making the
+assumptions about the 50 Ohm impedance and quarter-wave length. The frequency
+response is calculated at 5 points in the range specified by fmin and
+fmax.
+.P
+By use of the -Z 'Zo' and -L 'length' and -f 'fstep' options it it posible to
+specify different a different characteristic impedance, length and
+different frequency steps to display the frequency response. 
+.P
+The computed  values of Zodd and Zeven required are valid no matter how
+the coupler is design physically. So no matter whether it's implemented
+on a PCB, air spaced or whatever, the above impedances are correct and
+the frequency response is correct.
+.P
+The -d option causes \fBdesign_coupler\fR to not only report the
+required odd and even modem impedances but also the physical
+dimensions of a coupler that achieves these properties! \fBCurrently\fR,
+the only stucture for which it is possible to compute the physical
+dimentions is two wide edge-coupled striplines between two wide plates like
+this:
+
+.P
+-----------------------------------------------------  ^
+.br
+|                                                   |  |
+.br                                                     
+|                  Er                               |  |
+.br                                                     
+|                                                   |  |
+.br                                                     
+|            -----------       -----------          |  H
+.br
+|            <----w----><--s--><----w---->          |  |
+.br       
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+-----------------------------------------------------  v
+.br
+<-------------------------W------------------------->
+.br
+.P
+The width W must be much greater than the height of the coupler and 
+generally it is assumed that this width will at least 2*w+s*5*H,
+otherwise the calculations will be incorrect. In order to calculate
+these dimenisions an analytical method is used, which is only valid if 
+the width W is infinity, but should be resonably good assuming W is at
+least 2*w+s+5*H. 
+.P 
+It is later intended to enable design coupler to use other structures,
+which migth be more suitable for construction, such as microstrip
+couplers on PCBs, but for now at least, it is only possible to compute
+the physical dimensions of the coupler using the above stucture. For
+strong coupling (less than 20 dB or so), the dimenions calculated
+might be impractical, as the spacing s will be so small. However, for
+weak coupling, the physcical dimensions are practical. 
+.SH OPTIONS
+
+\fB-C\fR
+.br
+print copyright, licensing and copying information. 
+.br
+\fB-d\fR
+.br
+Design a coupler, using two edgle-coupled stiplines inside a wide
+4-sided rectangular enclosure.
+
+\fB-e\fR
+.br
+Priont an example of how to use \fBdesign_coupler\fR 
+.br
+\fB-H height\fR
+.br
+Specify the height of the enclosure in some convenient unit. By default,
+a height of 1 unit is assumed, but by use of this option it is possible
+to specify any height you want. Since its the ratio of dimensions that
+is important, not the absolute values, this just scales all the other
+dimensions by the specified height. It is just a conveneince for the
+user. 
+.br
+\fB-L length\fR
+.br
+Specifies the coupler length in metres. By default the coupler is
+assumed to be a quarter-wave, but this allow any length you want. Don't
+chose a length that is a multiple of a half-wave though, as this will
+make it impossible to couple any power out. 
+\fB-q\fR
+.br
+This is the 'quite' switch and causes \fBdesign_coupler\fR to print out
+less information. One can use -qq to cause the even less output.
+.br
+\fB-s fstep\fR
+Causes \fBdesign_couler\fR to print out the frequency response at
+different steps from the default 5 values. fstep must be in MHz. The
+default value of fstep is obviously (fmax-fman)/5.
+.br
+\fBZ Zo\fR
+.br
+Causes \fBdesign_coupler\fR to compute properties of an impedance Zo
+(shecified in Ohms). The default value for Zo is 50 Ohms.
+
+.SH EXAMPLES
+Run \fBdesign_coupler\fR gives examples of its use. However, here are
+those same examples.
+.P
+Here are a examples of how to use \fBdesign_coupler\fR
+In the examples, the % sign is used in front of anything you must type
+which is what you will probably see when using the csh or tcsh as a shell. It
+would probably be a $ sign if using the sh or bash shell. 
+.P
+To find the odd and even mode impedances and frequency response of a 50 Ohm
+coupler, covering 130 to 170 MHz, with a coupling coefficient of 30 dB:
+.P
+% design_coupler 30 130 170
+.P
+Note the frequency response is symmetrical about the centre frequency at 0.192 dB
+below that wanted. You may wish to redesign this for a coupling coefficient of 
+about 29.9 dB, so the maximum deviation from the ideal 30.0 dB never exceeds 0.1 dB
+Note the length suggested is 0.5 m (nearly 20") is a quarter wave at
+the centre frequency of 150 MHz. You might find this a bit too long, so
+let's specify a length of 0.25 m.
+.P
+% design_coupler -L 0.25 30 130 170
+.P
+What you may notice is that while the coupling to the coupled port is exactly
+30 dB below the input power at the centre frequency (150 MHz) it is 
+no longer symmetrical about the centre frequency. Also, deviations from the
+ideal 30 dB are now much larger, with a maximum error of 1.012 dB
+Unlike the case when the length is the default quarter wave, there is not much
+you can do about this, since the deviations occur in both directions.
+.P
+Now assume you are reasonably happy with the response when the length is 250 mm
+but would like to see the response at every 2.5 MHz. This can be done using the
+-s option to design_coupler.
+.P
+% design_coupler -L 0.25 -s 2.5 30 130 170
+.P
+Assuming the performance is acceptable, the dimensions of the coupler can
+be determined by adding the -d option. This will design a coupler that must look
+like the structure below. The two inner conductors, which are spaced equally
+between the top and bottom edges of the outer conductor, must be very thin.
+These are placed along the length of a box of width W, height H and of
+a length L determined by the user, which in this case is 250 mm.
+.P
+-----------------------------------------------------  ^
+.br
+|                                                   |  |
+.br                                                     
+|                  Er                               |  |
+.br                                                     
+|                                                   |  |
+.br                                                     
+|            -----------       -----------          |  H
+.br
+|            <----w----><--s--><----w---->          |  |
+.br       
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+|                                                   |  |
+.br
+-----------------------------------------------------  v
+.br
+<-------------------------W------------------------->
+.br
+.P
+The program reports: H = 1.0, ; w = 1.44 ; s = 0.44
+The height of the box H must be small compared to the length L, (perhaps no
+more than 7% of the length), or 17.5 mm in this case, with a length of 250 mm,
+otherwise fringing effects will be significant. The width of the structure W
+should be as large as possible. The program suggests making this 5*H+2*w+s. The
+7% and 5*H+2*w+s are educated guesses, rather than exact figures. There is
+no problem in making the width  larger than 5*H+2*w+s. The length L must be
+kept at 250 mm. The RATIO of the dimensions H, w and s (but not L or W
+must be kept constant. W just needs to be sufficiently large - it is
+uncritical.  
+.P
+If you happened to have some 15 mm square brass available, then using that
+for the side-walls would require that H becomes 15*1.0 = 15 mm,
+w = 15*1.44 = 21.6 mm  and s = 15*0.44 = 6.6 mm
+.P
+There is no need to compute the above scaling with a calculator, as using
+The -H option allows one to specify the height H. The program then reports the
+exact dimensions for the length L, height H, w, s and suggests a minimum width
+for W.
+.P
+In summary we have:
+.br
+    30 dB coupler +1.02 dB / -0.78 dB for 130 to 170 MHz
+.br
+    Length L = 250 mm, height H = 15 mm, stripline spacing s = 6.3 mm
+.br
+     stripline width w = 21.6 mm enclosure width W >= 124 mm
+.P
+By default, design_coupler prints a lot of information to the screen.
+This can be reduced by the -q option or reduced to only one line with -qq
+Other options include -Z to change the impedance from the default 50 Ohms
+and -C to see the fully copyright, Licensing and distribution information
+.br
+.SH FILES
+No files are created at all. 
+.SH SEE ALSO
+atlc(1)
+.br
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_circ_in_rect(1)
+create_bmp_for_microstrip_coupler(1)
+create_bmp_for_rect_cen_in_rect(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_rect_in_rect(1)
+create_bmp_for_stripline_coupler(1)
+create_bmp_for_symmetrical_stripline(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+.br
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/design_coupler.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
diff --git a/man/man1/dualcoax.1 b/man/man1/dualcoax.1
new file mode 100644 (file)
index 0000000..abfd2be
--- /dev/null
@@ -0,0 +1,58 @@
+.TH dualcoax 1 "atlc-4.6.0 28th Oct 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBdualcoax\fR - determine impedance of a coaxial structure with two concentric dielectrics.
+.SH SYNOPSIS
+\fBdualcoax D1 D2 D3 Er1 Er2\fR
+.br
+.SH DESCRIPTION
+dualcoax computes the impedaance of a dualcoaxial cable, with two 
+concentric dielectrics, given the outside diameter of the inner conductor D1, 
+the outside diameter of the inner dielectric D2, the  
+outside diameter of the outer dielectric (which is also the inside diameter of the 
+outer conductor) D3, as well as the relative permttivity of the inner 
+dielectric Er1 and the outer dielectric Er2.
+.br
+.br
+.SH FILES 
+dualcoax does not read/write any files. 
+.SH SEE ALSO
+atlc(1)
+.br
+coax(1)
+.br
+create_bmp_for_circ_in_circ(1)
+.br
+create_bmp_for_circ_in_rect(1)
+.br
+create_bmp_for_microstrip_coupler(1)
+.br
+create_bmp_for_rect_cen_in_rect(1)
+.br
+create_bmp_for_rect_cen_in_rect_coupler(1)
+.br
+create_bmp_for_rect_in_circ(1)
+.br
+create_bmp_for_rect_in_rect(1)
+.br
+create_bmp_for_stripline_coupler(1)
+.br
+create_bmp_for_symmetrical_stripline(1)
+.br
+design_coupler(1)
+.br
+find_optimal_dimensions_for_microstrip_coupler(1)
+.br
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net      - Home page 
+.br
+http://sourceforge.net/projects/atlc   - Download area
+.br
+/usr/local/share/atlc/docs/html-docs/index.html  - HTML docs
+.br
+/usr/local/share/atlc/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+/usr/local/share/atlc/examples    - examples
+.br
diff --git a/man/man1/find_optimal_dimensions_for_microstrip_coupler.1 b/man/man1/find_optimal_dimensions_for_microstrip_coupler.1
new file mode 100644 (file)
index 0000000..d6022c0
--- /dev/null
@@ -0,0 +1,222 @@
+.TH find_optimal_dimensions_for_microstrp_coupler 1 "atlc-4.5.0 28th Sept 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBfind_optimal_dimensions_for_microstrp_coupler\fR  part of atlc.
+.SH SYNOPSIS
+\fBfind_optimal_dimensions_for_microstrp_coupler [options... ] h t Er1 Er2 Z Zodd_req Zeve_reg outfile.bmp\f1
+.b2
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time this version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBfind_optimal_dimensions_for_microstrp_coupler\fR is part of the \fBatlc\fR, CAD package for the design and
+analysis of transmission lines and directional couplers. While the executable program \fbatlc\fR (as opposed
+to the complete package \fBatlc\fR) is able to analyse the properties of directional couplers, telling you
+both the odd and even mode impedances Zodd and Zeven, it is not able to design a coupler to have specific odd
+and even mode impedances. The only way to use the program program \fBatlc\fR 
+
+.br
+
+The parameters 'W' and 'H' and the inner dimensions of the outer conductor.
+The inner conductor has a diameter of 'd' and is offset from the centre
+of the outer conductor by an amount 'x' horizontally and 'y' vertically.
+The space between the inner and outer conductors is a 
+dielectric of relative permittivity 'Er'. If there is just a vacuum dielectric,
+then 'Er' should be set to 1.0 
+.PP 
+.br
+.P
+\fBfind_optimal_dimensions_for_microstrp_coupler  d W H x y Er > filename.bmp\fR OR
+.br
+\fBfind_optimal_dimensions_for_microstrp_coupler -f filename.bmp d W H x y Er\fR
+.P
+.br
+The bitmaps produced by \fBfind_optimal_dimensions_for_microstrp_coupler\fR are 24-bit bit colour bitmaps, as are required by \fBatlc\fR. 
+
+The permittivities of the bitmap, set by 'Er', determine the
+colours in the bitmap. If Er1 is 1.0, 1.006, 2.1, 2.2, 2.33, 2.5, 3.3,
+3.335, 3.7, 4.8, 10.2 or 100 then the colour corresponding to that permittivity
+will be set according to the colours defined in COLOURS below. If Er
+is not one of those permittivities, the region of permittivity Er
+will be set to the colour 0xCAFF00. The
+program \fBatlc\fR does not know what these permittivites are, so 
+\fBatlc\fR, must be told with the -d command line option, as in example 4
+below.
+.P
+.SH OPTIONS
+\fB-b bitmapsize\fR
+.br
+is used to set the size of the bitmap, and so the accuracy to which atlc
+is able to calculate the transmission line's properties. The default
+value for 'bitmapsize' is normally 4, although this is set at compile
+time. The value can be set anywhere from 1 to 15, but more than 8 is
+probably not sensible. 
+.PP
+\fB-f outfile\fR
+.br
+.P
+\fB-v \fR
+.br
+Causes \fBfind_optimal_dimensions_for_microstrp_coupler\fR to print some data to stderr. Note, nothing
+extra goes to standard output, as that is expected to be redirected to a
+bitmap file.
+
+.SH COLOURS
+The 24-bit bitmaps that \fBatlc\fR expects, have 8 bits assigned 
+to represent the amount of red, 8 for blue and 8 for green. Hence there are 
+256 levels of red, green and blue, making a total of 256*256*256=16777216 colours. 
+Every one of the possible 16777216 colours can be defined precisely by the stating the exact amount 
+of red, green and blue, as in:
+.PP
+.br
+red         = 255,000,000 or 0xff0000
+.br
+green       = 000,255,000 or 0x00ff00
+.br
+blue        = 000,000,255 or 0x0000ff
+.br
+black       = 000,000,000 or 0x000000
+.br
+white       = 255,255,255 or 0xffffff
+.br
+Brown       = 255,000,255 or 0xff00ff 
+.br
+gray        = 142,142,142 or 0x8e8e8e
+.PP
+Some colours, such as pink, turquoise, sandy, brown, gray etc may mean slightly
+different things to different people. This is not so with \fBatlc\fR, as the 
+program expects the colours below to be EXACTLY defined as given. Whether 
+you feel the colour is sandy or yellow is up to you, but if you use it in 
+your bitmap, then it either needs to be a colour recognised by atlc, \fBor\fR
+you must define it with a command line option (see OPTIONS and example 5
+below).
+.br
+The following conductors are recognised by atlc:
+.br
+red    = 255,000,000 or 0xff0000 is the live conductor. 
+.br
+green  = 000,255,000 or 0x00ff00 is the grounded conductor. 
+.br
+black  = 000,000,000 or 0x000000 is the negative conductor 
+.PP
+All bitmaps \fBmust\fR have the live (red) and grounded (green) conductor. The black 
+conductor is not currently supported, but it will be used to indicate a 
+negative conductor, which will be needed if/when the program gets extended 
+to analyse directional couplers. 
+.PP
+The following dielectrics are recognised by \fRatlc\fB and so are
+produced by \fRfind_optimal_dimensions_for_microstrp_coupler\fB. 
+.PP
+.br
+white     255,255,255 or 0xFFFFFF as Er=1.0   (vacuum)
+.br
+white     255,202,202 or 0xFFCACA as Er=1.0006 (air)
+.br
+blue      000,000,255 or 0x0000FF as Er=2.1   (PTFE)
+.br
+Mid gray  142,242,142 or 0x8E8E8E as Er=2.2   (duroid 5880)
+.br
+mauve     255.000,255 or 0xFF00FF as Er=2.33  (polyethylene)
+.br
+yellow    255,255,000 or 0xFFFF00 as Er=2.5   (polystyrene)
+.br
+sandy     239,203,027 or 0xEFCC1A as Er=3.3   (PVC)
+.br
+brown     188,127,096 or 0xBC7F60 as Er=3.335 (epoxy resin)
+.br
+Turquoise 026,239,179 or 0x1AEFB3 as Er=4.8   (glass PCB)
+.br
+Dark gray 142,142,142 or ox696969 as Er=6.15  (duroid 6006)
+.br
+L. gray   240,240,240 or 0xDCDCDC as Er=10.2  (duroid 6010)
+.br
+D. Orange 213,160,077 or 0xD5A04D as Er=100   (for testing)
+.br
+If the permittivity is one not in the above list, then those parts of
+the image with Er1 will be set to 0xCAFF00, and those parts with Er2 to
+0xAC82AC.
+.SH EXAMPLES
+Here are a few examples of the use of \fBfind_optimal_dimensions_for_microstrp_coupler\fR. Again, see the html documentation in atlc-X.Y.Z/docs/html-docs for more examples.     
+.P
+In the first example, there is just an air dielectric, so Er1=Er2=1.0.
+The inner of 1x1 inches (or mm, miles etc) is placed centrally in an
+outer with dimensions 3 x 3 inches. 
+
+The exact place where the dielectric starts (a) and its width (d) are
+unimportant, but they must still be entered. 
+
+\fB% find_optimal_dimensions_for_microstrp_coupler 3 3 1 1 1 1 1 1 > ex1.bmp
+.br
+% atlc ex1.bmp\fR
+
+In this second example, an inner of 15.0 mm x 0.5 mm is surrounded by an
+outer with internal dimensions of 61.5 x 20.1 mm. There is a material
+with permittivity 2.1 (Er of PTFE) below the inner conductor. The output
+from \fBfind_optimal_dimensions_for_microstrp_coupler\fR is sent to a file ex1.bmp, which is then processed by
+\fBatlc\fR 
+
+\fB% find_optimal_dimensions_for_microstrp_coupler 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1 > ex2.bmp\fR
+.br
+\fB% atlc ex2.bmp\fR
+.br
+
+In example 3, the bitmap is made larger, to increase accuracy, but
+otherwise this is identical to the second example. 
+\fB% find_optimal_dimensions_for_microstrp_coupler -b7 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1 > ex3.bmp\fR
+.br
+\fB% atlc ex3.bmp\fR
+.br
+.P
+In the fourth example, instead of re-directing \fBfind_optimal_dimensions_for_microstrp_coupler's\fR output
+to a file with the > sign, it is done using the -f option. 
+.br
+\fB% find_optimal_dimensions_for_microstrp_coupler -f ex4.bmp 61.5 20.1 5 22 0.5 50 15 5 1.0 2.1\fR
+.br
+\fB% atlc ex4.bmp\fR
+.P
+In the fifth example, materials with permittivites 2.78 and 7.89 are
+used. While there is no change in how to use \fBfind_optimal_dimensions_for_microstrp_coupler\fR, since
+these permittivities are not known, we must tell \fBatlc\fR what they
+are.
+\fB
+% find_optimal_dimensions_for_microstrp_coupler 61 20 1 4 22 0.5 50 15 5 2.78 7.89 > ex5.bmp
+% atlc -d CAFF00=2.78 -d AC82AC=7.89 ex5.bmp
+\fR
+In the sixth and final example, the -v option is used to print some
+extra data to stderr from \fBfind_optimal_dimensions_for_microstrp_coupler\fR. 
+.
+.SH SEE ALSO
+atlc(1)
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_circ_in_rect(1)
+create_bmp_for_microstrip_coupler(1)
+create_bmp_for_rect_cen_in_rect(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_rect_in_rect(1)
+create_bmp_for_stripline_coupler(1)
+create_bmp_for_symmetrical_stripline(1)
+design_coupler(1)
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
+.br
diff --git a/man/man1/readbin.1 b/man/man1/readbin.1
new file mode 100644 (file)
index 0000000..81348d0
--- /dev/null
@@ -0,0 +1,89 @@
+.TH readbin 1 "atlc-4.4.2 28th Sept 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBreadbin\fR - ATLC's binary file information provider
+.SH SYNOPSIS
+\fBreadbin  filename.bin\fR
+.br
+.SH WARNING
+This man page is not a complete set of documentation - the complexity of the atlc project makes man pages not an ideal way to document it, although out of completeness, man pages are produced. 
+The best documentation that was current at the time this version was produced should be found on your
+hard drive, usually at 
+.br
+/usr/local/share/atlc/docs/html\-docs/index.html 
+.br
+although it might be elsewhere if
+your system administrator chose to install the package elsewhere. Sometimes, errors are corrected
+in the documentation and placed at http://atlc.sourceforge.net/ before a new release of atlc is
+released.  Please, if you notice a problem with the documentation - even spelling errors and typos,
+please let me know. 
+
+.SH DESCRIPTION
+\fBreadbin\fR  reports on the number and type of pixels created 
+by the program atlc. 
+.PP 
+.SH OPTIONS
+.br
+There are no options for readbin
+.SH EXAMPLE
+% readbin coax2.V.bin
+.br
+file length=127008 bytes = 15876 pixels
+.br
+there are: 489 ones, 10852 zeros, 0 -ones, 4535 other values
+.br
+.SH FILES
+atlc-X.Y.Z/docs/html-docs/index.html
+.br
+the full documentation. 
+bitmapfile.bmp
+   Original bitmap file. Must be 24-bit colour uncompressed.
+.br
+.br 
+bitmapfile.Ex.bin
+.br 
+   X-component of E-field as a binary.  
+.br
+bitmapfile.Ey.bin
+.br
+   y-component of E-field as a binary. .
+.br 
+bitmapfile.E.bin
+.br 
+   Sqrt(Ex^2+Ey^2), as a binary. 
+bitmapfile.V.bin
+.br 
+bitmapfile.V.bin
+.br 
+   Voltage as a binary. 
+.PP
+All the saved binary files (.bin's) are saved as a double precision
+number for each of the pixels. The first double is the top left, the
+last the bottom right. 
+.PP
+.SH SEE ALSO
+
+atlc(1)
+create_bmp_for_circ_in_circ(1)
+create_bmp_for_circ_in_rect(1)
+create_bmp_for_microstrip_coupler(1)
+create_bmp_for_rect_cen_in_rect(1)
+create_bmp_for_rect_cen_in_rect_coupler(1)
+create_bmp_for_rect_in_circ(1)
+create_bmp_for_rect_in_rect(1)
+create_bmp_for_stripline_coupler(1)
+create_bmp_for_symmetrical_stripline(1)
+design_coupler(1)
+find_optimal_dimensions_for_microstrip_coupler(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
+.br
diff --git a/man/man1/sysdata.1 b/man/man1/sysdata.1
new file mode 100644 (file)
index 0000000..bdc738d
--- /dev/null
@@ -0,0 +1,518 @@
+.TH sysdata 1 "atlc-4.5.0 28th Sep 2003" "Dr. David Kirkby"
+.ds n 5
+.SH NAME
+\fBsysdata\fR - find basic hardware system data
+.SH SYNOPSIS
+\fBsysdata\fR
+.br
+.SH DESCRIPTION
+After the \fBatlc\fR package is built, a small benchmark is run as part of the testing procedure. This benchmark
+tries to get some information about the hardware. The program \fBsysdata\fR displays the same hardware information
+that the benchmark will display, but runs in a fraction of a second, whereas the benchmark can take from 19 s
+(quad 1.4 GHz Itainium 2 machine) to 14,906 s (for a very old 33.3 MHz Cray Y-MP). There are no options or
+arguments to \fBsysdata\fR
+.PP
+The information gathered on hardware and software both developed by the same company (i.e. Solaris on Suns, AIX
+on IBM RS/6000, IRIX on SGI, ... etc etc) is generally more informative than the free systems (Linux, NetBSD,
+OpenBSD, FreeBSD) where it is usually impossible to get much hardware information. 
+.SH EXAMPLES
+Here are some examples of the use of \fBsysdata\fR on a number of systems. The large number of examples is for
+my own use as much as anything, so I can keep track of the development of sysdata and see easily where it needs
+extending. Examples are presented for:
+.br
+.PP
+1) Sun Ultra 80 running Solaris 9
+.br
+2) HP C3000 running HP-UX 11
+.br
+3) SGI Octane running IRIX 6.5.16
+.br
+4) IBM RS/6000 running AIX 5.2
+.br
+5) Dec Alpha 600a Personal Workstation running Tru64 5.1B
+.br
+6) Cray Y-MP running UNICOS 9
+.br
+7) Sun SPARCstation 20 running NetBSD 1.6
+.br
+8) Sun SPARCstation 20 running OpenBSD 3.2
+.br
+9) Sun SPARCstation 20 running Debian Linux
+.br
+10) Sun SPARCstation 20 running Solaris 2.5  
+.br
+11) Generic PC with 350 MHz Pentium II running Redhat Linux 7.2
+.br
+.PP
+.br
+Here's the output from \fBsysdata\fR on these 11 systems. 
+.PP
+.br
+\fBe.g. 1 (Sun Ultra 80 running Solaris 9)\fR
+.br
+Hardware provider:    Sun_Microsystems
+.br
+Hardware platform:    SUNW,Ultra-80
+.br
+Machine:              sun4u
+.br
+Sysname:              SunOS
+.br
+Release:              5.9
+.br
+Version:              Generic_112233-06
+.br
+Nodename:             sparrow
+.br
+#CPUs supported:      4
+.br
+#CPUs online:         4
+.br
+CPU type:             sparcv9
+.br
+FPU type:             sparcv9
+.br
+Speed:                450 MHz
+.br
+RAM:                  4096 Mb
+.br
+L1 data cache         unknown kB
+.br
+L1 instruction cache: unknown kB
+.br
+L2 cache:             unknown kB
+.PP
+Here's an example on a HP 9000 series Visualize C3000 workstation, fitted with one 400 MHz PA-RISC 8500 CPU and 1.5 Gb of RAM
+.PP
+\fBe.g. 2 (HP 9000 series Visualize C3000)\fR
+.br
+Hardware provider:    HP      
+.br
+Hardware platform:    unknown
+.br
+Machine:              9000/785
+.br
+Sysname:              HP-UX
+.br
+Release:              B.11.00
+.br
+Version:              A
+.br
+Nodename:             robin
+.br
+#CPUs supported:      1
+.br
+#CPUs online:         1
+.br
+CPU type:             532
+.br
+FPU type:             1048577
+.br
+Speed:                400.0 MHz
+.br
+RAM:                  1536 Mb
+.br
+L1 data cache         unknown kb
+.br
+L1 instruction cache: unknown kb
+.br
+L2 cache:             unknown kb
+.PP
+.br
+Here's another example this time on an SGI Octane R10000 with 2 x 195 MHz processors. Note the CPU and FPU types
+reported at not the R10000 and R10010 that are reported by SGI's hinv. \fBsysdata\fR is not meant to replace other
+more sophisticated ways of obtaining system information (such as hinv on IRIX), but its data is useful to record for benchmarking purposes. 
+.br
+.PP
+\fBe.g. 3 (SGI Octane R1000) \fR
+.br
+Hardware provider:    SGI
+.br
+Hardware platform:    unknown
+.br
+Machine:              IP30
+.br
+Sysname:              IRIX64
+.br
+Release:              6.5
+.br
+Version:              04101931
+.br
+Nodename:             owl
+.br
+#CPUs supported:      unknown
+.br
+#CPUs online:         2 
+.br
+CPU type:             2343
+.br
+FPU type:             2304
+.br
+Speed:                195 MHz
+.br
+RAM:                  1024 Mb
+.br
+L1 data cache         32 kB
+.br
+L1 instruction cache: 32 kB
+.br
+L2 cache:             1024 kB
+.br
+.PP
+Here's an example using an IBM RS/6000 F50 with 4 x 332 MHz CPUs and 1 GB of RAM.
+.PP
+.br
+\fBe.g. 4 (IBM RS/6000 F50)\fR
+.br
+Hardware provider:    IBM
+.br
+Hardware platform:    unknown
+.br
+Machine:              000245984C00
+.br
+Sysname:              AIX
+.br
+Release:              2
+.br
+Version:              5
+.br
+Nodename:             starling
+.br
+#CPUs supported:      unknown
+.br
+#CPUs online:         4
+.br
+CPU type:             unknown
+.br
+FPU type:             unknown
+.br
+Speed:                unknown MHz
+.br
+RAM:                  1024 Mb
+.br
+L1 data cache         unknown kB
+.br
+L1 instruction cache: unknown kB
+.br
+L2 cache:             unknown kB
+.PP
+.br
+And here's an example from a single 599 MHz processor Dec Alpha 600a Personal Workstation running Tru64 5.1B
+.PP
+.br
+\fBe.g. 5 (Dec Alpha 600a Personal Workstation)\fR
+.br
+Hardware provider:    unknown
+.br
+Hardware platform:    Digital_Personal_WorkStation_600au
+.br
+Machine:              alpha
+.br
+Sysname:              OSF1
+.br
+Release:              V5.1
+.br
+Version:              2650
+.br
+Nodename:             dobermann.localhost.ntlworld.co
+.br
+#CPUs supported:      1
+.br
+#CPUs online:         1
+.br
+CPU type:             EV5.6_(21164A)
+.br
+FPU type:             unknown
+.br
+Speed:                599 MHz
+.br
+RAM:                  1024 Mb
+.br
+L1 data cache         unknown kb
+.br
+L1 instruction cache: unknown kb
+.br
+L2 cache:             unknown kb
+.PP
+.br
+Here's some data collected on a very old Cray Y-MP, which was introduced in 1991.
+.PP
+.br
+\fBe.g 6 (Cray Y-MP running UNICOS)\fR
+.PP
+.br
+Hardware provider:    Cray
+.br
+Hardware platform:    Y-MP
+.br
+Machine:              CRAY_Y-MP
+.br
+Sysname:              sn5176
+.br
+Release:              9.0.2.2
+.br
+Version:              sin.0
+.br
+Nodename:             sn5176
+.br
+#CPUs supported:      unknown
+.br
+#CPUs online:         4
+.br
+CPU type:             unknown
+.br
+FPU type:             unknown
+.br
+Speed:                33.3 MHz
+.br
+RAM:                  unknown Mb
+.br
+L1 data cache         unknown kb
+.br
+L1 instruction cache: unknown kb
+.br
+L2 cache:             unknown kb
+
+That is all the examples of commercial hardware running the operating systems made by the manufacturers of the
+hardware. The following are free UNIX versions. In these cases the data gathered is never as complete. In
+particular the amoumt of memory reported if often less than the real amount due to memory taken by the
+operating system (kernel etc). The number of processors the system can support is never available. 
+.PP
+Here's the first such non-commercial UNIX from a single processor Sun SPARCstation 20 running NetBSD 1.6. 
+.PP
+.br
+\fBe.g. 7 (Sun SPARCstation 20 running NetBSD 1.6)\fR
+.br
+Hardware provider:    unknown
+.br
+Hardware platform:    unknown
+.br
+Machine:              sparc
+.br
+Sysname:              NetBSD
+.br
+Release:              1.6
+.br
+Version:              NetBSD_1.6_(GENERIC)_#0:_Mon_Sep__9_08:2sparc
+.br
+Nodename:             blackbird
+.br
+#CPUs supported:      unknown
+.br
+#CPUs online:         1 
+.br
+CPU type:             rg:/autobuild/sparc/OBJ/autobuild/src/sys/arch/sparc/compile/GENERIC
+.br
+FPU type:             unknown
+.br
+Speed:                unknown MHz
+.br
+RAM:                  255 Mb
+.br
+L1 data cache         unknown kb
+.br
+L1 instruction cache: unknown kb
+.br
+L2 cache:             unknown kb
+.br
+.PP
+Here's data from a Sun SPARCstation 20 running OpenBSD 3.2. The machine has 320 Mb of RAM, not 318 Mb as
+indicated. The number of processors the system supports is reported as unknown, but should the system have been
+running Solaris 9, as in the example 1 (sparrow), then this information would have
+been determined, but it is not available under OpenBSD - or Solaris 2.5 for that matter.
+.PP
+.br
+\fBe.g. 8 (Sun SPARCstation 20 running OpenBSD 3.2)\fR
+.br
+Hardware provider:    unknown
+.br
+Hardware platform:    unknown
+.br
+Machine:              sparc
+.br
+Sysname:              OpenBSD
+.br
+Release:              3.2
+.br
+Version:              GENERIC#36
+.br
+Nodename:             crow.crow.localdomain
+.br
+#CPUs supported:      unknown
+.br
+#CPUs online:         1 
+.br
+CPU type:             unknown
+.br
+FPU type:             unknown
+.br
+Speed:                unknown MHz
+.br
+RAM:                  319 Mb
+.br
+L1 data cache         unknown kb
+.br
+L1 instruction cache: unknown kb
+.br
+L2 cache:             unknown kb
+.br
+The next machine is a Sun SPARCstation 20 running Debian Linux. The version of Debian is unknown, but clearly
+\fBsysdata\fR is unable to determine this.
+.PP
+.br
+\fBe.g. 9 (Sun SPARCstation 20 running Debian Linux)\fR
+.PP
+.br
+Hardware provider:    unknown
+.br
+Hardware platform:    unknown
+.br
+Machine:              sparc
+.br
+Sysname:              Linux
+.br
+Release:              2.2.20
+.br
+Version:              #1_Fri_Nov_16_15:48:02_EST_2001
+.br
+Nodename:             dove
+.br
+#CPUs supported:      unknown
+.br
+#CPUs online:         1
+.br
+CPU type:             unknown
+.br
+FPU type:             unknown
+.br
+Speed:                unknown MHz
+.br
+RAM:                  281 Mb
+.br
+L1 data cache         unknown kb
+.br
+L1 instruction cache: unknown kb
+.br
+L2 cache:             unknown kb
+
+Here's data from a Sun SPARCstation 20 running Solaris 2.5 (SunOS 5.5). The machine probably does have 352 Mb of RAM as
+reported. The number of processors the system supports is reported as unknown, but should the system have been
+running Solaris 9, as in the example 1 (sparrow), then this information would have been determined, but it is not available under Solaris 2.5. 
+.PP
+.br
+\fBe.g. 10 (Sun SPARCstation 20 Solaris 2.5)\fR
+.br
+Hardware provider:    Sun_Microsystems
+.br
+Hardware platform:    SUNW,SPARCstation-20
+.br
+Machine:              sun4m
+.br
+Sysname:              SunOS
+.br
+Release:              5.5
+.br
+Version:              Generic
+.br
+Nodename:             bluetit
+.br
+#CPUs supported:      unknown
+.br
+#CPUs online:         2
+.br
+CPU type:             sparc
+.br
+FPU type:             sparc
+.br
+Speed:                125 MHz
+.br
+RAM:                  352 Mb
+.br
+L1 data cache         unknown kb
+.br
+L1 instruction cache: unknown kb
+.br
+L2 cache:             unknown kb
+
+.br
+.PP
+Here's a standard PC, fitted with one processor
+.PP
+.br
+\fBe.g. 11 (350 MHz Pentium II PC running Redhat Linux)\fR 
+.br
+Hardware provider:    unknown
+.br
+Hardware platform:    unknown
+.br
+Machine:              i686
+.br
+Sysname:              Linux
+.br
+Release:              2.4.18-5
+.br
+Version:              #1_Mon_Jun_10_15:31:48_EDT_2002
+.br
+Nodename:             tiger
+.br
+#CPUs supported:      unknown
+.br
+#CPUs online:         1
+.br
+CPU type:             unknown
+.br
+FPU type:             unknown
+.br
+Speed:                unknown MHz
+.br
+RAM:                  123 Mb
+.br
+L1 data cache         unknown kb
+.br
+L1 instruction cache: unknown kb
+.br
+L2 cache:             unknown kb
+.br
+
+.SH FILES
+sysdata does not read/write any files. 
+.SH SEE ALSO
+atlc(1)
+.br
+create_bmp_for_circ_in_circ(1)
+.br
+create_bmp_for_circ_in_rect(1)
+.br
+create_bmp_for_microstrip_coupler(1)
+.br
+create_bmp_for_rect_cen_in_rect(1)
+.br
+create_bmp_for_rect_cen_in_rect_coupler(1)
+.br
+create_bmp_for_rect_in_circ(1)
+.br
+create_bmp_for_rect_in_rect(1)
+.br
+create_bmp_for_stripline_coupler(1)
+.br
+create_bmp_for_symmetrical_stripline(1)
+.br
+design_coupler(1)
+.br
+find_optimal_dimensions_for_microstrip_coupler(1)
+.br
+hinv - SGI's IRIX only.
+.br
+readbin(1)
+.P 
+.br
+http://atlc.sourceforge.net                - Home page 
+.br
+http://sourceforge.net/projects/atlc       - Download area
+.br
+atlc-X.Y.Z/docs/html-docs/index.html       - HTML docs
+.br
+atlc-X.Y.Z/docs/qex-december-1996/atlc.pdf - theory paper
+.br
+atlc-X.Y.Z/examples                        - examples
+.br
diff --git a/missing b/missing
new file mode 100644 (file)
index 0000000..dd58370
--- /dev/null
+++ b/missing
@@ -0,0 +1,336 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is 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, or (at your option)
+# any later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+run=:
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+case "$1" in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing 0.4 - GNU automake"
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+  aclocal*)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`${configure_ac}'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case "$f" in
+      *:*) touch_files="$touch_files "`echo "$f" |
+                                      sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake*)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+          sed 's/\.am$/.in/' |
+          while read f; do touch "$f"; done
+    ;;
+
+  autom4te)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+         system.  You might have modified some files without having the
+         proper tools for further handling them.
+         You can get \`$1Help2man' as part of \`Autoconf' from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
+    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    if test -f "$file"; then
+       touch $file
+    else
+       test -z "$file" || exec >$file
+       echo "#! /bin/sh"
+       echo "# Created by GNU Automake missing as a replacement of"
+       echo "#  $ $@"
+       echo "exit 0"
+       chmod +x $file
+       exit 1
+    fi
+    ;;
+
+  bison|yacc)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+       case "$LASTARG" in
+       *.y)
+           SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+           if [ -f "$SRCFILE" ]; then
+                cp "$SRCFILE" y.tab.c
+           fi
+           SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+           if [ -f "$SRCFILE" ]; then
+                cp "$SRCFILE" y.tab.h
+           fi
+         ;;
+       esac
+    fi
+    if [ ! -f y.tab.h ]; then
+       echo >y.tab.h
+    fi
+    if [ ! -f y.tab.c ]; then
+       echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex|flex)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+       case "$LASTARG" in
+       *.l)
+           SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+           if [ -f "$SRCFILE" ]; then
+                cp "$SRCFILE" lex.yy.c
+           fi
+         ;;
+       esac
+    fi
+    if [ ! -f lex.yy.c ]; then
+       echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  help2man)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+        you modified a dependency of a manual page.  You may need the
+        \`Help2man' package in order for those modifications to take
+        effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+       file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+    fi
+    if [ -f "$file" ]; then
+       touch $file
+    else
+       test -z "$file" || exec >$file
+       echo ".ab help2man is required to generate this page"
+       exit 1
+    fi
+    ;;
+
+  makeinfo)
+    if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
+       # We have makeinfo, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+    fi
+    touch $file
+    ;;
+
+  tar)
+    shift
+    if test -n "$run"; then
+      echo 1>&2 "ERROR: \`tar' requires --run"
+      exit 1
+    fi
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar ${1+"$@"} && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar ${1+"$@"} && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+       case "$firstarg" in
+       *o*)
+           firstarg=`echo "$firstarg" | sed s/o//`
+           tar "$firstarg" ${1+"$@"} && exit 0
+           ;;
+       esac
+       case "$firstarg" in
+       *h*)
+           firstarg=`echo "$firstarg" | sed s/h//`
+           tar "$firstarg" ${1+"$@"} && exit 0
+           ;;
+       esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+         system.  You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequirements for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
diff --git a/mkinstalldirs b/mkinstalldirs
new file mode 100644 (file)
index 0000000..d814670
--- /dev/null
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+# $Id: mkinstalldirs,v 1.1.1.1 2002/04/06 17:07:17 drkirkby Exp $
+
+errstatus=0
+
+for file
+do
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
+
+   pathcomp=
+   for d
+   do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
+
+     if test ! -d "$pathcomp"; then
+        echo "mkdir $pathcomp"
+
+        mkdir "$pathcomp" || lasterr=$?
+
+        if test ! -d "$pathcomp"; then
+         errstatus=$lasterr
+        fi
+     fi
+
+     pathcomp="$pathcomp/"
+   done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644 (file)
index 0000000..00d0d0d
--- /dev/null
@@ -0,0 +1,2 @@
+SUBDIRS = non_gui 
+EXTRA_DIST = README 
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644 (file)
index 0000000..09f9bea
--- /dev/null
@@ -0,0 +1,399 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+SUBDIRS = non_gui 
+EXTRA_DIST = README 
+subdir = src
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+       ps-recursive install-info-recursive uninstall-info-recursive \
+       all-recursive install-data-recursive install-exec-recursive \
+       installdirs-recursive install-recursive uninstall-recursive \
+       check-recursive installcheck-recursive
+DIST_COMMON = README Makefile.am Makefile.in
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  src/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
+
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$(top_distdir)" \
+               distdir=../$(distdir)/$$subdir \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+       clean-generic clean-recursive ctags ctags-recursive distclean \
+       distclean-generic distclean-recursive distclean-tags distdir \
+       dvi dvi-am dvi-recursive info info-am info-recursive install \
+       install-am install-data install-data-am install-data-recursive \
+       install-exec install-exec-am install-exec-recursive \
+       install-info install-info-am install-info-recursive install-man \
+       install-recursive install-strip installcheck installcheck-am \
+       installdirs installdirs-am installdirs-recursive \
+       maintainer-clean maintainer-clean-generic \
+       maintainer-clean-recursive mostlyclean mostlyclean-generic \
+       mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
+       ps-recursive tags tags-recursive uninstall uninstall-am \
+       uninstall-info-am uninstall-info-recursive uninstall-recursive
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/README b/src/README
new file mode 100644 (file)
index 0000000..273a904
--- /dev/null
@@ -0,0 +1,5 @@
+On 18/4/02 I moved all the sources from atlc-x.y.z/src to atlc-x.y.z/src/non_gui with
+the intention of starting on some graphical code in the src/gui directory. Nothing ever 
+happened to that, so on 3rd May 2003 the src/gui directory was removed. 
+
+Dr. David Kirkby 14/12/02
diff --git a/src/non_gui/Erdata.h b/src/non_gui/Erdata.h
new file mode 100644 (file)
index 0000000..d2838ae
--- /dev/null
@@ -0,0 +1,32 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* Note, the number of dilectrics defined must be set by the parameter 
+#define NUMBER_OF_ORDINARY_INTERIOR_POINTS_DEFINED ?? in definitions.h. There needs
+ot be a better way of setting this, but for now it will do */
+
+char *names[]={"Vacuum","Air","PTFE", "duroid_5880","Polyethelene", "Polystyrene", "PVC","Epoxy_resin", "FR4 PCB", "Fibreglass_PCB", "duroid_6006","duroid_6010","one_hundred"};
+double Ers[]={1.0,1.0006, 2.1,2.2,2.33,2.5,3.3,3.335,3.7,4.8,6.15,10.2,100.0};
+int colours[]={0xffffff,0xffcaca, 0x8235ef,0x8e8e8e,0xff00ff,0xffff00, 0xefcc1a,0xbc7f60,0xdff788,0x1aefb3,0x696969,0xdcdcdc, 0xd5a04d};
+
diff --git a/src/non_gui/Makefile.am b/src/non_gui/Makefile.am
new file mode 100644 (file)
index 0000000..e141b19
--- /dev/null
@@ -0,0 +1,172 @@
+bin_PROGRAMS = atlc create_bmp_for_rect_in_rect \
+create_any_bitmap \
+create_bmp_for_circ_in_circ create_bmp_for_rect_cen_in_rect \
+create_bmp_for_circ_in_rect create_bmp_for_rect_in_circ \
+readbin create_bmp_for_symmetrical_stripline \
+design_coupler create_bmp_for_stripline_coupler \
+create_bmp_for_microstrip_coupler \
+find_optimal_dimensions_for_microstrip_coupler \
+create_bmp_for_rect_cen_in_rect_coupler 
+
+atlc_SOURCES = atlc.c read_bitmap_file_headers.c \
+update_voltage_array.c \
+check_for_boundaries.c \
+memory.c setup_arrays.c \
+finite_difference_single_threaded.c \
+finite_difference_multi_threaded.c \
+usage_atlc.c \
+check_for_shorts.c bmp.h definitions.h Erdata.h \
+find_energy_per_metre.c \
+set_oddity_from_Greens_paper.c \
+get_file_pointer_with_right_filename.c \
+find_maximum_values.c calculate_colour_data.c find_electric_fields.c \
+get_options.c exit_with_msg_and_exit_code.c do_fd_calculation.c \
+swap_conductor_voltages.c print_copyright.c \
+print_data_for_directional_couplers.c \
+print_data_for_two_conductor_lines.c \
+set_data_to_sensible_starting_values.c \
+write_fields_for_two_conductor_lines.c \
+write_fields_for_directional_couplers.c \
+exit_codes.h definitions.h
+
+atlc_CPPFLAGS = -DNEED_MPI_CODE @PTHREAD_CFLAGS@
+atlc_LDADD = @PTHREAD_LIBS@ @LIBS@ 
+
+
+create_bmp_for_rect_in_rect_SOURCES = create_bmp_for_rect_in_rect.c \
+usage_create_bmp_for_rect_in_rect.c write_bitmap.c \
+get_Er1_and_Er2_colours.c  \
+convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_rect_in_rect.c \
+check_parameters_of_create_bmp_for_rect_in_rect.c \
+check_error.c get_options.c definitions.h \
+exit_with_msg_and_exit_code.c print_copyright.c \
+exit_codes.h definitions.h
+
+create_bmp_for_rect_in_rect_LDADD = @LIBS@ 
+
+create_any_bitmap_SOURCES = \
+create_any_bitmap.c \
+exit_with_msg_and_exit_code.c \
+definitions.h \
+exit_codes.h \
+usage_create_any_bitmap.c
+
+create_bmp_for_rect_cen_in_rect_coupler_SOURCES = \
+create_bmp_for_rect_cen_in_rect_coupler.c \
+usage_create_bmp_for_rect_cen_in_rect_coupler.c \
+get_options.c definitions.h memory.c \
+write_bitmap_out.c  \
+align_bitmap_image.c check_error.c exit_with_msg_and_exit_code.c \
+print_copyright.c \
+exit_codes.h definitions.h
+
+
+create_bmp_for_rect_cen_in_rect_SOURCES = create_bmp_for_rect_cen_in_rect.c \
+usage_create_bmp_for_rect_cen_in_rect.c \
+write_bitmap.c \
+get_Er1_and_Er2_colours.c \
+convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c \
+fill_rect_in_rect.c check_parameters_of_create_bmp_for_rect_in_rect.c \
+check_error.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c Erdata.h exit_codes.h
+create_bmp_for_rect_cen_in_rect_LDADD = @LIBS@ 
+create_bmp_for_microstrip_coupler_SOURCES = \
+usage_create_bmp_for_microstrip_coupler.c \
+create_bmp_for_microstrip_coupler.c get_Er1_and_Er2_colours.c \
+convert_create_bmp_for_coupled_microstrip_dimensions_to_integers.c \
+print_copyright.c  \
+write_bitmap_out.c memory.c \
+get_options.c check_parameters_of_create_bmp_for_microstrip_coupler.c \
+write_bitmap.c align_bitmap_image.c \
+fill_image_vector_for_create_bmp_for_microstrip_coupler.c \
+check_error.c exit_with_msg_and_exit_code.c \
+Erdata.h definitions.h exit_codes.h
+create_bmp_for_microstrip_coupler_LDADD = @LIBS@ 
+
+create_bmp_for_circ_in_circ_SOURCES = create_bmp_for_circ_in_circ.c \
+usage_create_bmp_for_circ_in_circ.c write_bitmap.c \
+get_Er1_and_Er2_colours.c \
+convert_create_bmp_for_circ_in_circ_dimensions_to_integers.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_circ_in_circ.c \
+check_parameters_of_create_bmp_for_circ_in_circ.c \
+check_error.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c Erdata.h
+create_bmp_for_circ_in_circ_LDADD = @LIBS@ 
+
+create_bmp_for_circ_in_rect_SOURCES = create_bmp_for_circ_in_rect.c \
+convert_create_bmp_for_circ_in_rect_dimensions_to_integers.c \
+usage_create_bmp_for_circ_in_rect.c write_bitmap.c \
+get_Er1_and_Er2_colours.c \
+check_parameters_of_create_bmp_for_circ_in_rect.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_circ_in_rect.c  \
+check_error.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c Erdata.h exit_codes.h
+create_bmp_for_circ_in_rect_LDADD = @LIBS@ 
+
+create_bmp_for_rect_in_circ_SOURCES = create_bmp_for_rect_in_circ.c \
+usage_create_bmp_for_rect_in_circ.c write_bitmap.c \
+get_Er1_and_Er2_colours.c \
+convert_create_bmp_for_rect_in_circ_dimensions_to_integers.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_rect_in_circ.c check_parameters_of_create_bmp_for_rect_in_circ.c \
+check_error.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c Erdata.h
+
+readbin_SOURCES = \
+readbin.c \
+get_options.c exit_with_msg_and_exit_code.c print_copyright.c \
+usage_readbin.c byteswap.c \
+memory.c 
+readbin_LDADD = @LIBS@ 
+
+create_bmp_for_symmetrical_stripline_SOURCES = \
+create_bmp_for_symmetrical_stripline.c \
+fill_image_vector_for_create_bmp_for_symmetrical_stripline.c \
+usage_create_bmp_for_symmetrical_stripline.c memory.c  write_bitmap_out.c \
+align_bitmap_image.c  \
+calculate_impedance_for_create_bmp_for_symmetrical_stripline.c \
+elliptic_integral.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c
+create_bmp_for_symmetrical_stripline_LDADD = @LIBS@ 
+
+create_bmp_for_stripline_coupler_SOURCES = \
+create_bmp_for_stripline_coupler.c usage_create_bmp_for_stripline_coupler.c \
+calculate_Zodd_and_Zeven.c get_options.c definitions.h \
+calculate_integer_values.c write_bitmap.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_make_coupler.c \
+check_error.c exit_with_msg_and_exit_code.c \
+get_Er1_and_Er2_colours.c print_copyright.c  \
+gsl_types.h \
+gsl_definitions.h \
+gsl_sf_ellint_Kcomp.c
+create_bmp_for_stripline_coupler_LDADD = @LIBS@ 
+create_bmp_for_stripline_coupler_CFLAGS = @CFLAGS@ 
+
+design_coupler_SOURCES = design_coupler.c usage_design_coupler.c \
+get_options.c print_copyright.c calculate_Zodd_and_Zeven.c \
+give_examples_of_using_design_coupler.c exit_with_msg_and_exit_code.c \
+gsl_types.h \
+gsl_definitions.h \
+gsl_sf_ellint_Kcomp.c
+design_coupler_LDADD = @LIBS@ 
+design_coupler_CFLAGS = @CFLAGS@ 
+
+find_optimal_dimensions_for_microstrip_coupler_SOURCES = \
+find_optimal_dimensions_for_microstrip_coupler.c \
+exit_with_msg_and_exit_code.c \
+usage_find_optimal_dimensions_for_microstrip_coupler.c \
+print_copyright.c get_options.c \
+memory.c \
+check_parameters_for_find_optimal_dimensions_for_microstrip_coupler.c 
+find_optimal_dimensions_for_microstrip_coupler_LDADD = @LIBS@
+
+EXTRA_DIST = finite_difference_mpi.c
+
diff --git a/src/non_gui/Makefile.in b/src/non_gui/Makefile.in
new file mode 100644 (file)
index 0000000..4994de0
--- /dev/null
@@ -0,0 +1,2169 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+bin_PROGRAMS = atlc create_bmp_for_rect_in_rect \
+create_any_bitmap \
+create_bmp_for_circ_in_circ create_bmp_for_rect_cen_in_rect \
+create_bmp_for_circ_in_rect create_bmp_for_rect_in_circ \
+readbin create_bmp_for_symmetrical_stripline \
+design_coupler create_bmp_for_stripline_coupler \
+create_bmp_for_microstrip_coupler \
+find_optimal_dimensions_for_microstrip_coupler \
+create_bmp_for_rect_cen_in_rect_coupler 
+
+
+atlc_SOURCES = atlc.c read_bitmap_file_headers.c \
+update_voltage_array.c \
+check_for_boundaries.c \
+memory.c setup_arrays.c \
+finite_difference_single_threaded.c \
+finite_difference_multi_threaded.c \
+usage_atlc.c \
+check_for_shorts.c bmp.h definitions.h Erdata.h \
+find_energy_per_metre.c \
+set_oddity_from_Greens_paper.c \
+get_file_pointer_with_right_filename.c \
+find_maximum_values.c calculate_colour_data.c find_electric_fields.c \
+get_options.c exit_with_msg_and_exit_code.c do_fd_calculation.c \
+swap_conductor_voltages.c print_copyright.c \
+print_data_for_directional_couplers.c \
+print_data_for_two_conductor_lines.c \
+set_data_to_sensible_starting_values.c \
+write_fields_for_two_conductor_lines.c \
+write_fields_for_directional_couplers.c \
+exit_codes.h definitions.h
+
+
+atlc_CPPFLAGS = -DNEED_MPI_CODE @PTHREAD_CFLAGS@
+atlc_LDADD = @PTHREAD_LIBS@ @LIBS@ 
+
+create_bmp_for_rect_in_rect_SOURCES = create_bmp_for_rect_in_rect.c \
+usage_create_bmp_for_rect_in_rect.c write_bitmap.c \
+get_Er1_and_Er2_colours.c  \
+convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_rect_in_rect.c \
+check_parameters_of_create_bmp_for_rect_in_rect.c \
+check_error.c get_options.c definitions.h \
+exit_with_msg_and_exit_code.c print_copyright.c \
+exit_codes.h definitions.h
+
+
+create_bmp_for_rect_in_rect_LDADD = @LIBS@ 
+
+create_any_bitmap_SOURCES = \
+create_any_bitmap.c \
+exit_with_msg_and_exit_code.c \
+definitions.h \
+exit_codes.h \
+usage_create_any_bitmap.c
+
+
+create_bmp_for_rect_cen_in_rect_coupler_SOURCES = \
+create_bmp_for_rect_cen_in_rect_coupler.c \
+usage_create_bmp_for_rect_cen_in_rect_coupler.c \
+get_options.c definitions.h memory.c \
+write_bitmap_out.c  \
+align_bitmap_image.c check_error.c exit_with_msg_and_exit_code.c \
+print_copyright.c \
+exit_codes.h definitions.h
+
+
+create_bmp_for_rect_cen_in_rect_SOURCES = create_bmp_for_rect_cen_in_rect.c \
+usage_create_bmp_for_rect_cen_in_rect.c \
+write_bitmap.c \
+get_Er1_and_Er2_colours.c \
+convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c \
+fill_rect_in_rect.c check_parameters_of_create_bmp_for_rect_in_rect.c \
+check_error.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c Erdata.h exit_codes.h
+
+create_bmp_for_rect_cen_in_rect_LDADD = @LIBS@ 
+
+create_bmp_for_microstrip_coupler_SOURCES = \
+usage_create_bmp_for_microstrip_coupler.c \
+create_bmp_for_microstrip_coupler.c get_Er1_and_Er2_colours.c \
+convert_create_bmp_for_coupled_microstrip_dimensions_to_integers.c \
+print_copyright.c  \
+write_bitmap_out.c memory.c \
+get_options.c check_parameters_of_create_bmp_for_microstrip_coupler.c \
+write_bitmap.c align_bitmap_image.c \
+fill_image_vector_for_create_bmp_for_microstrip_coupler.c \
+check_error.c exit_with_msg_and_exit_code.c \
+Erdata.h definitions.h exit_codes.h
+
+create_bmp_for_microstrip_coupler_LDADD = @LIBS@ 
+
+create_bmp_for_circ_in_circ_SOURCES = create_bmp_for_circ_in_circ.c \
+usage_create_bmp_for_circ_in_circ.c write_bitmap.c \
+get_Er1_and_Er2_colours.c \
+convert_create_bmp_for_circ_in_circ_dimensions_to_integers.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_circ_in_circ.c \
+check_parameters_of_create_bmp_for_circ_in_circ.c \
+check_error.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c Erdata.h
+
+create_bmp_for_circ_in_circ_LDADD = @LIBS@ 
+
+create_bmp_for_circ_in_rect_SOURCES = create_bmp_for_circ_in_rect.c \
+convert_create_bmp_for_circ_in_rect_dimensions_to_integers.c \
+usage_create_bmp_for_circ_in_rect.c write_bitmap.c \
+get_Er1_and_Er2_colours.c \
+check_parameters_of_create_bmp_for_circ_in_rect.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_circ_in_rect.c  \
+check_error.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c Erdata.h exit_codes.h
+
+create_bmp_for_circ_in_rect_LDADD = @LIBS@ 
+
+create_bmp_for_rect_in_circ_SOURCES = create_bmp_for_rect_in_circ.c \
+usage_create_bmp_for_rect_in_circ.c write_bitmap.c \
+get_Er1_and_Er2_colours.c \
+convert_create_bmp_for_rect_in_circ_dimensions_to_integers.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_rect_in_circ.c check_parameters_of_create_bmp_for_rect_in_circ.c \
+check_error.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c Erdata.h
+
+
+readbin_SOURCES = \
+readbin.c \
+get_options.c exit_with_msg_and_exit_code.c print_copyright.c \
+usage_readbin.c byteswap.c \
+memory.c 
+
+readbin_LDADD = @LIBS@ 
+
+create_bmp_for_symmetrical_stripline_SOURCES = \
+create_bmp_for_symmetrical_stripline.c \
+fill_image_vector_for_create_bmp_for_symmetrical_stripline.c \
+usage_create_bmp_for_symmetrical_stripline.c memory.c  write_bitmap_out.c \
+align_bitmap_image.c  \
+calculate_impedance_for_create_bmp_for_symmetrical_stripline.c \
+elliptic_integral.c get_options.c definitions.h exit_with_msg_and_exit_code.c \
+print_copyright.c
+
+create_bmp_for_symmetrical_stripline_LDADD = @LIBS@ 
+
+create_bmp_for_stripline_coupler_SOURCES = \
+create_bmp_for_stripline_coupler.c usage_create_bmp_for_stripline_coupler.c \
+calculate_Zodd_and_Zeven.c get_options.c definitions.h \
+calculate_integer_values.c write_bitmap.c \
+memory.c write_bitmap_out.c  \
+align_bitmap_image.c fill_make_coupler.c \
+check_error.c exit_with_msg_and_exit_code.c \
+get_Er1_and_Er2_colours.c print_copyright.c  \
+gsl_types.h \
+gsl_definitions.h \
+gsl_sf_ellint_Kcomp.c
+
+create_bmp_for_stripline_coupler_LDADD = @LIBS@ 
+create_bmp_for_stripline_coupler_CFLAGS = @CFLAGS@ 
+
+design_coupler_SOURCES = design_coupler.c usage_design_coupler.c \
+get_options.c print_copyright.c calculate_Zodd_and_Zeven.c \
+give_examples_of_using_design_coupler.c exit_with_msg_and_exit_code.c \
+gsl_types.h \
+gsl_definitions.h \
+gsl_sf_ellint_Kcomp.c
+
+design_coupler_LDADD = @LIBS@ 
+design_coupler_CFLAGS = @CFLAGS@ 
+
+find_optimal_dimensions_for_microstrip_coupler_SOURCES = \
+find_optimal_dimensions_for_microstrip_coupler.c \
+exit_with_msg_and_exit_code.c \
+usage_find_optimal_dimensions_for_microstrip_coupler.c \
+print_copyright.c get_options.c \
+memory.c \
+check_parameters_for_find_optimal_dimensions_for_microstrip_coupler.c 
+
+find_optimal_dimensions_for_microstrip_coupler_LDADD = @LIBS@
+
+EXTRA_DIST = finite_difference_mpi.c
+subdir = src/non_gui
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = atlc$(EXEEXT) create_bmp_for_rect_in_rect$(EXEEXT) \
+       create_any_bitmap$(EXEEXT) create_bmp_for_circ_in_circ$(EXEEXT) \
+       create_bmp_for_rect_cen_in_rect$(EXEEXT) \
+       create_bmp_for_circ_in_rect$(EXEEXT) \
+       create_bmp_for_rect_in_circ$(EXEEXT) readbin$(EXEEXT) \
+       create_bmp_for_symmetrical_stripline$(EXEEXT) \
+       design_coupler$(EXEEXT) \
+       create_bmp_for_stripline_coupler$(EXEEXT) \
+       create_bmp_for_microstrip_coupler$(EXEEXT) \
+       find_optimal_dimensions_for_microstrip_coupler$(EXEEXT) \
+       create_bmp_for_rect_cen_in_rect_coupler$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_atlc_OBJECTS = atlc-atlc.$(OBJEXT) \
+       atlc-read_bitmap_file_headers.$(OBJEXT) \
+       atlc-update_voltage_array.$(OBJEXT) \
+       atlc-check_for_boundaries.$(OBJEXT) atlc-memory.$(OBJEXT) \
+       atlc-setup_arrays.$(OBJEXT) \
+       atlc-finite_difference_single_threaded.$(OBJEXT) \
+       atlc-finite_difference_multi_threaded.$(OBJEXT) \
+       atlc-usage_atlc.$(OBJEXT) atlc-check_for_shorts.$(OBJEXT) \
+       atlc-find_energy_per_metre.$(OBJEXT) \
+       atlc-set_oddity_from_Greens_paper.$(OBJEXT) \
+       atlc-get_file_pointer_with_right_filename.$(OBJEXT) \
+       atlc-find_maximum_values.$(OBJEXT) \
+       atlc-calculate_colour_data.$(OBJEXT) \
+       atlc-find_electric_fields.$(OBJEXT) atlc-get_options.$(OBJEXT) \
+       atlc-exit_with_msg_and_exit_code.$(OBJEXT) \
+       atlc-do_fd_calculation.$(OBJEXT) \
+       atlc-swap_conductor_voltages.$(OBJEXT) \
+       atlc-print_copyright.$(OBJEXT) \
+       atlc-print_data_for_directional_couplers.$(OBJEXT) \
+       atlc-print_data_for_two_conductor_lines.$(OBJEXT) \
+       atlc-set_data_to_sensible_starting_values.$(OBJEXT) \
+       atlc-write_fields_for_two_conductor_lines.$(OBJEXT) \
+       atlc-write_fields_for_directional_couplers.$(OBJEXT)
+atlc_OBJECTS = $(am_atlc_OBJECTS)
+atlc_DEPENDENCIES =
+atlc_LDFLAGS =
+am_create_any_bitmap_OBJECTS = create_any_bitmap.$(OBJEXT) \
+       exit_with_msg_and_exit_code.$(OBJEXT) \
+       usage_create_any_bitmap.$(OBJEXT)
+create_any_bitmap_OBJECTS = $(am_create_any_bitmap_OBJECTS)
+create_any_bitmap_LDADD = $(LDADD)
+create_any_bitmap_DEPENDENCIES =
+create_any_bitmap_LDFLAGS =
+am_create_bmp_for_circ_in_circ_OBJECTS = \
+       create_bmp_for_circ_in_circ.$(OBJEXT) \
+       usage_create_bmp_for_circ_in_circ.$(OBJEXT) \
+       write_bitmap.$(OBJEXT) get_Er1_and_Er2_colours.$(OBJEXT) \
+       convert_create_bmp_for_circ_in_circ_dimensions_to_integers.$(OBJEXT) \
+       memory.$(OBJEXT) write_bitmap_out.$(OBJEXT) \
+       align_bitmap_image.$(OBJEXT) fill_circ_in_circ.$(OBJEXT) \
+       check_parameters_of_create_bmp_for_circ_in_circ.$(OBJEXT) \
+       check_error.$(OBJEXT) get_options.$(OBJEXT) \
+       exit_with_msg_and_exit_code.$(OBJEXT) print_copyright.$(OBJEXT)
+create_bmp_for_circ_in_circ_OBJECTS = \
+       $(am_create_bmp_for_circ_in_circ_OBJECTS)
+create_bmp_for_circ_in_circ_DEPENDENCIES =
+create_bmp_for_circ_in_circ_LDFLAGS =
+am_create_bmp_for_circ_in_rect_OBJECTS = \
+       create_bmp_for_circ_in_rect.$(OBJEXT) \
+       convert_create_bmp_for_circ_in_rect_dimensions_to_integers.$(OBJEXT) \
+       usage_create_bmp_for_circ_in_rect.$(OBJEXT) \
+       write_bitmap.$(OBJEXT) get_Er1_and_Er2_colours.$(OBJEXT) \
+       check_parameters_of_create_bmp_for_circ_in_rect.$(OBJEXT) \
+       memory.$(OBJEXT) write_bitmap_out.$(OBJEXT) \
+       align_bitmap_image.$(OBJEXT) fill_circ_in_rect.$(OBJEXT) \
+       check_error.$(OBJEXT) get_options.$(OBJEXT) \
+       exit_with_msg_and_exit_code.$(OBJEXT) print_copyright.$(OBJEXT)
+create_bmp_for_circ_in_rect_OBJECTS = \
+       $(am_create_bmp_for_circ_in_rect_OBJECTS)
+create_bmp_for_circ_in_rect_DEPENDENCIES =
+create_bmp_for_circ_in_rect_LDFLAGS =
+am_create_bmp_for_microstrip_coupler_OBJECTS = \
+       usage_create_bmp_for_microstrip_coupler.$(OBJEXT) \
+       create_bmp_for_microstrip_coupler.$(OBJEXT) \
+       get_Er1_and_Er2_colours.$(OBJEXT) \
+       convert_create_bmp_for_coupled_microstrip_dimensions_to_integers.$(OBJEXT) \
+       print_copyright.$(OBJEXT) write_bitmap_out.$(OBJEXT) \
+       memory.$(OBJEXT) get_options.$(OBJEXT) \
+       check_parameters_of_create_bmp_for_microstrip_coupler.$(OBJEXT) \
+       write_bitmap.$(OBJEXT) align_bitmap_image.$(OBJEXT) \
+       fill_image_vector_for_create_bmp_for_microstrip_coupler.$(OBJEXT) \
+       check_error.$(OBJEXT) exit_with_msg_and_exit_code.$(OBJEXT)
+create_bmp_for_microstrip_coupler_OBJECTS = \
+       $(am_create_bmp_for_microstrip_coupler_OBJECTS)
+create_bmp_for_microstrip_coupler_DEPENDENCIES =
+create_bmp_for_microstrip_coupler_LDFLAGS =
+am_create_bmp_for_rect_cen_in_rect_OBJECTS = \
+       create_bmp_for_rect_cen_in_rect.$(OBJEXT) \
+       usage_create_bmp_for_rect_cen_in_rect.$(OBJEXT) \
+       write_bitmap.$(OBJEXT) get_Er1_and_Er2_colours.$(OBJEXT) \
+       convert_create_bmp_for_rect_in_rect_dimensions_to_integers.$(OBJEXT) \
+       memory.$(OBJEXT) write_bitmap_out.$(OBJEXT) \
+       align_bitmap_image.$(OBJEXT) fill_rect_in_rect.$(OBJEXT) \
+       check_parameters_of_create_bmp_for_rect_in_rect.$(OBJEXT) \
+       check_error.$(OBJEXT) get_options.$(OBJEXT) \
+       exit_with_msg_and_exit_code.$(OBJEXT) print_copyright.$(OBJEXT)
+create_bmp_for_rect_cen_in_rect_OBJECTS = \
+       $(am_create_bmp_for_rect_cen_in_rect_OBJECTS)
+create_bmp_for_rect_cen_in_rect_DEPENDENCIES =
+create_bmp_for_rect_cen_in_rect_LDFLAGS =
+am_create_bmp_for_rect_cen_in_rect_coupler_OBJECTS = \
+       create_bmp_for_rect_cen_in_rect_coupler.$(OBJEXT) \
+       usage_create_bmp_for_rect_cen_in_rect_coupler.$(OBJEXT) \
+       get_options.$(OBJEXT) memory.$(OBJEXT) \
+       write_bitmap_out.$(OBJEXT) align_bitmap_image.$(OBJEXT) \
+       check_error.$(OBJEXT) exit_with_msg_and_exit_code.$(OBJEXT) \
+       print_copyright.$(OBJEXT)
+create_bmp_for_rect_cen_in_rect_coupler_OBJECTS = \
+       $(am_create_bmp_for_rect_cen_in_rect_coupler_OBJECTS)
+create_bmp_for_rect_cen_in_rect_coupler_LDADD = $(LDADD)
+create_bmp_for_rect_cen_in_rect_coupler_DEPENDENCIES =
+create_bmp_for_rect_cen_in_rect_coupler_LDFLAGS =
+am_create_bmp_for_rect_in_circ_OBJECTS = \
+       create_bmp_for_rect_in_circ.$(OBJEXT) \
+       usage_create_bmp_for_rect_in_circ.$(OBJEXT) \
+       write_bitmap.$(OBJEXT) get_Er1_and_Er2_colours.$(OBJEXT) \
+       convert_create_bmp_for_rect_in_circ_dimensions_to_integers.$(OBJEXT) \
+       memory.$(OBJEXT) write_bitmap_out.$(OBJEXT) \
+       align_bitmap_image.$(OBJEXT) fill_rect_in_circ.$(OBJEXT) \
+       check_parameters_of_create_bmp_for_rect_in_circ.$(OBJEXT) \
+       check_error.$(OBJEXT) get_options.$(OBJEXT) \
+       exit_with_msg_and_exit_code.$(OBJEXT) print_copyright.$(OBJEXT)
+create_bmp_for_rect_in_circ_OBJECTS = \
+       $(am_create_bmp_for_rect_in_circ_OBJECTS)
+create_bmp_for_rect_in_circ_LDADD = $(LDADD)
+create_bmp_for_rect_in_circ_DEPENDENCIES =
+create_bmp_for_rect_in_circ_LDFLAGS =
+am_create_bmp_for_rect_in_rect_OBJECTS = \
+       create_bmp_for_rect_in_rect.$(OBJEXT) \
+       usage_create_bmp_for_rect_in_rect.$(OBJEXT) \
+       write_bitmap.$(OBJEXT) get_Er1_and_Er2_colours.$(OBJEXT) \
+       convert_create_bmp_for_rect_in_rect_dimensions_to_integers.$(OBJEXT) \
+       memory.$(OBJEXT) write_bitmap_out.$(OBJEXT) \
+       align_bitmap_image.$(OBJEXT) fill_rect_in_rect.$(OBJEXT) \
+       check_parameters_of_create_bmp_for_rect_in_rect.$(OBJEXT) \
+       check_error.$(OBJEXT) get_options.$(OBJEXT) \
+       exit_with_msg_and_exit_code.$(OBJEXT) print_copyright.$(OBJEXT)
+create_bmp_for_rect_in_rect_OBJECTS = \
+       $(am_create_bmp_for_rect_in_rect_OBJECTS)
+create_bmp_for_rect_in_rect_DEPENDENCIES =
+create_bmp_for_rect_in_rect_LDFLAGS =
+am_create_bmp_for_stripline_coupler_OBJECTS = \
+       create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-get_options.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-calculate_integer_values.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-write_bitmap.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-memory.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-write_bitmap_out.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-align_bitmap_image.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-fill_make_coupler.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-check_error.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-print_copyright.$(OBJEXT) \
+       create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.$(OBJEXT)
+create_bmp_for_stripline_coupler_OBJECTS = \
+       $(am_create_bmp_for_stripline_coupler_OBJECTS)
+create_bmp_for_stripline_coupler_DEPENDENCIES =
+create_bmp_for_stripline_coupler_LDFLAGS =
+am_create_bmp_for_symmetrical_stripline_OBJECTS = \
+       create_bmp_for_symmetrical_stripline.$(OBJEXT) \
+       fill_image_vector_for_create_bmp_for_symmetrical_stripline.$(OBJEXT) \
+       usage_create_bmp_for_symmetrical_stripline.$(OBJEXT) \
+       memory.$(OBJEXT) write_bitmap_out.$(OBJEXT) \
+       align_bitmap_image.$(OBJEXT) \
+       calculate_impedance_for_create_bmp_for_symmetrical_stripline.$(OBJEXT) \
+       elliptic_integral.$(OBJEXT) get_options.$(OBJEXT) \
+       exit_with_msg_and_exit_code.$(OBJEXT) print_copyright.$(OBJEXT)
+create_bmp_for_symmetrical_stripline_OBJECTS = \
+       $(am_create_bmp_for_symmetrical_stripline_OBJECTS)
+create_bmp_for_symmetrical_stripline_DEPENDENCIES =
+create_bmp_for_symmetrical_stripline_LDFLAGS =
+am_design_coupler_OBJECTS = design_coupler-design_coupler.$(OBJEXT) \
+       design_coupler-usage_design_coupler.$(OBJEXT) \
+       design_coupler-get_options.$(OBJEXT) \
+       design_coupler-print_copyright.$(OBJEXT) \
+       design_coupler-calculate_Zodd_and_Zeven.$(OBJEXT) \
+       design_coupler-give_examples_of_using_design_coupler.$(OBJEXT) \
+       design_coupler-exit_with_msg_and_exit_code.$(OBJEXT) \
+       design_coupler-gsl_sf_ellint_Kcomp.$(OBJEXT)
+design_coupler_OBJECTS = $(am_design_coupler_OBJECTS)
+design_coupler_DEPENDENCIES =
+design_coupler_LDFLAGS =
+am_find_optimal_dimensions_for_microstrip_coupler_OBJECTS = \
+       find_optimal_dimensions_for_microstrip_coupler.$(OBJEXT) \
+       exit_with_msg_and_exit_code.$(OBJEXT) \
+       usage_find_optimal_dimensions_for_microstrip_coupler.$(OBJEXT) \
+       print_copyright.$(OBJEXT) get_options.$(OBJEXT) \
+       memory.$(OBJEXT) \
+       check_parameters_for_find_optimal_dimensions_for_microstrip_coupler.$(OBJEXT)
+find_optimal_dimensions_for_microstrip_coupler_OBJECTS = \
+       $(am_find_optimal_dimensions_for_microstrip_coupler_OBJECTS)
+find_optimal_dimensions_for_microstrip_coupler_DEPENDENCIES =
+find_optimal_dimensions_for_microstrip_coupler_LDFLAGS =
+am_readbin_OBJECTS = readbin.$(OBJEXT) get_options.$(OBJEXT) \
+       exit_with_msg_and_exit_code.$(OBJEXT) print_copyright.$(OBJEXT) \
+       usage_readbin.$(OBJEXT) byteswap.$(OBJEXT) memory.$(OBJEXT)
+readbin_OBJECTS = $(am_readbin_OBJECTS)
+readbin_DEPENDENCIES =
+readbin_LDFLAGS =
+
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/align_bitmap_image.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-atlc.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-calculate_colour_data.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-check_for_boundaries.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-check_for_shorts.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-do_fd_calculation.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-find_electric_fields.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-find_energy_per_metre.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-find_maximum_values.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-finite_difference_multi_threaded.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-finite_difference_single_threaded.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-get_options.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-memory.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-print_copyright.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-print_data_for_directional_couplers.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-read_bitmap_file_headers.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-setup_arrays.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-swap_conductor_voltages.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-update_voltage_array.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-usage_atlc.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-write_fields_for_directional_couplers.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/byteswap.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/calculate_impedance_for_create_bmp_for_symmetrical_stripline.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/check_error.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/check_parameters_for_find_optimal_dimensions_for_microstrip_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/check_parameters_of_create_bmp_for_circ_in_circ.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/check_parameters_of_create_bmp_for_circ_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/check_parameters_of_create_bmp_for_microstrip_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/check_parameters_of_create_bmp_for_rect_in_circ.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/check_parameters_of_create_bmp_for_rect_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/convert_create_bmp_for_circ_in_circ_dimensions_to_integers.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/convert_create_bmp_for_circ_in_rect_dimensions_to_integers.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/convert_create_bmp_for_coupled_microstrip_dimensions_to_integers.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/convert_create_bmp_for_rect_in_circ_dimensions_to_integers.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/convert_create_bmp_for_rect_in_rect_dimensions_to_integers.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_any_bitmap.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_circ_in_circ.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_circ_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_microstrip_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_rect_cen_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_rect_cen_in_rect_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_rect_in_circ.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_rect_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/create_bmp_for_symmetrical_stripline.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/design_coupler-design_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/design_coupler-get_options.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/design_coupler-print_copyright.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/design_coupler-usage_design_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/elliptic_integral.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/exit_with_msg_and_exit_code.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/fill_circ_in_circ.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/fill_circ_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/fill_image_vector_for_create_bmp_for_microstrip_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/fill_image_vector_for_create_bmp_for_symmetrical_stripline.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/fill_rect_in_circ.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/fill_rect_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/find_optimal_dimensions_for_microstrip_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/get_Er1_and_Er2_colours.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/get_options.Po ./$(DEPDIR)/memory.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/print_copyright.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/readbin.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_create_any_bitmap.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_create_bmp_for_circ_in_circ.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_create_bmp_for_circ_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_create_bmp_for_microstrip_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_create_bmp_for_rect_cen_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_create_bmp_for_rect_cen_in_rect_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_create_bmp_for_rect_in_circ.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_create_bmp_for_rect_in_rect.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_create_bmp_for_symmetrical_stripline.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_find_optimal_dimensions_for_microstrip_coupler.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_readbin.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/write_bitmap.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/write_bitmap_out.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(atlc_SOURCES) $(create_any_bitmap_SOURCES) \
+       $(create_bmp_for_circ_in_circ_SOURCES) \
+       $(create_bmp_for_circ_in_rect_SOURCES) \
+       $(create_bmp_for_microstrip_coupler_SOURCES) \
+       $(create_bmp_for_rect_cen_in_rect_SOURCES) \
+       $(create_bmp_for_rect_cen_in_rect_coupler_SOURCES) \
+       $(create_bmp_for_rect_in_circ_SOURCES) \
+       $(create_bmp_for_rect_in_rect_SOURCES) \
+       $(create_bmp_for_stripline_coupler_SOURCES) \
+       $(create_bmp_for_symmetrical_stripline_SOURCES) \
+       $(design_coupler_SOURCES) \
+       $(find_optimal_dimensions_for_microstrip_coupler_SOURCES) \
+       $(readbin_SOURCES)
+DIST_COMMON = README Makefile.am Makefile.in
+SOURCES = $(atlc_SOURCES) $(create_any_bitmap_SOURCES) $(create_bmp_for_circ_in_circ_SOURCES) $(create_bmp_for_circ_in_rect_SOURCES) $(create_bmp_for_microstrip_coupler_SOURCES) $(create_bmp_for_rect_cen_in_rect_SOURCES) $(create_bmp_for_rect_cen_in_rect_coupler_SOURCES) $(create_bmp_for_rect_in_circ_SOURCES) $(create_bmp_for_rect_in_rect_SOURCES) $(create_bmp_for_stripline_coupler_SOURCES) $(create_bmp_for_symmetrical_stripline_SOURCES) $(design_coupler_SOURCES) $(find_optimal_dimensions_for_microstrip_coupler_SOURCES) $(readbin_SOURCES)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  src/non_gui/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(bindir)
+       @list='$(bin_PROGRAMS)'; for p in $$list; do \
+         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+         if test -f $$p \
+         ; then \
+           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \
+         else :; fi; \
+       done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; for p in $$list; do \
+         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+         echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+         rm -f $(DESTDIR)$(bindir)/$$f; \
+       done
+
+clean-binPROGRAMS:
+       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+atlc-atlc.$(OBJEXT): atlc.c
+atlc-read_bitmap_file_headers.$(OBJEXT): read_bitmap_file_headers.c
+atlc-update_voltage_array.$(OBJEXT): update_voltage_array.c
+atlc-check_for_boundaries.$(OBJEXT): check_for_boundaries.c
+atlc-memory.$(OBJEXT): memory.c
+atlc-setup_arrays.$(OBJEXT): setup_arrays.c
+atlc-finite_difference_single_threaded.$(OBJEXT): \
+       finite_difference_single_threaded.c
+atlc-finite_difference_multi_threaded.$(OBJEXT): \
+       finite_difference_multi_threaded.c
+atlc-usage_atlc.$(OBJEXT): usage_atlc.c
+atlc-check_for_shorts.$(OBJEXT): check_for_shorts.c
+atlc-find_energy_per_metre.$(OBJEXT): find_energy_per_metre.c
+atlc-set_oddity_from_Greens_paper.$(OBJEXT): \
+       set_oddity_from_Greens_paper.c
+atlc-get_file_pointer_with_right_filename.$(OBJEXT): \
+       get_file_pointer_with_right_filename.c
+atlc-find_maximum_values.$(OBJEXT): find_maximum_values.c
+atlc-calculate_colour_data.$(OBJEXT): calculate_colour_data.c
+atlc-find_electric_fields.$(OBJEXT): find_electric_fields.c
+atlc-get_options.$(OBJEXT): get_options.c
+atlc-exit_with_msg_and_exit_code.$(OBJEXT): \
+       exit_with_msg_and_exit_code.c
+atlc-do_fd_calculation.$(OBJEXT): do_fd_calculation.c
+atlc-swap_conductor_voltages.$(OBJEXT): swap_conductor_voltages.c
+atlc-print_copyright.$(OBJEXT): print_copyright.c
+atlc-print_data_for_directional_couplers.$(OBJEXT): \
+       print_data_for_directional_couplers.c
+atlc-print_data_for_two_conductor_lines.$(OBJEXT): \
+       print_data_for_two_conductor_lines.c
+atlc-set_data_to_sensible_starting_values.$(OBJEXT): \
+       set_data_to_sensible_starting_values.c
+atlc-write_fields_for_two_conductor_lines.$(OBJEXT): \
+       write_fields_for_two_conductor_lines.c
+atlc-write_fields_for_directional_couplers.$(OBJEXT): \
+       write_fields_for_directional_couplers.c
+atlc$(EXEEXT): $(atlc_OBJECTS) $(atlc_DEPENDENCIES) 
+       @rm -f atlc$(EXEEXT)
+       $(LINK) $(atlc_LDFLAGS) $(atlc_OBJECTS) $(atlc_LDADD) $(LIBS)
+create_any_bitmap$(EXEEXT): $(create_any_bitmap_OBJECTS) $(create_any_bitmap_DEPENDENCIES) 
+       @rm -f create_any_bitmap$(EXEEXT)
+       $(LINK) $(create_any_bitmap_LDFLAGS) $(create_any_bitmap_OBJECTS) $(create_any_bitmap_LDADD) $(LIBS)
+create_bmp_for_circ_in_circ$(EXEEXT): $(create_bmp_for_circ_in_circ_OBJECTS) $(create_bmp_for_circ_in_circ_DEPENDENCIES) 
+       @rm -f create_bmp_for_circ_in_circ$(EXEEXT)
+       $(LINK) $(create_bmp_for_circ_in_circ_LDFLAGS) $(create_bmp_for_circ_in_circ_OBJECTS) $(create_bmp_for_circ_in_circ_LDADD) $(LIBS)
+create_bmp_for_circ_in_rect$(EXEEXT): $(create_bmp_for_circ_in_rect_OBJECTS) $(create_bmp_for_circ_in_rect_DEPENDENCIES) 
+       @rm -f create_bmp_for_circ_in_rect$(EXEEXT)
+       $(LINK) $(create_bmp_for_circ_in_rect_LDFLAGS) $(create_bmp_for_circ_in_rect_OBJECTS) $(create_bmp_for_circ_in_rect_LDADD) $(LIBS)
+create_bmp_for_microstrip_coupler$(EXEEXT): $(create_bmp_for_microstrip_coupler_OBJECTS) $(create_bmp_for_microstrip_coupler_DEPENDENCIES) 
+       @rm -f create_bmp_for_microstrip_coupler$(EXEEXT)
+       $(LINK) $(create_bmp_for_microstrip_coupler_LDFLAGS) $(create_bmp_for_microstrip_coupler_OBJECTS) $(create_bmp_for_microstrip_coupler_LDADD) $(LIBS)
+create_bmp_for_rect_cen_in_rect$(EXEEXT): $(create_bmp_for_rect_cen_in_rect_OBJECTS) $(create_bmp_for_rect_cen_in_rect_DEPENDENCIES) 
+       @rm -f create_bmp_for_rect_cen_in_rect$(EXEEXT)
+       $(LINK) $(create_bmp_for_rect_cen_in_rect_LDFLAGS) $(create_bmp_for_rect_cen_in_rect_OBJECTS) $(create_bmp_for_rect_cen_in_rect_LDADD) $(LIBS)
+create_bmp_for_rect_cen_in_rect_coupler$(EXEEXT): $(create_bmp_for_rect_cen_in_rect_coupler_OBJECTS) $(create_bmp_for_rect_cen_in_rect_coupler_DEPENDENCIES) 
+       @rm -f create_bmp_for_rect_cen_in_rect_coupler$(EXEEXT)
+       $(LINK) $(create_bmp_for_rect_cen_in_rect_coupler_LDFLAGS) $(create_bmp_for_rect_cen_in_rect_coupler_OBJECTS) $(create_bmp_for_rect_cen_in_rect_coupler_LDADD) $(LIBS)
+create_bmp_for_rect_in_circ$(EXEEXT): $(create_bmp_for_rect_in_circ_OBJECTS) $(create_bmp_for_rect_in_circ_DEPENDENCIES) 
+       @rm -f create_bmp_for_rect_in_circ$(EXEEXT)
+       $(LINK) $(create_bmp_for_rect_in_circ_LDFLAGS) $(create_bmp_for_rect_in_circ_OBJECTS) $(create_bmp_for_rect_in_circ_LDADD) $(LIBS)
+create_bmp_for_rect_in_rect$(EXEEXT): $(create_bmp_for_rect_in_rect_OBJECTS) $(create_bmp_for_rect_in_rect_DEPENDENCIES) 
+       @rm -f create_bmp_for_rect_in_rect$(EXEEXT)
+       $(LINK) $(create_bmp_for_rect_in_rect_LDFLAGS) $(create_bmp_for_rect_in_rect_OBJECTS) $(create_bmp_for_rect_in_rect_LDADD) $(LIBS)
+create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.$(OBJEXT): \
+       create_bmp_for_stripline_coupler.c
+create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.$(OBJEXT): \
+       usage_create_bmp_for_stripline_coupler.c
+create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.$(OBJEXT): \
+       calculate_Zodd_and_Zeven.c
+create_bmp_for_stripline_coupler-get_options.$(OBJEXT): get_options.c
+create_bmp_for_stripline_coupler-calculate_integer_values.$(OBJEXT): \
+       calculate_integer_values.c
+create_bmp_for_stripline_coupler-write_bitmap.$(OBJEXT): write_bitmap.c
+create_bmp_for_stripline_coupler-memory.$(OBJEXT): memory.c
+create_bmp_for_stripline_coupler-write_bitmap_out.$(OBJEXT): \
+       write_bitmap_out.c
+create_bmp_for_stripline_coupler-align_bitmap_image.$(OBJEXT): \
+       align_bitmap_image.c
+create_bmp_for_stripline_coupler-fill_make_coupler.$(OBJEXT): \
+       fill_make_coupler.c
+create_bmp_for_stripline_coupler-check_error.$(OBJEXT): check_error.c
+create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.$(OBJEXT): \
+       exit_with_msg_and_exit_code.c
+create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.$(OBJEXT): \
+       get_Er1_and_Er2_colours.c
+create_bmp_for_stripline_coupler-print_copyright.$(OBJEXT): \
+       print_copyright.c
+create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.$(OBJEXT): \
+       gsl_sf_ellint_Kcomp.c
+create_bmp_for_stripline_coupler$(EXEEXT): $(create_bmp_for_stripline_coupler_OBJECTS) $(create_bmp_for_stripline_coupler_DEPENDENCIES) 
+       @rm -f create_bmp_for_stripline_coupler$(EXEEXT)
+       $(LINK) $(create_bmp_for_stripline_coupler_LDFLAGS) $(create_bmp_for_stripline_coupler_OBJECTS) $(create_bmp_for_stripline_coupler_LDADD) $(LIBS)
+create_bmp_for_symmetrical_stripline$(EXEEXT): $(create_bmp_for_symmetrical_stripline_OBJECTS) $(create_bmp_for_symmetrical_stripline_DEPENDENCIES) 
+       @rm -f create_bmp_for_symmetrical_stripline$(EXEEXT)
+       $(LINK) $(create_bmp_for_symmetrical_stripline_LDFLAGS) $(create_bmp_for_symmetrical_stripline_OBJECTS) $(create_bmp_for_symmetrical_stripline_LDADD) $(LIBS)
+design_coupler-design_coupler.$(OBJEXT): design_coupler.c
+design_coupler-usage_design_coupler.$(OBJEXT): usage_design_coupler.c
+design_coupler-get_options.$(OBJEXT): get_options.c
+design_coupler-print_copyright.$(OBJEXT): print_copyright.c
+design_coupler-calculate_Zodd_and_Zeven.$(OBJEXT): \
+       calculate_Zodd_and_Zeven.c
+design_coupler-give_examples_of_using_design_coupler.$(OBJEXT): \
+       give_examples_of_using_design_coupler.c
+design_coupler-exit_with_msg_and_exit_code.$(OBJEXT): \
+       exit_with_msg_and_exit_code.c
+design_coupler-gsl_sf_ellint_Kcomp.$(OBJEXT): gsl_sf_ellint_Kcomp.c
+design_coupler$(EXEEXT): $(design_coupler_OBJECTS) $(design_coupler_DEPENDENCIES) 
+       @rm -f design_coupler$(EXEEXT)
+       $(LINK) $(design_coupler_LDFLAGS) $(design_coupler_OBJECTS) $(design_coupler_LDADD) $(LIBS)
+find_optimal_dimensions_for_microstrip_coupler$(EXEEXT): $(find_optimal_dimensions_for_microstrip_coupler_OBJECTS) $(find_optimal_dimensions_for_microstrip_coupler_DEPENDENCIES) 
+       @rm -f find_optimal_dimensions_for_microstrip_coupler$(EXEEXT)
+       $(LINK) $(find_optimal_dimensions_for_microstrip_coupler_LDFLAGS) $(find_optimal_dimensions_for_microstrip_coupler_OBJECTS) $(find_optimal_dimensions_for_microstrip_coupler_LDADD) $(LIBS)
+readbin$(EXEEXT): $(readbin_OBJECTS) $(readbin_DEPENDENCIES) 
+       @rm -f readbin$(EXEEXT)
+       $(LINK) $(readbin_LDFLAGS) $(readbin_OBJECTS) $(readbin_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/align_bitmap_image.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-atlc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-calculate_colour_data.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-check_for_boundaries.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-check_for_shorts.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-do_fd_calculation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-find_electric_fields.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-find_energy_per_metre.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-find_maximum_values.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-finite_difference_multi_threaded.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-finite_difference_single_threaded.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-get_options.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-memory.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-print_copyright.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-print_data_for_directional_couplers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-read_bitmap_file_headers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-setup_arrays.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-swap_conductor_voltages.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-update_voltage_array.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-usage_atlc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-write_fields_for_directional_couplers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/byteswap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calculate_impedance_for_create_bmp_for_symmetrical_stripline.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_error.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_parameters_for_find_optimal_dimensions_for_microstrip_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_parameters_of_create_bmp_for_circ_in_circ.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_parameters_of_create_bmp_for_circ_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_parameters_of_create_bmp_for_microstrip_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_parameters_of_create_bmp_for_rect_in_circ.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_parameters_of_create_bmp_for_rect_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convert_create_bmp_for_circ_in_circ_dimensions_to_integers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convert_create_bmp_for_circ_in_rect_dimensions_to_integers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convert_create_bmp_for_coupled_microstrip_dimensions_to_integers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convert_create_bmp_for_rect_in_circ_dimensions_to_integers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convert_create_bmp_for_rect_in_rect_dimensions_to_integers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_any_bitmap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_circ_in_circ.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_circ_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_microstrip_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_rect_cen_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_rect_cen_in_rect_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_rect_in_circ.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_rect_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_bmp_for_symmetrical_stripline.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/design_coupler-design_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/design_coupler-get_options.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/design_coupler-print_copyright.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/design_coupler-usage_design_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elliptic_integral.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exit_with_msg_and_exit_code.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill_circ_in_circ.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill_circ_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill_image_vector_for_create_bmp_for_microstrip_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill_image_vector_for_create_bmp_for_symmetrical_stripline.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill_rect_in_circ.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill_rect_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/find_optimal_dimensions_for_microstrip_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_Er1_and_Er2_colours.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_options.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_copyright.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readbin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_create_any_bitmap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_create_bmp_for_circ_in_circ.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_create_bmp_for_circ_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_create_bmp_for_microstrip_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_create_bmp_for_rect_cen_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_create_bmp_for_rect_cen_in_rect_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_create_bmp_for_rect_in_circ.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_create_bmp_for_rect_in_rect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_create_bmp_for_symmetrical_stripline.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_find_optimal_dimensions_for_microstrip_coupler.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_readbin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write_bitmap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write_bitmap_out.Po@am__quote@
+
+distclean-depend:
+       -rm -rf ./$(DEPDIR)
+
+.c.o:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@     -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@     -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`
+
+atlc-atlc.o: atlc.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-atlc.o -MD -MP -MF "$(DEPDIR)/atlc-atlc.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-atlc.o `test -f 'atlc.c' || echo '$(srcdir)/'`atlc.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-atlc.Tpo" "$(DEPDIR)/atlc-atlc.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-atlc.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='atlc.c' object='atlc-atlc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-atlc.Po' tmpdepfile='$(DEPDIR)/atlc-atlc.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-atlc.o `test -f 'atlc.c' || echo '$(srcdir)/'`atlc.c
+
+atlc-atlc.obj: atlc.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-atlc.obj -MD -MP -MF "$(DEPDIR)/atlc-atlc.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-atlc.obj `if test -f 'atlc.c'; then $(CYGPATH_W) 'atlc.c'; else $(CYGPATH_W) '$(srcdir)/atlc.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-atlc.Tpo" "$(DEPDIR)/atlc-atlc.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-atlc.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='atlc.c' object='atlc-atlc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-atlc.Po' tmpdepfile='$(DEPDIR)/atlc-atlc.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-atlc.obj `if test -f 'atlc.c'; then $(CYGPATH_W) 'atlc.c'; else $(CYGPATH_W) '$(srcdir)/atlc.c'`
+
+atlc-read_bitmap_file_headers.o: read_bitmap_file_headers.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-read_bitmap_file_headers.o -MD -MP -MF "$(DEPDIR)/atlc-read_bitmap_file_headers.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-read_bitmap_file_headers.o `test -f 'read_bitmap_file_headers.c' || echo '$(srcdir)/'`read_bitmap_file_headers.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-read_bitmap_file_headers.Tpo" "$(DEPDIR)/atlc-read_bitmap_file_headers.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-read_bitmap_file_headers.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='read_bitmap_file_headers.c' object='atlc-read_bitmap_file_headers.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-read_bitmap_file_headers.Po' tmpdepfile='$(DEPDIR)/atlc-read_bitmap_file_headers.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-read_bitmap_file_headers.o `test -f 'read_bitmap_file_headers.c' || echo '$(srcdir)/'`read_bitmap_file_headers.c
+
+atlc-read_bitmap_file_headers.obj: read_bitmap_file_headers.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-read_bitmap_file_headers.obj -MD -MP -MF "$(DEPDIR)/atlc-read_bitmap_file_headers.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-read_bitmap_file_headers.obj `if test -f 'read_bitmap_file_headers.c'; then $(CYGPATH_W) 'read_bitmap_file_headers.c'; else $(CYGPATH_W) '$(srcdir)/read_bitmap_file_headers.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-read_bitmap_file_headers.Tpo" "$(DEPDIR)/atlc-read_bitmap_file_headers.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-read_bitmap_file_headers.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='read_bitmap_file_headers.c' object='atlc-read_bitmap_file_headers.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-read_bitmap_file_headers.Po' tmpdepfile='$(DEPDIR)/atlc-read_bitmap_file_headers.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-read_bitmap_file_headers.obj `if test -f 'read_bitmap_file_headers.c'; then $(CYGPATH_W) 'read_bitmap_file_headers.c'; else $(CYGPATH_W) '$(srcdir)/read_bitmap_file_headers.c'`
+
+atlc-update_voltage_array.o: update_voltage_array.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-update_voltage_array.o -MD -MP -MF "$(DEPDIR)/atlc-update_voltage_array.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-update_voltage_array.o `test -f 'update_voltage_array.c' || echo '$(srcdir)/'`update_voltage_array.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-update_voltage_array.Tpo" "$(DEPDIR)/atlc-update_voltage_array.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-update_voltage_array.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='update_voltage_array.c' object='atlc-update_voltage_array.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-update_voltage_array.Po' tmpdepfile='$(DEPDIR)/atlc-update_voltage_array.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-update_voltage_array.o `test -f 'update_voltage_array.c' || echo '$(srcdir)/'`update_voltage_array.c
+
+atlc-update_voltage_array.obj: update_voltage_array.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-update_voltage_array.obj -MD -MP -MF "$(DEPDIR)/atlc-update_voltage_array.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-update_voltage_array.obj `if test -f 'update_voltage_array.c'; then $(CYGPATH_W) 'update_voltage_array.c'; else $(CYGPATH_W) '$(srcdir)/update_voltage_array.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-update_voltage_array.Tpo" "$(DEPDIR)/atlc-update_voltage_array.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-update_voltage_array.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='update_voltage_array.c' object='atlc-update_voltage_array.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-update_voltage_array.Po' tmpdepfile='$(DEPDIR)/atlc-update_voltage_array.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-update_voltage_array.obj `if test -f 'update_voltage_array.c'; then $(CYGPATH_W) 'update_voltage_array.c'; else $(CYGPATH_W) '$(srcdir)/update_voltage_array.c'`
+
+atlc-check_for_boundaries.o: check_for_boundaries.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-check_for_boundaries.o -MD -MP -MF "$(DEPDIR)/atlc-check_for_boundaries.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-check_for_boundaries.o `test -f 'check_for_boundaries.c' || echo '$(srcdir)/'`check_for_boundaries.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-check_for_boundaries.Tpo" "$(DEPDIR)/atlc-check_for_boundaries.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-check_for_boundaries.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='check_for_boundaries.c' object='atlc-check_for_boundaries.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-check_for_boundaries.Po' tmpdepfile='$(DEPDIR)/atlc-check_for_boundaries.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-check_for_boundaries.o `test -f 'check_for_boundaries.c' || echo '$(srcdir)/'`check_for_boundaries.c
+
+atlc-check_for_boundaries.obj: check_for_boundaries.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-check_for_boundaries.obj -MD -MP -MF "$(DEPDIR)/atlc-check_for_boundaries.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-check_for_boundaries.obj `if test -f 'check_for_boundaries.c'; then $(CYGPATH_W) 'check_for_boundaries.c'; else $(CYGPATH_W) '$(srcdir)/check_for_boundaries.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-check_for_boundaries.Tpo" "$(DEPDIR)/atlc-check_for_boundaries.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-check_for_boundaries.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='check_for_boundaries.c' object='atlc-check_for_boundaries.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-check_for_boundaries.Po' tmpdepfile='$(DEPDIR)/atlc-check_for_boundaries.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-check_for_boundaries.obj `if test -f 'check_for_boundaries.c'; then $(CYGPATH_W) 'check_for_boundaries.c'; else $(CYGPATH_W) '$(srcdir)/check_for_boundaries.c'`
+
+atlc-memory.o: memory.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-memory.o -MD -MP -MF "$(DEPDIR)/atlc-memory.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-memory.o `test -f 'memory.c' || echo '$(srcdir)/'`memory.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-memory.Tpo" "$(DEPDIR)/atlc-memory.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-memory.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='memory.c' object='atlc-memory.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-memory.Po' tmpdepfile='$(DEPDIR)/atlc-memory.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-memory.o `test -f 'memory.c' || echo '$(srcdir)/'`memory.c
+
+atlc-memory.obj: memory.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-memory.obj -MD -MP -MF "$(DEPDIR)/atlc-memory.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-memory.obj `if test -f 'memory.c'; then $(CYGPATH_W) 'memory.c'; else $(CYGPATH_W) '$(srcdir)/memory.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-memory.Tpo" "$(DEPDIR)/atlc-memory.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-memory.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='memory.c' object='atlc-memory.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-memory.Po' tmpdepfile='$(DEPDIR)/atlc-memory.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-memory.obj `if test -f 'memory.c'; then $(CYGPATH_W) 'memory.c'; else $(CYGPATH_W) '$(srcdir)/memory.c'`
+
+atlc-setup_arrays.o: setup_arrays.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-setup_arrays.o -MD -MP -MF "$(DEPDIR)/atlc-setup_arrays.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-setup_arrays.o `test -f 'setup_arrays.c' || echo '$(srcdir)/'`setup_arrays.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-setup_arrays.Tpo" "$(DEPDIR)/atlc-setup_arrays.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-setup_arrays.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='setup_arrays.c' object='atlc-setup_arrays.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-setup_arrays.Po' tmpdepfile='$(DEPDIR)/atlc-setup_arrays.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-setup_arrays.o `test -f 'setup_arrays.c' || echo '$(srcdir)/'`setup_arrays.c
+
+atlc-setup_arrays.obj: setup_arrays.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-setup_arrays.obj -MD -MP -MF "$(DEPDIR)/atlc-setup_arrays.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-setup_arrays.obj `if test -f 'setup_arrays.c'; then $(CYGPATH_W) 'setup_arrays.c'; else $(CYGPATH_W) '$(srcdir)/setup_arrays.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-setup_arrays.Tpo" "$(DEPDIR)/atlc-setup_arrays.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-setup_arrays.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='setup_arrays.c' object='atlc-setup_arrays.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-setup_arrays.Po' tmpdepfile='$(DEPDIR)/atlc-setup_arrays.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-setup_arrays.obj `if test -f 'setup_arrays.c'; then $(CYGPATH_W) 'setup_arrays.c'; else $(CYGPATH_W) '$(srcdir)/setup_arrays.c'`
+
+atlc-finite_difference_single_threaded.o: finite_difference_single_threaded.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-finite_difference_single_threaded.o -MD -MP -MF "$(DEPDIR)/atlc-finite_difference_single_threaded.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-finite_difference_single_threaded.o `test -f 'finite_difference_single_threaded.c' || echo '$(srcdir)/'`finite_difference_single_threaded.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-finite_difference_single_threaded.Tpo" "$(DEPDIR)/atlc-finite_difference_single_threaded.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-finite_difference_single_threaded.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='finite_difference_single_threaded.c' object='atlc-finite_difference_single_threaded.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-finite_difference_single_threaded.Po' tmpdepfile='$(DEPDIR)/atlc-finite_difference_single_threaded.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-finite_difference_single_threaded.o `test -f 'finite_difference_single_threaded.c' || echo '$(srcdir)/'`finite_difference_single_threaded.c
+
+atlc-finite_difference_single_threaded.obj: finite_difference_single_threaded.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-finite_difference_single_threaded.obj -MD -MP -MF "$(DEPDIR)/atlc-finite_difference_single_threaded.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-finite_difference_single_threaded.obj `if test -f 'finite_difference_single_threaded.c'; then $(CYGPATH_W) 'finite_difference_single_threaded.c'; else $(CYGPATH_W) '$(srcdir)/finite_difference_single_threaded.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-finite_difference_single_threaded.Tpo" "$(DEPDIR)/atlc-finite_difference_single_threaded.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-finite_difference_single_threaded.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='finite_difference_single_threaded.c' object='atlc-finite_difference_single_threaded.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-finite_difference_single_threaded.Po' tmpdepfile='$(DEPDIR)/atlc-finite_difference_single_threaded.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-finite_difference_single_threaded.obj `if test -f 'finite_difference_single_threaded.c'; then $(CYGPATH_W) 'finite_difference_single_threaded.c'; else $(CYGPATH_W) '$(srcdir)/finite_difference_single_threaded.c'`
+
+atlc-finite_difference_multi_threaded.o: finite_difference_multi_threaded.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-finite_difference_multi_threaded.o -MD -MP -MF "$(DEPDIR)/atlc-finite_difference_multi_threaded.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-finite_difference_multi_threaded.o `test -f 'finite_difference_multi_threaded.c' || echo '$(srcdir)/'`finite_difference_multi_threaded.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-finite_difference_multi_threaded.Tpo" "$(DEPDIR)/atlc-finite_difference_multi_threaded.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-finite_difference_multi_threaded.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='finite_difference_multi_threaded.c' object='atlc-finite_difference_multi_threaded.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-finite_difference_multi_threaded.Po' tmpdepfile='$(DEPDIR)/atlc-finite_difference_multi_threaded.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-finite_difference_multi_threaded.o `test -f 'finite_difference_multi_threaded.c' || echo '$(srcdir)/'`finite_difference_multi_threaded.c
+
+atlc-finite_difference_multi_threaded.obj: finite_difference_multi_threaded.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-finite_difference_multi_threaded.obj -MD -MP -MF "$(DEPDIR)/atlc-finite_difference_multi_threaded.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-finite_difference_multi_threaded.obj `if test -f 'finite_difference_multi_threaded.c'; then $(CYGPATH_W) 'finite_difference_multi_threaded.c'; else $(CYGPATH_W) '$(srcdir)/finite_difference_multi_threaded.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-finite_difference_multi_threaded.Tpo" "$(DEPDIR)/atlc-finite_difference_multi_threaded.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-finite_difference_multi_threaded.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='finite_difference_multi_threaded.c' object='atlc-finite_difference_multi_threaded.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-finite_difference_multi_threaded.Po' tmpdepfile='$(DEPDIR)/atlc-finite_difference_multi_threaded.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-finite_difference_multi_threaded.obj `if test -f 'finite_difference_multi_threaded.c'; then $(CYGPATH_W) 'finite_difference_multi_threaded.c'; else $(CYGPATH_W) '$(srcdir)/finite_difference_multi_threaded.c'`
+
+atlc-usage_atlc.o: usage_atlc.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-usage_atlc.o -MD -MP -MF "$(DEPDIR)/atlc-usage_atlc.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-usage_atlc.o `test -f 'usage_atlc.c' || echo '$(srcdir)/'`usage_atlc.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-usage_atlc.Tpo" "$(DEPDIR)/atlc-usage_atlc.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-usage_atlc.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='usage_atlc.c' object='atlc-usage_atlc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-usage_atlc.Po' tmpdepfile='$(DEPDIR)/atlc-usage_atlc.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-usage_atlc.o `test -f 'usage_atlc.c' || echo '$(srcdir)/'`usage_atlc.c
+
+atlc-usage_atlc.obj: usage_atlc.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-usage_atlc.obj -MD -MP -MF "$(DEPDIR)/atlc-usage_atlc.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-usage_atlc.obj `if test -f 'usage_atlc.c'; then $(CYGPATH_W) 'usage_atlc.c'; else $(CYGPATH_W) '$(srcdir)/usage_atlc.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-usage_atlc.Tpo" "$(DEPDIR)/atlc-usage_atlc.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-usage_atlc.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='usage_atlc.c' object='atlc-usage_atlc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-usage_atlc.Po' tmpdepfile='$(DEPDIR)/atlc-usage_atlc.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-usage_atlc.obj `if test -f 'usage_atlc.c'; then $(CYGPATH_W) 'usage_atlc.c'; else $(CYGPATH_W) '$(srcdir)/usage_atlc.c'`
+
+atlc-check_for_shorts.o: check_for_shorts.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-check_for_shorts.o -MD -MP -MF "$(DEPDIR)/atlc-check_for_shorts.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-check_for_shorts.o `test -f 'check_for_shorts.c' || echo '$(srcdir)/'`check_for_shorts.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-check_for_shorts.Tpo" "$(DEPDIR)/atlc-check_for_shorts.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-check_for_shorts.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='check_for_shorts.c' object='atlc-check_for_shorts.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-check_for_shorts.Po' tmpdepfile='$(DEPDIR)/atlc-check_for_shorts.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-check_for_shorts.o `test -f 'check_for_shorts.c' || echo '$(srcdir)/'`check_for_shorts.c
+
+atlc-check_for_shorts.obj: check_for_shorts.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-check_for_shorts.obj -MD -MP -MF "$(DEPDIR)/atlc-check_for_shorts.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-check_for_shorts.obj `if test -f 'check_for_shorts.c'; then $(CYGPATH_W) 'check_for_shorts.c'; else $(CYGPATH_W) '$(srcdir)/check_for_shorts.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-check_for_shorts.Tpo" "$(DEPDIR)/atlc-check_for_shorts.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-check_for_shorts.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='check_for_shorts.c' object='atlc-check_for_shorts.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-check_for_shorts.Po' tmpdepfile='$(DEPDIR)/atlc-check_for_shorts.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-check_for_shorts.obj `if test -f 'check_for_shorts.c'; then $(CYGPATH_W) 'check_for_shorts.c'; else $(CYGPATH_W) '$(srcdir)/check_for_shorts.c'`
+
+atlc-find_energy_per_metre.o: find_energy_per_metre.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-find_energy_per_metre.o -MD -MP -MF "$(DEPDIR)/atlc-find_energy_per_metre.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-find_energy_per_metre.o `test -f 'find_energy_per_metre.c' || echo '$(srcdir)/'`find_energy_per_metre.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-find_energy_per_metre.Tpo" "$(DEPDIR)/atlc-find_energy_per_metre.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-find_energy_per_metre.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='find_energy_per_metre.c' object='atlc-find_energy_per_metre.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-find_energy_per_metre.Po' tmpdepfile='$(DEPDIR)/atlc-find_energy_per_metre.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-find_energy_per_metre.o `test -f 'find_energy_per_metre.c' || echo '$(srcdir)/'`find_energy_per_metre.c
+
+atlc-find_energy_per_metre.obj: find_energy_per_metre.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-find_energy_per_metre.obj -MD -MP -MF "$(DEPDIR)/atlc-find_energy_per_metre.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-find_energy_per_metre.obj `if test -f 'find_energy_per_metre.c'; then $(CYGPATH_W) 'find_energy_per_metre.c'; else $(CYGPATH_W) '$(srcdir)/find_energy_per_metre.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-find_energy_per_metre.Tpo" "$(DEPDIR)/atlc-find_energy_per_metre.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-find_energy_per_metre.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='find_energy_per_metre.c' object='atlc-find_energy_per_metre.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-find_energy_per_metre.Po' tmpdepfile='$(DEPDIR)/atlc-find_energy_per_metre.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-find_energy_per_metre.obj `if test -f 'find_energy_per_metre.c'; then $(CYGPATH_W) 'find_energy_per_metre.c'; else $(CYGPATH_W) '$(srcdir)/find_energy_per_metre.c'`
+
+atlc-set_oddity_from_Greens_paper.o: set_oddity_from_Greens_paper.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-set_oddity_from_Greens_paper.o -MD -MP -MF "$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-set_oddity_from_Greens_paper.o `test -f 'set_oddity_from_Greens_paper.c' || echo '$(srcdir)/'`set_oddity_from_Greens_paper.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Tpo" "$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='set_oddity_from_Greens_paper.c' object='atlc-set_oddity_from_Greens_paper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Po' tmpdepfile='$(DEPDIR)/atlc-set_oddity_from_Greens_paper.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-set_oddity_from_Greens_paper.o `test -f 'set_oddity_from_Greens_paper.c' || echo '$(srcdir)/'`set_oddity_from_Greens_paper.c
+
+atlc-set_oddity_from_Greens_paper.obj: set_oddity_from_Greens_paper.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-set_oddity_from_Greens_paper.obj -MD -MP -MF "$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-set_oddity_from_Greens_paper.obj `if test -f 'set_oddity_from_Greens_paper.c'; then $(CYGPATH_W) 'set_oddity_from_Greens_paper.c'; else $(CYGPATH_W) '$(srcdir)/set_oddity_from_Greens_paper.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Tpo" "$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='set_oddity_from_Greens_paper.c' object='atlc-set_oddity_from_Greens_paper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-set_oddity_from_Greens_paper.Po' tmpdepfile='$(DEPDIR)/atlc-set_oddity_from_Greens_paper.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-set_oddity_from_Greens_paper.obj `if test -f 'set_oddity_from_Greens_paper.c'; then $(CYGPATH_W) 'set_oddity_from_Greens_paper.c'; else $(CYGPATH_W) '$(srcdir)/set_oddity_from_Greens_paper.c'`
+
+atlc-get_file_pointer_with_right_filename.o: get_file_pointer_with_right_filename.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-get_file_pointer_with_right_filename.o -MD -MP -MF "$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-get_file_pointer_with_right_filename.o `test -f 'get_file_pointer_with_right_filename.c' || echo '$(srcdir)/'`get_file_pointer_with_right_filename.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Tpo" "$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_file_pointer_with_right_filename.c' object='atlc-get_file_pointer_with_right_filename.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Po' tmpdepfile='$(DEPDIR)/atlc-get_file_pointer_with_right_filename.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-get_file_pointer_with_right_filename.o `test -f 'get_file_pointer_with_right_filename.c' || echo '$(srcdir)/'`get_file_pointer_with_right_filename.c
+
+atlc-get_file_pointer_with_right_filename.obj: get_file_pointer_with_right_filename.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-get_file_pointer_with_right_filename.obj -MD -MP -MF "$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-get_file_pointer_with_right_filename.obj `if test -f 'get_file_pointer_with_right_filename.c'; then $(CYGPATH_W) 'get_file_pointer_with_right_filename.c'; else $(CYGPATH_W) '$(srcdir)/get_file_pointer_with_right_filename.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Tpo" "$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_file_pointer_with_right_filename.c' object='atlc-get_file_pointer_with_right_filename.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-get_file_pointer_with_right_filename.Po' tmpdepfile='$(DEPDIR)/atlc-get_file_pointer_with_right_filename.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-get_file_pointer_with_right_filename.obj `if test -f 'get_file_pointer_with_right_filename.c'; then $(CYGPATH_W) 'get_file_pointer_with_right_filename.c'; else $(CYGPATH_W) '$(srcdir)/get_file_pointer_with_right_filename.c'`
+
+atlc-find_maximum_values.o: find_maximum_values.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-find_maximum_values.o -MD -MP -MF "$(DEPDIR)/atlc-find_maximum_values.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-find_maximum_values.o `test -f 'find_maximum_values.c' || echo '$(srcdir)/'`find_maximum_values.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-find_maximum_values.Tpo" "$(DEPDIR)/atlc-find_maximum_values.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-find_maximum_values.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='find_maximum_values.c' object='atlc-find_maximum_values.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-find_maximum_values.Po' tmpdepfile='$(DEPDIR)/atlc-find_maximum_values.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-find_maximum_values.o `test -f 'find_maximum_values.c' || echo '$(srcdir)/'`find_maximum_values.c
+
+atlc-find_maximum_values.obj: find_maximum_values.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-find_maximum_values.obj -MD -MP -MF "$(DEPDIR)/atlc-find_maximum_values.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-find_maximum_values.obj `if test -f 'find_maximum_values.c'; then $(CYGPATH_W) 'find_maximum_values.c'; else $(CYGPATH_W) '$(srcdir)/find_maximum_values.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-find_maximum_values.Tpo" "$(DEPDIR)/atlc-find_maximum_values.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-find_maximum_values.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='find_maximum_values.c' object='atlc-find_maximum_values.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-find_maximum_values.Po' tmpdepfile='$(DEPDIR)/atlc-find_maximum_values.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-find_maximum_values.obj `if test -f 'find_maximum_values.c'; then $(CYGPATH_W) 'find_maximum_values.c'; else $(CYGPATH_W) '$(srcdir)/find_maximum_values.c'`
+
+atlc-calculate_colour_data.o: calculate_colour_data.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-calculate_colour_data.o -MD -MP -MF "$(DEPDIR)/atlc-calculate_colour_data.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-calculate_colour_data.o `test -f 'calculate_colour_data.c' || echo '$(srcdir)/'`calculate_colour_data.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-calculate_colour_data.Tpo" "$(DEPDIR)/atlc-calculate_colour_data.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-calculate_colour_data.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='calculate_colour_data.c' object='atlc-calculate_colour_data.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-calculate_colour_data.Po' tmpdepfile='$(DEPDIR)/atlc-calculate_colour_data.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-calculate_colour_data.o `test -f 'calculate_colour_data.c' || echo '$(srcdir)/'`calculate_colour_data.c
+
+atlc-calculate_colour_data.obj: calculate_colour_data.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-calculate_colour_data.obj -MD -MP -MF "$(DEPDIR)/atlc-calculate_colour_data.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-calculate_colour_data.obj `if test -f 'calculate_colour_data.c'; then $(CYGPATH_W) 'calculate_colour_data.c'; else $(CYGPATH_W) '$(srcdir)/calculate_colour_data.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-calculate_colour_data.Tpo" "$(DEPDIR)/atlc-calculate_colour_data.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-calculate_colour_data.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='calculate_colour_data.c' object='atlc-calculate_colour_data.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-calculate_colour_data.Po' tmpdepfile='$(DEPDIR)/atlc-calculate_colour_data.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-calculate_colour_data.obj `if test -f 'calculate_colour_data.c'; then $(CYGPATH_W) 'calculate_colour_data.c'; else $(CYGPATH_W) '$(srcdir)/calculate_colour_data.c'`
+
+atlc-find_electric_fields.o: find_electric_fields.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-find_electric_fields.o -MD -MP -MF "$(DEPDIR)/atlc-find_electric_fields.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-find_electric_fields.o `test -f 'find_electric_fields.c' || echo '$(srcdir)/'`find_electric_fields.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-find_electric_fields.Tpo" "$(DEPDIR)/atlc-find_electric_fields.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-find_electric_fields.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='find_electric_fields.c' object='atlc-find_electric_fields.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-find_electric_fields.Po' tmpdepfile='$(DEPDIR)/atlc-find_electric_fields.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-find_electric_fields.o `test -f 'find_electric_fields.c' || echo '$(srcdir)/'`find_electric_fields.c
+
+atlc-find_electric_fields.obj: find_electric_fields.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-find_electric_fields.obj -MD -MP -MF "$(DEPDIR)/atlc-find_electric_fields.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-find_electric_fields.obj `if test -f 'find_electric_fields.c'; then $(CYGPATH_W) 'find_electric_fields.c'; else $(CYGPATH_W) '$(srcdir)/find_electric_fields.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-find_electric_fields.Tpo" "$(DEPDIR)/atlc-find_electric_fields.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-find_electric_fields.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='find_electric_fields.c' object='atlc-find_electric_fields.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-find_electric_fields.Po' tmpdepfile='$(DEPDIR)/atlc-find_electric_fields.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-find_electric_fields.obj `if test -f 'find_electric_fields.c'; then $(CYGPATH_W) 'find_electric_fields.c'; else $(CYGPATH_W) '$(srcdir)/find_electric_fields.c'`
+
+atlc-get_options.o: get_options.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-get_options.o -MD -MP -MF "$(DEPDIR)/atlc-get_options.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-get_options.o `test -f 'get_options.c' || echo '$(srcdir)/'`get_options.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-get_options.Tpo" "$(DEPDIR)/atlc-get_options.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-get_options.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_options.c' object='atlc-get_options.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-get_options.Po' tmpdepfile='$(DEPDIR)/atlc-get_options.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-get_options.o `test -f 'get_options.c' || echo '$(srcdir)/'`get_options.c
+
+atlc-get_options.obj: get_options.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-get_options.obj -MD -MP -MF "$(DEPDIR)/atlc-get_options.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-get_options.obj `if test -f 'get_options.c'; then $(CYGPATH_W) 'get_options.c'; else $(CYGPATH_W) '$(srcdir)/get_options.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-get_options.Tpo" "$(DEPDIR)/atlc-get_options.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-get_options.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_options.c' object='atlc-get_options.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-get_options.Po' tmpdepfile='$(DEPDIR)/atlc-get_options.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-get_options.obj `if test -f 'get_options.c'; then $(CYGPATH_W) 'get_options.c'; else $(CYGPATH_W) '$(srcdir)/get_options.c'`
+
+atlc-exit_with_msg_and_exit_code.o: exit_with_msg_and_exit_code.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-exit_with_msg_and_exit_code.o -MD -MP -MF "$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-exit_with_msg_and_exit_code.o `test -f 'exit_with_msg_and_exit_code.c' || echo '$(srcdir)/'`exit_with_msg_and_exit_code.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Tpo" "$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='exit_with_msg_and_exit_code.c' object='atlc-exit_with_msg_and_exit_code.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Po' tmpdepfile='$(DEPDIR)/atlc-exit_with_msg_and_exit_code.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-exit_with_msg_and_exit_code.o `test -f 'exit_with_msg_and_exit_code.c' || echo '$(srcdir)/'`exit_with_msg_and_exit_code.c
+
+atlc-exit_with_msg_and_exit_code.obj: exit_with_msg_and_exit_code.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-exit_with_msg_and_exit_code.obj -MD -MP -MF "$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-exit_with_msg_and_exit_code.obj `if test -f 'exit_with_msg_and_exit_code.c'; then $(CYGPATH_W) 'exit_with_msg_and_exit_code.c'; else $(CYGPATH_W) '$(srcdir)/exit_with_msg_and_exit_code.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Tpo" "$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='exit_with_msg_and_exit_code.c' object='atlc-exit_with_msg_and_exit_code.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-exit_with_msg_and_exit_code.Po' tmpdepfile='$(DEPDIR)/atlc-exit_with_msg_and_exit_code.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-exit_with_msg_and_exit_code.obj `if test -f 'exit_with_msg_and_exit_code.c'; then $(CYGPATH_W) 'exit_with_msg_and_exit_code.c'; else $(CYGPATH_W) '$(srcdir)/exit_with_msg_and_exit_code.c'`
+
+atlc-do_fd_calculation.o: do_fd_calculation.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-do_fd_calculation.o -MD -MP -MF "$(DEPDIR)/atlc-do_fd_calculation.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-do_fd_calculation.o `test -f 'do_fd_calculation.c' || echo '$(srcdir)/'`do_fd_calculation.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-do_fd_calculation.Tpo" "$(DEPDIR)/atlc-do_fd_calculation.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-do_fd_calculation.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='do_fd_calculation.c' object='atlc-do_fd_calculation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-do_fd_calculation.Po' tmpdepfile='$(DEPDIR)/atlc-do_fd_calculation.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-do_fd_calculation.o `test -f 'do_fd_calculation.c' || echo '$(srcdir)/'`do_fd_calculation.c
+
+atlc-do_fd_calculation.obj: do_fd_calculation.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-do_fd_calculation.obj -MD -MP -MF "$(DEPDIR)/atlc-do_fd_calculation.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-do_fd_calculation.obj `if test -f 'do_fd_calculation.c'; then $(CYGPATH_W) 'do_fd_calculation.c'; else $(CYGPATH_W) '$(srcdir)/do_fd_calculation.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-do_fd_calculation.Tpo" "$(DEPDIR)/atlc-do_fd_calculation.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-do_fd_calculation.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='do_fd_calculation.c' object='atlc-do_fd_calculation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-do_fd_calculation.Po' tmpdepfile='$(DEPDIR)/atlc-do_fd_calculation.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-do_fd_calculation.obj `if test -f 'do_fd_calculation.c'; then $(CYGPATH_W) 'do_fd_calculation.c'; else $(CYGPATH_W) '$(srcdir)/do_fd_calculation.c'`
+
+atlc-swap_conductor_voltages.o: swap_conductor_voltages.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-swap_conductor_voltages.o -MD -MP -MF "$(DEPDIR)/atlc-swap_conductor_voltages.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-swap_conductor_voltages.o `test -f 'swap_conductor_voltages.c' || echo '$(srcdir)/'`swap_conductor_voltages.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-swap_conductor_voltages.Tpo" "$(DEPDIR)/atlc-swap_conductor_voltages.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-swap_conductor_voltages.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='swap_conductor_voltages.c' object='atlc-swap_conductor_voltages.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-swap_conductor_voltages.Po' tmpdepfile='$(DEPDIR)/atlc-swap_conductor_voltages.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-swap_conductor_voltages.o `test -f 'swap_conductor_voltages.c' || echo '$(srcdir)/'`swap_conductor_voltages.c
+
+atlc-swap_conductor_voltages.obj: swap_conductor_voltages.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-swap_conductor_voltages.obj -MD -MP -MF "$(DEPDIR)/atlc-swap_conductor_voltages.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-swap_conductor_voltages.obj `if test -f 'swap_conductor_voltages.c'; then $(CYGPATH_W) 'swap_conductor_voltages.c'; else $(CYGPATH_W) '$(srcdir)/swap_conductor_voltages.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-swap_conductor_voltages.Tpo" "$(DEPDIR)/atlc-swap_conductor_voltages.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-swap_conductor_voltages.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='swap_conductor_voltages.c' object='atlc-swap_conductor_voltages.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-swap_conductor_voltages.Po' tmpdepfile='$(DEPDIR)/atlc-swap_conductor_voltages.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-swap_conductor_voltages.obj `if test -f 'swap_conductor_voltages.c'; then $(CYGPATH_W) 'swap_conductor_voltages.c'; else $(CYGPATH_W) '$(srcdir)/swap_conductor_voltages.c'`
+
+atlc-print_copyright.o: print_copyright.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-print_copyright.o -MD -MP -MF "$(DEPDIR)/atlc-print_copyright.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-print_copyright.o `test -f 'print_copyright.c' || echo '$(srcdir)/'`print_copyright.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-print_copyright.Tpo" "$(DEPDIR)/atlc-print_copyright.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-print_copyright.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_copyright.c' object='atlc-print_copyright.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-print_copyright.Po' tmpdepfile='$(DEPDIR)/atlc-print_copyright.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-print_copyright.o `test -f 'print_copyright.c' || echo '$(srcdir)/'`print_copyright.c
+
+atlc-print_copyright.obj: print_copyright.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-print_copyright.obj -MD -MP -MF "$(DEPDIR)/atlc-print_copyright.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-print_copyright.obj `if test -f 'print_copyright.c'; then $(CYGPATH_W) 'print_copyright.c'; else $(CYGPATH_W) '$(srcdir)/print_copyright.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-print_copyright.Tpo" "$(DEPDIR)/atlc-print_copyright.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-print_copyright.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_copyright.c' object='atlc-print_copyright.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-print_copyright.Po' tmpdepfile='$(DEPDIR)/atlc-print_copyright.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-print_copyright.obj `if test -f 'print_copyright.c'; then $(CYGPATH_W) 'print_copyright.c'; else $(CYGPATH_W) '$(srcdir)/print_copyright.c'`
+
+atlc-print_data_for_directional_couplers.o: print_data_for_directional_couplers.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-print_data_for_directional_couplers.o -MD -MP -MF "$(DEPDIR)/atlc-print_data_for_directional_couplers.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-print_data_for_directional_couplers.o `test -f 'print_data_for_directional_couplers.c' || echo '$(srcdir)/'`print_data_for_directional_couplers.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-print_data_for_directional_couplers.Tpo" "$(DEPDIR)/atlc-print_data_for_directional_couplers.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-print_data_for_directional_couplers.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_data_for_directional_couplers.c' object='atlc-print_data_for_directional_couplers.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-print_data_for_directional_couplers.Po' tmpdepfile='$(DEPDIR)/atlc-print_data_for_directional_couplers.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-print_data_for_directional_couplers.o `test -f 'print_data_for_directional_couplers.c' || echo '$(srcdir)/'`print_data_for_directional_couplers.c
+
+atlc-print_data_for_directional_couplers.obj: print_data_for_directional_couplers.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-print_data_for_directional_couplers.obj -MD -MP -MF "$(DEPDIR)/atlc-print_data_for_directional_couplers.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-print_data_for_directional_couplers.obj `if test -f 'print_data_for_directional_couplers.c'; then $(CYGPATH_W) 'print_data_for_directional_couplers.c'; else $(CYGPATH_W) '$(srcdir)/print_data_for_directional_couplers.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-print_data_for_directional_couplers.Tpo" "$(DEPDIR)/atlc-print_data_for_directional_couplers.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-print_data_for_directional_couplers.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_data_for_directional_couplers.c' object='atlc-print_data_for_directional_couplers.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-print_data_for_directional_couplers.Po' tmpdepfile='$(DEPDIR)/atlc-print_data_for_directional_couplers.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-print_data_for_directional_couplers.obj `if test -f 'print_data_for_directional_couplers.c'; then $(CYGPATH_W) 'print_data_for_directional_couplers.c'; else $(CYGPATH_W) '$(srcdir)/print_data_for_directional_couplers.c'`
+
+atlc-print_data_for_two_conductor_lines.o: print_data_for_two_conductor_lines.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-print_data_for_two_conductor_lines.o -MD -MP -MF "$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-print_data_for_two_conductor_lines.o `test -f 'print_data_for_two_conductor_lines.c' || echo '$(srcdir)/'`print_data_for_two_conductor_lines.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Tpo" "$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_data_for_two_conductor_lines.c' object='atlc-print_data_for_two_conductor_lines.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Po' tmpdepfile='$(DEPDIR)/atlc-print_data_for_two_conductor_lines.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-print_data_for_two_conductor_lines.o `test -f 'print_data_for_two_conductor_lines.c' || echo '$(srcdir)/'`print_data_for_two_conductor_lines.c
+
+atlc-print_data_for_two_conductor_lines.obj: print_data_for_two_conductor_lines.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-print_data_for_two_conductor_lines.obj -MD -MP -MF "$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-print_data_for_two_conductor_lines.obj `if test -f 'print_data_for_two_conductor_lines.c'; then $(CYGPATH_W) 'print_data_for_two_conductor_lines.c'; else $(CYGPATH_W) '$(srcdir)/print_data_for_two_conductor_lines.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Tpo" "$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_data_for_two_conductor_lines.c' object='atlc-print_data_for_two_conductor_lines.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-print_data_for_two_conductor_lines.Po' tmpdepfile='$(DEPDIR)/atlc-print_data_for_two_conductor_lines.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-print_data_for_two_conductor_lines.obj `if test -f 'print_data_for_two_conductor_lines.c'; then $(CYGPATH_W) 'print_data_for_two_conductor_lines.c'; else $(CYGPATH_W) '$(srcdir)/print_data_for_two_conductor_lines.c'`
+
+atlc-set_data_to_sensible_starting_values.o: set_data_to_sensible_starting_values.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-set_data_to_sensible_starting_values.o -MD -MP -MF "$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-set_data_to_sensible_starting_values.o `test -f 'set_data_to_sensible_starting_values.c' || echo '$(srcdir)/'`set_data_to_sensible_starting_values.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Tpo" "$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='set_data_to_sensible_starting_values.c' object='atlc-set_data_to_sensible_starting_values.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Po' tmpdepfile='$(DEPDIR)/atlc-set_data_to_sensible_starting_values.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-set_data_to_sensible_starting_values.o `test -f 'set_data_to_sensible_starting_values.c' || echo '$(srcdir)/'`set_data_to_sensible_starting_values.c
+
+atlc-set_data_to_sensible_starting_values.obj: set_data_to_sensible_starting_values.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-set_data_to_sensible_starting_values.obj -MD -MP -MF "$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-set_data_to_sensible_starting_values.obj `if test -f 'set_data_to_sensible_starting_values.c'; then $(CYGPATH_W) 'set_data_to_sensible_starting_values.c'; else $(CYGPATH_W) '$(srcdir)/set_data_to_sensible_starting_values.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Tpo" "$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='set_data_to_sensible_starting_values.c' object='atlc-set_data_to_sensible_starting_values.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-set_data_to_sensible_starting_values.Po' tmpdepfile='$(DEPDIR)/atlc-set_data_to_sensible_starting_values.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-set_data_to_sensible_starting_values.obj `if test -f 'set_data_to_sensible_starting_values.c'; then $(CYGPATH_W) 'set_data_to_sensible_starting_values.c'; else $(CYGPATH_W) '$(srcdir)/set_data_to_sensible_starting_values.c'`
+
+atlc-write_fields_for_two_conductor_lines.o: write_fields_for_two_conductor_lines.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-write_fields_for_two_conductor_lines.o -MD -MP -MF "$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-write_fields_for_two_conductor_lines.o `test -f 'write_fields_for_two_conductor_lines.c' || echo '$(srcdir)/'`write_fields_for_two_conductor_lines.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Tpo" "$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='write_fields_for_two_conductor_lines.c' object='atlc-write_fields_for_two_conductor_lines.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Po' tmpdepfile='$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-write_fields_for_two_conductor_lines.o `test -f 'write_fields_for_two_conductor_lines.c' || echo '$(srcdir)/'`write_fields_for_two_conductor_lines.c
+
+atlc-write_fields_for_two_conductor_lines.obj: write_fields_for_two_conductor_lines.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-write_fields_for_two_conductor_lines.obj -MD -MP -MF "$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-write_fields_for_two_conductor_lines.obj `if test -f 'write_fields_for_two_conductor_lines.c'; then $(CYGPATH_W) 'write_fields_for_two_conductor_lines.c'; else $(CYGPATH_W) '$(srcdir)/write_fields_for_two_conductor_lines.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Tpo" "$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='write_fields_for_two_conductor_lines.c' object='atlc-write_fields_for_two_conductor_lines.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.Po' tmpdepfile='$(DEPDIR)/atlc-write_fields_for_two_conductor_lines.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-write_fields_for_two_conductor_lines.obj `if test -f 'write_fields_for_two_conductor_lines.c'; then $(CYGPATH_W) 'write_fields_for_two_conductor_lines.c'; else $(CYGPATH_W) '$(srcdir)/write_fields_for_two_conductor_lines.c'`
+
+atlc-write_fields_for_directional_couplers.o: write_fields_for_directional_couplers.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-write_fields_for_directional_couplers.o -MD -MP -MF "$(DEPDIR)/atlc-write_fields_for_directional_couplers.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-write_fields_for_directional_couplers.o `test -f 'write_fields_for_directional_couplers.c' || echo '$(srcdir)/'`write_fields_for_directional_couplers.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-write_fields_for_directional_couplers.Tpo" "$(DEPDIR)/atlc-write_fields_for_directional_couplers.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-write_fields_for_directional_couplers.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='write_fields_for_directional_couplers.c' object='atlc-write_fields_for_directional_couplers.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-write_fields_for_directional_couplers.Po' tmpdepfile='$(DEPDIR)/atlc-write_fields_for_directional_couplers.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-write_fields_for_directional_couplers.o `test -f 'write_fields_for_directional_couplers.c' || echo '$(srcdir)/'`write_fields_for_directional_couplers.c
+
+atlc-write_fields_for_directional_couplers.obj: write_fields_for_directional_couplers.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT atlc-write_fields_for_directional_couplers.obj -MD -MP -MF "$(DEPDIR)/atlc-write_fields_for_directional_couplers.Tpo" \
+@am__fastdepCC_TRUE@     -c -o atlc-write_fields_for_directional_couplers.obj `if test -f 'write_fields_for_directional_couplers.c'; then $(CYGPATH_W) 'write_fields_for_directional_couplers.c'; else $(CYGPATH_W) '$(srcdir)/write_fields_for_directional_couplers.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/atlc-write_fields_for_directional_couplers.Tpo" "$(DEPDIR)/atlc-write_fields_for_directional_couplers.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/atlc-write_fields_for_directional_couplers.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='write_fields_for_directional_couplers.c' object='atlc-write_fields_for_directional_couplers.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/atlc-write_fields_for_directional_couplers.Po' tmpdepfile='$(DEPDIR)/atlc-write_fields_for_directional_couplers.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(atlc_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o atlc-write_fields_for_directional_couplers.obj `if test -f 'write_fields_for_directional_couplers.c'; then $(CYGPATH_W) 'write_fields_for_directional_couplers.c'; else $(CYGPATH_W) '$(srcdir)/write_fields_for_directional_couplers.c'`
+
+create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.o: create_bmp_for_stripline_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.o `test -f 'create_bmp_for_stripline_coupler.c' || echo '$(srcdir)/'`create_bmp_for_stripline_coupler.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='create_bmp_for_stripline_coupler.c' object='create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.o `test -f 'create_bmp_for_stripline_coupler.c' || echo '$(srcdir)/'`create_bmp_for_stripline_coupler.c
+
+create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.obj: create_bmp_for_stripline_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.obj `if test -f 'create_bmp_for_stripline_coupler.c'; then $(CYGPATH_W) 'create_bmp_for_stripline_coupler.c'; else $(CYGPATH_W) '$(srcdir)/create_bmp_for_stripline_coupler.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='create_bmp_for_stripline_coupler.c' object='create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-create_bmp_for_stripline_coupler.obj `if test -f 'create_bmp_for_stripline_coupler.c'; then $(CYGPATH_W) 'create_bmp_for_stripline_coupler.c'; else $(CYGPATH_W) '$(srcdir)/create_bmp_for_stripline_coupler.c'`
+
+create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.o: usage_create_bmp_for_stripline_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.o `test -f 'usage_create_bmp_for_stripline_coupler.c' || echo '$(srcdir)/'`usage_create_bmp_for_stripline_coupler.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='usage_create_bmp_for_stripline_coupler.c' object='create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.o `test -f 'usage_create_bmp_for_stripline_coupler.c' || echo '$(srcdir)/'`usage_create_bmp_for_stripline_coupler.c
+
+create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.obj: usage_create_bmp_for_stripline_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.obj `if test -f 'usage_create_bmp_for_stripline_coupler.c'; then $(CYGPATH_W) 'usage_create_bmp_for_stripline_coupler.c'; else $(CYGPATH_W) '$(srcdir)/usage_create_bmp_for_stripline_coupler.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='usage_create_bmp_for_stripline_coupler.c' object='create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-usage_create_bmp_for_stripline_coupler.obj `if test -f 'usage_create_bmp_for_stripline_coupler.c'; then $(CYGPATH_W) 'usage_create_bmp_for_stripline_coupler.c'; else $(CYGPATH_W) '$(srcdir)/usage_create_bmp_for_stripline_coupler.c'`
+
+create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.o: calculate_Zodd_and_Zeven.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.o `test -f 'calculate_Zodd_and_Zeven.c' || echo '$(srcdir)/'`calculate_Zodd_and_Zeven.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='calculate_Zodd_and_Zeven.c' object='create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.o `test -f 'calculate_Zodd_and_Zeven.c' || echo '$(srcdir)/'`calculate_Zodd_and_Zeven.c
+
+create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.obj: calculate_Zodd_and_Zeven.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.obj `if test -f 'calculate_Zodd_and_Zeven.c'; then $(CYGPATH_W) 'calculate_Zodd_and_Zeven.c'; else $(CYGPATH_W) '$(srcdir)/calculate_Zodd_and_Zeven.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='calculate_Zodd_and_Zeven.c' object='create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-calculate_Zodd_and_Zeven.obj `if test -f 'calculate_Zodd_and_Zeven.c'; then $(CYGPATH_W) 'calculate_Zodd_and_Zeven.c'; else $(CYGPATH_W) '$(srcdir)/calculate_Zodd_and_Zeven.c'`
+
+create_bmp_for_stripline_coupler-get_options.o: get_options.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-get_options.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-get_options.o `test -f 'get_options.c' || echo '$(srcdir)/'`get_options.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_options.c' object='create_bmp_for_stripline_coupler-get_options.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-get_options.o `test -f 'get_options.c' || echo '$(srcdir)/'`get_options.c
+
+create_bmp_for_stripline_coupler-get_options.obj: get_options.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-get_options.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-get_options.obj `if test -f 'get_options.c'; then $(CYGPATH_W) 'get_options.c'; else $(CYGPATH_W) '$(srcdir)/get_options.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_options.c' object='create_bmp_for_stripline_coupler-get_options.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-get_options.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-get_options.obj `if test -f 'get_options.c'; then $(CYGPATH_W) 'get_options.c'; else $(CYGPATH_W) '$(srcdir)/get_options.c'`
+
+create_bmp_for_stripline_coupler-calculate_integer_values.o: calculate_integer_values.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-calculate_integer_values.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-calculate_integer_values.o `test -f 'calculate_integer_values.c' || echo '$(srcdir)/'`calculate_integer_values.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='calculate_integer_values.c' object='create_bmp_for_stripline_coupler-calculate_integer_values.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-calculate_integer_values.o `test -f 'calculate_integer_values.c' || echo '$(srcdir)/'`calculate_integer_values.c
+
+create_bmp_for_stripline_coupler-calculate_integer_values.obj: calculate_integer_values.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-calculate_integer_values.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-calculate_integer_values.obj `if test -f 'calculate_integer_values.c'; then $(CYGPATH_W) 'calculate_integer_values.c'; else $(CYGPATH_W) '$(srcdir)/calculate_integer_values.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='calculate_integer_values.c' object='create_bmp_for_stripline_coupler-calculate_integer_values.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-calculate_integer_values.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-calculate_integer_values.obj `if test -f 'calculate_integer_values.c'; then $(CYGPATH_W) 'calculate_integer_values.c'; else $(CYGPATH_W) '$(srcdir)/calculate_integer_values.c'`
+
+create_bmp_for_stripline_coupler-write_bitmap.o: write_bitmap.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-write_bitmap.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-write_bitmap.o `test -f 'write_bitmap.c' || echo '$(srcdir)/'`write_bitmap.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='write_bitmap.c' object='create_bmp_for_stripline_coupler-write_bitmap.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-write_bitmap.o `test -f 'write_bitmap.c' || echo '$(srcdir)/'`write_bitmap.c
+
+create_bmp_for_stripline_coupler-write_bitmap.obj: write_bitmap.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-write_bitmap.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-write_bitmap.obj `if test -f 'write_bitmap.c'; then $(CYGPATH_W) 'write_bitmap.c'; else $(CYGPATH_W) '$(srcdir)/write_bitmap.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='write_bitmap.c' object='create_bmp_for_stripline_coupler-write_bitmap.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-write_bitmap.obj `if test -f 'write_bitmap.c'; then $(CYGPATH_W) 'write_bitmap.c'; else $(CYGPATH_W) '$(srcdir)/write_bitmap.c'`
+
+create_bmp_for_stripline_coupler-memory.o: memory.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-memory.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-memory.o `test -f 'memory.c' || echo '$(srcdir)/'`memory.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='memory.c' object='create_bmp_for_stripline_coupler-memory.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-memory.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-memory.o `test -f 'memory.c' || echo '$(srcdir)/'`memory.c
+
+create_bmp_for_stripline_coupler-memory.obj: memory.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-memory.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-memory.obj `if test -f 'memory.c'; then $(CYGPATH_W) 'memory.c'; else $(CYGPATH_W) '$(srcdir)/memory.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='memory.c' object='create_bmp_for_stripline_coupler-memory.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-memory.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-memory.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-memory.obj `if test -f 'memory.c'; then $(CYGPATH_W) 'memory.c'; else $(CYGPATH_W) '$(srcdir)/memory.c'`
+
+create_bmp_for_stripline_coupler-write_bitmap_out.o: write_bitmap_out.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-write_bitmap_out.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-write_bitmap_out.o `test -f 'write_bitmap_out.c' || echo '$(srcdir)/'`write_bitmap_out.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='write_bitmap_out.c' object='create_bmp_for_stripline_coupler-write_bitmap_out.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-write_bitmap_out.o `test -f 'write_bitmap_out.c' || echo '$(srcdir)/'`write_bitmap_out.c
+
+create_bmp_for_stripline_coupler-write_bitmap_out.obj: write_bitmap_out.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-write_bitmap_out.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-write_bitmap_out.obj `if test -f 'write_bitmap_out.c'; then $(CYGPATH_W) 'write_bitmap_out.c'; else $(CYGPATH_W) '$(srcdir)/write_bitmap_out.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='write_bitmap_out.c' object='create_bmp_for_stripline_coupler-write_bitmap_out.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-write_bitmap_out.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-write_bitmap_out.obj `if test -f 'write_bitmap_out.c'; then $(CYGPATH_W) 'write_bitmap_out.c'; else $(CYGPATH_W) '$(srcdir)/write_bitmap_out.c'`
+
+create_bmp_for_stripline_coupler-align_bitmap_image.o: align_bitmap_image.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-align_bitmap_image.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-align_bitmap_image.o `test -f 'align_bitmap_image.c' || echo '$(srcdir)/'`align_bitmap_image.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='align_bitmap_image.c' object='create_bmp_for_stripline_coupler-align_bitmap_image.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-align_bitmap_image.o `test -f 'align_bitmap_image.c' || echo '$(srcdir)/'`align_bitmap_image.c
+
+create_bmp_for_stripline_coupler-align_bitmap_image.obj: align_bitmap_image.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-align_bitmap_image.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-align_bitmap_image.obj `if test -f 'align_bitmap_image.c'; then $(CYGPATH_W) 'align_bitmap_image.c'; else $(CYGPATH_W) '$(srcdir)/align_bitmap_image.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='align_bitmap_image.c' object='create_bmp_for_stripline_coupler-align_bitmap_image.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-align_bitmap_image.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-align_bitmap_image.obj `if test -f 'align_bitmap_image.c'; then $(CYGPATH_W) 'align_bitmap_image.c'; else $(CYGPATH_W) '$(srcdir)/align_bitmap_image.c'`
+
+create_bmp_for_stripline_coupler-fill_make_coupler.o: fill_make_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-fill_make_coupler.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-fill_make_coupler.o `test -f 'fill_make_coupler.c' || echo '$(srcdir)/'`fill_make_coupler.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='fill_make_coupler.c' object='create_bmp_for_stripline_coupler-fill_make_coupler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-fill_make_coupler.o `test -f 'fill_make_coupler.c' || echo '$(srcdir)/'`fill_make_coupler.c
+
+create_bmp_for_stripline_coupler-fill_make_coupler.obj: fill_make_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-fill_make_coupler.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-fill_make_coupler.obj `if test -f 'fill_make_coupler.c'; then $(CYGPATH_W) 'fill_make_coupler.c'; else $(CYGPATH_W) '$(srcdir)/fill_make_coupler.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='fill_make_coupler.c' object='create_bmp_for_stripline_coupler-fill_make_coupler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-fill_make_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-fill_make_coupler.obj `if test -f 'fill_make_coupler.c'; then $(CYGPATH_W) 'fill_make_coupler.c'; else $(CYGPATH_W) '$(srcdir)/fill_make_coupler.c'`
+
+create_bmp_for_stripline_coupler-check_error.o: check_error.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-check_error.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-check_error.o `test -f 'check_error.c' || echo '$(srcdir)/'`check_error.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='check_error.c' object='create_bmp_for_stripline_coupler-check_error.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-check_error.o `test -f 'check_error.c' || echo '$(srcdir)/'`check_error.c
+
+create_bmp_for_stripline_coupler-check_error.obj: check_error.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-check_error.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-check_error.obj `if test -f 'check_error.c'; then $(CYGPATH_W) 'check_error.c'; else $(CYGPATH_W) '$(srcdir)/check_error.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='check_error.c' object='create_bmp_for_stripline_coupler-check_error.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-check_error.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-check_error.obj `if test -f 'check_error.c'; then $(CYGPATH_W) 'check_error.c'; else $(CYGPATH_W) '$(srcdir)/check_error.c'`
+
+create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.o: exit_with_msg_and_exit_code.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.o `test -f 'exit_with_msg_and_exit_code.c' || echo '$(srcdir)/'`exit_with_msg_and_exit_code.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='exit_with_msg_and_exit_code.c' object='create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.o `test -f 'exit_with_msg_and_exit_code.c' || echo '$(srcdir)/'`exit_with_msg_and_exit_code.c
+
+create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.obj: exit_with_msg_and_exit_code.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.obj `if test -f 'exit_with_msg_and_exit_code.c'; then $(CYGPATH_W) 'exit_with_msg_and_exit_code.c'; else $(CYGPATH_W) '$(srcdir)/exit_with_msg_and_exit_code.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='exit_with_msg_and_exit_code.c' object='create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-exit_with_msg_and_exit_code.obj `if test -f 'exit_with_msg_and_exit_code.c'; then $(CYGPATH_W) 'exit_with_msg_and_exit_code.c'; else $(CYGPATH_W) '$(srcdir)/exit_with_msg_and_exit_code.c'`
+
+create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.o: get_Er1_and_Er2_colours.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.o `test -f 'get_Er1_and_Er2_colours.c' || echo '$(srcdir)/'`get_Er1_and_Er2_colours.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_Er1_and_Er2_colours.c' object='create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.o `test -f 'get_Er1_and_Er2_colours.c' || echo '$(srcdir)/'`get_Er1_and_Er2_colours.c
+
+create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.obj: get_Er1_and_Er2_colours.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.obj `if test -f 'get_Er1_and_Er2_colours.c'; then $(CYGPATH_W) 'get_Er1_and_Er2_colours.c'; else $(CYGPATH_W) '$(srcdir)/get_Er1_and_Er2_colours.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_Er1_and_Er2_colours.c' object='create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-get_Er1_and_Er2_colours.obj `if test -f 'get_Er1_and_Er2_colours.c'; then $(CYGPATH_W) 'get_Er1_and_Er2_colours.c'; else $(CYGPATH_W) '$(srcdir)/get_Er1_and_Er2_colours.c'`
+
+create_bmp_for_stripline_coupler-print_copyright.o: print_copyright.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-print_copyright.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-print_copyright.o `test -f 'print_copyright.c' || echo '$(srcdir)/'`print_copyright.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_copyright.c' object='create_bmp_for_stripline_coupler-print_copyright.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-print_copyright.o `test -f 'print_copyright.c' || echo '$(srcdir)/'`print_copyright.c
+
+create_bmp_for_stripline_coupler-print_copyright.obj: print_copyright.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-print_copyright.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-print_copyright.obj `if test -f 'print_copyright.c'; then $(CYGPATH_W) 'print_copyright.c'; else $(CYGPATH_W) '$(srcdir)/print_copyright.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_copyright.c' object='create_bmp_for_stripline_coupler-print_copyright.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-print_copyright.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-print_copyright.obj `if test -f 'print_copyright.c'; then $(CYGPATH_W) 'print_copyright.c'; else $(CYGPATH_W) '$(srcdir)/print_copyright.c'`
+
+create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.o: gsl_sf_ellint_Kcomp.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.o -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.o `test -f 'gsl_sf_ellint_Kcomp.c' || echo '$(srcdir)/'`gsl_sf_ellint_Kcomp.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsl_sf_ellint_Kcomp.c' object='create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.o `test -f 'gsl_sf_ellint_Kcomp.c' || echo '$(srcdir)/'`gsl_sf_ellint_Kcomp.c
+
+create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.obj: gsl_sf_ellint_Kcomp.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -MT create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.obj -MD -MP -MF "$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Tpo" \
+@am__fastdepCC_TRUE@     -c -o create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.obj `if test -f 'gsl_sf_ellint_Kcomp.c'; then $(CYGPATH_W) 'gsl_sf_ellint_Kcomp.c'; else $(CYGPATH_W) '$(srcdir)/gsl_sf_ellint_Kcomp.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Tpo" "$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsl_sf_ellint_Kcomp.c' object='create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.Po' tmpdepfile='$(DEPDIR)/create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_bmp_for_stripline_coupler_CFLAGS) $(CFLAGS) -c -o create_bmp_for_stripline_coupler-gsl_sf_ellint_Kcomp.obj `if test -f 'gsl_sf_ellint_Kcomp.c'; then $(CYGPATH_W) 'gsl_sf_ellint_Kcomp.c'; else $(CYGPATH_W) '$(srcdir)/gsl_sf_ellint_Kcomp.c'`
+
+design_coupler-design_coupler.o: design_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-design_coupler.o -MD -MP -MF "$(DEPDIR)/design_coupler-design_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-design_coupler.o `test -f 'design_coupler.c' || echo '$(srcdir)/'`design_coupler.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-design_coupler.Tpo" "$(DEPDIR)/design_coupler-design_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-design_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='design_coupler.c' object='design_coupler-design_coupler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-design_coupler.Po' tmpdepfile='$(DEPDIR)/design_coupler-design_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-design_coupler.o `test -f 'design_coupler.c' || echo '$(srcdir)/'`design_coupler.c
+
+design_coupler-design_coupler.obj: design_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-design_coupler.obj -MD -MP -MF "$(DEPDIR)/design_coupler-design_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-design_coupler.obj `if test -f 'design_coupler.c'; then $(CYGPATH_W) 'design_coupler.c'; else $(CYGPATH_W) '$(srcdir)/design_coupler.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-design_coupler.Tpo" "$(DEPDIR)/design_coupler-design_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-design_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='design_coupler.c' object='design_coupler-design_coupler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-design_coupler.Po' tmpdepfile='$(DEPDIR)/design_coupler-design_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-design_coupler.obj `if test -f 'design_coupler.c'; then $(CYGPATH_W) 'design_coupler.c'; else $(CYGPATH_W) '$(srcdir)/design_coupler.c'`
+
+design_coupler-usage_design_coupler.o: usage_design_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-usage_design_coupler.o -MD -MP -MF "$(DEPDIR)/design_coupler-usage_design_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-usage_design_coupler.o `test -f 'usage_design_coupler.c' || echo '$(srcdir)/'`usage_design_coupler.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-usage_design_coupler.Tpo" "$(DEPDIR)/design_coupler-usage_design_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-usage_design_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='usage_design_coupler.c' object='design_coupler-usage_design_coupler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-usage_design_coupler.Po' tmpdepfile='$(DEPDIR)/design_coupler-usage_design_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-usage_design_coupler.o `test -f 'usage_design_coupler.c' || echo '$(srcdir)/'`usage_design_coupler.c
+
+design_coupler-usage_design_coupler.obj: usage_design_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-usage_design_coupler.obj -MD -MP -MF "$(DEPDIR)/design_coupler-usage_design_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-usage_design_coupler.obj `if test -f 'usage_design_coupler.c'; then $(CYGPATH_W) 'usage_design_coupler.c'; else $(CYGPATH_W) '$(srcdir)/usage_design_coupler.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-usage_design_coupler.Tpo" "$(DEPDIR)/design_coupler-usage_design_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-usage_design_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='usage_design_coupler.c' object='design_coupler-usage_design_coupler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-usage_design_coupler.Po' tmpdepfile='$(DEPDIR)/design_coupler-usage_design_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-usage_design_coupler.obj `if test -f 'usage_design_coupler.c'; then $(CYGPATH_W) 'usage_design_coupler.c'; else $(CYGPATH_W) '$(srcdir)/usage_design_coupler.c'`
+
+design_coupler-get_options.o: get_options.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-get_options.o -MD -MP -MF "$(DEPDIR)/design_coupler-get_options.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-get_options.o `test -f 'get_options.c' || echo '$(srcdir)/'`get_options.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-get_options.Tpo" "$(DEPDIR)/design_coupler-get_options.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-get_options.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_options.c' object='design_coupler-get_options.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-get_options.Po' tmpdepfile='$(DEPDIR)/design_coupler-get_options.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-get_options.o `test -f 'get_options.c' || echo '$(srcdir)/'`get_options.c
+
+design_coupler-get_options.obj: get_options.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-get_options.obj -MD -MP -MF "$(DEPDIR)/design_coupler-get_options.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-get_options.obj `if test -f 'get_options.c'; then $(CYGPATH_W) 'get_options.c'; else $(CYGPATH_W) '$(srcdir)/get_options.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-get_options.Tpo" "$(DEPDIR)/design_coupler-get_options.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-get_options.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='get_options.c' object='design_coupler-get_options.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-get_options.Po' tmpdepfile='$(DEPDIR)/design_coupler-get_options.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-get_options.obj `if test -f 'get_options.c'; then $(CYGPATH_W) 'get_options.c'; else $(CYGPATH_W) '$(srcdir)/get_options.c'`
+
+design_coupler-print_copyright.o: print_copyright.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-print_copyright.o -MD -MP -MF "$(DEPDIR)/design_coupler-print_copyright.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-print_copyright.o `test -f 'print_copyright.c' || echo '$(srcdir)/'`print_copyright.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-print_copyright.Tpo" "$(DEPDIR)/design_coupler-print_copyright.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-print_copyright.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_copyright.c' object='design_coupler-print_copyright.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-print_copyright.Po' tmpdepfile='$(DEPDIR)/design_coupler-print_copyright.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-print_copyright.o `test -f 'print_copyright.c' || echo '$(srcdir)/'`print_copyright.c
+
+design_coupler-print_copyright.obj: print_copyright.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-print_copyright.obj -MD -MP -MF "$(DEPDIR)/design_coupler-print_copyright.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-print_copyright.obj `if test -f 'print_copyright.c'; then $(CYGPATH_W) 'print_copyright.c'; else $(CYGPATH_W) '$(srcdir)/print_copyright.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-print_copyright.Tpo" "$(DEPDIR)/design_coupler-print_copyright.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-print_copyright.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='print_copyright.c' object='design_coupler-print_copyright.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-print_copyright.Po' tmpdepfile='$(DEPDIR)/design_coupler-print_copyright.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-print_copyright.obj `if test -f 'print_copyright.c'; then $(CYGPATH_W) 'print_copyright.c'; else $(CYGPATH_W) '$(srcdir)/print_copyright.c'`
+
+design_coupler-calculate_Zodd_and_Zeven.o: calculate_Zodd_and_Zeven.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-calculate_Zodd_and_Zeven.o -MD -MP -MF "$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-calculate_Zodd_and_Zeven.o `test -f 'calculate_Zodd_and_Zeven.c' || echo '$(srcdir)/'`calculate_Zodd_and_Zeven.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Tpo" "$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='calculate_Zodd_and_Zeven.c' object='design_coupler-calculate_Zodd_and_Zeven.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Po' tmpdepfile='$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-calculate_Zodd_and_Zeven.o `test -f 'calculate_Zodd_and_Zeven.c' || echo '$(srcdir)/'`calculate_Zodd_and_Zeven.c
+
+design_coupler-calculate_Zodd_and_Zeven.obj: calculate_Zodd_and_Zeven.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-calculate_Zodd_and_Zeven.obj -MD -MP -MF "$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-calculate_Zodd_and_Zeven.obj `if test -f 'calculate_Zodd_and_Zeven.c'; then $(CYGPATH_W) 'calculate_Zodd_and_Zeven.c'; else $(CYGPATH_W) '$(srcdir)/calculate_Zodd_and_Zeven.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Tpo" "$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='calculate_Zodd_and_Zeven.c' object='design_coupler-calculate_Zodd_and_Zeven.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.Po' tmpdepfile='$(DEPDIR)/design_coupler-calculate_Zodd_and_Zeven.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-calculate_Zodd_and_Zeven.obj `if test -f 'calculate_Zodd_and_Zeven.c'; then $(CYGPATH_W) 'calculate_Zodd_and_Zeven.c'; else $(CYGPATH_W) '$(srcdir)/calculate_Zodd_and_Zeven.c'`
+
+design_coupler-give_examples_of_using_design_coupler.o: give_examples_of_using_design_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-give_examples_of_using_design_coupler.o -MD -MP -MF "$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-give_examples_of_using_design_coupler.o `test -f 'give_examples_of_using_design_coupler.c' || echo '$(srcdir)/'`give_examples_of_using_design_coupler.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Tpo" "$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='give_examples_of_using_design_coupler.c' object='design_coupler-give_examples_of_using_design_coupler.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Po' tmpdepfile='$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-give_examples_of_using_design_coupler.o `test -f 'give_examples_of_using_design_coupler.c' || echo '$(srcdir)/'`give_examples_of_using_design_coupler.c
+
+design_coupler-give_examples_of_using_design_coupler.obj: give_examples_of_using_design_coupler.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-give_examples_of_using_design_coupler.obj -MD -MP -MF "$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-give_examples_of_using_design_coupler.obj `if test -f 'give_examples_of_using_design_coupler.c'; then $(CYGPATH_W) 'give_examples_of_using_design_coupler.c'; else $(CYGPATH_W) '$(srcdir)/give_examples_of_using_design_coupler.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Tpo" "$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='give_examples_of_using_design_coupler.c' object='design_coupler-give_examples_of_using_design_coupler.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.Po' tmpdepfile='$(DEPDIR)/design_coupler-give_examples_of_using_design_coupler.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-give_examples_of_using_design_coupler.obj `if test -f 'give_examples_of_using_design_coupler.c'; then $(CYGPATH_W) 'give_examples_of_using_design_coupler.c'; else $(CYGPATH_W) '$(srcdir)/give_examples_of_using_design_coupler.c'`
+
+design_coupler-exit_with_msg_and_exit_code.o: exit_with_msg_and_exit_code.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-exit_with_msg_and_exit_code.o -MD -MP -MF "$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-exit_with_msg_and_exit_code.o `test -f 'exit_with_msg_and_exit_code.c' || echo '$(srcdir)/'`exit_with_msg_and_exit_code.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Tpo" "$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='exit_with_msg_and_exit_code.c' object='design_coupler-exit_with_msg_and_exit_code.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Po' tmpdepfile='$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-exit_with_msg_and_exit_code.o `test -f 'exit_with_msg_and_exit_code.c' || echo '$(srcdir)/'`exit_with_msg_and_exit_code.c
+
+design_coupler-exit_with_msg_and_exit_code.obj: exit_with_msg_and_exit_code.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-exit_with_msg_and_exit_code.obj -MD -MP -MF "$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-exit_with_msg_and_exit_code.obj `if test -f 'exit_with_msg_and_exit_code.c'; then $(CYGPATH_W) 'exit_with_msg_and_exit_code.c'; else $(CYGPATH_W) '$(srcdir)/exit_with_msg_and_exit_code.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Tpo" "$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='exit_with_msg_and_exit_code.c' object='design_coupler-exit_with_msg_and_exit_code.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.Po' tmpdepfile='$(DEPDIR)/design_coupler-exit_with_msg_and_exit_code.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-exit_with_msg_and_exit_code.obj `if test -f 'exit_with_msg_and_exit_code.c'; then $(CYGPATH_W) 'exit_with_msg_and_exit_code.c'; else $(CYGPATH_W) '$(srcdir)/exit_with_msg_and_exit_code.c'`
+
+design_coupler-gsl_sf_ellint_Kcomp.o: gsl_sf_ellint_Kcomp.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-gsl_sf_ellint_Kcomp.o -MD -MP -MF "$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-gsl_sf_ellint_Kcomp.o `test -f 'gsl_sf_ellint_Kcomp.c' || echo '$(srcdir)/'`gsl_sf_ellint_Kcomp.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Tpo" "$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsl_sf_ellint_Kcomp.c' object='design_coupler-gsl_sf_ellint_Kcomp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Po' tmpdepfile='$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-gsl_sf_ellint_Kcomp.o `test -f 'gsl_sf_ellint_Kcomp.c' || echo '$(srcdir)/'`gsl_sf_ellint_Kcomp.c
+
+design_coupler-gsl_sf_ellint_Kcomp.obj: gsl_sf_ellint_Kcomp.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -MT design_coupler-gsl_sf_ellint_Kcomp.obj -MD -MP -MF "$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Tpo" \
+@am__fastdepCC_TRUE@     -c -o design_coupler-gsl_sf_ellint_Kcomp.obj `if test -f 'gsl_sf_ellint_Kcomp.c'; then $(CYGPATH_W) 'gsl_sf_ellint_Kcomp.c'; else $(CYGPATH_W) '$(srcdir)/gsl_sf_ellint_Kcomp.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Tpo" "$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='gsl_sf_ellint_Kcomp.c' object='design_coupler-gsl_sf_ellint_Kcomp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.Po' tmpdepfile='$(DEPDIR)/design_coupler-gsl_sf_ellint_Kcomp.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(design_coupler_CFLAGS) $(CFLAGS) -c -o design_coupler-gsl_sf_ellint_Kcomp.obj `if test -f 'gsl_sf_ellint_Kcomp.c'; then $(CYGPATH_W) 'gsl_sf_ellint_Kcomp.c'; else $(CYGPATH_W) '$(srcdir)/gsl_sf_ellint_Kcomp.c'`
+uninstall-info-am:
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
+
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+
+installdirs:
+       $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-compile distclean-depend \
+       distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic ctags distclean distclean-compile \
+       distclean-depend distclean-generic distclean-tags distdir dvi \
+       dvi-am info info-am install install-am install-binPROGRAMS \
+       install-data install-data-am install-exec install-exec-am \
+       install-info install-info-am install-man install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-binPROGRAMS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/non_gui/README b/src/non_gui/README
new file mode 100644 (file)
index 0000000..2ff7a74
--- /dev/null
@@ -0,0 +1,15 @@
+Here are a number of example files, falling into 4 catabories:
+
+foo.bmp                       (a bitmap showing the cross section)
+foo.V.bmo, foo.E.bmp ..       (showing the voltage, electric field etc)
+foo.bmp.txt                   (the result of running atlc on foo.bmp)
+foo.V.even.bmp, foo.E.odd.bmp (voltage, E-field etc for coupled lines).
+
+Formally a lot of examples were created during the 'make check' stage.
+However, users of the automake mailing list all thought this was not
+such a good idea and that the files should be distributed. Hence a lot
+more examples are now distrubted. Whilst this makes the package bigger,
+it solves a lot of problems with automake. 
+
+Dr. David Kirkby
+29th March 2003.
diff --git a/src/non_gui/align_bitmap_image.c b/src/non_gui/align_bitmap_image.c
new file mode 100644 (file)
index 0000000..183c9a1
--- /dev/null
@@ -0,0 +1,81 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+/* a vector of length W*H called 'unaligned_image' contains the data. 
+This is written to a vector 'byte_aligned_image', which in general is longer
+and is of length 'vector_aligned. This routine returns the lenght of the image, 
+once it have been byte-aligned 
+
+The image 'unaligned_image' is expected to have the top of the image at the top of the
+file. This routine puts the image, so the bottom of the image is at the beggining of the 
+vector 'byte_aligned_image' 
+*/
+
+int align_bitmap_image(int W,int H,unsigned char *unaligned_image,unsigned char *byte_aligned_image)
+{
+   int i, j, vector_aligned=0, vector_original=0;
+   /* put into the vector, in reverse order - i.e. from bottom to top */
+   for(j=0;j<H;j++)
+   {
+      for(i=0;i <W; ++i)
+      {
+        /* vector_aligned is the offset into the image that's padded
+        to allow 4-byte alignment */
+        /* offset is not, and so will allways be <=vector_offset */
+        if( (i==0) && (vector_aligned%4!=0) )
+           vector_aligned++;
+        if( (i==0) && (vector_aligned%4!=0) )
+           vector_aligned++;
+        if( (i==0) && (vector_aligned%4!=0) )
+           vector_aligned++; 
+        byte_aligned_image[vector_aligned]=unaligned_image[vector_original];
+        byte_aligned_image[vector_aligned+1]=unaligned_image[vector_original+1];
+        byte_aligned_image[vector_aligned+2]=unaligned_image[vector_original+2];
+         vector_original+=3;
+         vector_aligned+=3;
+      }
+   }
+   if( vector_aligned%4!=0 )
+      vector_aligned++;
+   if( vector_aligned%4!=0 )
+      vector_aligned++;
+   if( vector_aligned%4!=0 )
+      vector_aligned++;
+   return(vector_aligned);
+}
diff --git a/src/non_gui/atlc.c b/src/non_gui/atlc.c
new file mode 100644 (file)
index 0000000..eb062c4
--- /dev/null
@@ -0,0 +1,292 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+#ifdef ENABLE_POSIX_THREADS
+#include <pthread.h>
+#endif
+
+#ifdef ENABLE_MPI
+#include <mpi.h>
+#endif
+
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+
+
+struct pixels Er_on_command_line[MAX_DIFFERENT_PERMITTIVITIES];
+struct pixels Er_in_bitmap[MAX_DIFFERENT_PERMITTIVITIES];
+
+double **Vij;
+double **Er;
+unsigned char **oddity; 
+unsigned char **cell_type; 
+unsigned char *image_data;
+int width=-1, height=-1;
+extern int errno;
+int number_of_workers=MAX_THREADS; 
+int non_vacuum_found=FALSE;
+int dielectrics_to_consider_just_now;
+int coupler=FALSE;
+double r=1.90;
+
+char *inputfile_name;
+
+int main(int argc, char **argv) /* Read parameters from command line */
+{
+  FILE *where_to_print_fp=stdout, *image_data_fp;
+  char *outputfile_name, *appendfile_name, *output_prefix;
+  long i;
+  size_t size;
+  int offset;
+  int q;
+  char *end;
+  struct transmission_line_properties data;
+  errno=0; 
+  set_data_to_sensible_starting_values(&data);
+  inputfile_name=string(0,1024);
+  outputfile_name=string(0,1024);
+  appendfile_name=string(0,1024);
+  output_prefix=string(0,1024);
+  /* only use this if we have both a multi-threaded application and that 
+  with have the function */
+  (void) strcpy(output_prefix,"");
+  while((q=get_options(argc,argv,"Cr:vsSc:d:p:i:t:w:")) != -1)
+  switch (q) 
+  {
+    case 'C':
+      print_copyright( (char *) "1996-2002");
+      exit_with_msg_and_exit_code("",1);
+    break;
+    case 'b':
+      data.should_binary_data_be_written_tooQ=TRUE;
+    break;
+    case 'd':
+      /* Read a colour from the command line */
+      Er_on_command_line[data.dielectrics_on_command_line].other_colour=\
+      strtol(my_optarg, &end, 16);
+      /* Sepparte it into the Red, Green and Blue components */
+      Er_on_command_line[data.dielectrics_on_command_line].blue=\
+      Er_on_command_line[data.dielectrics_on_command_line].other_colour%256;
+      Er_on_command_line[data.dielectrics_on_command_line].green=\
+      Er_on_command_line[data.dielectrics_on_command_line].other_colour/(256);
+      Er_on_command_line[data.dielectrics_on_command_line].red=\
+      Er_on_command_line[data.dielectrics_on_command_line].other_colour/(256*256);
+      end++; /* Gets rid of '=' sign which we put on the command line */
+      Er_on_command_line[data.dielectrics_on_command_line].epsilon=atof(end);
+      if (data.verbose_level > 1)
+        printf("r=%x g=%x b=%x col=%x Er=%f\n",\
+      Er_on_command_line[data.dielectrics_on_command_line].red,\
+      Er_on_command_line[data.dielectrics_on_command_line].green, \
+      Er_on_command_line[data.dielectrics_on_command_line].blue, \
+      Er_on_command_line[data.dielectrics_on_command_line].other_colour, \
+      Er_on_command_line[data.dielectrics_on_command_line].epsilon);
+      data.dielectrics_on_command_line++;
+    break;
+    case 'c':
+      data.cutoff=atof(my_optarg);
+    break;
+    case 'p':
+      (void) strcpy(output_prefix,my_optarg);
+    break;
+    case 'r':
+      data.r=atof(my_optarg);
+      r=data.r;
+    break;
+    case 's':
+      data.write_bitmap_field_imagesQ=FALSE;
+    break;
+    case 'S':
+      data.write_binary_field_imagesQ=FALSE;
+    break;
+    case 't':
+      number_of_workers=atol(my_optarg);
+      if(number_of_workers > MAXIMUM_PROCESSING_DEVICES)
+      {
+         fprintf(stderr,"You are exceeded the %d limit set in the file definitions.h\n",MAXIMUM_PROCESSING_DEVICES);
+        fprintf(stderr,"If you really do want this many, you will need to recompile\n");    
+         exit_with_msg_and_exit_code("",USER_REQUESTED_TOO_MANY_THREADS);
+      }
+#ifndef ENABLE_POSIX_THREADS
+      if(number_of_workers != 0)
+         exit_with_msg_and_exit_code("Error #1. The -t option can not be \
+used, (except to  set t=0, which is an \nexception made to allow a \
+benchmark to run), on a version of atlc that was \nnot configured with the \
+--with-threads option, and hence built without the \nthreads library.\n",1);
+#endif
+    break;
+    case 'w':
+#ifndef ENABLE_MPI
+      exit_with_msg_and_exit_code("Error #1a. The -w option can not be used on \
+a version of atlc that was not\nconfigured with the --with-mpi option, \
+hence built without the mpi\nlibrary.\n",1);
+#endif
+          break;
+    case 'i': /* Lighten or darken images of E-field */
+         data.image_fiddle_factor=atof(my_optarg);
+         break;
+    case 'v':
+      data.verbose_level++;
+    break;
+    case '?':
+      usage_atlc();
+  } /* End of the switch statement */
+
+  /* There should only be one argument to atlc, the bitmapfile name.
+  There can be a few options though. We now check that there is only
+  one argument */
+
+  if(argc-my_optind == 1)  /* This should be so hopefully !! */
+  {
+#ifdef DEBUG
+  if (errno != 0)
+    fprintf(stderr,"errno=%d in atlc.c #2\n",errno);
+#endif
+    (void) strcpy(inputfile_name, argv[my_optind]);
+    (void) strcpy(outputfile_name, output_prefix);
+    (void) strcat(output_prefix,inputfile_name);
+    (void) strcpy(outputfile_name,output_prefix);
+    free_string(output_prefix,0,1024);
+    read_bitmap_file_headers(inputfile_name, &offset, &size, &width, &height);
+
+    /* Allocate all ram now, so atlc is sure to have it. There is no point
+    in getting some now, starting work then finding atlc can't get the 
+    rest of what is needed. */
+    image_data=ustring(0L,(long)size);
+    oddity=ucmatrix(0,width-1,0,height-1);
+    cell_type=ucmatrix(0,width-1,0,height-1);
+    Vij=dmatrix(0,width-1,0,height-1);
+    Er=dmatrix(0,width-1,0,height-1);
+    /* On Solaris systems, if the following is not executed, only one 
+    thread will run at any one time, which rather defeats the object of 
+    running multi-threaded. */
+
+#ifdef ENABLE_POSIX_THREADS
+#ifdef HAVE_PTHREAD_SETCONCURRENCY     
+    pthread_setconcurrency(number_of_workers);
+#endif 
+#endif 
+    
+    /* Each thread solves the equations for a part of the voltage
+    matrix. If there were more threads than columms we would have a
+    problem. I'm not sure exactly how many can be got away with, but
+    one is unlikly to have more cpus that matrix columns */
+
+    /* In theory, it would be sensible to get atlc to be able to read
+    from stdin. This is a test, that checks if the filename is '-', and
+    if so assumes its reading from stdin. So far, the program is
+    unable to read from stdin, so this code is not really doing
+    anything useful, but might be expanded at a later date. */
+#ifdef DEBUG
+  if (errno != 0)
+    fprintf(stderr,"errno=%d in atlc.c #3\n",errno);
+#endif
+    if( strcmp(argv[my_optind],"-") != 0)
+    {
+      if( (image_data_fp=fopen(inputfile_name, "rb")) == NULL)
+      {
+        fprintf(stderr,"Error #3. Can't open %s!!!!!\n", argv[my_optind]);
+        exit_with_msg_and_exit_code("",3);
+      }
+      if(fseek(image_data_fp, offset, SEEK_SET)!=0)
+      {   
+        fprintf(stderr,"Error #4. Sorry, unable to seek to the correct part \
+       (offset=%d) of the bmp image\n", offset);
+       exit_with_msg_and_exit_code("",4);
+      }
+    } /* end of if( strcmp(argv[my_optind],"-") != 0) */
+    else
+      image_data_fp=stdin;
+    /* For some unknown reason Microsoft's Visual C++ was unhappy to read
+    the bitmap image using an fread() call. Instead, the following two 
+    stupid lines fixed that issue. This will only get compiled under 
+    Windoze, the more sensible fread call being used on other operating 
+    systems. */
+
+#ifdef WINDOWS
+    for(i=0; (i < (long)size ) && (feof(image_data_fp)==0); i++)
+      image_data[i]=(unsigned char)fgetc(image_data_fp);
+#else
+       i = fread(image_data,  size, 1, image_data_fp);
+#endif
+    if((ferror(image_data_fp) || (i != 1 )))
+    {
+      fprintf(stderr,"Error #5. Unable to read all of the image data properly\n");
+      exit_with_msg_and_exit_code("",5);
+    }
+    /* declare matrix's to indicate what pixels are fixed and variable */
+    /* We now fill the following 3 arrays with the correct data, based on the 
+    contents of the bitmap image */
+
+    setup_arrays(&data);
+    set_oddity_value();
+
+    /* If there are multiple dielectrics, the impedance calculations
+    needs to be done twice. We start by doing them once, for an vacuum
+    dielectric. If necessary, they will be done again */
+    do_fd_calculation(&data, size, where_to_print_fp,outputfile_name);
+  }
+  else
+  {
+    usage_atlc();
+    return(PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS); 
+  }
+  free_string(inputfile_name,0,1024);
+  free_string(outputfile_name,0,1024);
+  free_string(appendfile_name,0,1024);
+  free_ustring(image_data,0L,(long) size);
+  free_ucmatrix(oddity,0,width-1,0,height-1);
+  free_ucmatrix(cell_type,0,width-1,0,height-1);
+  free_dmatrix(Vij, 0,width-1,0,height-1);
+  free_dmatrix(Er,0,width-1,0,height-1);
+  return(OKAY); 
+}
diff --git a/src/non_gui/bmp.h b/src/non_gui/bmp.h
new file mode 100644 (file)
index 0000000..7cbb4c7
--- /dev/null
@@ -0,0 +1,48 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+struct Bitmap_File_Head_Struct
+{
+  char   zzMagic[2];   /* 00 "BM" */
+  long   bfSize;      /* 02 */
+  short  zzHotX;       /* 06 */
+  short  zzHotY;       /* 08 */
+  long   bfOffs;      /* 0A */
+  long   biSize;      /* 0E */
+} Bitmap_File_Head;
+
+struct Bitmap_Head_Struct
+{
+  long   biWidth;     /* 12 */
+  long   biHeight;    /* 16 */
+  short  biPlanes;    /* 1A */
+  short  biBitCnt;    /* 1C */
+  long   biCompr;     /* 1E */
+  long   biSizeIm;    /* 22 */
+  long   biXPels;     /* 26 */
+  long   biYPels;     /* 2A */
+  long   biClrUsed;   /* 2E */
+  long   biClrImp;    /* 32 */
+                        /* 36 */
+} Bitmap_Head;
diff --git a/src/non_gui/byteswap.c b/src/non_gui/byteswap.c
new file mode 100644 (file)
index 0000000..03a16aa
--- /dev/null
@@ -0,0 +1,54 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include "definitions.h"
+
+extern int errno;
+
+/* This routine swaps data from the little-endian format to the big-endian 
+format or visa-versa. */
+
+void byteswap_doubles(double *a)
+{
+       unsigned char b[8],c[8];
+       (void) memcpy(b,a,8); 
+       c[0]=b[7]; /* swap data around */
+       c[1]=b[6];
+       c[2]=b[5];
+       c[3]=b[4];
+       c[4]=b[3];
+       c[5]=b[2];
+       c[6]=b[1];
+       c[7]=b[0];
+       (void) memcpy(a,c,8);
+#ifdef DEBUG
+       error_check("byteswap");
+#endif 
+}
diff --git a/src/non_gui/calculate_Zodd_and_Zeven.c b/src/non_gui/calculate_Zodd_and_Zeven.c
new file mode 100644 (file)
index 0000000..1d00898
--- /dev/null
@@ -0,0 +1,60 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The following calculates the odd and even mode impedances between two
+zero thickness strips of width w, spaced a distance s between two
+groundplanes of spacing h. */
+
+#include "config.h"
+
+#include "gsl_types.h"
+#include "gsl_definitions.h"
+#include "definitions.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#include "exit_codes.h"
+/* formuals taken from Matthaei, Young and Jones, Microwave Filters, Impedance Matching
+Networks and Coupling Structures, Artech House, Dedham, MA., 1980. , but I've substituted
+29.97924580105028, as its clear 30 is just a close approximation */
+
+void calculate_Zodd_and_Zeven(double *Zodd, double *Zeven, double *Zo, double w, double H, double s, double er)
+{
+  double ke, ko, ko_dash, ke_dash;
+  ke=(tanh((M_PI/2)*(w/H)))*tanh((M_PI/2)*(w+s)/H);
+  ko=(tanh((M_PI/2)*(w/H)))/tanh((M_PI/2)*(w+s)/H);
+
+  ke_dash=sqrt(1-ke*ke);
+  ko_dash=sqrt(1-ko*ko);
+
+  *Zeven=29.9792458010502837*M_PI*gsl_sf_ellint_Kcomp(ke_dash, GSL_PREC_DOUBLE)/(gsl_sf_ellint_Kcomp(ke,GSL_PREC_DOUBLE)*sqrt(er));
+  *Zodd= 29.9792458010502837*M_PI*gsl_sf_ellint_Kcomp(ko_dash, GSL_PREC_DOUBLE)/(gsl_sf_ellint_Kcomp(ko,GSL_PREC_DOUBLE)*sqrt(er));
+  *Zo=sqrt( (*Zodd)*(*Zeven));
+}
diff --git a/src/non_gui/calculate_colour_data.c b/src/non_gui/calculate_colour_data.c
new file mode 100644 (file)
index 0000000..91556c7
--- /dev/null
@@ -0,0 +1,109 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_h
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#include "definitions.h"
+
+extern double **Vij;
+extern double **Er;
+extern unsigned char **oddity;
+
+void calculate_colour_data(double x, double xmax, int w, int h, int offset, unsigned char *image_dat, int image_type,
+unsigned char *red, unsigned char *green, unsigned char *blue, double image_fiddle_factor)
+{
+  if(image_type==COLOUR) /*Ex, Ey, V */
+  {
+    if(fabs(x) < 1e-9) /* This is a bit of a fiddle I admit, but */
+    {                  /* Is needed to prevent problems at 'small' values */
+      *red=0;
+      *green=0;
+      *blue=0;
+    }
+    else if(x > 0.0)
+    {
+      *red=255*pow(x/xmax,1.0/image_fiddle_factor);
+      *green=0; 
+      *blue=0; 
+    }
+    else 
+    {
+      *red=0; 
+      *green=0; 
+      *blue=255*pow(-x/xmax,1.0/image_fiddle_factor); 
+    }
+  }
+  else if (image_type==MONOCHROME) /* E, energy, permittivity */
+  {
+    if(x > xmax)
+    {
+      *red=0; *green=0; *blue=0;
+    }
+    else
+    {
+      *red=255*pow(fabs(x/xmax),1.0/image_fiddle_factor);
+      *green=255*pow(fabs(x/xmax),1.0/image_fiddle_factor);
+      *blue=255*pow(fabs(x/xmax),1.0/image_fiddle_factor);
+     }
+  }
+  else if (image_type==MIXED) /* Only for permittivity*/
+  {
+    if(oddity[w][h]==CONDUCTOR_ZERO_V)
+    {
+      *red=0; *green=255; *blue=0;
+    }
+    else if(oddity[w][h]==CONDUCTOR_PLUS_ONE_V)
+    {
+      *red=255; *green=0; *blue=0;
+    }
+    else if(oddity[w][h]==CONDUCTOR_MINUS_ONE_V)
+    {
+      *red=0; *green=0; *blue=255;
+    }
+    else
+    {
+      *red=255*pow(fabs(x/xmax),1.0/image_fiddle_factor);
+      *green=255*pow(fabs(x/xmax),1.0/image_fiddle_factor);
+      *blue=255*pow(fabs(x/xmax),1.0/image_fiddle_factor);
+     }
+  }
+  image_dat[offset]=*blue; 
+  image_dat[offset+1]=*green; 
+  image_dat[offset+2]=*red; 
+}
diff --git a/src/non_gui/calculate_impedance_for_create_bmp_for_symmetrical_stripline.c b/src/non_gui/calculate_impedance_for_create_bmp_for_symmetrical_stripline.c
new file mode 100644 (file)
index 0000000..a632cbd
--- /dev/null
@@ -0,0 +1,70 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* This routine calaculates the impedance exaclty for the case of two
+infinity wide conductors sepparated a distance H, with between them
+placed centrally a conductor of width w and infinitely thin. 
+
+i.e.
+******^***********************************************************************
+      |
+      |
+      H                    ----------w----------
+      |
+      |
+******Vij***********************************************************************
+
+It uses the method given in "Filed Theory of Guided Waves, Colen R.E.,
+2nd edition, pp 259-273, IEEE Press, (1990). */
+
+#include "config.h"
+
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+extern int verbose;
+
+double calculate_symmetrical_stripline_impedance(int H, int w)
+{
+  double Zo;
+  double mu=4*M_PI*1e-7, x0, v0,  c, l, k;
+  x0=pow(cosh(M_PI*w/(2.0*H)),2.0);
+  if (verbose >=2)
+    printf("w=%d H=%d w/H=%f xo=%g\n",w,H,(double)w/H,x0);
+  if((double) w / (double) H > 226.369458)
+    exit_with_msg_and_exit_code("Bitmap is written fine, but can't compute impedance", THE_WIDTH_w_DIVIDED_BY_THE_HEIGHT_H_IS_TOO_LARGE);
+  k=1.0/sqrt(x0);
+  v0=K_over_Kdash(k);
+  c=4*EPSILON_0/v0;
+  l=mu*EPSILON_0/c;
+  Zo=sqrt(l/c);
+  return(Zo);
+}
+
+
diff --git a/src/non_gui/calculate_integer_values.c b/src/non_gui/calculate_integer_values.c
new file mode 100644 (file)
index 0000000..983edaf
--- /dev/null
@@ -0,0 +1,117 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The following calculates the odd and even mode impedances between two
+zero thickness strips of width w, spaced a distance s between two
+groundplanes of spacing h. */
+
+#include "config.h"
+#include "definitions.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+double calculate_integer_values(struct transmission_line_properties *optimise,int nmax,int accuracy_level)
+{
+  double grid_size, error, error_max=1e6; 
+  int i, min_pixels, max_pixels, n, min_critical_pixels, max_critical_pixels;
+  int most_critical=0, step=1; 
+  double min_pixel_size, max_pixel_size;
+  double W, H;
+
+  for(i=0;i<9;++i)
+    optimise->best[i]=-1;   /* A silly value, indicating it is not acceptable */
+  /* Let the number of pixel in the image be between 2^n and 2^(n+2) */
+
+  min_pixels=(int) pow(2.0,(double)(accuracy_level-1));
+  max_pixels=(int) pow(2.0,(double)(accuracy_level+1));
+
+  /* Although the stucture W by H has an exact area of W*H, we will    
+  allocate some pixels to  this, which will be much smaller than
+  the W*H. Each pixel will have a variable area, which we don't  
+  know yet, but can put upper and lower limits on it. 
+  */
+
+  W=optimise->float_values[0];  /* The calculated W and H  */ 
+  H=optimise->float_values[1];
+  min_pixel_size=sqrt(W*H/max_pixels);
+  max_pixel_size=sqrt(W*H/min_pixels);
+
+  /* find the most critical dimension */
+  for(n=0;n<nmax;n++)
+  {
+    if(optimise->importance[n]==MOST_IMPORTANT)
+      most_critical=n;
+  }
+  /* we will allocate a number of pixels to this most critical 
+  dimension, set by */
+  
+  min_critical_pixels = optimise->float_values[most_critical]/max_pixel_size;
+  max_critical_pixels = optimise->float_values[most_critical]/min_pixel_size;
+
+
+  /* Normally we would try every combination of i, but it may be necessary to keep it even or odd */
+  if(optimise->odd_or_even[most_critical] == ODD  &&  min_critical_pixels%2==0) 
+    min_critical_pixels--;
+  else if(optimise->odd_or_even[most_critical] == EVEN  &&  min_critical_pixels%2==1) 
+    min_critical_pixels--;
+  if(optimise->odd_or_even[most_critical] != DONT_CARE)
+    step=2;
+
+  for(i=min_critical_pixels; i<max_critical_pixels;i+=step)
+  {
+    /* set the most critical dimension to i pixels, trying every i 
+    between two set limits */
+
+    optimise->int_values[most_critical]=i;
+    grid_size=optimise->float_values[most_critical]/i;
+
+    /* Now set all the others to the optimal, assuming i would be used
+    for the most critical dimension */
+    error=0.0;
+    for(n=0; n<nmax;++n)
+    {
+      optimise->int_values[n]=(int) (0.5+optimise->float_values[n]/grid_size);
+      if (optimise->importance[n] != NOT_IMPORTANT)
+      {
+       error+=fabs((double)optimise->int_values[n]*grid_size-optimise->float_values[n]);
+      }
+    }
+    /* Since the numbers generated for the integers seeme to differ on different
+    computers, I've suspected the problem might be that an error is very
+    similar at two different sets of integer values. Hence I will only
+    consider the error lower its lower by 1e-9. That should avoid silly
+    rounding problems. */
+
+    if(error<(error_max-TINY)) /* The 1e-9 avoids different results on different*/
+    {                          /* machines due to rounding errors */
+     error_max=error;
+     for(n=0; n<nmax;++n)
+       optimise->best[n]=optimise->int_values[n];
+    }
+  }
+  return(error_max); /* return the error */
+}
diff --git a/src/non_gui/check_error.c b/src/non_gui/check_error.c
new file mode 100644 (file)
index 0000000..b69bbbc
--- /dev/null
@@ -0,0 +1,67 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include "definitions.h"
+#include "exit_codes.h"
+
+/* names, colours and Ers are all arrays of 10. It would be better they were 
+in a structure as they are all linked closely, but they are not and I
+can't be bothered to change it */
+
+
+
+/* This function checks to see if the errors on the grid are too large.
+A problem occurs if a number was zero, so this needs to be carefullly
+controlled. */
+
+void check_error(double user, int create_bmp_for_rect_in_rect, double gridsize, const char *name)
+{
+   double fractional_error;
+   fractional_error=fabs((user-(create_bmp_for_rect_in_rect*gridsize))/user);
+   if(user > 0)
+   {
+      if(fractional_error > UNACCEPTABLE_ERROR)
+      {
+         fprintf(stderr,"Error #14. Unacceptable %f%% error in representing %s on the grid\n", fractional_error*100.0, name);
+        fprintf(stderr,"Try increasing the bitmap size with the -b option\n");
+        exit_with_msg_and_exit_code("exiting ...",UNACCEPTABLE_ERROR_WHEN_CONVERTING_TO_INTEGERS);
+      }
+      else if(fractional_error > ACCEPTABLE_ERROR)
+         fprintf(stderr,"*WARNING*  %f%% error in representing %s on the grid\n", fractional_error*100.0, name);
+   }
+}
diff --git a/src/non_gui/check_for_boundaries.c b/src/non_gui/check_for_boundaries.c
new file mode 100644 (file)
index 0000000..632314d
--- /dev/null
@@ -0,0 +1,18 @@
+/* The function 'setup_arrays sets the cell_type[i][j] to be DIELECTRIC
+if the material is non-metal. This function expands on that, checking if
+the adjactent cells are dielectrics, or metals, and if dielectric,
+whether or nor there is a boundary vertically, or horizontally between
+two different dielectrics. Doing this once, is much faster than doing it
+inside a loop, checking for all possibilities each time one needs to
+know. */
+
+#include "definitions.h"
+
+extern int width, height;
+extern unsigned char **oddity, **cell_type; 
+extern double **Er;
+
+void check_for_boundaries(void) 
+{
+}
+
diff --git a/src/non_gui/check_for_shorts.c b/src/non_gui/check_for_shorts.c
new file mode 100644 (file)
index 0000000..3cc5538
--- /dev/null
@@ -0,0 +1,132 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* This routines checkes for short circuits in the image. Clearly, it is
+should not possible to have a 1V conductor touching a -1 V conductor. 
+
+Although currently the software does not support the use of a floating 
+conductor (an anea of fixed, but undefined) voltage, error messages
+to take this into account have been included, but commentted out.*/ 
+
+
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+extern int width, height;
+extern unsigned char **oddity;
+
+/* This checks for shorts. We only check to the right (increasing w) and below (increasing h)
+since its pointless checking all directions when one moves to an adjacent pixel later */
+void check_for_shorts(void)
+{
+  int w, h;
+
+  for(h=1;h<height-1;h++)
+  {
+    for(w=1; w<width-1;w++)
+    {
+      if( oddity[w][h]==CONDUCTOR_ZERO_V )
+      {
+       /* Check to see if the pixel below is shorted */       
+       if((oddity[w][h+1]==CONDUCTOR_PLUS_ONE_V) || (oddity[w][h+1]==CONDUCTOR_MINUS_ONE_V) || (oddity[w][h+1]==CONDUCTOR_FLOATING))
+       {
+         fprintf(stderr,"\n**************ERROR******************\n");
+         fprintf(stderr,"Pixel (%d,%d) is set to 0V, but pixel\n",w,h);
+         fprintf(stderr,"(%d,%d) is set to a different fixed voltage\n",w,h+1);
+         fprintf(stderr,"creating a short. Please correct this.\n");
+          exit_with_msg_and_exit_code("",CONDUCTOR_ZERO_V);
+        }
+       /* Check to see if the pixel to the right is shorted */       
+       else if((oddity[w+1][h]==CONDUCTOR_PLUS_ONE_V) || (oddity[w+1][h]==CONDUCTOR_MINUS_ONE_V) || (oddity[w+1][h]==CONDUCTOR_FLOATING))
+       {
+         fprintf(stderr,"\n**************ERROR******************\n");
+         fprintf(stderr,"Pixel (%d,%d) is set to 0V, but pixel\n",w,h);
+         fprintf(stderr,"(%d,%d) is set to a different fixed voltage\n",w+1,h);
+         fprintf(stderr,"creating a short. Please correct this.\n");
+          exit_with_msg_and_exit_code("",CONDUCTOR_ZERO_V);
+        }
+
+      } /* end of if(oddity==CONDUCTOR_ZERO_V) */
+
+      else if( oddity[w][h]==CONDUCTOR_PLUS_ONE_V )
+      {
+       /* Check for a short of the pixel below */        
+       if((oddity[w][h+1]==CONDUCTOR_ZERO_V) || \
+       (oddity[w][h+1]==CONDUCTOR_MINUS_ONE_V) \
+       || (oddity[w][h+1]==CONDUCTOR_FLOATING))
+       {
+         fprintf(stderr,"\n**************ERROR******************\n");
+         fprintf(stderr,"Pixel (%d,%d) is set to 1 V, but pixel\n",w,h);
+         fprintf(stderr,"(%d,%d) is set to a different fixed voltage\n",w,h+1);
+         fprintf(stderr,"creating a short. Please correct this.\n");
+          exit_with_msg_and_exit_code("",CONDUCTOR_PLUS_ONE_V);
+        }
+       /* Check to see if the pixel to the right is shorted */       
+       else if((oddity[w+1][h]==CONDUCTOR_ZERO_V) || \
+       (oddity[w+1][h]==CONDUCTOR_MINUS_ONE_V) \
+       || (oddity[w+1][h]==CONDUCTOR_FLOATING))
+       {
+         fprintf(stderr,"\n**************ERROR******************\n");
+         fprintf(stderr,"Pixel (%d,%d) is set to 1 V, but pixel\n",w,h);
+         fprintf(stderr,"(%d,%d) is set to a different fixed voltage\n",w+1,h);
+         fprintf(stderr,"creating a short. Please correct this.\n");
+          exit_with_msg_and_exit_code("",CONDUCTOR_PLUS_ONE_V);
+        }
+      } /* end of if(oddity==CONDUCTOR_PLUS_ONE_V) */
+      
+      else if( oddity[w][h]==CONDUCTOR_MINUS_ONE_V )
+      {
+       /* Check for a short of the pixel below */        
+       if((oddity[w][h+1]==CONDUCTOR_ZERO_V) || \
+       (oddity[w][h+1]==CONDUCTOR_PLUS_ONE_V) \
+       || (oddity[w][h+1]==CONDUCTOR_FLOATING))
+       {
+         fprintf(stderr,"\n**************ERROR******************\n");
+         fprintf(stderr,"Pixel (%d,%d) is set to -1 V, but pixel\n",w,h);
+         fprintf(stderr,"(%d,%d) is set to a different fixed voltage\n",w,h+1);
+         fprintf(stderr,"creating a short. Please correct this.\n");
+          exit_with_msg_and_exit_code("",CONDUCTOR_MINUS_ONE_V);
+        }
+       /* Check to see if the pixel to the right is shorted */       
+       if((oddity[w][h+1]==CONDUCTOR_ZERO_V) || \
+       (oddity[w][h+1]==CONDUCTOR_PLUS_ONE_V) \
+       || (oddity[w][h+1]==CONDUCTOR_FLOATING))
+       {
+         fprintf(stderr,"\n**************ERROR******************\n");
+         fprintf(stderr,"Pixel (%d,%d) is set to -1 V, but pixel\n",w,h);
+         fprintf(stderr,"(%d,%d) is set to a different fixed voltage\n",w,h+1);
+         fprintf(stderr,"creating a short. Please correct this.\n");
+          exit_with_msg_and_exit_code("",CONDUCTOR_MINUS_ONE_V);
+        }
+      } /* end of if(oddity==CONDUCTOR_PLUS_ONE_V) */
+    } /* end of for w.. loop */
+  } /* end of for h .. loop */
+} /* end of function check_for_shorts */
+
diff --git a/src/non_gui/check_parameters_for_find_optimal_dimensions_for_microstrip_coupler.c b/src/non_gui/check_parameters_for_find_optimal_dimensions_for_microstrip_coupler.c
new file mode 100644 (file)
index 0000000..802829f
--- /dev/null
@@ -0,0 +1,47 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void check_parameters_for_find_optimal_dimensions_for_microstrip_coupler\
+(double h,double t,double Er1,double Er2,double ideal_Zodd,double ideal_Zeven) 
+{
+  if(h <= 0)
+    exit_with_msg_and_exit_code("h <= 0",ARGUMENT_h_OUT_OF_RANGE);
+  if (t <= 0) 
+    exit_with_msg_and_exit_code("t <= 0",ARGUMENT_t_OUT_OF_RANGE);
+  if ( Er1 < 1.00) 
+    exit_with_msg_and_exit_code("Er1 < 1",ARGUMENT_Er1_OUT_OF_RANGE);
+  if ( Er2 < 1.00) 
+    exit_with_msg_and_exit_code("Er2 < 1",ARGUMENT_Er2_OUT_OF_RANGE);
+  if ( ideal_Zodd < 0) 
+    exit_with_msg_and_exit_code("Ideal_zodd",ARGUMENT_ideal_Zodd_OUT_OF_RANGE);
+  if ( ideal_Zeven < 0) 
+    exit_with_msg_and_exit_code("Ideal_zodd",ARGUMENT_ideal_Zodd_OUT_OF_RANGE);
+  if ( ideal_Zeven <= ideal_Zodd ) 
+    exit_with_msg_and_exit_code("Zodd must be less than Zeven",IDEAL_Zodd_NOT_LESS_THAN_IDEAL_Zeven);
+}
diff --git a/src/non_gui/check_parameters_of_create_bmp_for_circ_in_circ.c b/src/non_gui/check_parameters_of_create_bmp_for_circ_in_circ.c
new file mode 100644 (file)
index 0000000..3364c96
--- /dev/null
@@ -0,0 +1,102 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+
+
+/* These items are supplied on the command line */
+
+extern double DD, dd, hh, Er1;
+extern int D, d, h;
+extern int verbose;
+
+void check_parameters_of_create_bmp_for_circ_in_circ(void)
+{
+   if( Er1<1.0) 
+     exit_with_msg_and_exit_code("Error #9. The relative permittivity (Er) must be >= 1.0",9);
+   if (dd/2.0+hh >= DD) 
+     exit_with_msg_and_exit_code("Error #10 The inner will be touching the outer !!!",10);
+}
+
+void check_create_bmp_for_circ_in_circ_int(void)
+{
+  if(verbose==TRUE)
+    fprintf(stderr,"d_outer = %d d_inner=%d offset=%x \n",D, d, h);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/non_gui/check_parameters_of_create_bmp_for_circ_in_rect.c b/src/non_gui/check_parameters_of_create_bmp_for_circ_in_rect.c
new file mode 100644 (file)
index 0000000..480ca4d
--- /dev/null
@@ -0,0 +1,59 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+
+
+/* These items are supplied on the command line */
+
+extern double dd, WW, HH, xx, yy, Er1;
+extern int d, W, H, x, y;
+
+void check_parameters_of_create_bmp_for_circ_in_rect(void)
+{
+   if( Er1<1.0) 
+      exit_with_msg_and_exit_code("The relative permittivity (Er) must be >= 1.0",100);
+   if (dd/2.0-yy >= HH/2) 
+      exit_with_msg_and_exit_code("The circular inner will be touching the bottom of the outer !!! ",100);
+   if (dd/2.0+yy >= HH/2) 
+      exit_with_msg_and_exit_code("The circular inner will be touching the top of the outer !!! ",100);
+   if (dd/2.0+xx >= WW/2) 
+      exit_with_msg_and_exit_code("The circular inner will be touching the right side of the outer !!! ",100);
+   if (dd/2.0-xx >= WW/2) 
+      exit_with_msg_and_exit_code("The circular inner will be touching the left side of the outer !!! ",100);
+      
+}
+
+void check_circ_in_rect_int(void)
+{
+/*
+   if(verbose==TRUE)
+      fprintf(stderr,"d_outer = %d d_inner=%d offset=%h \n",D, d, h);
+      */
+}
diff --git a/src/non_gui/check_parameters_of_create_bmp_for_microstrip_coupler.c b/src/non_gui/check_parameters_of_create_bmp_for_microstrip_coupler.c
new file mode 100644 (file)
index 0000000..8bf495f
--- /dev/null
@@ -0,0 +1,64 @@
+
+
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+
+#ifdef ENABLE_POSIX_THREADS
+#include <pthread.h>
+#endif
+
+#include "exit_codes.h"
+
+void check_parameters_of_create_bmp_for_microstrip_coupler(struct transmission_line_properties pcb) 
+{
+      if ( pcb.ww <= 0)
+       exit_with_msg_and_exit_code("w <= 0",ARGUMENT_w_OUT_OF_RANGE);
+      if ( pcb.ss <= 0)
+       exit_with_msg_and_exit_code("s <= 0",ARGUMENT_s_OUT_OF_RANGE);
+      if ( pcb.gg <= 0)
+       exit_with_msg_and_exit_code("g <= 0",ARGUMENT_g_OUT_OF_RANGE);
+      if ( pcb.hh <= 0)
+       exit_with_msg_and_exit_code("h <= 0",ARGUMENT_h_OUT_OF_RANGE);
+      if ( pcb.tt <= 0)
+       exit_with_msg_and_exit_code("0 <= 0",ARGUMENT_t_OUT_OF_RANGE);
+      if ( pcb.Er1 < 1)
+       exit_with_msg_and_exit_code("0 <= 0",ARGUMENT_Er1_OUT_OF_RANGE);
+      if ( pcb.Er2 < 1)
+       exit_with_msg_and_exit_code("0 <= 0",ARGUMENT_Er2_OUT_OF_RANGE);
+}
diff --git a/src/non_gui/check_parameters_of_create_bmp_for_rect_in_circ.c b/src/non_gui/check_parameters_of_create_bmp_for_rect_in_circ.c
new file mode 100644 (file)
index 0000000..a7c58ff
--- /dev/null
@@ -0,0 +1,41 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+
+
+/* These items are supplied on the command line */
+
+void check_parameters_of_create_bmp_for_rect_in_circ(void)
+{
+}
+
+void check_create_bmp_for_rect_in_circ_int(void)
+{
+}
diff --git a/src/non_gui/check_parameters_of_create_bmp_for_rect_in_rect.c b/src/non_gui/check_parameters_of_create_bmp_for_rect_in_rect.c
new file mode 100644 (file)
index 0000000..b50e4b8
--- /dev/null
@@ -0,0 +1,66 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+
+
+/* These items are supplied on the command line */
+
+extern double WW, HH, aa, bb, cc, dd, ww, hh, Er1, Er2;
+extern int W, H, a, b, c, d, w, h;
+extern int verbose;
+
+void check_parameters_of_create_bmp_for_rect_in_rect(void)
+{
+   if( (Er1<1.0) || (Er2 <1.0))
+      exit_with_msg_and_exit_code((char *) "Both Er1  and Er2 must be >= 1.0",100);
+   if(aa+dd>WW)
+      exit_with_msg_and_exit_code((char *) "the dielectric extends horizontally outside the box (a+d>W)",100);
+   if(bb+ww>=WW)
+      exit_with_msg_and_exit_code((char *) "the inner conductor extends horizontally beyond the outer conductor(b+w>=W)",101);
+   if(cc<=0.0)
+      exit_with_msg_and_exit_code((char *) "The inner conductors's thickness (c) must be greater than zero ",12);
+   if(hh<=0.0)
+      exit_with_msg_and_exit_code((char *) "The thickness of dielectric Er2 (h) must be greater than zero ",12);
+   if(hh+cc>=HH)
+      exit_with_msg_and_exit_code((char *) "the inner conductor extends verticaly beyond the outer conductor(c+h>=H)",101);
+   if((WW<=0.0) || (HH<=0.0) || (aa<0.0) || (bb<0.0) || (cc<=0.0) || (dd<=0.0)
+   ||(ww<=0.0) || (hh<=0.0))
+      exit_with_msg_and_exit_code((char *) "W,H,c,d,w, & h must be positive numbers. Non-integers are okay, but they must be >0 \n",102); 
+      
+}
+
+void check_create_bmp_for_rect_in_circ_int(void)
+{
+   if(verbose==TRUE)
+      fprintf(stderr,"W=%d H=%d a=%d b=%d c=%d d=%d w=%d h=%d\n",W,H,a,b,c,d,w,h);
+   if(a < 1)
+      exit_with_msg_and_exit_code("internal paramter 'a' is less that 1. This indicates the LHS of the dielectric",102); 
+}
diff --git a/src/non_gui/convert_create_bmp_for_circ_in_circ_dimensions_to_integers.c b/src/non_gui/convert_create_bmp_for_circ_in_circ_dimensions_to_integers.c
new file mode 100644 (file)
index 0000000..5719823
--- /dev/null
@@ -0,0 +1,109 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include "definitions.h"
+
+/* names, colours and Ers are all arrays of 10. It would be better they were 
+in a structure as they are all linked closely, but they are not and I
+can't be bothered to change it */
+
+extern double DD, dd, hh, Er1;
+extern int D, d, h, W, H;
+extern int lowest;
+extern int highest;
+extern int verbose;
+
+void convert_create_bmp_for_circ_in_circ_dimensions_to_integers(int accuracy_level) 
+{
+   int best_D=-1, best_d=-1, best_h=-1;
+   int min, max;
+   int i;
+   double max_gridsize, min_gridsize;
+   double error, error_min=VERY_LARGE, gridsize, best_grid_size=-1;
+
+   /* scale grid size,  according to a command line option */
+   lowest*=(int) 0.5+sqrt(pow(2.0,(double)accuracy_level));
+   highest*=(int) 0.5+sqrt(pow(2.0,(double)accuracy_level));
+
+   max_gridsize=DD/lowest;  /* minimum dimension in m */
+   min_gridsize=DD/highest;
+   min=DD/max_gridsize;
+   max=DD/min_gridsize;
+   for(i=min;i<=max;++i)
+   {
+      /* Try various combinations for  D,d,o */
+      gridsize=DD/i;
+      D=(int)(DD/gridsize + 0.5);
+      d=(int)(dd/gridsize + 0.5);
+      h=(int)(hh/gridsize + 0.5);
+      error=0.0;
+      error+=pow((DD-D*gridsize)/DD,2.0);
+      error+=pow((dd-d*gridsize)/dd,2.0);
+      if(h>0)
+          error+=pow((hh-h*gridsize)/hh,2.0);
+      if(error < (error_min-TINY))
+      {
+          error_min=error;
+          best_D=D;
+          best_d=d;
+         best_h=h;
+          best_grid_size=gridsize;
+      }
+   }
+   D=W=H=best_D;
+   d=best_d;
+   h=best_h;
+   if(verbose==TRUE)
+   {
+      fprintf(stderr,"error_min=%.16f\n",error_min);
+      fprintf(stderr,"User requested: DD=%f dd=%f hh=%f Er1=%f\n\n",DD,dd,hh,Er1);
+      fprintf(stderr,"Internally the program is using the following grid:\n");
+      fprintf(stderr,"D=%d d=%d h=%d \nThe  grid size is %f mm, inches or whatever\n\n", D,d,h,best_grid_size);
+      if(error_min > TINY)
+      {
+         fprintf(stderr,"This means we are simulating a transmission line with these dimensions:\n");
+         fprintf(stderr,"D=%f d=%f h=%f (mm, inches or whatever)\n",D*best_grid_size,d*best_grid_size,h*best_grid_size);
+         fprintf(stderr,"\nThese are slightly different to what you indicated on the command line,\n");
+         fprintf(stderr,"but they are the best approximation possible, given the grid size\n");
+      }
+   }
+   check_error(DD,D,best_grid_size,"D");
+   check_error(dd,d,best_grid_size,"d");
+   if(h > 0.0)
+      check_error(hh,h,best_grid_size,"h");
+}
+
diff --git a/src/non_gui/convert_create_bmp_for_circ_in_rect_dimensions_to_integers.c b/src/non_gui/convert_create_bmp_for_circ_in_rect_dimensions_to_integers.c
new file mode 100644 (file)
index 0000000..52a5268
--- /dev/null
@@ -0,0 +1,150 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include "definitions.h"
+#include "exit_codes.h"
+
+
+/* names, colours and Ers are all arrays of 10. It would be better they were 
+in a structure as they are all linked closely, but they are not and I
+can't be bothered to change it */
+
+extern double dd, WW, HH, xx, yy, Er1;
+extern int d, W, H, x, y;
+extern int lowest;
+extern int highest;
+extern int verbose;
+
+void convert_create_bmp_for_circ_in_rect_dimensions_to_integers(int accuracy_level) 
+{
+   int best_d=-1, best_W=-1, best_H=-1, best_x=-1, best_y=-1;
+   int min, max;
+   int i;
+   double max_gridsize, min_gridsize;
+   double error, error_min=VERY_LARGE, gridsize, best_grid_size=-1;
+
+   /* scale grid size,  according to a command line option */
+   lowest*=1<<accuracy_level;
+   highest*=1<<accuracy_level;
+
+   max_gridsize=sqrt(WW*HH/(double )lowest);  /* minimum dimension in m */
+   min_gridsize=sqrt(WW*HH/(double )highest);
+   if(W>=H)
+   {
+      min=WW/max_gridsize;
+      max=WW/min_gridsize;
+   }
+   else
+   {
+      min=HH/max_gridsize;
+      max=HH/min_gridsize;
+   }
+   for(i=min;i<=max;++i)
+   {
+      /* Try various combinations for  d, W, H, etc */
+      if(W>H)
+         gridsize=WW/i;
+      else
+         gridsize=HH/i;
+      d=(int)(dd/gridsize + 0.5);
+      W=(int)(WW/gridsize + 0.5);
+      H=(int)(HH/gridsize + 0.5);
+      x=(int)(xx/gridsize + 0.5);
+      y=(int)(yy/gridsize + 0.5);
+      error=0.0;
+      error+=pow((WW-W*gridsize)/WW,2.0); /* relative error in W */
+      error+=pow((HH-H*gridsize)/HH,2.0);
+      error+=pow((dd-d*gridsize)/dd,2.0);
+      if(x>0)
+         error+=pow((xx-x*gridsize)/xx,2.0);
+      if(y>0)
+          error+=pow((yy-y*gridsize)/yy,2.0);
+      if(error < (error_min-TINY))
+      {
+          error_min=error;
+          best_d=d;
+          best_W=W;
+          best_H=H;
+          best_x=x;
+          best_y=y;
+          best_grid_size=gridsize;
+      }
+   }
+   if(best_d==-1) /* it has not been initialised */
+      exit_with_msg_and_exit_code("d has not been initialised",VARIABLE_NOT_INITIALISED);
+   else
+     d=best_d;
+   if(best_W==-1) /* it has not been initialised */
+      exit_with_msg_and_exit_code("W has not been initialised",VARIABLE_NOT_INITIALISED);
+   else
+     W=best_W;
+   if(best_H==-1) /* it has not been initialised */
+      exit_with_msg_and_exit_code("H has not been initialised",VARIABLE_NOT_INITIALISED);
+   else
+     H=best_H;
+   if(best_x==-1) /* it has not been initialised */
+      exit_with_msg_and_exit_code("x has not been initialised",VARIABLE_NOT_INITIALISED);
+   else
+     x=best_x;
+   if(best_y==-1) /* it has not been initialised */
+      exit_with_msg_and_exit_code("y has not been initialised",VARIABLE_NOT_INITIALISED);
+   else
+     y=best_y;
+   if(verbose==TRUE)
+   {
+      fprintf(stderr,"error_min=%.16f\n",error_min);
+      fprintf(stderr,"User requested: dd=%f WW=%f HH=%f xx=%f yy=%f Er=%f\n\n",dd,WW,HH,xx,yy,Er1);
+      fprintf(stderr,"Internally the program is using the following grid:\n");
+      fprintf(stderr,"d=%d W=%d H=%d x=%d y=%d \n", d, W, H, x, y);
+      fprintf(stderr,"The  grid size is %f mm, inches or whatever\n\n", best_grid_size);
+      if(error_min > TINY)
+      {
+         fprintf(stderr,"This means we are simulating a transmission line with these dimensions:\n");
+         fprintf(stderr,"d=%f W=%f H=%f x=%f y=%f (mm, inches or whatever)\n",d*best_grid_size,W*best_grid_size,H*best_grid_size,x*best_grid_size,y*best_grid_size);
+         fprintf(stderr,"\nThese are slightly different to what you indicated on the command line,\n");
+         fprintf(stderr,"but they are the best approximation possible, given the grid size\n");
+      }
+   }
+   if( (d/2+x >= W) || (d/2+y >=H))
+   {
+      exit_with_msg_and_exit_code("The gap between the two conductors is too small. Either increase the bitmap size (-b option), or change the dimensions of one the conductors",GAP_BETWEEN_CONDUCTORS_TOO_SMALL);
+   }
+   check_error(dd,d,best_grid_size,"d");
+   check_error(WW,W,best_grid_size,"W");
+   check_error(HH,H,best_grid_size,"H");
+   check_error(xx,x,best_grid_size,"x");
+   check_error(yy,y,best_grid_size,"y");
+}
diff --git a/src/non_gui/convert_create_bmp_for_coupled_microstrip_dimensions_to_integers.c b/src/non_gui/convert_create_bmp_for_coupled_microstrip_dimensions_to_integers.c
new file mode 100644 (file)
index 0000000..7d8a3b8
--- /dev/null
@@ -0,0 +1,161 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+extern double Er1, Er2;
+extern double Ers[];
+extern int colours[];
+
+void convert_create_create_bmp_for_coupled_microstrip_dimensions_to_integers(struct transmission_line_properties *pcb)
+{
+   /* A number of paramters are set to -1, as otherwise the compiler   
+   complains they may be used unitialised. It is wise to check they
+   are not -1 before assining a variable to their contents, 
+   but I can't be bothered. */
+   int best_W=-1, best_H=-1, best_w=-1, best_s=-1, best_g=-1;
+   int best_h=-1, best_t=-1;
+   int min, max, lowest =  2500, highest=10000;
+   int i;
+   double max_gridsize, min_gridsize;
+   double error, error_min=VERY_LARGE, gridsize=-1, best_grid_size=-1;
+
+
+   /* scale grid size,  according to a command line option */
+   lowest*=(int) 0.5+pow(2.0,(double)pcb->bmp_size);
+   highest*=(int) 0.5+pow(2.0,(double)pcb->bmp_size);
+
+   max_gridsize=sqrt(pcb->WW*pcb->HH/(double )lowest);  /* minimum dimension in m */
+   min_gridsize=sqrt(pcb->WW*pcb->HH/(double )highest);
+   if(pcb->WW>=pcb->HH)
+   {
+      min=pcb->WW/max_gridsize;
+      max=pcb->WW/min_gridsize;
+   }
+   else
+   {
+      min=pcb->HH/max_gridsize;
+      max=pcb->HH/min_gridsize;
+   }
+   if (pcb->verbose_level >= 2)
+     printf("WW=%f HH=%f lowest=%d higherst = %d min=%d max=%d\n",pcb->WW,pcb->HH,lowest, highest, min, max);
+   for(i=min;i<=max;++i)
+   {
+      /* Try various combinations for  H,a,b,c, etc */
+      if(pcb->W>pcb->H)
+         gridsize=pcb->WW/i;
+      else
+         gridsize=pcb->HH/i;
+      pcb->W=(int)(pcb->WW/gridsize + 0.5);
+      pcb->H=(int)(pcb->HH/gridsize + 0.5);
+      pcb->w=(int)(pcb->ww/gridsize + 0.5);
+      pcb->s=(int)(pcb->ss/gridsize + 0.5);
+      pcb->g=(int)(pcb->gg/gridsize + 0.5);
+      pcb->h=(int)(pcb->hh/gridsize + 0.5);
+      pcb->t=(int)(pcb->tt/gridsize + 0.5);
+      error=0.0;
+      /*error+=pow((pcb->WW-pcb->W*gridsize)/pcb->WW,2.0); */ /* relative error in W */
+      /*error+=pow((pcb->HH-pcb->H*gridsize)/pcb->HH,2.0); */ 
+      if(pcb->w>0)
+         error+=pow((pcb->ww-pcb->w*gridsize)/pcb->ww,2.0);
+      if(pcb->s>0)
+          error+=pow((pcb->ss-pcb->s*gridsize)/pcb->ss,2.0);
+      if(pcb->g>0)
+          error+=pow((pcb->gg-pcb->g*gridsize)/pcb->gg,2.0);
+      if(pcb->h>0)
+          error+=pow((pcb->hh-pcb->h*gridsize)/pcb->hh,2.0);
+      if(pcb->t>0)
+          error+=pow((pcb->tt-pcb->t*gridsize)/pcb->tt,2.0);
+      if(error < (error_min-TINY))
+      {
+          error_min=error;
+          best_W=pcb->W;
+          best_H=pcb->H;
+          best_w=pcb->w;
+          best_s=pcb->s;
+          best_g=pcb->g;
+          best_h=pcb->h;
+          best_t=pcb->t;
+          best_grid_size=gridsize;
+      }
+   }
+   pcb->W=best_W;
+   pcb->H=best_H;
+   pcb->w=best_w;
+   pcb->s=best_s;
+   pcb->g=best_g;
+   pcb->h=best_h;
+   pcb->t=best_t;
+   if(pcb->verbose_level > 0)
+   {
+      fprintf(stderr,"error_min=%.16f\n",error_min);
+      fprintf(stderr,"User requested: W=%f H=%f w=%f s=%f g=%f h=%f t=%f Er1=%f Er2=%f\n\n",pcb->WW,pcb->HH,pcb->ww,pcb->ss,pcb->gg,pcb->hh,pcb->tt,Er1,Er2);
+      fprintf(stderr,"Internally the program is using the following grid:\n");
+      fprintf(stderr,"W=%d H=%d w=%d s=%d g=%d h=%d t=%d\nThe  grid size is %f mm, inches or whatever\n\n", pcb->W, pcb->H, pcb->w, pcb->s, pcb->g,pcb->h, pcb->t,best_grid_size);
+      if(error_min > TINY)
+      {
+         fprintf(stderr,"This means we are simulating a transmission line with these dimensions:\n");
+         fprintf(stderr,"W=%f H=%f w=%f s=%f g=%f h=%f t=%f (mm, inches or whatever)\n",pcb->W*best_grid_size,pcb->H*best_grid_size,pcb->w*best_grid_size,pcb->s*best_grid_size,pcb->g*best_grid_size,pcb->h*best_grid_size,pcb->t*best_grid_size);
+         fprintf(stderr,"\nThese are slightly different to what you indicated on the command line,\n");
+         fprintf(stderr,"but they are the best approximation possible, given the grid size\n");
+      }
+   }
+   if(pcb->s == 0)
+   {
+      fprintf(stderr,"Error #12. The gap between the two conductors coupled lines (s) is too small. Either increase the bitmap size (-b option), or make s at least %f\n",gridsize);
+      exit_with_msg_and_exit_code("",GAP_BETWEEN_CONDUCTORS_TOO_SMALL);
+   }
+   if(pcb->g == 0)
+   {
+      fprintf(stderr,"Error #13. The gap between the groundplane (g) and coupled lines is too small. Either increase the bitmap size (-b option), or make g at least %f\n",gridsize);
+      exit_with_msg_and_exit_code("",GAP_BETWEEN_CONDUCTORS_TOO_SMALL);
+   }
+   if(pcb->h == 0)
+   {
+      fprintf(stderr,"Error #14. The thickness of the dielectric of Er2 (h) is too small. Either increase the bitmap size (-b option), or make h at least %f\n",gridsize);
+      exit_with_msg_and_exit_code("",GAP_BETWEEN_CONDUCTORS_TOO_SMALL);
+   }
+   check_error(pcb->WW,pcb->W,best_grid_size,"W");
+   check_error(pcb->HH,pcb->H,best_grid_size,"H");
+   check_error(pcb->ww,pcb->w,best_grid_size,"w");
+   check_error(pcb->ss,pcb->s,best_grid_size,"s");
+   check_error(pcb->gg,pcb->g,best_grid_size,"g");
+   check_error(pcb->hh,pcb->h,best_grid_size,"h");
+   check_error(pcb->tt,pcb->t,best_grid_size,"t");
+}
diff --git a/src/non_gui/convert_create_bmp_for_rect_in_circ_dimensions_to_integers.c b/src/non_gui/convert_create_bmp_for_rect_in_circ_dimensions_to_integers.c
new file mode 100644 (file)
index 0000000..7e9dfa4
--- /dev/null
@@ -0,0 +1,114 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include "definitions.h"
+
+/* names, colours and Ers are all arrays of 10. It would be better they were 
+in a structure as they are all linked closely, but they are not and I
+can't be bothered to change it */
+
+extern double DD, ww, hh, xx, yy, Er1;
+extern int D, w, h, x, y;
+extern int lowest;
+extern int highest, verbose;
+
+void convert_create_bmp_for_rect_in_circ_dimensions_to_integers(int accuracy_level) 
+{
+   int best_D=-1, best_w=-1, best_h=-1, best_x=-1, best_y=-1;
+   int min=-1, max=-1;
+   int i;
+   double error, error_min=VERY_LARGE, gridsize, best_grid_size=-1;
+
+   /* scale grid size,  according to a command line option */
+   lowest*=(int) 0.5+pow(2.0,(double) accuracy_level);
+   highest*=(int) 0.5+pow(2.0,(double) accuracy_level);
+
+   for(i=min;i<=max;++i)
+   {
+      /* Try various combinations for  D, w, h, x, & y etc */
+      gridsize=DD/i;
+      D=(int)(DD/gridsize + 0.5);
+      w=(int)(ww/gridsize + 0.5);
+      h=(int)(hh/gridsize + 0.5);
+      x=(int)(xx/gridsize + 0.5);
+      y=(int)(yy/gridsize + 0.5);
+      error=0.0;
+      error+=pow((DD-D*gridsize)/DD,2.0); /* relative error in D */
+      error+=pow((ww-w*gridsize)/ww,2.0);
+      error+=pow((hh-h*gridsize)/hh,2.0);
+      if(x>0)
+         error+=pow((xx-x*gridsize)/xx,2.0);
+      if(y>0)
+          error+=pow((yy-y*gridsize)/yy,2.0);
+      if(error < error_min-TINY)
+      {
+          error_min=error;
+          best_D=D;
+          best_w=w;
+          best_h=h;
+          best_x=x;
+          best_y=y;
+          best_grid_size=gridsize;
+      }
+   }
+   D=best_D;
+   w=best_w;
+   h=best_h;
+   x=best_x;
+   y=best_y;
+   if(verbose==TRUE)
+   {
+      fprintf(stderr,"error_min=%.16f\n",error_min);
+      fprintf(stderr,"User requested: D=%f w=%f h=%f x=%f y=%f Er1=%f\n\n",DD,ww,hh,xx,yy,Er1);
+      fprintf(stderr,"Internally the program is using the following grid:\n");
+      fprintf(stderr,"D=%d w=%d h=%d x=%d y=%d \n", D, w, h, x, y);
+      fprintf(stderr,"which equates to dimensions of D=%f w=%f h=%f x=%f y=%f\n", D*gridsize, w*gridsize, h*gridsize, x*gridsize,
+      y*gridsize);
+      if(error_min > TINY)
+      {
+         fprintf(stderr,"This means we are simulating a transmission line with these dimensions:\n");
+         fprintf(stderr,"W=%f w=%f h=%f x=%f y=%f (mm, inches or whatever)\n",D*best_grid_size,w*best_grid_size,h*best_grid_size,x*best_grid_size,y*best_grid_size);
+         fprintf(stderr,"\nThese are slightly different to what you indicated on the command line,\n");
+         fprintf(stderr,"but they are the best approximation possible, given the grid size\n");
+      }
+   }
+   check_error(DD,D,best_grid_size,"D");
+   check_error(ww,w,best_grid_size,"w");
+   check_error(hh,h,best_grid_size,"h");
+   check_error(xx,x,best_grid_size,"x");
+   check_error(yy,y,best_grid_size,"y");
+}
diff --git a/src/non_gui/convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c b/src/non_gui/convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c
new file mode 100644 (file)
index 0000000..d970176
--- /dev/null
@@ -0,0 +1,176 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+/* names, colours and Ers are all arrays of 10. It would be better they were 
+in a structure as they are all linked closely, but they are not and I
+can't be bothered to change it */
+
+extern double WW, HH, aa, bb, cc, dd, ww, hh, Er1, Er2;
+extern int W, H, a, b, c, d, w, h;
+extern int verbose;
+extern int lowest;
+extern int highest;
+
+void convert_create_bmp_for_rect_in_rect_dimensions_to_integers(int accuracy_level) 
+{
+   /* A number of paramters are set to -1, as otherwise the compiler   
+   complaings they may be used unitialised. It is wise to check they
+   are not -1 before assining a variable to their contents, 
+   but I can't be bothered. */
+   int best_W=-1, best_H=-1, best_a=-1, best_b=-1, best_c=-1;
+   int best_d=-1, best_w=-1, best_h=-1;
+   int min, max;
+   int i;
+   double max_gridsize, min_gridsize;
+   double error, error_min=VERY_LARGE, gridsize=-1, best_grid_size=-1;
+
+   /* scale grid size,  according to a command line option */
+   /*lowest*=(int) 0.5+pow(2,accuracy_level); */
+   /*highest*=(int) 0.5+pow(2,accuracy_level); */
+   lowest*=1<<accuracy_level;
+   highest*=1<<accuracy_level;
+
+   max_gridsize=sqrt(WW*HH/(double )lowest);  /* minimum dimension in m */
+   min_gridsize=sqrt(WW*HH/(double )highest);
+   if(W>=H)
+   {
+      min=WW/max_gridsize;
+      max=WW/min_gridsize;
+   }
+   else
+   {
+      min=HH/max_gridsize;
+      max=HH/min_gridsize;
+   }
+   for(i=min;i<=max;++i)
+   {
+      /* Try various combinations for  H,a,b,c, etc */
+      if(W>H)
+         gridsize=WW/i;
+      else
+         gridsize=HH/i;
+      W=(int)(WW/gridsize + 0.5);
+      H=(int)(HH/gridsize + 0.5);
+      a=(int)(aa/gridsize + 0.5);
+      b=(int)(bb/gridsize + 0.5);
+      c=(int)(cc/gridsize + 0.5);
+      d=(int)(dd/gridsize + 0.5);
+      w=(int)(ww/gridsize + 0.5);
+      h=(int)(hh/gridsize + 0.5);
+      error=0.0;
+      error+=pow((WW-W*gridsize)/WW,2.0); /* relative error in W */
+      error+=pow((HH-H*gridsize)/HH,2.0);
+      if(a>0)
+         error+=pow((aa-a*gridsize)/aa,2.0);
+      if(b>0)
+          error+=pow((bb-b*gridsize)/bb,2.0);
+      if(c>0)
+          error+=pow((cc-c*gridsize)/cc,2.0);
+      if(d>0)
+          error+=pow((dd-d*gridsize)/dd,2.0);
+      if(w>0)
+          error+=pow((ww-w*gridsize)/ww,2.0);
+      if(h>0)
+          error+=pow((hh-h*gridsize)/hh,2.0);
+      if(error < (error_min-TINY))
+      {
+          error_min=error;
+          best_W=W;
+          best_H=H;
+          best_a=a;
+          best_b=b;
+          best_c=c;
+          best_d=d;
+          best_w=w;
+          best_h=h;
+          best_grid_size=gridsize;
+      }
+   }
+   W=best_W;
+   H=best_H;
+   a=best_a;
+   b=best_b;
+   c=best_c;
+   d=best_d;
+   w=best_w;
+   h=best_h;
+   if(verbose==TRUE)
+   {
+      fprintf(stderr,"error_min=%.16f\n",error_min);
+      fprintf(stderr,"User requested: WW=%f HH=%f a=%f b=%f c=%f\nd=%f w=%f h=%fEr1=%f Er2=%f\n\n",WW,HH,aa,bb,cc,dd,ww,hh,Er1,Er2);
+      fprintf(stderr,"Internally the program is using the following grid:\n");
+      fprintf(stderr,"W=%d H=%d a=%d b=%d c=%d d=%d w=%d h=%d. \nThe  grid size is %f mm, inches or whatever\n\n", W, H, a, b, c, d, w, h,best_grid_size);
+      if(error_min > TINY)
+      {
+         fprintf(stderr,"This means we are simulating a transmission line with these dimensions:\n");
+         fprintf(stderr,"W=%f H=%f a=%f b=%f c=%f d=%f\nw=%f h=%f (mm, inches or whatever)\n",W*best_grid_size,H*best_grid_size,a*best_grid_size,b*best_grid_size,c*best_grid_size,d*best_grid_size,w*best_grid_size,h*best_grid_size);
+         fprintf(stderr,"\nThese are slightly different to what you indicated on the command line,\n");
+         fprintf(stderr,"but they are the best approximation possible, given the grid size\n");
+      }
+   }
+   if(b == 0)
+   {
+      fprintf(stderr,"Error #12. The gap between the two conductors (b) is too small. Either increase the bitmap size (-b option), or make b at least %f\n",gridsize);
+      exit_with_msg_and_exit_code("",GAP_BETWEEN_CONDUCTORS_TOO_SMALL);
+   }
+   if(c == 0)
+   {
+      fprintf(stderr,"Error #13. The thickness of the inner conductor (c) is too small. Either increase the bitmap size (-b option), or make c at least %f\n",gridsize);
+      exit_with_msg_and_exit_code("",GAP_BETWEEN_CONDUCTORS_TOO_SMALL);
+   }
+   if(h == 0)
+   {
+      fprintf(stderr,"Error #14. The thickness of the dielectric of Er2 (h) is too small. Either increase the bitmap size (-b option), or make h at least %f\n",gridsize);
+      exit_with_msg_and_exit_code("",GAP_BETWEEN_CONDUCTORS_TOO_SMALL);
+   }
+   check_error(WW,W,best_grid_size,"W");
+   check_error(HH,H,best_grid_size,"H");
+   check_error(aa,a,best_grid_size,"a");
+   check_error(bb,b,best_grid_size,"b");
+   check_error(cc,c,best_grid_size,"c");
+   check_error(dd,d,best_grid_size,"d");
+   check_error(ww,w,best_grid_size,"w");
+   check_error(hh,h,best_grid_size,"h");
+}
diff --git a/src/non_gui/create_any_bitmap.c b/src/non_gui/create_any_bitmap.c
new file mode 100644 (file)
index 0000000..942d64e
--- /dev/null
@@ -0,0 +1,55 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The program widestrip is a pre-processor for atlc. It produces bitmaps 
+of a thin strip, between two wide plates */
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif  
+#include "definitions.h"
+#include "exit_codes.h"
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+int verbose=0;
+
+extern int main(int argc, char **argv) /* Read parameters from command line here   */
+{
+  fprintf(stderr,"Sorry, create_any_bitmap is under construction and not finished\n");
+  exit(1);
+  if(argc !=2){
+    usage_create_any_bitmap();    
+    exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);
+  }
+  return(OKAY);
+}
diff --git a/src/non_gui/create_bmp_for_circ_in_circ.c b/src/non_gui/create_bmp_for_circ_in_circ.c
new file mode 100644 (file)
index 0000000..f2dcf7c
--- /dev/null
@@ -0,0 +1,126 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#include "exit_codes.h"
+#include "definitions.h"
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+double aa, bb, cc, dd, hh, ww, DD, WW, HH, Er1, Er2;
+int a, b, c, d, h, w, D, W, H;
+
+int verbose=FALSE;
+int lowest=50, highest=100;
+
+/* The following are only needed so that I can link in both 
+convert_create_bmp_for_circ_in_circ_dimensions_to_integers.c
+and convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c
+*/
+
+
+int main(int argc, char **argv) /* Read parameters from command line here   */
+{
+   int  bmp_size=DEFAULT_BMP_SIZE;
+   int q;
+   FILE *image_data_fp;
+   char *filename;
+   struct transmission_line_properties not_used;
+   double Zo, x;
+   filename=string(0,1010);
+
+   /* The following line just prevents a warning from the compiler (SGI's to 
+   be precise). There is not reason to set W=1 */
+   not_used.W=1;
+
+   while((q=get_options(argc,argv,"Cb:v")) != -1)
+   switch (q) 
+   {
+      case 'C': 
+       print_copyright((char *) "2002");
+       exit_with_msg_and_exit_code("",OKAY);
+      break;
+      case 'b':
+      bmp_size=atol(my_optarg); 
+      break;
+      case 'v':
+      verbose=TRUE; 
+      break;
+      case '?':
+      break;
+   }
+   if(argc-my_optind == 5)
+   {
+      DD=atof(argv[my_optind]);
+      WW=HH=DD;
+      dd=atof(argv[my_optind+1]);
+      hh=atof(argv[my_optind+2]);
+      Er1=atof(argv[my_optind+3]);
+      if( dd > DD)
+       exit_with_msg_and_exit_code("Error: The Inner conductor is larger than the outer conductor!!!", 1);
+      else if (DD == dd) 
+       exit_with_msg_and_exit_code("Error: The inner and outer conductors are of the same size!!!", 1);
+      else if (dd/2 + hh >= DD/2)
+       exit_with_msg_and_exit_code("Error: The inner and outer conductors will touch!!!", 1);
+      filename=strncpy(filename, argv[my_optind+4],1000);
+      if( (image_data_fp=fopen(filename,"wb")) == NULL)
+       exit_with_msg_and_exit_code("Can't open file in create_bmp_for_circ_in_circ.c", CANT_OPEN_FOR_WRITING);
+      check_parameters_of_create_bmp_for_circ_in_circ();
+      convert_create_bmp_for_circ_in_circ_dimensions_to_integers(bmp_size);
+      write_bitmap(image_data_fp, not_used);
+      x=(double) (d*d+D*D-4*h*h)/(2*D*d);
+      Zo=59.9585*log(x+sqrt(x*x-1))/sqrt(Er1); 
+      Zo=log(x+sqrt(x*x-1))/(1000*sqrt(EPSILON_0)*sqrt(Er1)*sqrt(10*M_PI));
+
+      if(verbose == TRUE)
+      {
+        printf("DD=%f dd=%f hh=%f x=%f\n",DD, dd, hh, x);
+        printf("D=%d d=%d h=%d x=%f\n",D, d, h, x);
+        printf("Zo is theoretically %f Ohms\n",Zo);
+      }
+   }
+   else
+      usage_create_bmp_for_circ_in_circ();
+   free_string(filename,0,1010);
+   return(OKAY);
+}
diff --git a/src/non_gui/create_bmp_for_circ_in_rect.c b/src/non_gui/create_bmp_for_circ_in_rect.c
new file mode 100644 (file)
index 0000000..6a98809
--- /dev/null
@@ -0,0 +1,98 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The program create_bmp_for_rect_in_rect is a pre-processor for atlc. It produces bitmaps of rectangular
+inner and rectangular outer */
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+double  dd, WW, HH, xx, yy, Er1;
+int d, W, H, x, y;
+
+/* The following are only needed, so I can link in two  
+convert_circ_in_circ_dimensions_to_integers.c
+and
+convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c
+*/
+
+double Er2;
+
+int verbose=FALSE;
+int lowest=2500, highest=10000;
+int fileflag=FALSE;
+
+
+extern int main(int argc, char **argv) /* Read parameters from command line here   */
+{
+   int  bmp_size=DEFAULT_BMP_SIZE;
+   int q;
+   struct transmission_line_properties not_used;
+   FILE *image_data_fp=stdout;
+   
+   /* The following just keeps the compiler happy, as not_used is 
+   not used in this case */
+   not_used.W=1;
+
+   while((q=get_options(argc,argv,"b:v")) != -1)
+   switch (q) 
+   {
+      case 'b':
+      bmp_size=atol(my_optarg); 
+      break;
+      case 'v':
+      verbose=TRUE; 
+      break;
+      case '?':
+      printf("read a ? exiting\n");
+   }
+   if(argc-my_optind ==7)
+   {
+      dd=atof(argv[my_optind]);
+      WW=atof(argv[my_optind+1]);
+      HH=atof(argv[my_optind+2]);
+      xx=atof(argv[my_optind+3]);
+      yy=atof(argv[my_optind+4]);
+      Er1=atof(argv[my_optind+5]);
+      if((image_data_fp=fopen(argv[my_optind+6],"wb"))==NULL)
+       exit_with_msg_and_exit_code("Can't open file in create_bmp_for_circ_in_rect.c",CANT_OPEN_FOR_WRITING);
+      check_parameters_of_create_bmp_for_circ_in_rect();
+      convert_create_bmp_for_circ_in_rect_dimensions_to_integers(bmp_size);
+      write_bitmap(image_data_fp, not_used);
+   }
+   else
+      usage_create_bmp_for_circ_in_rect();
+   return(0);
+}
diff --git a/src/non_gui/create_bmp_for_microstrip_coupler.c b/src/non_gui/create_bmp_for_microstrip_coupler.c
new file mode 100644 (file)
index 0000000..b2ffba5
--- /dev/null
@@ -0,0 +1,99 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The program create_bmp_for_rect_in_rect is a pre-processor for atlc. It produces bitmaps of rectangular
+inner and rectangular outer */
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+int W, H; 
+double  Er1, Er2;
+int main(int argc, char **argv) /* Read parameters from command line here   */
+{
+   struct transmission_line_properties pcb;
+   FILE *image_data_fp;
+   int q;
+   pcb.verbose_level=0;
+
+   pcb.bmp_size=DEFAULT_BMP_SIZE;
+   pcb.WW=-1;
+   pcb.HH=-1;
+
+   while((q=get_options(argc,argv,"b:W:H:v")) != -1)
+   switch (q) 
+   {
+      case 'b':
+      pcb.bmp_size=atol(my_optarg); 
+      break;
+      case 'H':
+      pcb.HH=atof(my_optarg);
+      break;
+      case 'W':
+      pcb.WW=atof(my_optarg);
+      break;
+      case 'v':
+      pcb.verbose_level++; 
+      break;
+      case '?':
+      printf("read a ? exiting\n");
+   }
+   if(argc-my_optind ==8)
+   {
+      pcb.ww=atof(argv[my_optind]);
+      pcb.ss=atof(argv[my_optind+1]);
+      pcb.gg=atof(argv[my_optind+2]);
+      pcb.hh=atof(argv[my_optind+3]);
+      pcb.tt=atof(argv[my_optind+4]);
+      pcb.Er1=atof(argv[my_optind+5]);
+      pcb.Er2=atof(argv[my_optind+6]);
+      Er1=pcb.Er1;
+      Er2=pcb.Er2;
+      if(pcb.WW<0)
+        pcb.WW=6*pcb.hh+6*pcb.gg+6*pcb.ww+4*pcb.ss;
+      if(pcb.HH<0)
+        pcb.HH=6*(pcb.hh+pcb.tt);
+      /* Do some sanaity checks */
+      check_parameters_of_create_bmp_for_microstrip_coupler(pcb);
+      convert_create_create_bmp_for_coupled_microstrip_dimensions_to_integers(&pcb);
+      W=pcb.W;
+      H=pcb.H;
+      image_data_fp=fopen(argv[my_optind+7],"wb");
+        /*fprintf(stderr,"ints W=%d H=%d w=%d s=%d g=%d h=%d t=%d\n",pcb.W,pcb.H,pcb.w,pcb.s,pcb.g,pcb.h,pcb.t);*/
+      write_bitmap(image_data_fp, pcb);
+   }
+   else
+      usage_create_bmp_for_microstrip_coupler();
+   return(0);
+}
diff --git a/src/non_gui/create_bmp_for_rect_cen_in_rect.c b/src/non_gui/create_bmp_for_rect_cen_in_rect.c
new file mode 100644 (file)
index 0000000..7352fa9
--- /dev/null
@@ -0,0 +1,106 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The program create_bmp_for_rect_in_rect is a pre-processor for atlc. It produces bitmaps of rectangular
+inner and rectangular outer */
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+#include "exit_codes.h" 
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+double WW, HH, aa, bb, cc, dd, ww, hh, Er1, Er2;
+int W, H, a, b, c, d, w, h, D;
+/* The following are only needed, so I can link in two  
+convert_circ_in_circ_dimensions_to_integers.c
+and
+convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c
+*/
+
+int verbose=FALSE;
+int lowest=2500, highest=10000;
+int fileflag=FALSE;
+
+extern int main(int argc, char **argv) /* Read parameters from command line here   */
+{
+   int  bmp_size=DEFAULT_BMP_SIZE;
+   int q;
+   FILE *image_data_fp;
+   struct transmission_line_properties not_used;
+
+   /* The following line is just to keep SGI's compiler happy. */
+   not_used.W=1;
+
+   while((q=get_options(argc,argv,"b:f:v")) != -1)
+   switch (q) 
+   {
+      case 'b':
+      bmp_size=atol(my_optarg); 
+      break;
+      case 'v':
+      verbose=TRUE; 
+      break;
+      case '?':
+      printf("read a ? exiting\n");
+   }
+   if(argc-my_optind ==6)
+   {
+      WW=atof(argv[my_optind]);
+      HH=atof(argv[my_optind+1]);
+      ww=atof(argv[my_optind+2]);
+      cc=atof(argv[my_optind+3]);
+      Er1=atof(argv[my_optind+4]);
+      if((image_data_fp=fopen(argv[my_optind+5],"wb"))==NULL)
+      {
+        fprintf(stderr,"Can't write to %s. Exiting ...\n",my_optarg);
+        exit_with_msg_and_exit_code("",CANT_OPEN_FOR_WRITING);
+      }
+
+      /* To make the program easier to write, rect_cen_in_rect uses 
+      the same variables as create_bmp_for_rect_in_rect. We just calculate the 
+      values not given (a, b, d, h and Er1 from those given
+      (W, H, c and w) */
+
+      aa=(WW-ww)/2.0;
+      bb=(WW-ww)/2.0;
+      dd=ww;
+      hh=(HH-cc)/2.0;
+      Er2=Er1;
+      check_parameters_of_create_bmp_for_rect_in_rect();
+      convert_create_bmp_for_rect_in_rect_dimensions_to_integers(bmp_size);
+      write_bitmap(image_data_fp, not_used);
+   }
+   else
+      usage_create_bmp_for_rect_cen_in_rect();
+   return(OKAY);
+}
diff --git a/src/non_gui/create_bmp_for_rect_cen_in_rect_coupler.c b/src/non_gui/create_bmp_for_rect_cen_in_rect_coupler.c
new file mode 100644 (file)
index 0000000..1e28b32
--- /dev/null
@@ -0,0 +1,80 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+extern int main(int argc, char **argv) /* Read parameters from command line here   */
+{
+#ifdef GGG
+   int  bmp_size=DEFAULT_BMP_SIZE;
+   int q;
+   FILE *image_data_fp=stdout;
+   struct transmission_line_properties not_used;
+
+   while((q=get_options(argc,argv,"b:f:v")) != -1)
+   switch (q) 
+   {
+      case 'b':
+      bmp_size=atol(my_optarg); 
+      break;
+      case 'v':
+      verbose=TRUE; 
+      break;
+      case '?':
+      printf("read a ? exiting\n");
+   }
+   if(argc-my_optind ==6)
+   {
+
+      WW=atof(argv[my_optind]);
+      HH=atof(argv[my_optind+1]);
+      ww=atof(argv[my_optind+2]);
+      cc=atof(argv[my_optind+3]);
+      Er1=atof(argv[my_optind+4]);
+      if((image_data_fp=fopen(argv[my_optind+5],"wb"))==NULL)
+        exit_and_error("Can't open file for writing",CANT_OPEN_FOR_WRITING);
+
+      /* To make the program easier to write, rect_cen_in_rect uses 
+      the same variables as create_bmp_for_rect_in_rect. We just calculate the 
+      values not given (a, b, d, h and Er1 from those given
+      (W, H, c and w) */
+
+      aa=(WW-ww)/2.0;
+      bb=(WW-ww)/2.0;
+      dd=ww;
+      hh=(HH-cc)/2.0;
+      Er2=Er1;
+      check_parameters_of_create_bmp_for_rect_in_rect();
+      convert_create_bmp_for_rect_in_rect_dimensions_to_integers(bmp_size);
+      write_bitmap(image_data_fp, not_used);
+   }
+   else
+      usage_create_bmp_for_rect_cen_in_rect();
+   return(0);
+#endif 
+  exit_with_msg_and_exit_code("This program is not implemented", PROGRAM_NOT_IMPLEMENTED);
+return(0);
+}
diff --git a/src/non_gui/create_bmp_for_rect_in_circ.c b/src/non_gui/create_bmp_for_rect_in_circ.c
new file mode 100644 (file)
index 0000000..d693a7f
--- /dev/null
@@ -0,0 +1,98 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The program create_bmp_for_rect_in_rect is a pre-processor for atlc. It produces bitmaps of rectangular
+inner and rectangular outer */
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+
+double DD, ww, hh, xx, yy, Er1, Er2;
+int D, w, h, x, y, W, H;
+
+int verbose=FALSE;
+int lowest=2500, highest=10000;
+int fileflag=FALSE;
+
+extern int main(int argc, char **argv) /* Read parameters from command line here   */
+{
+   int  bmp_size=DEFAULT_BMP_SIZE;
+   int q;
+   struct transmission_line_properties not_used;
+   FILE *image_data_fp=stdout;
+
+   not_used.W=1; /* Keeps SGI's MipsPro compiler happy */
+
+   while((q=get_options(argc,argv,"b:f:v")) != -1)
+   switch (q) 
+   {
+      case 'b':
+      bmp_size=atol(my_optarg); 
+      break;
+      case 'f':
+      /* By default bitmap image goes to stdout, but we can send to a file 
+      with the -f option. */
+      if((image_data_fp=fopen(my_optarg,"wb"))==NULL)
+      {
+        fprintf(stderr,"Can't write to %s. Exiting ...\n",my_optarg);
+        exit_with_msg_and_exit_code("",CANT_OPEN_FOR_WRITING);
+      }
+      fileflag=TRUE;
+      break;
+      case 'v':
+      verbose=TRUE; 
+      break;
+      case '?':
+      printf("read a ? exiting\n");
+   }
+      /*usage_create_bmp_for_rect_in_circ();*/
+      fprintf(stderr,"SORRY create_bmp_for_rect_in_circ IS NOT YET WORKING, SO HAS BEEN DISABLED. IT\n");
+      exit_with_msg_and_exit_code("BE ENABLED ON A FORTHCOMING VERSION",PROGRAM_NOT_IMPLEMENTED);
+   if(argc-my_optind == 6)
+   {
+      DD=atof(argv[my_optind]);
+      ww=atof(argv[my_optind+1]);
+      hh=atof(argv[my_optind+2]);
+      xx=atof(argv[my_optind+3]);
+      yy=atof(argv[my_optind+4]);
+      Er1=atof(argv[my_optind+5]);
+      check_parameters_of_create_bmp_for_rect_in_circ();
+      convert_create_bmp_for_rect_in_circ_dimensions_to_integers(bmp_size);
+      write_bitmap(image_data_fp, not_used);
+   }
+   else
+      usage_create_bmp_for_rect_in_circ();
+   return(0);
+}
diff --git a/src/non_gui/create_bmp_for_rect_in_rect.c b/src/non_gui/create_bmp_for_rect_in_rect.c
new file mode 100644 (file)
index 0000000..c8a9309
--- /dev/null
@@ -0,0 +1,104 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The program create_bmp_for_rect_in_rect is a pre-processor for atlc. It produces bitmaps of rectangular
+inner and rectangular outer */
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+double WW, HH, aa, bb, cc, dd, ww, hh, Er1, Er2, DD;
+int W, H, a, b, c, d, w, h;
+int verbose;
+
+/* The following are only needed, so I can link in two  
+convert_circ_in_circ_dimensions_to_integers.c
+and
+convert_create_bmp_for_rect_in_rect_dimensions_to_integers.c
+*/
+
+int lowest=2500, highest=10000;
+int fileflag=FALSE;
+
+int main(int argc, char **argv) /* Read parameters from command line here   */
+{
+   int  bmp_size=DEFAULT_BMP_SIZE;
+   int q;
+   FILE *image_data_fp=stdout;
+   struct transmission_line_properties not_used_currently;
+   int verbose_level=0;
+
+   /* The following jut keeps compilers happy. SGI's is very fussy!! */
+
+   not_used_currently.W=1;
+
+   while((q=get_options(argc,argv,"b:v")) != -1)
+   switch (q) 
+   {
+      case 'b':
+      bmp_size=atol(my_optarg); 
+      break;
+      case 'v':
+      verbose_level=1; 
+      break;
+      case '?':
+      printf("read a ? exiting\n");
+   }
+   if(argc-my_optind ==11)
+   {
+      WW=atof(argv[my_optind]);
+      HH=atof(argv[my_optind+1]);
+      aa=atof(argv[my_optind+2]);
+      bb=atof(argv[my_optind+3]);
+      cc=atof(argv[my_optind+4]);
+      dd=atof(argv[my_optind+5]);
+      ww=atof(argv[my_optind+6]);
+      hh=atof(argv[my_optind+7]);
+      Er1=atof(argv[my_optind+8]);
+      Er2=atof(argv[my_optind+9]);
+      if((image_data_fp=fopen(argv[my_optind+10],"wb"))==NULL)
+       exit_with_msg_and_exit_code("Cant't open file for writing in create_bmp_for_rect_in_rect.c",CANT_OPEN_FOR_WRITING);
+      if(verbose_level==1)
+        printf("WW=%f HH=%f aa=%f bb=%f cc=%f dd=%f ww=%f hh=%f Er1=%f Er2=%f\n",WW,HH,aa,bb,cc,dd,ww,hh,Er1,Er2);
+      check_parameters_of_create_bmp_for_rect_in_rect();
+      convert_create_bmp_for_rect_in_rect_dimensions_to_integers(bmp_size);
+      if(verbose_level==1)
+        printf("W=%d H=%d a=%d b=%d c=%d d=%d w=%d h=%d\n",W,H,a,b,c,d,w,h);
+      write_bitmap(image_data_fp, not_used_currently);
+   }
+   else
+      usage_create_bmp_for_rect_in_rect();
+   return(OKAY);
+}
diff --git a/src/non_gui/create_bmp_for_stripline_coupler.c b/src/non_gui/create_bmp_for_stripline_coupler.c
new file mode 100644 (file)
index 0000000..0249267
--- /dev/null
@@ -0,0 +1,133 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The following calculates the odd and even mode impedances between two
+zero thickness strips of width w, spaced a distance s between two
+groundplanes of spacing h. */
+#include "config.h"
+
+
+#define RATIO 8
+#include "definitions.h"
+#include "exit_codes.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+double WW, HH, ww, Er1, Er2;
+static double ss; 
+int W, H, s,  w,  verbose=FALSE;
+
+int main(int argc, char **argv)
+{
+  double er, return_error;
+  double Zodd, Zeven, Zo;
+  int bmp_size=DEFAULT_COUPLER_BMP_SIZE, q; 
+  FILE *image_data_fp;
+  struct transmission_line_properties optimise;
+  struct transmission_line_properties not_used;
+
+  not_used.W=1; /* keep MipsPro compiler happy on IRIX */
+
+  while((q=get_options(argc,argv,"Cb:v")) != -1)
+  switch (q) 
+  {
+    case 'C':
+      print_copyright((char *) "2002");
+      exit_with_msg_and_exit_code("",OKAY);
+    break;
+    case 'b':
+      bmp_size=atol(my_optarg); 
+    break;
+    case 'v':
+      verbose++;
+    break;
+  }
+  if( bmp_size < 6 || (argc-my_optind != 5) || bmp_size>28)
+  {
+    usage_create_bmp_for_stripline_coupler();
+    exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);
+  }
+  HH=atof(argv[my_optind]);
+  ww=atof(argv[my_optind+1]);
+  ss=atof(argv[my_optind+2]);
+  if(HH<0 || ww <0 || ss<0)
+  {
+    fprintf(stderr,"Sorry, W, H and s must all be greater than 0\n");
+    exit_with_msg_and_exit_code("",DIMENSION_LESS_THAN_ZERO);
+  }
+  er=atof(argv[my_optind+3]);
+  Er1=er;
+  Er2=er;
+  if(er < 1.0)
+  {
+    fprintf(stderr,"Sorry, you can't have a dielectric constand Er of less than 1.0\n");
+    exit_with_msg_and_exit_code("Sorry, you can't have a dielectric constand Er of less than 1.0",PERMITTIVITY_LESS_THAN_1);
+  }
+  if( (image_data_fp=fopen(argv[my_optind+4],"wb")) ==NULL)
+    exit_with_msg_and_exit_code("Can't open binary file for writing",CANT_OPEN_FOR_WRITING);
+  WW=2.0*ww+ss+RATIO*HH;
+  optimise.float_values[0]=WW            ;   /* minimum width as a float*/
+  optimise.float_values[1]=HH;               /* height in floats */
+  optimise.float_values[2]=ww;               /* stripline width */
+  optimise.float_values[3]=ss;               /* spacing between the strips */
+
+  optimise.importance[0]=NOT_IMPORTANT;      /* W is non critical */
+  optimise.importance[1]=MOST_IMPORTANT;          /* H is critical */
+  optimise.importance[2]=IMPORTANT;          /* w is critical */
+  optimise.importance[3]=IMPORTANT;     /* s is most critical */
+
+  optimise.odd_or_even[0]=DONT_CARE;        /* W can be odd or even */
+  optimise.odd_or_even[1]=ODD;              /* H must be even */
+  optimise.odd_or_even[2]=DONT_CARE;        /* w can be odd or even */
+  optimise.odd_or_even[3]=DONT_CARE;        /* s can be odd or even */
+
+  /* We will now optimise for the 4 parameters W, H, w and s, forcing H
+  to be odd, and not bothering what the width is, as long as its about
+  right. */
+
+  return_error=calculate_integer_values(&optimise, 4, bmp_size);
+  if(verbose >=2)
+    printf("error returned from calculate_integer_values=%g\n", return_error);
+  W=optimise.best[0];
+  H=optimise.best[1];
+  w=optimise.best[2];
+  s=optimise.best[3];
+  write_bitmap(image_data_fp, not_used);
+  if(verbose >= 1)
+  {
+    calculate_Zodd_and_Zeven(&Zodd, &Zeven, &Zo, ww, HH, ss, er);
+    printf("The actual dimensions you gave have theoretical imedances of:\n");
+    printf("        Zodd= %f Zeven= %f Zo= %f (Ohms) ww=%f HH=%f ss=%f er=%f\n\n", Zodd, Zeven, Zo,ww,HH,ss,er);
+    calculate_Zodd_and_Zeven(&Zodd, &Zeven, &Zo, (double) w, (double) H-10, (double) s, er);
+    printf("The bitmap produced (which approximates what you want) should have:\n");
+    printf("   Zodd= %f Zeven= %f Zo= %f (Ohms)\n", Zodd, Zeven, Zo);
+  }
+  return(OKAY);
+}
diff --git a/src/non_gui/create_bmp_for_symmetrical_stripline.c b/src/non_gui/create_bmp_for_symmetrical_stripline.c
new file mode 100644 (file)
index 0000000..e1ab47f
--- /dev/null
@@ -0,0 +1,132 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The program widestrip is a pre-processor for atlc. It produces bitmaps 
+of a thin strip, between two wide plates */
+#include "config.h"
+
+#define RATIO 4           /* W = H*RATIO+w */
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif  
+#include "definitions.h"
+#include "exit_codes.h"
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+int verbose=0;
+
+extern int main(int argc, char **argv) /* Read parameters from command line here   */
+{
+  int W, H, w, size_of_image, q;
+  int user_requires_effectively_infinite_width=FALSE;
+  double Zo;
+  unsigned char *unaligned_image_vector, *aligned_image_vector;
+  FILE *fp;
+#ifndef HAVE_MEMSET
+  int memory_location;
+#endif
+
+  while((q=get_options(argc,argv,"Cvi")) != -1)
+  switch (q) 
+  {
+    case 'C':
+      print_copyright((char *) "2002");
+      exit_with_msg_and_exit_code("",OKAY);
+    break;
+    case 'i':
+      user_requires_effectively_infinite_width=TRUE;
+    break;
+    case 'v':
+      verbose++;
+    break;
+    case '?':
+      usage_create_bmp_for_symmetrical_stripline();
+    break;
+  } /* End of the switch statement */
+  if(argc-my_optind !=4)
+  {
+    usage_create_bmp_for_symmetrical_stripline();    
+    exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);
+  }
+  W=atoi(argv[my_optind]);
+  H=atoi(argv[my_optind+1])+2*BORDER;
+  if(H%2==0) /* make it odd, so that the inner can sit in the middle */
+  {
+    H++;
+    printf("H needs to be odd, so the inner conductor (1 pixel high) will fit\
+    centrally. Hence H has been increased to %d pixels\n",H);
+  }
+  w=atoi(argv[my_optind+2]);
+  if ((W < RATIO*H + w) && user_requires_effectively_infinite_width==TRUE)
+  {
+    fprintf(stderr,"For this to be a valid test of atlc, the width should be\n");
+    fprintf(stderr,"infinite. Since you used the -i option (indicationg you\n");
+    fprintf(stderr,"want the width W to effectively infinite, W must exceed w + %dxH.\n",RATIO);
+    fprintf(stderr,"Therefore W has been is set to %d\n",RATIO*H+w );
+    W=RATIO*H+w;
+  }
+  if(W <= 5 || H <= 5)
+    exit_with_msg_and_exit_code("W or H is under 6, which is stupid (remember these are pixels !! in this program)",W_OR_H_TOO_SMALL);
+  aligned_image_vector=ustring(0,(W+3)*3*H+100);
+  unaligned_image_vector=ustring(0,(W+3)*3*H+100);
+
+  if((fp=fopen(argv[my_optind+3],"wb")) == NULL)
+  {
+    exit_with_msg_and_exit_code("Error in opening file in create_bmp_for_symmetrical_stripline",CANT_OPEN_FOR_WRITING);
+  }
+  aligned_image_vector=ustring(0,(W+3)*3*H);
+  unaligned_image_vector=ustring(0,(W+3)*3*H);
+
+#ifdef HAVE_MEMSET
+  (void) memset((void *) (aligned_image_vector),0x00,(size_t) W*H*3);
+#else
+  for(memory_location=0; memory_location < W*H*3; memory_location++)
+    aligned_image_vector[memory_location]=0;
+#endif
+
+  /* Fill a vector with */
+  fill_image_vector_for_thin_strip(W,H,w,unaligned_image_vector);
+  size_of_image=align_bitmap_image(W, H, unaligned_image_vector,aligned_image_vector);
+
+  write_bitmap_out(aligned_image_vector, fp, size_of_image, W, H);
+  /* write_bitmap_out closes the file pointer */
+  Zo=calculate_symmetrical_stripline_impedance(H-2*BORDER,w);
+  if(verbose >=1 && W >= RATIO*H + w )
+    printf("Zo is theoretically %f Ohms (assuming W is infinite)\n",Zo);
+  else if (verbose >=1 && W < RATIO*H + w){
+    exit_with_msg_and_exit_code("A theoretical value for Zo can't be computed as the width W is too small",1);
+  }
+  return(OKAY); /* This does not get executed, but keeps the compiler
+  happier, as otherwise it gives a warning about control reaching the
+  end of a non-void function */
+}
diff --git a/src/non_gui/definitions.h b/src/non_gui/definitions.h
new file mode 100644 (file)
index 0000000..714b1ae
--- /dev/null
@@ -0,0 +1,410 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif 
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#define EXIT_READ_FAILURE
+
+#define       FREE_ARG char*
+#define       NR_END 1
+
+#define    CONDUCTOR_MINUS_ONE_V                                               5 
+#define    CONDUCTOR_ZERO_V                                                   10 
+#define    CONDUCTOR_PLUS_ONE_V                                               15 
+
+#define    CONDUCTOR_FLOATING                                                 20
+
+#define    METAL_LEFT                                                         25
+#define    METAL_RIGHT                                                        30
+#define    METAL_ABOVE                                                        35
+#define    METAL_BELOW                                                        40
+#define    METAL_BELOW_AND_LEFT                                               45
+#define    METAL_BELOW_AND_RIGHT                                              50
+#define    METAL_ABOVE_AND_LEFT                                               55 
+#define    METAL_ABOVE_AND_RIGHT                                              60
+
+#define    DIELECTRIC                                                         65 /* not for oddity */
+#define    ORDINARY_INTERIOR_POINT                                            70
+
+#define    TOP_LEFT_CORNER                                                    75
+#define    BOTTOM_RIGHT_CORNER                                                80
+#define    TOP_RIGHT_CORNER                                                   85
+#define    BOTTOM_LEFT_CORNER                                                 90
+#define    ORDINARY_POINT_BOTTOM_EDGE                                         95
+#define    ORDINARY_POINT_TOP_EDGE                                           100
+#define    ORDINARY_POINT_LEFT_EDGE                                          105
+#define    ORDINARY_POINT_RIGHT_EDGE                                         110
+#define    DIFFERENT_DIELECTRIC_LOCALLY                                      115
+
+#define    DIFFERENT_DIELECTRIC_ABOVE_AND_RIGHT                              120
+#define    DIFFERENT_DIELECTRIC_BELOW_AND_LEFT                               125
+#define    DIFFERENT_DIELECTRIC_BELOW_AND_RIGHT                              135
+#define    DIFFERENT_DIELECTRIC_VERTICALLY                                   140
+#define    DIFFERENT_DIELECTRIC_HORIZONTALLY                                 145
+#define    DIFFERENT_DIELECTRIC_BELOW                                        150
+#define    DIFFERENT_DIELECTRIC_LEFT                                         155
+#define    DIFFERENT_DIELECTRIC_RIGHT                                        160
+#define    DIFFERENT_DIELECTRIC_ABOVE_AND_LEFT                               165
+
+#define    UNDEFINED_ODDITY                                                  255
+
+/* The following two determine what happens when a coupler is present
+and the voltages have to be swapped from negative to positive in the
+simulation. */
+#define ITERATIONS                      100
+#define POS_TO_NEG                         1
+#define NEG_TO_POS                         -1
+#define METAL_ER  1e9 
+
+#define DONT_ZERO_ELEMENTS  0       
+#define ZERO_ELEMENTS_FIRST 1       
+
+#ifndef TRUE 
+#define TRUE 1
+#define FALSE 0
+#endif
+
+#define DONT_CARE                          0
+#define ODD                                1
+#define EVEN                               2
+
+#define Vij_TO_Vij                         1
+#define VijB_TO_Vij                        2
+#define Vij_TO_VijB                        3
+
+#define MAXIMUM_PROCESSING_DEVICES              1024
+#define MAX_DIFFERENT_PERMITTIVITIES   10000
+#define MAX_ER 12.0
+
+#define COLOUR 0
+#define MONOCHROME 1
+#define MIXED      2
+#define Z0                              1
+
+#define Z_ODD_SINGLE_DIELECTRIC         1
+#define Z_EVEN_SINGLE_DIELECTRIC        2
+#define Z_ODD_MULTIPLE_DIELECTRIC       3
+#define Z_EVEN_MULTIPLE_DIELECTRIC      4
+
+#define Z_ALL                       5
+
+/* The value of EPSILON_0 is taken from the UK National Physical
+Laboratory's list of physical constants found on the web. */
+
+#define EPSILON_0 8.854187817e-12
+#define MU_0 M_PI*4e-7
+#define MAX_THREADS  4
+#define BORDER   5 /* The border to put around images. 1 is minimum, but 5 looks better */
+
+#define TINY 1e-12
+#define VERY_LARGE 1e15
+#define DEFAULT_BMP_SIZE 6
+#define DEFAULT_COUPLER_BMP_SIZE 18
+
+#define IMAGE_FIDDLE_FACTOR 2.0
+#define ACCEPTABLE_ERROR 0.02
+#define UNACCEPTABLE_ERROR 0.05
+
+#define RECT_IN_RECT 1
+#define CIRC_IN_CIRC 2
+#define CIRC_IN_RECT 3
+#define RECT_IN_CIRC 4
+
+#define DEFAULT_GMIN 0.5
+#define DEFAULT_GMAX 5.0
+#define DEFAULT_GSTEP 0.5
+
+#define DEFAULT_SMIN 0.5
+#define DEFAULT_SMAX 5.0
+#define DEFAULT_SSTEP 0.5
+
+#define DEFAULT_WMIN 0.5
+#define DEFAULT_WMAX 5.0
+#define DEFAULT_WSTEP 0.5
+
+
+#ifdef ENABLE_MPI
+#define MAX_PES 256
+#define MSG_TAG_WIDTH_HEIGHT 1
+#define MSG_TAG_STRIP_PARAMS 2
+#define MSG_TAG_NODE_TYPE    3
+#define MSG_TAG_ER           4
+#define MSG_TAG_CONTROL      5
+#define MSG_TAG_ITERATIONS   6
+#define MSG_TAG_VIJ          7
+#define MSG_TAG_VIJ_LBORDER  8
+#define MSG_TAG_VIJ_RBORDER  9
+#define MSG_TAG_ENERGY      10
+#define MSG_TAG_DIELECTRICS 11
+
+#define CONTROL_VALUE_RECEIVE_DATA     0
+#define CONTROL_VALUE_SEND_DATA        1
+#define CONTROL_VALUE_DO_ITERATIONS    2
+#define CONTROL_VALUE_EXIT             3
+#endif /* ENABLE_MPI */
+
+
+extern char *my_optarg;
+/* I needed to invent add my_ in front of the usual name for optind,
+opterr, optopt etc, since they are defined by the system, and I'm using
+a local package_version of getopts (get_options) so it exists with the PC too.
+Most systems do not seem to mind if these names exist or not, but a
+Power Machintosh powerpc running Darwin Kernel Package_version 5.3 gave this as
+a warning. Hence I'll avoid the problem by adding my_ */
+
+extern int my_optind, my_opterr, my_optopt;
+
+struct transmission_line_properties{
+double WW, HH, ww, ss, gg, hh, tt, Er1, Er2;
+int  W, H, w, s, g, h, t, bmp_size;
+
+int verbose_level; /* 0, 1 or 2 */
+double Codd, Ceven, C;
+double velocity_odd, velocity_factor_odd, relative_permittivity_odd;
+double velocity_even, velocity_factor_even, relative_permittivity_even;
+double Lodd_vacuum, Leven_vacuum, L_vacuum;
+double Codd_vacuum, Ceven_vacuum, C_vacuum, C_non_vacuum;
+double Zo, Zo_vacuum, Zo_non_vacuum, Zodd, Zodd_vacuum, Zeven;
+double Zeven_vacuum, Zdiff, Zdiff_vacuum, Zcomm, Zcomm_vacuum;
+double Er, the_single_Er, Er_odd, Er_even;
+double velocity, velocity_factor, relative_permittivity;
+double r; /* rate multiplier */
+double image_fiddle_factor;
+double cutoff; /* How small the error in subsequent itterations must be */
+int compute, display; /* none, ZO, ZODD, ZEVEN. ZEVEN_VAC, ZODD_VAC; */
+int should_binary_data_be_written_tooQ;
+int dielectrics_to_consider_just_now;
+int non_vacuum_dielectric_found;
+double found_this_dielectric;
+int dielectrics_on_command_line;
+int dielectrics_in_bitmap;
+int avoid_use_of_fast_convergence_methodQ;
+int couplerQ;
+int write_binary_field_imagesQ;
+int write_bitmap_field_imagesQ;
+double float_values[10];
+int int_values[10];
+int importance[10];
+int odd_or_even[10];
+int best[10];
+int non_metallic_pixels;
+int tenth_of_estimated_iterations_needed;
+};
+
+#define NOT_IMPORTANT 0   /* The importance to attach to getting the */
+#define IMPORTANT 1       /* best value of integers for the grid */
+#define MOST_IMPORTANT 2
+
+struct pixels
+{
+   int red;          /* +1 V */
+   int green;        /* 0 V */
+   int blue;         /* -1 V */
+   int white;        /* Vacuum */
+   int other_colour;  /* mix of red, green and blue  */
+   double epsilon;
+};
+
+struct max_values
+{
+double Ex_or_Ey_max, E_max, V_max, U_max, permittivity_max;
+};
+
+
+struct fit_doubles_to_integers{
+int n_min, n_max, n;
+int m, in[100];
+double out[100], weight[100], good, acceptable;
+double largest_errror;
+double rms_errror;
+};
+
+#ifdef ENABLE_MPI
+struct strip {
+  int start_col;
+  int num_cols;
+};
+#endif /* ENABLE_MPI */
+
+/* Despite the fact the Bitmap_File_Head_Struct and Bitmap_Head_Struct
+all have int's for the types of data, in practice these must be 2 and 4
+byte varialbes. As such, they are written a character at a time, so the
+data size is unimportant. This was neeed on the Cray, due to the fact
+sizeof(short)=8 */
+
+struct Bitmap_File_Head_Struct
+{
+  unsigned char   zzMagic[2];  /* 00 "BM" */
+  int     bfSize;      /* 02 */
+  int    zzHotX;       /* 06 */
+  int    zzHotY;       /* 08 */
+  int     bfOffs;      /* 0A */
+  int     biSize;      /* 0E */
+};
+
+struct Bitmap_Head_Struct
+{
+  int     biWidth;     /* 12 */
+  int     biHeight;    /* 16 */
+  int    biPlanes;    /* 1A */
+  int    biBitCnt;    /* 1C */
+  int     biCompr;     /* 1E */
+  int     biSizeIm;    /* 22 */
+  int     biXPels;     /* 26 */
+  int     biYPels;     /* 2A */
+  int     biClrUsed;   /* 2E */
+  int     biClrImp;    /* 32 */
+                        /* 36 */
+};
+
+#ifndef M_PI
+#define M_PI 3.141592653589793238462643383279502884197169399375105820975
+#endif
+
+#define NUMBER_OF_DIELECTRICS_DEFINED 13
+
+int main(int argc, char **argv);
+void byteswap_doubles(double *a);
+void read_bitmap_file_headers(char *filename, int *offset, size_t *size, int *width, int *height);
+void help(char *filename);
+double **dmatrix(long nrl, long nrh, long ncl, long nch);
+void free_dmatrix(double **m, long nrl, long nrh, long ncl, long nch);
+void free_cmatrix(char **m, long nrl, long nrh, long ncl, long nch);
+char *string(long nl,long nh);
+void free_string(char *v, long nl, long nh);
+void swap_bytes2(unsigned char *buffer, int offset, short *answer);
+void swap_bytes4(unsigned char *buffer, int offset, int *answer);
+void free_ustring(unsigned char *v, long nl, long nh);
+void setup_arrays(struct transmission_line_properties *data);
+double finite_difference_single_threaded();
+double finite_difference_multi_threaded();
+void *do_columns(void *thread_arg);
+void usage_atlc(void);
+void write_fields_for_two_conductor_lines(char *filename, struct transmission_line_properties data, size_t size);
+void write_fields_for_directional_couplers(char *filename, struct transmission_line_properties data, size_t size, int odd_or_even);
+char          **cmatrix(long nrl, long nrh, long ncl, long nch);
+unsigned char **ucmatrix(long nrl, long nrh, long ncl, long nch);
+signed char **scmatrix(long nrl, long nrh, long ncl, long nch);
+
+int *ivector(long nl, long nh);
+void get_Er1_and_Er2_colours(int *colour_Er1, int *colour_Er2);
+void convert_create_bmp_for_rect_in_rect_dimensions_to_integers(int bmp_size);
+void convert_create_bmp_for_circ_in_circ_dimensions_to_integers(int bmp_size);
+unsigned char *ustring(long nl,long nh);
+void write_bitmap(FILE *image_data_fp, struct transmission_line_properties foo);
+void usage_create_bmp_for_rect_in_rect(void);
+void usage_create_bmp_for_rect_cen_in_rect(void);
+void write_bitmap_out(unsigned char *image_data, FILE *image_data_fp,int image_size, int W, int H);
+int align_bitmap_image(int W, int H, unsigned char *unaligned_image, unsigned char *byte_aligned_image);
+void fill_create_bmp_for_rect_in_rect(char *image_vector, int colour_Er1, int colour_Er2);
+void check_create_bmp_for_rect_in_rect_ints(void);
+void exit_with_msg_and_exit_code(const char *error_text, int exitnumber);
+void check_error(double user, int create_bmp_for_rect_in_rect, double gridsize, const char *name);
+void check_parameters_for_create_bmp_for_circ_in_circ(void);
+void fill_image_vector_with_data(unsigned char *image_vector, int colour_Er1, int colour_Er2, struct transmission_line_properties x);
+void usage_create_bmp_for_circ_in_circ(void);
+void convert_create_bmp_for_rect_in_circ_dimensions_to_integers(int accuracy_level);
+void usage_create_bmp_for_rect_in_circ(void);
+void convert_create_bmp_for_circ_in_rect_dimensions_to_integers(int accuracy_level);
+void usage_create_bmp_for_circ_in_rect(void);
+void check_for_shorts(void);
+void usage_symmetrical_strip(void);
+void fill_image_vector_for_thin_strip(int W,int H, int w, unsigned char *unaligned_image_vector);
+double K_over_Kdash(double k);
+double calculate_symmetrical_stripline_impedance(int H, int w);
+
+void free_ucmatrix(unsigned char **m, long nrl, long nrh, long ncl, long nch);
+void free_scmatrix(signed char **m, long nrl, long nrh, long ncl, long nch);
+
+int print_data(FILE *fp, char *filename, double Er, double C, double L, double Zo, double
+Zodd, double Zeven, int whichZ, double v, double vf);
+void set_oddity_value(void);
+double find_energy_per_metre(int i, int j);
+FILE *get_file_pointer_with_right_filename(char *filename, const char *ext);
+void find_maximum_values(struct max_values *maximum_values, int zero_elementsQ);
+void calculate_colour_data(double x, double xmax, int w, int h, int offset, unsigned char *image_dat, int image_type,
+unsigned char *red, unsigned char *green, unsigned char *blue, double image_fiddle_factor);
+double find_Ex(int w, int h) ;
+double find_Ey(int w, int h);
+double find_E(int w, int h);
+double voltage_ij(int i, int j);
+void usage_readbin(void);
+void ERR(const char *s, char c, char **argv);
+int get_options(int argc, char **argv, const char *opts); 
+char *index2(const char *str, char c); 
+void swap_conductor_voltages();
+void usage_create_bmp_for_stripline_coupler(void);
+double calculate_integer_values(struct transmission_line_properties *optimise, int n, int accuarcy_level);
+void calculate_Zodd_and_Zeven(double *Zodd, double *Zeven, double *Zo, double w, double H, double s, double er);
+void usage_design_coupler(void);
+void print_copyright(const char *s);
+void give_examples_of_using_design_coupler(void);
+void do_fd_calculation(struct transmission_line_properties *data, size_t size, FILE *where_to_print_fp, char *inputfile_filename);
+void print_data_for_directional_couplers(struct transmission_line_properties data, FILE *where_to_print_fp, char *inputfile_name);
+void print_data_for_two_conductor_lines(struct transmission_line_properties data, FILE *where_to_print_fp, char *inputfile_name);
+void set_data_to_sensible_starting_values(struct transmission_line_properties *data);
+void check_parameters_of_create_bmp_for_microstrip_coupler(struct transmission_line_properties pcb);
+void convert_create_create_bmp_for_coupled_microstrip_dimensions_to_integers(struct transmission_line_properties *pcb);
+void usage_create_bmp_for_microstrip_coupler(void);
+void usage_find_optimal_dimensions_for_microstrip_coupler(void);
+void check_parameters_of_create_bmp_for_circ_in_circ(void);
+void check_parameters_of_create_bmp_for_circ_in_rect(void);
+void check_parameters_of_create_bmp_for_rect_in_circ(void);
+void check_parameters_of_create_bmp_for_rect_in_rect(void);
+void usage_create_bmp_for_symmetrical_stripline(void);
+void check_parameters_for_find_optimal_dimensions_for_microstrip_coupler (double h,double t,double Er1,double Er2,double ideal_Zodd,double ideal_Zeven);
+double *dvector(long nl, long nh);
+void *worker(void *thread_arg);
+void free_ivector(int *v, long nl, long nh);
+double check_convergence(double **grid1, double **grid2, int w, int h);
+void error_check(char *s);
+void free_dvector(double *v, long nl, long nh);
+void usage_create_any_bitmap();
+void update_voltage_array(int n, int starti, int endi, int i_index, int j_index, double **from, double **to);
+void nrerror(char error_text[]);
+void check_for_boundaries(void);
+
+
+
+#define ONE
+#define TWO
+#define THREE
+#define FOUR
+#define FIVE
+#define SIX
+#define SEVEN
+#define EIGHT
+#define NINE
+#define HUNDRED
+
+#define I 58
+#define J 241
diff --git a/src/non_gui/design_coupler.c b/src/non_gui/design_coupler.c
new file mode 100644 (file)
index 0000000..1d7393d
--- /dev/null
@@ -0,0 +1,349 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+
+extern int errno;
+int verbose=2;
+
+/* desgin_coupler does two very different things in the one program
+1) Given a frequency range, the required coupling factor, it calcuates
+the odd and even mode impedances needed for a coupler. It does this
+assuming the length of the coupler is lambda/4, although you can vary
+that on the command line with the -l option. 
+
+2) Once the optimal values for the even and odd mode impedances are
+found, it itteratively looks up the odd and even mode impedances for two
+think lines of various widths (w) and spacings (s), looking for the
+combination that gives the best rms error between the required
+impedances and those that will result with the coupler design as
+presented. 
+
+It is assumed by default that the height of the box is of one unit (1
+mm, 1" etc, but this may be changed on the command line. This will scale
+the parameters w and s by the same multiple.
+
+*/
+
+int main(int argc, char **argv) /* Read parameters from command line */
+{
+  int q, Hflag=FALSE;
+  int calculate_physical_dimensions=FALSE;
+  int calculate_physical_dimensions_to_high_accuracy=FALSE;
+  double er;
+  double Zo=-1, length=-1, fmin, fmax, fmean, fstep=-1, cf,  Zodd, Zeven; 
+  double f, vcf, vcf_for_quarter_wave_line, w, s, error, error_max=1e30;
+  double wanted_coupling_factor_in_dB, step=0.02, fq;
+  double Zeven_x=-1, Zodd_x=-1, best_s=-1, best_w=-1;
+  double height_of_box=1.0;
+  double best_Zodd=-1, best_Zeven=-1, best_Zo=-1;
+
+  /* SGI's MipsPro compiler is very fussy. The following line, along
+  with one right at the end, forces Zo_x to be set and used,
+  alhtough it serves no other userful purpose but to keep the 
+  compiler happy */
+  double Zo_x=1;
+  while((q=get_options(argc,argv,"DeQqdCL:s:Z:H:")) != -1)
+  switch (q) 
+  {
+    case 'd':
+    calculate_physical_dimensions=TRUE;
+    break;
+    case 'D':
+    calculate_physical_dimensions=TRUE;
+    calculate_physical_dimensions_to_high_accuracy=TRUE;
+    break;
+    case 'e':
+    give_examples_of_using_design_coupler();
+    break;
+    case 'C':
+    print_copyright((char *) "2002");
+    Hflag=TRUE;
+    exit_with_msg_and_exit_code("",OKAY);
+    break;
+    case 'L':    
+    length=atof(my_optarg); /* Sets the length of coupler */
+    break;
+    case 'H':
+    height_of_box=atof(my_optarg); /* Set height of coupler's enclosure */
+    Hflag=TRUE;
+    break;
+    case 's': /* Set frequncy steps in which coupling is computed */
+    fstep=atof(my_optarg);
+    break;
+    case 'Z': /* Set the characteristic impedance - default is 50 Ohms */
+    Zo=atof(my_optarg);
+    break;
+    case 'q': /* Run in quite mode, giving less output */
+    verbose--;
+    break;
+    case '?':
+      usage_design_coupler();
+    break;
+  } /* End of the switch statement */
+
+  if(argc-my_optind != 3)  /* This should be so hopefully !! */
+  {
+    usage_design_coupler();
+    exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);
+  }
+  wanted_coupling_factor_in_dB=atof(argv[my_optind]);
+  fmin=atof(argv[my_optind+1]);
+  fmax=atof(argv[my_optind+2]);
+  fmean=(fmin+fmax)/2.0;
+  if(fstep <0 )
+    fstep=(fmax-fmin)/4.0;
+  
+  if (wanted_coupling_factor_in_dB <= 0.0 ) /* Only 0 can happen */
+  {
+    /* I don't think this can happen unless the user enter 0 as the
+    first parameter, as a negative number entered will be taken as a
+    command line option */
+    fprintf(stderr,"\nThe coupled power must be less than the input power.");
+    fprintf(stderr," But please enter a\n*positive* number in dB for the");
+    fprintf(stderr," first command line parameter. If you want a \ncoupler");
+    fprintf(stderr," with a coupled port that is 12 dB down on the input");
+    fprintf(stderr," power, covering\n144-146 MHz, enter this as:\n\n");
+    fprintf(stderr,"design_coupler 12 144 146\n\n");
+    fprintf(stderr,"If you want the physical dimensions of the coupler");
+    fprintf(stderr," designed for you, add the\n-d option on the command");
+    fprintf(stderr," line, like this:\n\ndesign_coupler -q -12 144 146\n\n");
+    fprintf(stderr,"If you run design_coupler with no command line");
+    fprintf(stderr," arguments, like this:\n\ndesign_coupler\n\n");
+    fprintf(stderr,"then design_coupler will print some information,");
+    fprintf(stderr,"  showing *all* the options. \nIf you run design_coupler");
+    fprintf(stderr," with the -e option like this:\n\n");
+    fprintf(stderr,"design_coupler -e\n\n");
+    fprintf(stderr,"lots of examples will be shown of the correct usage.\n");
+    exit_with_msg_and_exit_code("",IMPOSSIBLE_COUPLING_COEFFICIENT);
+  } 
+  if (fmax <= fmin)
+  {
+    fprintf(stderr,"The second command line argumentent you gave, which");
+    fprintf(stderr," is for the *minimum*\noperating frequenncy in MHz,");
+    fprintf(stderr," is less than the third argument, which is the\n");
+    fprintf(stderr,"*maximum* operating frequency in MHz.\n\n");
+    fprintf(stderr,"If you want a coupler");
+    fprintf(stderr," with a coupled port that is 12 dB down on the input\n");
+    fprintf(stderr,"power, covering 144-146 MHz, enter this as:\n\n");
+    fprintf(stderr,"design_coupler 12 144 146\n\n");
+    fprintf(stderr,"If you want the physical dimensions of the coupler");
+    fprintf(stderr," designed for you, add the\n-d option on the command");
+    fprintf(stderr," line, like this:\n\ndesign_coupler -d 12 144 146\n\n");
+    fprintf(stderr,"If you run design_coupler with no command line arguments,");
+    fprintf(stderr," then design_coupler\nwill print some information,");
+    fprintf(stderr," showing *all* the options. If you run\ndesign_coupler");
+    fprintf(stderr," with the -e option like this:\n\n");
+    fprintf(stderr,"design_coupler -e\n\n");
+    fprintf(stderr,"lots of examples will be shown of the correct usage.\n");
+    fprintf(stderr,"Exiting ...\n");
+    exit_with_msg_and_exit_code("",FMAX_NOT_ABOVE_FMIN);
+  }
+  if (Zo < 0.0)
+    Zo=50.0; 
+  if(length<0.0)
+    length=75.0/fmean;  /* By default, make it a quarter wave long */
+  /* The following sent in an email by Paul AA1L, sums the theory up 
+  You make Zo=50=sqrt(Zoo*Zoe) and
+  c=(Zoe-Zoo)/(Zoe+Zoo), c being the voltage coupling coefficient.
+  I.e., for a 20dB coupler c=0.1 is the midband
+  coupling.  
+  Coupling varies as sin^2(f/fq), fq being frequency where the coupled
+  length is a quarter wave.  
+
+  HOWEVER, the above is not quite the full story, as that says coupling
+  peaks at sin(1), when in fact its sin(Pi/2)
+  */
+  
+  /* vfc stands for 'voltage coupling factor' */
+
+  /* I need to find values for Zodd and Zeven to use, but first convert
+  the coupling factor on the command line into the voltage coupling
+  factor c */
+  
+  /* vfc stands for 'voltage coupling factor' */
+
+  /* When the line is a quarter wave, one can get any amount of coupling
+  you want, including a vfc of 1, in which case all the power transfers
+  to the coupled port. Normally, the vcf will be less than 1.0. for a 20
+  dB couplier is it 0.1 */
+
+  vcf_for_quarter_wave_line=1.0/pow(10.0,wanted_coupling_factor_in_dB/20.0); 
+
+  fq=75/length; /* frequency at which line is a quarter wave long */
+
+  /* If the line is less than a quarter wave long, then less power is
+  coupled, so to compensate we need to increase the voltage coupling
+  factor 'vcf above that of the value for a quarter wave line.
+  Since the 'vcf' varies as sin(0.5 *PI * f/fq)^2, where 
+  fq is the frequency at which the line is a quarter-wave long, we must
+  divide the vcf_for_quarter_wave_line by sin(0.5 *PI*f/fq)^2 to get
+  the required vcf. */
+  vcf=vcf_for_quarter_wave_line*(1.0/sin(0.5*M_PI*fmean/fq));
+  /* Check that the voltage coupling factor does not exceed one */
+  if ( vcf > 1.0 )
+  {
+    fprintf(stderr,"\n*****ERROR****\n");
+    fprintf(stderr,"Sorry, you can't make a %6.3f dB coupler with a coupled line of %7.4f m long.\n",wanted_coupling_factor_in_dB, length);
+    fprintf(stderr,"Either couple off a smaller fraction of the main power to the coupled port,\n");
+    fprintf(stderr,"or make the line closer to an odd multiple of a quarter wave.\n");
+    fprintf(stderr,"Odd mulitples of a quarter wave are: %.4f, %.4f, %.4f, %.4f .. m\n", 75/fmean, 3*75/fmean, 5*75/fmean, 7*75/fmean);
+    exit_with_msg_and_exit_code("",IMPOSSIBLE_TO_MAKE_COUPLER_THAT_LENGTH);
+  }
+
+  /* After mucking around with Mathematica a bit, I found it was
+  possible to invert the equations */
+  
+  Zodd = sqrt(1-vcf)*Zo/sqrt(1+vcf);
+  Zeven=Zo*Zo/Zodd;
+
+  printf("\nFor a %.3f dB %.3f Ohm coupler with a length of %.4f m,\n",wanted_coupling_factor_in_dB, Zo, length);
+  printf("you need to have an odd-mode impedance Zodd of %.3f Ohms and\n",Zodd);
+  printf("an even mode impedance Zeven of %.3f Ohms\n\n",Zeven);
+  if(verbose >=1) /* Only print if user does not specifiy and -qq options */
+  {
+    printf("%.3f dB down <-- ************************** ---> %3.3f Ohm termination\n\n",wanted_coupling_factor_in_dB,Zo);
+    printf("Drive this port --> ************************** ---> %3.3f Ohm termination\n",Zo);
+    printf("                    <------- %8.4f m ----->\n",length);
+    printf("\nDrive Port 1, coupler out of port 2 and terminate the other ports in Zo\n");
+    printf("Such a coupler will have the response indicated below.\n\n");
+  /*printf("length =%.4f mean=%.3f vcf=%.3f vcf_for_quarter_wave_line=%.3f \n",length, fmean, vcf, vcf_for_quarter_wave_line);*/
+  }
+  for(f=fmin; f<=fmax; f+=fstep)
+  {
+    cf=20*log10(vcf*sin(0.5*M_PI*f/fq)); /* This is what is now needed for some given length (and so fq) */
+    if(verbose == 2)
+      printf("f = %7.3f MHz   coupling is %.3f dB down on the main arm\n",f,cf);
+  }
+  printf("\nYou may force the length to be any value you want using the -L option - it does\nnot have to be %.4f metres long\n",length);
+  if(calculate_physical_dimensions==FALSE)
+  {
+    printf("You may try to find a coupler with these dimensions using the -d option\n\n");
+    printf("Currently the -d option is not that fast, as it uses a brain-dead algorithm\n");
+    printf("Hopefully one day the algorithm will be speeded up.\n");
+  }
+  if(calculate_physical_dimensions==TRUE)
+  {
+    er=1.0;
+    printf("Please be patient - this will take a few minutes or so\n");
+    for(s = 0.02; s<=100; s+=step)
+    {
+      for(w = 0.02; w<= 11.0; w += step)
+      {
+       /* Results are calculated assuming the box is one unit (mm, inch
+       etc) high and later scaled */
+
+        calculate_Zodd_and_Zeven(&Zodd_x, &Zeven_x, &Zo_x, w, 1.0, s, er);
+       error=pow(Zodd-Zodd_x,2.0) + pow(Zeven-Zeven_x,2.0);
+       if( error < error_max )
+       {
+         best_s=s; 
+         best_w=w; 
+         best_Zo=sqrt(best_Zo * best_Zeven);
+         best_Zodd=Zodd;
+         best_Zeven=Zeven;
+         error_max=error;
+        }
+      }
+    }
+    printf("w = %.4f s = %.4f which gives Zo = %.4f Zodd = %.4f Zeven = %.4f\n",best_w, best_s, best_Zo, best_Zodd, best_Zeven);
+    /* Now try to get closer, if -D option given */
+    if (calculate_physical_dimensions_to_high_accuracy == TRUE)
+    {
+      for(s = best_s-step; s<=best_s+step; s+=step/1000)
+      {
+        for(w = best_w-step; w<= best_w+step; w += step/1000)
+        {
+          calculate_Zodd_and_Zeven(&Zodd_x, &Zeven_x, &Zo_x, w, 1.0, s, er);
+         error=fabs(Zodd-Zodd_x) + fabs(Zeven-Zeven_x);
+         if( error < error_max )
+          {    
+            best_s=s; 
+           best_w=w; 
+           best_Zodd=Zodd;
+           best_Zeven=Zeven;
+           error_max=error;
+          }
+        }
+      }
+    }
+    best_Zo=sqrt(best_Zodd * best_Zeven);
+    if(verbose <= 0)
+    {
+      printf("|-----------^------------------------------------------------------------------|\n");
+      printf("|           |                                                                  |\n");
+      printf("|           |              <---w---><-----s----><---w-->                       |\n");
+      printf("|           H              ---------            --------                       |\n");
+      printf("|           |                                                                  |\n");
+      printf("|           |   Er=1.0 (air)                                                   |\n");
+      printf("------------v------------------------------------------------------------------\n");
+      printf("<-----------------------------------------W----------------------------------->\n");
+    }
+    printf("H =%.4f w = %.4f s = %.4f\n",height_of_box, height_of_box*best_w, height_of_box*best_s);
+    printf("W must be *at least* %.4f, but larger does not matter.\n",5*height_of_box+ 2*best_w*height_of_box + height_of_box*best_s);
+    printf("These dimensions give Zo = %.4f Zodd = %.4f Zeven = %.4f Ohms\n", best_Zo, best_Zodd, best_Zeven);
+    if(Hflag==FALSE)
+    {
+      printf("****NOTE ****\n");
+      printf("Although H is shown as 1.0, it can be 1 mm, 1 cm or even 1 m. It is important\n");
+      printf("that w is %.4f times whatever H is, and that s is %.4f times whatever H is, but the absolute numbers are irrelavant.\n",best_w, best_s);
+      printf("If you know the height H of your enclosure, use the -H option to indicate\n");
+      printf("its value. This will ensure all the dimensions are scaled automatically for you.\n"); 
+    }
+    printf("****NOTE 2****\n");
+    printf("The length *must* be %.4f m if you use these dimensions for W, H, w and s.\n",length); 
+    printf("If %.4f m is inconvenient, change it with the -L option and recalculate\n to get new values of W, H, w and s\n",length);
+    printf("See: http://atlc.sourceforge.net\n");
+    printf("See: http://atlc.sourceforge.net/couplers.html\n");
+  }
+  return(OKAY);
+}
diff --git a/src/non_gui/do_fd_calculation.c b/src/non_gui/do_fd_calculation.c
new file mode 100644 (file)
index 0000000..3cc50a7
--- /dev/null
@@ -0,0 +1,387 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+extern int number_of_workers;
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+extern int append_flag;
+extern int dielectrics_to_consider_just_now, coupler;
+extern int num_pes;
+extern double **Vij;
+extern int height;
+extern int number_of_workers;
+
+void do_fd_calculation(struct transmission_line_properties *data, size_t size, FILE *where_to_print_fp, char *inputfile_filename)
+{
+  double capacitance_old, capacitance;
+  double velocity_of_light_in_vacuum;
+  int count=0;
+  /*
+  if (data->dielectrics_in_bitmap > 1) {
+    fprintf(stderr,"\nSorry, but on the 15th October 2003 I was advised there is an\n");
+    fprintf(stderr,"error in atlc when computing systems with multiple dielectrics.\n");
+    fprintf(stderr,"So until this problem is fixed, the facility has been disabled.\n\n");
+    fprintf(stderr,"I hope to release a new version shortly without this problem.\n");
+    exit(1);
+  }
+  */
+  /* The line of best fit of non_metalic_pixels vs iterations required
+  is y=0.0011 * non_metallic_pixels  + 283. 
+
+  I'll ensure finite_difference is called about 10x by using 
+  0.00011 * the number of non-metallic elements  +28 as the number 
+  of times finite_difference is called each time */
+
+
+
+  /* The following 10 lines are for a single dielectric 2 conductor line */
+  if (data->couplerQ==FALSE)
+  {
+    if(data->verbose_level >= 2)
+      printf("Solving assuming a vacuum dielectric\n");
+    capacitance=VERY_LARGE; /* Can be anything large */
+       dielectrics_to_consider_just_now=1;
+       data->dielectrics_to_consider_just_now=1;
+
+    do /* Start a finite calculation */
+    {
+      capacitance_old=capacitance;
+
+#ifdef ENABLE_POSIX_THREADS
+      if (number_of_workers == 0)
+        capacitance=finite_difference_single_threaded();
+      else
+        capacitance=finite_difference_multi_threaded();
+#else  
+      capacitance=finite_difference_single_threaded();
+#endif
+
+      data->C_vacuum=capacitance;
+      data->C=capacitance;
+      data->L_vacuum=MU_0*EPSILON_0/capacitance; /* Same as L in *ALL* cases */
+      data->Zo_vacuum=sqrt(data->L_vacuum/data->C_vacuum);  /* Standard formaul for Zo */
+      data->C=capacitance; 
+      if (data->dielectrics_in_bitmap == 1) /* Just get C by simple scaling of Er */
+      {
+        data->C=capacitance*data->found_this_dielectric;  /* Scaled by the single dielectric constant */
+               data->Er=data->found_this_dielectric;
+      }
+      else
+               data->Er=1.0;
+      data->Zo=sqrt(data->L_vacuum/data->C);  /* Standard formula for Zo */
+      data->Zodd=sqrt(data->L_vacuum/data->C);  /* Standard formula for Zo */
+      velocity_of_light_in_vacuum=1.0/(sqrt(MU_0 * EPSILON_0)); /* around 3x10^8 m/s */
+      data->velocity=1.0/pow(data->L_vacuum*data->C,0.5);
+      data->velocity_factor=data->velocity/velocity_of_light_in_vacuum;
+      data->relative_permittivity=sqrt(data->velocity_factor); /* ??? XXXXXX */
+      if(data->verbose_level > 0 ) /* Only needed if intermediate results wanted.  */
+        print_data_for_two_conductor_lines(*data, where_to_print_fp, inputfile_filename);
+      count++;
+    } while (fabs((capacitance_old-capacitance)/capacitance_old) > data->cutoff); /* end of FD loop */
+    if(data->verbose_level >=4)
+      printf("Total of %d iterations ( %d calls to finite_difference() )\n",ITERATIONS*count,count);
+
+    if((data->write_binary_field_imagesQ == TRUE || data->write_bitmap_field_imagesQ == TRUE) && data->dielectrics_in_bitmap==1 )
+      write_fields_for_two_conductor_lines(inputfile_filename, *data, size);
+    if(data->verbose_level == 0 && data->dielectrics_in_bitmap==1 )
+      print_data_for_two_conductor_lines(*data, where_to_print_fp, inputfile_filename);
+
+    if ( data->dielectrics_in_bitmap >1)
+    {
+      /* We know the capacitance and inductance for the air spaced line
+      as we calculated it above. Howerver, whilst the inductance
+      is independant of the dielectric, the capacitance is not, so this
+      has to be recalculated, taking care not to alter the inductance
+      at all */
+      if(data->verbose_level >= 2)
+        printf("Now taking into account the permittivities of the different dielectrics for 2 conductors.\n");
+
+      dielectrics_to_consider_just_now=3; /* Any number > 1 */
+      data->dielectrics_to_consider_just_now=2; /* Any number > 1 */
+
+      capacitance=VERY_LARGE; /* Can be anything large */
+
+      do /* Start a finite calculation */
+      {
+        capacitance_old=capacitance;
+#ifdef ENABLE_POSIX_THREADS
+      if (number_of_workers == 0)
+         capacitance=finite_difference_single_threaded();
+      else
+        capacitance=finite_difference_multi_threaded();
+#else  
+      capacitance=finite_difference_single_threaded();
+#endif
+        data->C=capacitance;
+        data->C_non_vacuum=capacitance;
+        data->Zo=sqrt(data->L_vacuum/data->C_non_vacuum);  /* Standard formula for Zo */
+        data->velocity=1.0/pow(data->L_vacuum*data->C_non_vacuum,0.5);
+        data->velocity_factor=data->velocity/velocity_of_light_in_vacuum;
+        data->relative_permittivity=sqrt(data->velocity_factor); /* ??? XXXXXX */
+               data->Er=data->C/data->C_vacuum;
+        if(data->verbose_level > 0 ) /* Only needed if intermediate results wanted. */
+          print_data_for_two_conductor_lines(*data, where_to_print_fp, inputfile_filename);
+      } while (fabs((capacitance_old-capacitance)/capacitance_old) > data->cutoff); /* end of FD loop */
+
+      /* We must print the results now, but only bother if the verbose level was 
+      not not incremented on the command line, otherwide there will be two duplicate
+      lines */
+
+      if (data->verbose_level == 0)
+        print_data_for_two_conductor_lines(*data, where_to_print_fp, inputfile_filename);
+      if(data->write_binary_field_imagesQ == TRUE || data->write_bitmap_field_imagesQ == TRUE)
+        write_fields_for_two_conductor_lines(inputfile_filename, *data, size);
+    }
+  }
+  else if (data->couplerQ==TRUE)
+  {
+    /* The properties of a couplers will be computed in 2 or 4 stages
+    1) Compute the odd-mode impedance, assuming a vacuum dielectric, or
+    if there is just one dielectric, that one.
+
+    2) Compute the odd-mode impedance, taking into account the effect of
+    multiple dielectrics, IF NECESSARY
+
+    at this point, the negative voltages will be turned into positive ones. 
+
+    3) Compute the even-mode impedance, assuming a vacuum dielectric, or
+    if there is just one dielectric, that one.
+
+    4) Compute the even-mode impedance, taking into account the effect of
+    multiple dielectrics, IF NECESSARY  */
+
+    /* Stage 1 - compute the odd mode impedance assuming single dielectric */
+    data->display = Z_ODD_SINGLE_DIELECTRIC;
+    dielectrics_to_consider_just_now=1;
+    data->dielectrics_to_consider_just_now=1;
+
+    capacitance=VERY_LARGE; /* Can be anything large */
+    if(data->verbose_level >= 2)
+      printf("Solving assuming a vacuum dielectric to compute the odd-mode impedance\n");
+
+    do /* Start a finite difference calculation */
+    {
+      capacitance_old=capacitance;
+#ifdef ENABLE_POSIX_THREADS
+      if (number_of_workers == 0)
+         capacitance=finite_difference_single_threaded();
+      else
+        capacitance=finite_difference_multi_threaded();
+#else  
+      capacitance=finite_difference_single_threaded();
+#endif
+      data->Codd_vacuum=capacitance;
+      data->Codd=capacitance;
+      data->Lodd_vacuum=MU_0*EPSILON_0/capacitance; /* Same as L in *ALL* cases */
+
+      data->Zodd_vacuum=sqrt(data->Lodd_vacuum/data->Codd_vacuum);  /* Standard formaul for Zodd */
+
+      if (data->dielectrics_in_bitmap == 1) /* Just get C by simple scaling of Er */
+        data->Codd*=data->found_this_dielectric;  /* Scaled by the single dielectric constant */
+      else
+               data->Er=1.0;
+      data->Zodd=sqrt(data->Lodd_vacuum/data->Codd);  /* Standard formula for Zo */
+      velocity_of_light_in_vacuum=1.0/(sqrt(MU_0 * EPSILON_0)); /* around 3x10^8 m/s */
+      /* FPE trapdata->velocity_odd=1.0/pow(data->L_vacuum*data->Codd,0.5); */
+      data->velocity_odd=1.0/pow(data->Lodd_vacuum*data->Codd,0.5);
+      data->velocity_factor_odd=data->velocity_odd/velocity_of_light_in_vacuum;
+      data->relative_permittivity_odd=sqrt(data->velocity_factor_odd); /* ??? XXXXXX */
+      data->Er_odd=data->Codd/data->Codd_vacuum;
+      data->Zdiff=2.0*data->Zodd;
+      /* Print text if uses wants it */
+      if(data->verbose_level>=1)
+        print_data_for_directional_couplers(*data, where_to_print_fp, inputfile_filename);
+    } while (fabs((capacitance_old-capacitance)/capacitance_old) > data->cutoff); /* end of FD loop */
+
+#ifdef ENABLE_MPI
+       mpi_receive_updated_vij_strips();
+#endif /* ENABLE_MPI */
+
+    /* display bitpamps/binary files if this is the last odd-mode computation */
+    if((data->write_binary_field_imagesQ == TRUE || data->write_bitmap_field_imagesQ == TRUE) && data->dielectrics_in_bitmap==1 )
+      write_fields_for_directional_couplers(inputfile_filename, *data, size, ODD);
+
+    /* Stage 2 - compute the odd-mode impedance taking into account other dielectrics IF NECESSARY */
+
+    if ( data->dielectrics_in_bitmap >1)
+    {
+      if(data->verbose_level >= 2)
+        printf("Now taking into account the permittivities of the different dielectrics to compute Zodd.\n");
+      data->display = Z_ODD_SINGLE_DIELECTRIC;
+      capacitance=VERY_LARGE; /* Can be anything large */
+
+      dielectrics_to_consider_just_now=2;
+      data->dielectrics_to_consider_just_now=2;
+
+#ifdef ENABLE_MPI
+         mpi_send_current_data();
+#endif /* ENABLE_MPI */
+
+      do /* Start a finite calculation */
+      {
+        capacitance_old=capacitance;
+#ifdef ENABLE_POSIX_THREADS
+      if (number_of_workers == 0)
+         capacitance=finite_difference_single_threaded();
+      else
+        capacitance=finite_difference_multi_threaded();
+#else  
+      capacitance=finite_difference_single_threaded();
+#endif
+        data->Codd=capacitance;
+        data->Zodd=sqrt(data->Lodd_vacuum/data->Codd);  /* Standard formula for Zo */
+        velocity_of_light_in_vacuum=1.0/(sqrt(MU_0 * EPSILON_0)); /* around 3x10^8 m/s */
+        data->velocity_odd=1.0/pow(data->L_vacuum*data->C,0.5);
+        data->velocity_factor_odd=data->velocity/velocity_of_light_in_vacuum;
+        data->relative_permittivity_odd=sqrt(data->velocity_factor); /* ??? XXXXXX */
+               data->Er_odd=data->Codd/data->Codd_vacuum;
+               data->Zdiff=2.0*data->Zodd;
+               if(data->verbose_level>=1)
+          print_data_for_directional_couplers(*data, where_to_print_fp, inputfile_filename);
+      } while (fabs((capacitance_old-capacitance)/capacitance_old) > data->cutoff); /* end of FD loop */
+
+#ifdef ENABLE_MPI
+         mpi_receive_updated_vij_strips();
+#endif /* ENABLE_MPI */
+
+      if((data->write_binary_field_imagesQ == TRUE || data->write_bitmap_field_imagesQ == TRUE) && data->dielectrics_in_bitmap!=1 )
+        write_fields_for_directional_couplers(inputfile_filename, *data, size, ODD);
+    } /* end of stage 2 for couplers */
+
+    /* Stage 3 - compute the even-mode impedance assuming single dielectric */
+
+    /* Since we want the even mode impedance now, we swap all the -1V
+    metallic conductors for +1V */
+
+    swap_conductor_voltages();
+
+    data->display = Z_EVEN_SINGLE_DIELECTRIC;
+    dielectrics_to_consider_just_now=1;
+    data->dielectrics_to_consider_just_now=1;
+    if(data->verbose_level >= 2)
+        printf("Now assuming a vacuum dielectric to compute Zeven\n");
+
+    capacitance=VERY_LARGE; /* Can be anything large */
+
+#ifdef ENABLE_MPI
+       mpi_send_current_data();
+#endif /* ENABLE_MPI */
+
+    do /* Start a finite difference calculation */
+    {
+      capacitance_old=capacitance;
+#ifdef ENABLE_POSIX_THREADS
+      if (number_of_workers == 0)
+         capacitance=finite_difference_single_threaded();
+      else
+        capacitance=finite_difference_multi_threaded();
+#else  
+      capacitance=finite_difference_single_threaded();
+#endif
+
+      data->Ceven_vacuum=capacitance;
+      data->Ceven=capacitance;
+      data->Leven_vacuum=MU_0*EPSILON_0/capacitance; /* Same as L in *ALL* cases */
+
+      data->Zeven_vacuum=sqrt(data->Leven_vacuum/data->Ceven_vacuum);  /* Standard formaul for Zodd */
+
+      if (data->dielectrics_in_bitmap == 1) /* Just get C by simple scaling of Er */
+        data->Ceven*=data->found_this_dielectric;  /* Scaled by the single dielectric constant */
+      else
+               data->Er_even=1.0;
+      data->Zeven=sqrt(data->Leven_vacuum/data->Ceven);  /* Standard formula for Zo */
+      velocity_of_light_in_vacuum=1.0/(sqrt(MU_0 * EPSILON_0)); /* around 3x10^8 m/s */
+      data->velocity_even=1.0/pow(data->Leven_vacuum*data->Ceven,0.5);
+      data->velocity_factor_even=data->velocity_even/velocity_of_light_in_vacuum;
+      data->relative_permittivity_even=sqrt(data->velocity_factor_even); /* ??? XXXXXX */
+      data->Er_even=data->Ceven/data->Ceven_vacuum;
+      data->Zcomm=data->Zeven/2.0;
+      data->Zo=sqrt(data->Zodd * data->Zeven);
+         if(data->verbose_level>=1)
+               print_data_for_directional_couplers(*data, where_to_print_fp, inputfile_filename);
+      /* display bitpamps/binary files if this is the last even-mode computation */
+    } while (fabs((capacitance_old-capacitance)/capacitance_old) > data->cutoff); /* end of FD loop */
+
+    if((data->write_binary_field_imagesQ == TRUE || data->write_bitmap_field_imagesQ == TRUE) && data->dielectrics_in_bitmap==1)
+      write_fields_for_directional_couplers(inputfile_filename, *data, size, EVEN);
+
+    capacitance=VERY_LARGE; /* Can be anything large */
+    /* Stage 4 - compute the even-mode impedance assuming multiple dielectrics IF NECESSARY */
+    if ( data->dielectrics_in_bitmap >1)
+    {
+      dielectrics_to_consider_just_now=2;
+      data->dielectrics_to_consider_just_now=2;
+      if(data->verbose_level >= 2)
+        printf("Now taking into account the permittivities of the different dielectrics to compute Zeven\n");
+
+#ifdef ENABLE_MPI
+         mpi_send_current_data();
+#endif /* ENABLE_MPI */
+
+      do /* Start a finite calculation */
+      {
+        capacitance_old=capacitance;
+#ifdef ENABLE_POSIX_THREADS
+        if (number_of_workers == 0)
+           capacitance=finite_difference_single_threaded();
+        else
+          capacitance=finite_difference_multi_threaded();
+#else  
+        capacitance=finite_difference_single_threaded();
+#endif
+        data->Ceven=capacitance;
+        data->Zeven=sqrt(data->Leven_vacuum/data->Ceven);  /* Standard formula for Zo */
+        velocity_of_light_in_vacuum=1.0/(sqrt(MU_0 * EPSILON_0)); /* around 3x10^8 m/s */
+        data->velocity_even=1.0/pow(data->L_vacuum*data->C,0.5);
+        data->velocity_factor_even=data->velocity/velocity_of_light_in_vacuum;
+        data->relative_permittivity_even=sqrt(data->velocity_factor); /* ??? XXXXXX */
+               data->Er_even=data->Ceven/data->Ceven_vacuum;
+               data->Zdiff=2.0*data->Zodd;
+        data->Zcomm=data->Zeven/2.0; 
+               data->Zo=sqrt(data->Zeven*data->Zodd);
+               if(data->verbose_level>=1)
+          print_data_for_directional_couplers(*data, where_to_print_fp, inputfile_filename);
+      } while (fabs((capacitance_old-capacitance)/capacitance_old) > data->cutoff); /* end of FD loop */
+
+      if(data->write_binary_field_imagesQ == TRUE || data->write_bitmap_field_imagesQ == TRUE)
+        write_fields_for_directional_couplers(inputfile_filename, *data, size, EVEN);
+    } /* end of stage 4 */
+    /* Print the results if the verbose level was 0 (no -v flag(s) ). */
+    if (data->verbose_level == 0)
+    {
+      /* We need to print the data. The next function will only print if 
+      the verbose_level is 1 or more, so I'll fix it at one. Then we print
+      the final results and exit. */
+      data->verbose_level=1;
+      data->display = Z_EVEN_SINGLE_DIELECTRIC;
+      print_data_for_directional_couplers(*data, where_to_print_fp, inputfile_filename);
+    }
+  } /* end of if couplers */
+}
diff --git a/src/non_gui/elliptic_integral.c b/src/non_gui/elliptic_integral.c
new file mode 100644 (file)
index 0000000..930b019
--- /dev/null
@@ -0,0 +1,54 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#include "definitions.h"
+
+/* The following function computes:
+
+r=K(k)/K'(k) where
+K is the complete elliptic integral of the first kind,
+K' is the complementary complete elliptic integral of the first kind
+
+This simple routine was given to my by Dan  - it is one hell
+of a lot simplier than the routine in the numerical recipes book
+
+*/
+
+double K_over_Kdash(double k)
+{
+  double kp, r, kf;
+  kp = sqrt(1.0-pow(k,2.0));
+  r = 1.0;
+  kf=(1.0+k)/(1.0+kp);
+  while(kf != 1.0)
+  {
+    r = r*kf;
+    k = 2.0*sqrt(k)/(1.0+k);
+    kp = 2.0*sqrt(kp)/(1.0+kp);
+    kf=(1.0+k)/(1.0+kp);
+  }
+  return(r);
+}
diff --git a/src/non_gui/exit_codes.h b/src/non_gui/exit_codes.h
new file mode 100644 (file)
index 0000000..5ba37bf
--- /dev/null
@@ -0,0 +1,115 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#define OKAY                                                       0
+#define CANT_OPEN_FILE_FOR_READING                                 1
+#define CANT_OPEN_FOR_WRITING                                      2
+#define CANT_OPEN_FILE_FOR_APPENDING                               3
+#define CANT_CLOSE_FILE                                            4
+#define WRITE_FAILURE                                              5
+#define THE_WIDTH_w_DIVIDED_BY_THE_HEIGHT_H_IS_TOO_LARGE           6
+#define PROGRAM_NOT_IMPLEMENTED                                    7
+#define PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS              8
+#define UNACCEPTABLE_ERROR_WHEN_CONVERTING_TO_INTEGERS             9
+#define MEMORY_ALLOCATION_ERROR_IN_VECTOR                         10
+#define MEMORY_ALLOCATION_ERROR_IN_IVECTOR                        11
+#define MEMORY_ALLOCATION_ERROR_IN_CVECTOR                        12
+#define MEMORY_ALLOCATION_ERROR_IN_DVECTOR                        13
+#define MEMORY_ALLOCATION_ERROR_IN_CMATRIX                        14
+#define MEMORY_ALLOCATION_ERROR_IN_UCMATRIX                       15
+#define MEMORY_ALLOCATION_ERROR_IN_MATRIX                         16
+#define MEMORY_ALLOCATION_ERROR_IN_DMATRIX                        17
+#define MEMORY_ALLOCATION_ERROR_IN_IMATRIX                        18
+#define MEMORY_ALLOCATION_ERROR_IN_STRING                         19
+#define MEMORY_ALLOCATION_ERROR_IN_USTRING                        20
+#define SILLY_ARGUMENTS_IN_FREE_VECTOR                            21
+#define SILLY_ARGUMENTS_IN_FREE_IVECTOR                           22
+#define SILLY_ARGUMENTS_IN_FREE_CVECTOR                           23
+#define SILLY_ARGUMENTS_IN_FREE_DVECTOR                           24
+#define SILLY_ARGUMENTS_IN_FREE_DMATRIX                           25
+#define SILLY_ARGUMENTS_IN_FREE_CMATRIX                           26
+#define SILLY_ARGUMENTS_IN_FREE_UCMATRIX                          27
+#define SILLY_ARGUMENTS_IN_FREE_IMATRIX                           28
+#define SILLY_ARGUMENTS_IN_FREE_STRING                            29
+#define SILLY_ARGUMENTS_IN_FREE_USTRING                           30
+#define VOLTAGE_OUT_OF_RANGE                                      31
+#define ARGUMENT_w_OUT_OF_RANGE                                   32
+#define ARGUMENT_h_OUT_OF_RANGE                                   33
+#define ARGUMENT_s_OUT_OF_RANGE                                   34
+#define ARGUMENT_g_OUT_OF_RANGE                                   35
+#define ARGUMENT_Er1_OUT_OF_RANGE                                 36
+#define ARGUMENT_Er2_OUT_OF_RANGE                                 37
+#define ARGUMENT_W_OUT_OF_RANGE                                   36
+#define ARGUMENT_H_OUT_OF_RANGE                                   38
+#define ARGUMENT_t_OUT_OF_RANGE                                   39
+#define ARGUMENT_ideal_Zodd_OUT_OF_RANGE                          41
+#define ARGUMENT_ideal_Zeven_OUT_OF_RANGE                         42
+#define IDEAL_Zodd_NOT_LESS_THAN_IDEAL_Zeven                      43
+#define NOT_LINKED_WITH_GSL_LIBRARY                               44
+#define NOT_LINKED_WITH_THREADS_LIBRARY                           45
+#define NOT_LINKED_WITH_MPI_LIBRARY                               46
+#define UNDEFINED_COLOUR_IN_BITMAP                                47
+#define NOT_A_VALID_BITMAP_FILE                                   48
+#define OS2_FORMAT_BMP_FILE                                       49
+#define NOT_A_WINDOZE_FORMAT_BITMAP                               50
+#define BITMAP_NOT_24_BIT                                         51
+#define WIDTH_OR_HEIGHT_ZERO_IN_BITMAP                            52
+#define BITPLANES_NOT_1_IN_BITMAP                                 53
+#define COLOURMAP_GREATER_THAN_256                                54
+#define MALLOC_FAILED                                             55
+#define IMPOSSIBLE_COUPLING_COEFFICIENT                           56
+#define FMAX_NOT_ABOVE_FMIN                                       57
+#define IMPOSSIBLE_TO_MAKE_COUPLER_THAT_LENGTH                    58
+#define W_OR_H_TOO_SMALL                                          59
+#define INVALID_SWITCH                                            60
+#define DIMENSION_LESS_THAN_ZERO                                  61
+#define PERMITTIVITY_LESS_THAN_1                                  62
+#define VARIABLE_NOT_INITIALISED                                  63
+#define GAP_BETWEEN_CONDUCTORS_TOO_SMALL                          64
+#define VOLTAGE_NOT_MINUS_ONE_V_AS_EXPECTED                       65
+#define VOLTAGE_NOT_PLUS_ONE_V_AS_EXPECTED                        66
+#define VOLTAGE_NOT_ZERO_V_AS_EXPECTED                            67
+#define THREAD_CREATION_FAILED                                  68
+#define MUTEX_INITIALISATION_FAILED                               69
+#define MUTEX_ALLOCATION_FAILED                                   70
+#define USER_REQUESTED_TOO_MANY_THREADS                           71
+#define THREAD_FAILED_TO_JOIN                                     71
+#define CANT_OBTAIN_SEMAPHORE                                     73
+#define SEM_INIT_FAILED                                           74
+#define SEM_POST_FAILED                                           75
+#define SEM_WAIT_FAILED                                           76
+#define PTHREAD_ATTR_SETINHERITSCHED_FAILED                       77
+#define PTHREAD_ATTR_INIT_FAILED                                  78 
+#define PTHREAD_ATTR_SETSCOPE_FAILED                              79
+#define PTHREAD_MUTEX_LOCK_FAILED                                 80
+#define PTHREAD_MUTEX_UNLOCK_FAILED                               81
+#define PTHREAD_COND_WAIT_FAILED                                  82
+#define PTHREAD_COND_BROADCAST_FAILED                             83
+#define SILLY_ARGUMENTS_IN_FREE_SCMATRIX                          84
+#define MEMORY_ALLOCATION_ERROR_IN_SCMATRIX                       85
+#define CANT_READ_ALL_OF_FILE                                     86
+#define FSEEK_FAILURE                                             87
+#define FTELL_FAILURE                                             88
+#define DOMAIN_ERROR                                              89
+#define INTERNAL_ERROR                                            90   
diff --git a/src/non_gui/exit_with_msg_and_exit_code.c b/src/non_gui/exit_with_msg_and_exit_code.c
new file mode 100644 (file)
index 0000000..ef216f4
--- /dev/null
@@ -0,0 +1,50 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef ENABLE_MPI
+#include <mpi.h>
+#endif
+
+#include "definitions.h"
+
+
+void exit_with_msg_and_exit_code(const char *s, int exitnumber)
+{
+  if ((NULL != s) && (s[0] != '\0')) {
+       fprintf(stderr,"%s\n",s);
+  }
+
+#ifdef ENABLE_MPI 
+#ifdef NEED_MPI_CODE
+  MPI_Finalize();
+#endif
+#endif
+
+  exit(exitnumber);
+}
diff --git a/src/non_gui/fill_circ_in_circ.c b/src/non_gui/fill_circ_in_circ.c
new file mode 100644 (file)
index 0000000..6544c9d
--- /dev/null
@@ -0,0 +1,79 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+extern int D, h, W, H, d;
+
+void fill_image_vector_with_data(unsigned char *image_vector, int colour_Er1, int colour_Er2, struct transmission_line_properties foo) 
+{
+   int i, j; 
+   unsigned char red, green, blue;
+   int vector_original=0;
+   for(j=0;j<H;++j)
+   {
+      for(i=0;i<W; ++i)
+      {
+
+        /* Put a small border in green. Only one pixel is needed, but
+        I'll put a few more. */
+
+         if( pow((double)i-(double)D/2.0-(double)BORDER,2.0) + pow((double)j-(double)D/2.0-(double)BORDER,2.0)>=((double)D*(double)D)/4.)
+        {
+           red=0x00;
+           green=0xff;
+           blue=0x00;
+         }
+         else if( pow((double)i-(double)D/2.0-(double)BORDER-(double) h,2.0) + pow((double)j-(double)D/2.0-(double)BORDER,2.0)<=((double)d*(double)d)/4.0)
+        {
+           red=0xff;
+           green=0x0;
+           blue=0x0;
+         }
+        else
+        {
+           red=colour_Er1/(256*256); /* Fill in areas with Er1 */
+           green=colour_Er1/256;
+           blue=colour_Er1%256;
+         }
+        image_vector[vector_original]=blue;
+        image_vector[vector_original+1]=green;
+        image_vector[vector_original+2]=red;
+         vector_original+=3;
+      }
+   }
+}
diff --git a/src/non_gui/fill_circ_in_rect.c b/src/non_gui/fill_circ_in_rect.c
new file mode 100644 (file)
index 0000000..641c3e0
--- /dev/null
@@ -0,0 +1,74 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+extern int d, W, H, x, y;
+
+void fill_image_vector_with_data(unsigned char *image_vector, int colour_Er1, int colour_Er2, struct transmission_line_properties not_used) 
+{
+   int i, j, vector_original=0;
+   unsigned char red, green, blue;
+   for(j=0;j<H;++j)
+   {
+      for(i=0;i<W; ++i)
+      {
+        if( (i<BORDER) || (i>=W-BORDER) || (j<BORDER) || (j>=H-BORDER))
+        {
+           red=0x00;
+           green=0xff;
+           blue=0x00;
+         }
+         else if( pow((double)i-(double)W/2.0-(double) x,2.0) + pow((double)j-(double)H/2.0-(double)y,2.0)<=((double)d*(double)d)/4.0)
+        {
+           red=0xff;
+           green=0x0;
+           blue=0x0;
+         }
+        else
+        {
+           red=colour_Er1/(256*256); /* Fill in areas with Er1 */
+           green=colour_Er1/256;
+           blue=colour_Er1%256;
+         }
+        image_vector[vector_original]=blue;
+        image_vector[vector_original+1]=green;
+        image_vector[vector_original+2]=red;
+         vector_original+=3;
+      }
+   }
+}
diff --git a/src/non_gui/fill_image_vector_for_create_bmp_for_microstrip_coupler.c b/src/non_gui/fill_image_vector_for_create_bmp_for_microstrip_coupler.c
new file mode 100644 (file)
index 0000000..d62fcf4
--- /dev/null
@@ -0,0 +1,104 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+
+void fill_image_vector_with_data(unsigned char *image_vector, int colour_Er1, int colour_Er2, struct transmission_line_properties pcb)
+{
+   int i, j, red=0, green=0, blue=0, vector_original=0;
+   int right_edge_of_LH_GP;
+   for(j=0;j<pcb.H;++j)
+   {
+      for(i=0;i<pcb.W; ++i)
+      {
+
+        red=colour_Er1/(256*256); /* Fill whole region with Er1 (normally vacuum/air)*/
+        green=colour_Er1/256;
+        blue=colour_Er1%256;
+
+        /* Put a small border in green. Only one pixel is needed, but
+        I'll put a few more. */
+         if( (i<BORDER) || (i>pcb.W-BORDER-1) || (j<BORDER) || (j>pcb.H-BORDER-1))
+        {
+           red=0x00;
+           green=0xff;
+           blue=0x00;
+         }
+
+        /* Put the dielectric for the PCB in */
+        if((i >= BORDER) && (i <pcb.W-BORDER ) && (j >= BORDER) && (j < pcb.h+BORDER))
+        {
+          red=colour_Er2/(256*256); /* Fill in areas with Er2 (normally PCB substrate)*/
+          green=colour_Er2/256;
+          blue=colour_Er2%256;
+        }
+
+        /* Put the metal top LH surface of the PCB groundplane */
+        right_edge_of_LH_GP=(pcb.W/2-pcb.s/2-pcb.w-pcb.g)-BORDER;
+        if((i >= BORDER) && (i <=right_edge_of_LH_GP ) && (j >= pcb.h+BORDER) && (j < pcb.h+pcb.t+BORDER))
+        {
+          red=0; /* Fill in left hand groundplane on top of pcb */ 
+          green=255;
+          blue=0;
+        }
+        /* Left hand coupler, could be +1 V or -1 V it does not matter, as long as right one is opposite */
+        if( (i > right_edge_of_LH_GP + pcb.g ) && (i <= right_edge_of_LH_GP + pcb.g+pcb.w) && (j >= pcb.h+BORDER) && (j < pcb.h+pcb.t+BORDER))
+        {
+          red=0xff;  /* Left hand coupler made to be +1 V */
+          green=0;
+          blue=0;
+        }
+        /* Right and coupler, set to -1 V */
+        if( (i > right_edge_of_LH_GP + pcb.g +pcb.w+pcb.s) && (i <= right_edge_of_LH_GP + pcb.g+pcb.w+pcb.s+pcb.w) && (j >= pcb.h+BORDER) && (j < pcb.h+pcb.t+BORDER))
+        {
+          red=0;  /* Right hand coupler made to be -1 V */
+          green=0;
+          blue=0xff;
+         }
+        if( (i > right_edge_of_LH_GP + pcb.g+pcb.w+pcb.s+pcb.w+pcb.g) && (i <= pcb.W-BORDER) && (j >= pcb.h+BORDER) && (j < pcb.h+pcb.t+BORDER))
+        {
+          red=0;  /* Right hand ground plane in place */
+          green=0xff;
+          blue=0;
+         }
+        image_vector[vector_original]=blue;
+        image_vector[vector_original+1]=green;
+        image_vector[vector_original+2]=red;
+         vector_original+=3;
+      }
+   }
+}
diff --git a/src/non_gui/fill_image_vector_for_create_bmp_for_symmetrical_stripline.c b/src/non_gui/fill_image_vector_for_create_bmp_for_symmetrical_stripline.c
new file mode 100644 (file)
index 0000000..16b037c
--- /dev/null
@@ -0,0 +1,76 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+void fill_image_vector_for_thin_strip(int W,int H, int w, unsigned char *image_vector) 
+{
+   int i, j, vector_original=0;
+   unsigned char red, green, blue;
+   for(j=0;j<H;++j)
+   {
+      for(i=0;i<W; ++i)
+      {
+        /* Put a small border in green. Only one pixel is needed, but
+        I'll put a few more. */
+
+         if( (j<BORDER) || (j>=H-BORDER))
+        {
+           red=0x00;
+           green=0xff;
+           blue=0x00;
+         }
+        /* Fill in the dielectric */
+        else if( (j==H/2)  && (i > (W-w)/2) && (i < (W+w)/2)) 
+        {
+           red=0xff; 
+           green=0x00; 
+           blue=0x00; 
+         }
+        else
+        {
+           red=0xff; 
+           green=0xff; 
+           blue=0xff; 
+         }
+        image_vector[vector_original]=blue;
+        image_vector[vector_original+1]=green;
+        image_vector[vector_original+2]=red;
+         vector_original+=3;
+      }
+   }
+}
diff --git a/src/non_gui/fill_make_coupler.c b/src/non_gui/fill_make_coupler.c
new file mode 100644 (file)
index 0000000..2c10d80
--- /dev/null
@@ -0,0 +1,87 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+extern int W, H, w,  s, verbose;
+
+void fill_image_vector_with_data(unsigned char *image_vector, int colour_Er1, int colour_Er2, struct transmission_line_properties data) 
+{
+   int i, j, vector_original=0;
+   unsigned char red, green, blue;
+   int left_edge_blue;
+   int left_edge_red;
+   left_edge_red=W/2 - w -s/2;
+   left_edge_blue=(W+s)/2;
+   if(verbose >=2)
+     printf("\nw=%d s=%d W=%d H=%d Er1=%x Er2=%x in fill..data for couplers\n", w, s, W, H,colour_Er1, colour_Er2);
+   for(j=0;j<H;++j)
+   {
+      for(i=0;i<W; ++i)
+      {
+         red=colour_Er1/(256*256); /* Fill in areas with Er1 */
+         green=colour_Er1/256;
+         blue=colour_Er1%256;
+
+        /* Put a small border in green. Only one pixel is needed, but
+        I'll put a few more. */
+
+         if( (j<BORDER) || (j>=H-BORDER))
+        {
+           red=0x00;
+           green=0xff;
+           blue=0x00;
+         }
+        if( (i>=left_edge_blue) && (i<left_edge_blue+w) && j==(H/2)) /* conductor */
+        {
+           red=0x00;
+           green=0x00;
+           blue=0xff;
+         }
+        if( (i>=left_edge_red) && (i<left_edge_red+w) && j==(H/2)) /* conductor */
+        {
+           red=0xff;
+           green=0x00;
+           blue=0x00;
+         }
+        image_vector[vector_original]=blue;
+        image_vector[vector_original+1]=green;
+        image_vector[vector_original+2]=red;
+         vector_original+=3;
+      }
+   }
+}
diff --git a/src/non_gui/fill_rect_in_circ.c b/src/non_gui/fill_rect_in_circ.c
new file mode 100644 (file)
index 0000000..eca822b
--- /dev/null
@@ -0,0 +1,77 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+extern int D, w, h, x, y;
+
+void fill_image_vector_with_data(unsigned char *image_vector, int colour_Er1, int colour_Er2,  struct transmission_line_properties foo) 
+{
+   int i, j, vector_original=0;
+   unsigned char red, green, blue;
+   for(j=0;j<D;++j)
+   {
+      for(i=0;i<D; ++i)
+      {
+        red=colour_Er1/(256*256); /* Fill in areas with Er1 */
+        green=colour_Er1/256;
+        blue=colour_Er1%256;
+
+        /* Put a small border in green. Only one pixel is needed, but
+        I'll put a few more. */
+         if( pow((double)i-(double)D/2.0-(double)BORDER,2.0) +
+        pow((double)j-(double)D/2.0-(double)BORDER,2.0)>=((double)D*(double)D)/4.)
+        {
+           red=0x00;
+           green=0xff;
+           blue=0x00;
+         }
+        /* Fill in the inner conductor */
+        else /* fill in areas of Er1 */
+        {
+           red=colour_Er2/(256*256); /* fill in areas with Er2 */
+           green=colour_Er2/256;
+           blue=colour_Er2%256;
+         }
+        image_vector[vector_original]=blue;
+        image_vector[vector_original+1]=green;
+        image_vector[vector_original+2]=red;
+         vector_original+=3;
+      }
+   }
+}
diff --git a/src/non_gui/fill_rect_in_rect.c b/src/non_gui/fill_rect_in_rect.c
new file mode 100644 (file)
index 0000000..a42abca
--- /dev/null
@@ -0,0 +1,82 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+extern int W, H, a, b, c, d, w, h;
+
+void fill_image_vector_with_data(unsigned char *image_vector, int colour_Er1, int colour_Er2, struct transmission_line_properties foo) 
+{
+   unsigned char red, green, blue; 
+   int i, j, vector_original=0;
+   for(j=0;j<H;++j)
+   {
+      for(i=0;i<W; ++i)
+      {
+        red=colour_Er1/(256*256); /* Fill in areas with Er1 */
+        green=colour_Er1/256;
+        blue=colour_Er1%256;
+
+        /* Put a small border in green. Only one pixel is needed, but
+        I'll put a few more. */
+
+         if( (i<BORDER) || (i>=W-BORDER) || (j<BORDER) || (j>=H-BORDER))
+        {
+           red=0x00;
+           green=0xff;
+           blue=0x00;
+         }
+        /* Fill in the dielectric */
+        if( (i>=a+BORDER) && (i<a+d+BORDER) && (j<h+BORDER) && (j>=BORDER)) 
+        {
+           red=colour_Er2/(256*256); /* fill in areas with Er2 */
+           green=colour_Er2/256;
+           blue=colour_Er2%256;
+         }
+        if( (i>=b+BORDER) && (i<b+w+BORDER) && (j<h+c+BORDER) && (j>=h+BORDER)) /* conductor */
+        {
+           red=0xff;
+           green=0x00;
+           blue=0x00;
+         }
+        image_vector[vector_original]=blue;
+        image_vector[vector_original+1]=green;
+        image_vector[vector_original+2]=red;
+         vector_original+=3;
+      }
+   }
+}
diff --git a/src/non_gui/find_electric_fields.c b/src/non_gui/find_electric_fields.c
new file mode 100644 (file)
index 0000000..6aba820
--- /dev/null
@@ -0,0 +1,99 @@
+#include "definitions.h"
+#include "exit_codes.h"
+
+extern double **Vij;
+extern unsigned char **oddity;
+extern double **Er;
+extern int width, height;
+
+double find_Ex(int i, int j) 
+{
+  double Ex=0.0;
+  unsigned char odd;
+  odd = oddity[i][j];
+  if(odd > CONDUCTOR_FLOATING) {
+
+    if (odd == TOP_LEFT_CORNER || odd == BOTTOM_LEFT_CORNER) 
+      Ex=Vij[0][j]-Vij[1][j];
+
+    else if (odd == TOP_RIGHT_CORNER || odd == BOTTOM_RIGHT_CORNER) 
+      Ex=Vij[width-2][0]-Vij[width-1][0];
+
+    else if (odd == ORDINARY_POINT_TOP_EDGE || odd == ORDINARY_POINT_BOTTOM_EDGE) 
+      Ex=0.5*(Vij[i-1][j]-Vij[i+1][j]);
+
+    else if (odd == ORDINARY_POINT_LEFT_EDGE) 
+      Ex=(Vij[i][j]-Vij[i+1][j]);
+
+    else if (odd == ORDINARY_POINT_RIGHT_EDGE) 
+      Ex=(Vij[width-2][j]-Vij[width-1][j]);
+
+    else if(odd == METAL_LEFT || odd == METAL_BELOW_AND_LEFT || odd == METAL_ABOVE_AND_LEFT)
+      Ex=Vij[i][j]-Vij[i+1][j];
+
+    else if(odd == METAL_RIGHT || odd == METAL_ABOVE_AND_RIGHT || odd ==METAL_BELOW_AND_RIGHT)
+      Ex=Vij[i-1][j]-Vij[i][j];
+
+    else if (odd == ORDINARY_INTERIOR_POINT || odd == METAL_ABOVE || odd == METAL_BELOW)
+      Ex=0.5*(Vij[i-1][j]-Vij[i+1][j]);
+
+    else if (odd >= DIFFERENT_DIELECTRIC_ABOVE_AND_RIGHT && odd < UNDEFINED_ODDITY  )
+      Ex=0.5*(Vij[i-1][j]-Vij[i+1][j]);
+
+    else{
+      fprintf(stderr,"oddity[%d][%d]=%d\n",i,j,odd);
+      exit_with_msg_and_exit_code("Internal error in find_Ex",INTERNAL_ERROR);
+    }
+  }
+  return(Ex);
+}
+
+double find_Ey(int i, int j)
+{
+  double Ey=0.0;
+  unsigned char odd;
+  odd = oddity[i][j];
+
+  if(odd > CONDUCTOR_FLOATING) {
+
+    if (odd == TOP_LEFT_CORNER || odd == TOP_RIGHT_CORNER) 
+      Ey=Vij[i][1]-Vij[i][0];
+
+    else if (odd == BOTTOM_LEFT_CORNER || odd == BOTTOM_RIGHT_CORNER) 
+      Ey=Vij[i][height-1]-Vij[i][height-2];
+
+    else if (odd == ORDINARY_POINT_LEFT_EDGE || odd == ORDINARY_POINT_RIGHT_EDGE) 
+      Ey=0.5*(Vij[i][j+1]-Vij[i][j-1]);
+
+    else if (odd == ORDINARY_POINT_BOTTOM_EDGE) 
+      Ey=Vij[i][j+1]-Vij[i][j];
+
+    else if (odd == ORDINARY_POINT_TOP_EDGE) 
+      Ey=Vij[i][j]-Vij[i][j-1];
+
+    else if (odd == METAL_ABOVE || odd == METAL_ABOVE_AND_LEFT || odd == METAL_ABOVE_AND_RIGHT)
+      Ey=Vij[i][j+1]-Vij[i][j];
+
+    else if (odd == METAL_BELOW || odd == METAL_BELOW_AND_LEFT || odd == METAL_BELOW_AND_RIGHT)
+      Ey=Vij[i][j]-Vij[i][j-1];
+
+    else if(odd >= DIFFERENT_DIELECTRIC_LOCALLY || odd == ORDINARY_INTERIOR_POINT || odd == METAL_RIGHT || odd == METAL_LEFT)
+      Ey=0.5*(Vij[i][j+1]-Vij[i][j-1]);
+
+    else{
+      fprintf(stderr,"oddity[%d][%d]=%d\n",i,j,odd);
+      exit_with_msg_and_exit_code("Internal error in find_Ey",INTERNAL_ERROR);
+    }
+  }
+  return(Ey);
+}
+
+double find_E(int w, int h)
+{
+  double Ex, Ey, E;
+  Ex=find_Ex(w,h);
+  Ey=find_Ey(w,h);
+  E=sqrt(Ex*Ex+Ey*Ey);
+  return(E);
+}
+
diff --git a/src/non_gui/find_energy_per_metre.c b/src/non_gui/find_energy_per_metre.c
new file mode 100644 (file)
index 0000000..004e5f6
--- /dev/null
@@ -0,0 +1,44 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+#include "definitions.h"
+
+extern double **Vij, **Er;
+extern unsigned char **oddity;
+extern int dielectrics_to_consider_just_now;
+extern double r;
+extern int width, height;
+
+double find_energy_per_metre(int w, int h)
+{
+  double energy_per_metre=0;
+  double Ex, Ey;
+
+  Ex=find_Ex(w,h);
+  Ey=find_Ey(w,h);
+  energy_per_metre+=0.5*EPSILON_0*(Ex*Ex+Ey*Ey);
+  if(dielectrics_to_consider_just_now>1)
+    energy_per_metre*=Er[w][h]; /* second run, energy proportional to Er */
+  return(energy_per_metre);
+}
diff --git a/src/non_gui/find_maximum_values.c b/src/non_gui/find_maximum_values.c
new file mode 100644 (file)
index 0000000..80b1ba5
--- /dev/null
@@ -0,0 +1,113 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+#include "definitions.h"
+
+extern int width, height;
+extern unsigned char **oddity;
+extern double **Er, **Vij;
+
+void find_maximum_values(struct max_values *maximum_values, int zero_elementsQ)
+{
+  double U, V, Ex, Ey, E, permittivity;
+  int i, j;
+
+  /* It makes sense to draw the even and odd mode images on the same
+  scale, so if its a coupler, they elements are not zeroed if the
+  function is called when doing the even mode, which is done
+  after the odd mode */
+
+  if(zero_elementsQ==ZERO_ELEMENTS_FIRST)
+  {
+    maximum_values->E_max=0.0;
+    maximum_values->Ex_or_Ey_max=0.0;
+    maximum_values->V_max=0.0;
+    maximum_values->U_max=0.0;
+    maximum_values->permittivity_max=0.0;
+  }
+  for(i=0;i<width;++i)
+  {
+    for(j=0;j<height;++j)
+    {
+      V=Vij[i][j];
+      U=find_energy_per_metre(i,j);
+      if(1)
+      {
+       if(i==0)       
+         Ex=2*Er[i+1][j]*(Vij[i][j]-Vij[i+1][j])/(Er[i+1][j]+Er[i][j]);
+        else if (i==width-1) 
+         Ex=2*Er[i-1][j]*(Vij[i-1][j]-Vij[i][j])/(Er[i-1][j]+Er[i][j]);
+        else /* This is the best estimate, but can't be done on boundary */
+       {
+         Ex=Er[i-1][j]*(Vij[i-1][j]-Vij[i][j])/(Er[i-1][j]+Er[i][j]);
+         Ex+=Er[i+1][j]*(Vij[i][j]-Vij[i+1][j])/(Er[i+1][j]+Er[i][j]);
+        }
+       if(j==0)
+         Ey=2*Er[i][j+1]*(Vij[i][j]-Vij[i][j+1])/(Er[i][j+1]+Er[i][j]);
+       else if (j==height-1)
+         Ey=2*Er[i][j-1]*(Vij[i][j-1]-Vij[i][j])/(Er[i][j-1]+Er[i][j]);
+       else
+       {
+         Ey=Er[i][j-1]*(Vij[i][j-1]-Vij[i][j])/(Er[i][j-1]+Er[i][j]);
+         Ey+=Er[i][j+1]*(Vij[i][j]-Vij[i][j+1])/(Er[i][j+1]+Er[i][j]);
+        }
+        E=sqrt(Ex*Ex+Ey*Ey);
+        permittivity=Er[i][j];
+      }
+      else
+      {
+        Ex=0.0;
+       Ey=0.0;
+       E=0.0;
+       permittivity=0.0;
+      }
+      if(U> 1.0)             
+        printf("U=%f v=%f Er=%f at %d %d\n",U,V,Er[i][j],i, j);
+
+      if(E>maximum_values->E_max) 
+        maximum_values->E_max=E;
+
+
+      if(fabs(Ex)>maximum_values->Ex_or_Ey_max)
+        maximum_values->Ex_or_Ey_max=fabs(Ex);
+
+      if(fabs(Ey)>maximum_values->Ex_or_Ey_max)
+        maximum_values->Ex_or_Ey_max=fabs(Ey);
+
+      if(fabs(E)>maximum_values->E_max)
+        maximum_values->E_max=fabs(E);
+
+      if(fabs(V) > maximum_values->V_max)
+        maximum_values->V_max=fabs(V); 
+
+      if(U > maximum_values->U_max)
+        maximum_values->U_max=U; 
+
+      if(permittivity >maximum_values->permittivity_max )
+        maximum_values->permittivity_max=permittivity; 
+        /* printf("Ex_or_Ey_max=%g E_max=%g V_max=%g U_max=%g Er_max=%g\n",maximum_values->Ex_or_Ey_max, maximum_values->E_max, maximum_values->V_max, maximum_values->U_max, maximum_values->permittivity_max);  */
+    }
+  }
+}
diff --git a/src/non_gui/find_optimal_dimensions_for_microstrip_coupler.c b/src/non_gui/find_optimal_dimensions_for_microstrip_coupler.c
new file mode 100644 (file)
index 0000000..e157bee
--- /dev/null
@@ -0,0 +1,165 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+extern char *my_optarg;
+int main(int argc, char **argv)
+{
+  double g, gmin=0.5, gmax=5, gstep=0.5;  
+  double s, smin=0.5, smax=5, sstep=0.5;
+  double w, wmin=0.5, wmax=5, wstep=0.5;
+  double Er1=1, Er2=1, h=1, t=1; /* keep the compiler from issuing warnings */   
+  double Zcomm, Zdiff, Zodd, Zeven;  
+  double Er_odd, Er_even, Zo;
+  double error_min=1e100, error; 
+  double ideal_Zodd=0, ideal_Zeven=0; 
+  char *outfile_name, *temporary_bmp_file, *temporary_txt_file;
+  int x, q, exit_code;
+  char *cmd, *null;
+  FILE *fp, *fp_best;
+  outfile_name = string(0,4000);
+  cmd = string(0,4000);
+  null = string(0,4000);
+  temporary_bmp_file = string(0,4000);
+  temporary_txt_file = string(0,4000);
+  while((q=get_options(argc,argv,"g:b:G:w:W:s:S:")) != -1)
+  switch (q) 
+  {
+    case 'C':
+      print_copyright( (char *) "1996-2002");
+      exit_with_msg_and_exit_code("",OKAY);
+    break;
+    case 'g':
+      gmin=atof(my_optarg);
+    break;
+    /*
+    case 'b':
+      bmp_size=atoi(my_optarg);
+    break;
+    */
+    case 'G':
+      gmax=atof(my_optarg);
+    break;
+    case 'h':
+      gstep=atof(my_optarg);
+    break;
+    case 's':
+      smin=atof(my_optarg);
+    break;
+    case 'S':
+      smax=atof(my_optarg);
+    break;
+    case 't':
+      sstep=atof(my_optarg);
+    break;
+    case 'w':
+      wmin=atof(my_optarg);
+    break;
+    case 'W':
+      wmax=atof(my_optarg);
+    break;
+    case 'x':
+      wstep=atof(my_optarg);
+    break;
+    case '?':
+      usage_find_optimal_dimensions_for_microstrip_coupler();
+    break;
+  }
+  if(argc-my_optind == 7)
+  {
+    h=atof(argv[my_optind]);
+    t=atof(argv[my_optind+1]);
+    Er1=atof(argv[my_optind+2]);
+    Er2=atof(argv[my_optind+3]);
+    ideal_Zodd=atof(argv[my_optind+4]);
+    ideal_Zeven=atof(argv[my_optind+5]);
+    check_parameters_for_find_optimal_dimensions_for_microstrip_coupler(h,t,Er1,Er2,ideal_Zodd,ideal_Zeven);
+    (void) strcpy(outfile_name, argv[my_optind+6]);
+  }
+  else
+   usage_find_optimal_dimensions_for_microstrip_coupler(); 
+  (void) strcpy(temporary_bmp_file,"1.bmp");
+  (void) strcpy(temporary_txt_file,"1.txt");
+  if( (exit_code=pclose(popen("rm 1.txt 1.bmp","w"))) != 0)
+  {
+    fprintf(stderr,"rm 1.txt 1.bmp did not returned an exit code of %d\n",exit_code);
+    exit(exit_code);
+  }
+  for(g=gmin; g <=gmax; g+=gstep)
+  {
+    for(w=wmin; w<=wmax; w+=wstep)
+    {
+      for(s=smin; s<=smax; s+=sstep)
+      {
+       sprintf(cmd,"create_bmp_for_microstrip_coupler %f %f %f %f %f %f %f %s\n",w, s, g, h, t, Er1, Er2,temporary_bmp_file);
+       if( (exit_code=pclose(popen(cmd,"w"))) != 0)
+        {
+          fprintf(stderr,"pclose(popen(%s,\"w\"))) returned with an exit code of %d\n",cmd, exit_code);
+          exit(exit_code);
+        }
+       sprintf(cmd,"atlc -S -s %s > %s\n", temporary_bmp_file, temporary_txt_file);
+       exit_code=pclose(popen(cmd,"w"));
+       if( (exit_code=pclose(popen(cmd,"w"))) != 0)
+        {
+          fprintf(stderr,"pclose(popen(%s,\"w\"))) returned with an exit code of %d\n",cmd,exit_code);
+          exit(exit_code);
+        }
+       if ((fp=fopen(temporary_txt_file,"r")) ==NULL)
+         exit_with_msg_and_exit_code("Error #1 cant't open file in find_optimal_dimensions_for_microstrip_coupler.c", CANT_OPEN_FILE_FOR_READING);
+       fscanf(fp,"%s %d %s %lf %s %lf %s %lf %s %lf %s %lf %s %lf %s %lf",null,&x,null,&Er_odd,null,&Er_even, null, &Zodd,null,&Zeven,null,&Zo, null, &Zdiff,null,&Zcomm);
+       if (fclose(fp) !=0)
+         exit_with_msg_and_exit_code("Error #2 Unable to close file in ind_optimal_dimensions_for_microstrip_coupler.c",CANT_CLOSE_FILE);
+       printf("x=%d Er_odd=%f Er_even=%f Zodd=%f Zeven=%f Zo=%f Zdiff=%f Zcomm=%f\n",x, Er_odd,Er_even,Zodd, Zeven,Zo, Zdiff, Zcomm);
+       error=fabs(Zodd-ideal_Zodd)/ideal_Zodd+fabs(Zeven-ideal_Zeven)/ideal_Zeven;
+       /* By forcing the error to be a be not just bettter, but better by at 
+       least TINY, it means the results will be the same on differerent computers,
+       with no difference due to rouunding errors */
+       if(error< error_min+TINY)
+       {
+         error_min=error;
+         printf("best so far = s=%f w=%f g=%f Zodd=%f Zeven=%f Zdiff=%f Zcomm=%f error=%f\n",s,w,g, Zodd, Zeven,Zdiff, Zcomm,error);
+         if ((fp_best=fopen(outfile_name,"a")) == NULL)
+           exit_with_msg_and_exit_code("Error #3 Can't open file output file update",CANT_OPEN_FILE_FOR_APPENDING);
+         fprintf(fp_best,"best so far = s=%f w=%f g=%f Zodd=%f Zeven=%f Zdiff=%f Zcomm=%f\n",s,w,g, Zdiff, Zcomm,Zodd, Zeven);
+         if (fclose(fp_best)  != 0)
+           exit_with_msg_and_exit_code("Error #4 Unable to close file in optimal_dimensions_for_microstrip_coupler.c",CANT_CLOSE_FILE);
+        } /* end of if */
+      } /* end of for s */
+    } /* end of for w */
+  } /* end of for g */
+  return(0);
+}
+       
+    
diff --git a/src/non_gui/finite_difference_mpi.c b/src/non_gui/finite_difference_mpi.c
new file mode 100644 (file)
index 0000000..8ea0d90
--- /dev/null
@@ -0,0 +1,499 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef ENABLE_MPI /* file only needed on MPI systems. */
+
+#include <mpi.h>
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+
+extern int coupler;
+extern int width, height;
+extern double **Vij, **Er;
+extern signed char **oddity;
+extern int num_pes;
+extern int dielectrics_to_consider_just_now;
+extern struct strip strip_map[MAX_PES+1];
+
+/* these variables are only needed on PE 0,
+   but are declared here for all for convenience.
+   by switching to a dynamic allocation scheme,
+   we could make them local to finite_difference,
+   and only allocate them on PE 0.
+*/
+MPI_Request energy_rcv_requests[MAX_PES];
+double energies[MAX_PES];
+
+/*
+  the job of a worker PE is to work on a columnar strip
+  of the voltage array for a given number of iterations,
+  then send off the results to PE 0.
+
+  in order for a worker PE to calculate the edges of 
+  its strip, it needs two additional columns of data
+  to the left and two additional columns of data to
+  the right of its strip.  initially, PE 0 supplies
+  the extra columns.  after the first iteration, the
+  the PE needs to update the columns adjacent to its
+  strip edges, and to do that, it needs the columns
+  that are adjacent to those (hence each worker PE
+  maintains 4 columns of data in addtion to its strip).  
+  the outermost columns are sent from the neighbor PEs
+  after they are done computing them for the current
+  iteration.  after they are received, the columns 
+  adjacent to the strip edges are updated, and the PE
+  moves on to the next iteration.
+
+  after the prescribed number of iterations are completed,
+  each worker PE sends its strip of the voltage matrix 
+  to PE 0, so that PE 0 has a complete up-to-date copy
+  of the voltage array after each call to finite_difference.
+  while that data is being sent, the worker PE computes
+  the energy_per_metre ot its strip and then sends that
+  off to PE 0, so that PE 0 can compute the overall
+  capacitance_per_metre.
+  
+*/
+
+
+/*
+  this routine is only run on the worker PEs
+*/
+
+void mpi_worker(int rank) {
+
+  int width_height[2];
+  int strip_params[2];
+  int start_col, num_cols;
+  MPI_Status status;
+  int control, done;
+  int i,j,iterations;
+  MPI_Request send_requests[2];
+  MPI_Status send_statuses[2];
+  MPI_Request rcv_requests[2];
+  double energy_per_metre;
+  int index;
+
+  /* get the total width and height of the voltage
+        matrix.  the worker PE needs to know the column
+        height in order to run its calculations.  the
+        width is also currently needed for the electric
+        field subroutines.
+  */
+  MPI_Recv(&width_height,
+                  2,
+                  MPI_INT,
+                  0,
+                  MSG_TAG_WIDTH_HEIGHT,
+                  MPI_COMM_WORLD,
+                  &status);
+
+  width = width_height[0];
+  height = width_height[1];
+
+  /* get the location and size of the strip of the
+        voltage matrix that has been assigned to this
+        PE.  strictly speaking, the PE does not need
+        to know the starting column number since it 
+        uses its own local indexing scheme, but it
+        is sent anyway as a debugging aid if needed.
+  */
+  MPI_Recv(&strip_params,
+                  sizeof(strip_params)/sizeof(int),
+                  MPI_INT,
+                  0,
+                  MSG_TAG_STRIP_PARAMS,
+                  MPI_COMM_WORLD,
+                  &status);
+
+  /* this is the starting column in the global voltage matrix
+        of the columnar strip this PE has been assigned*/
+  start_col = strip_params[0]; 
+  
+  /* this is the width of the columnar strip that this PE
+        has been assigned from the global voltage matrix */
+  num_cols = strip_params[1];
+
+  /* allocate matrixes big enough to contain the
+        assigned strip and supporting data */
+  oddity=cmatrix(0,num_cols+4,0,height);
+  Vij=dmatrix(0,num_cols+4,0,height);
+  Er=dmatrix(0,num_cols+4,0,height);
+  /* get the oddity data to use in computing 
+        the assigned strip */
+  MPI_Recv(oddity[0],
+                  (num_cols+4)*height,
+                  MPI_DOUBLE,
+                  0,
+                  MSG_TAG_NODE_TYPE,
+                  MPI_COMM_WORLD,
+                  &status);
+
+  /* get the Er data to use in computing 
+        the assigned strip */
+  MPI_Recv(Er[0],
+                  (num_cols+4)*height,
+                  MPI_DOUBLE,
+                  0,
+                  MSG_TAG_ER,
+                  MPI_COMM_WORLD,
+                  &status);
+
+  /*************************************************
+   * all of the data received above this point is  *
+   * sent only once in the lifetime of the program *
+   *************************************************/
+
+  done = 0;
+  do {
+
+       /* recieve a control word that tells
+          the PE whether to set off on another
+          set of iterations, or to exit */
+
+       MPI_Recv(&control,
+                        1,
+                        MPI_INT,
+                        0,
+                        MSG_TAG_CONTROL,
+                        MPI_COMM_WORLD,
+                        &status);
+
+       switch (control) {
+       case CONTROL_VALUE_RECEIVE_DATA:
+         /* receive the strip of the voltage matrix
+                that we are to update. this is sent by PE 0. */
+         MPI_Recv(Vij[1],
+                          (num_cols+2)*height,
+                          MPI_DOUBLE,
+                          0,
+                          MSG_TAG_VIJ,
+                          MPI_COMM_WORLD,
+                          &status);
+
+         /* receive the current value of 
+                dielectrics_to_consider_just_now.
+                this is sent by PE 0. */
+         MPI_Recv(&dielectrics_to_consider_just_now,
+                          1,
+                          MPI_INT,
+                          0,
+                          MSG_TAG_ORDINARY_INTERIOR_POINTS,
+                          MPI_COMM_WORLD,
+                          &status);
+
+         break;
+       case CONTROL_VALUE_SEND_DATA:
+         /* send our strip to PE 0 */
+         MPI_Send(Vij[2],
+                          num_cols*height,
+                          MPI_DOUBLE,
+                          0,
+                          MSG_TAG_VIJ,
+                          MPI_COMM_WORLD);
+         break;
+       case CONTROL_VALUE_DO_ITERATIONS:
+         /* receive the number of iterations we are
+                to compute for. this is sent by PE 0 at
+                the beginning of finite_difference. */
+         MPI_Recv(&iterations,
+                          1,
+                          MPI_INT,
+                          0,
+                          MSG_TAG_ITERATIONS,
+                          MPI_COMM_WORLD,
+                          &status);
+
+         i=0;
+         do {
+
+               /* update our strip of the voltage matrix */
+               do_columns(2, num_cols, 0);
+
+               /* send the columns that the neighbor PEs
+                  require to the nieghbor PEs */
+               MPI_Isend(Vij[num_cols+1],
+                                 height,
+                                 MPI_DOUBLE,
+                                 (rank+1)%num_pes,
+                                 MSG_TAG_VIJ_RBORDER,
+                                 MPI_COMM_WORLD,
+                                 &send_requests[1]);
+
+               MPI_Isend(Vij[2],
+                                 height,
+                                 MPI_DOUBLE,
+                                 rank-1,
+                                 MSG_TAG_VIJ_LBORDER,
+                                 MPI_COMM_WORLD,
+                                 &send_requests[0]);
+
+               /* receive the columns that we need
+                  to update the columns adjacent
+                  to our strip edges from the neighbor
+                  PEs */
+               MPI_Irecv(Vij[num_cols + 3],
+                                 height,
+                                 MPI_DOUBLE,
+                                 (rank+1)%num_pes,
+                                 MSG_TAG_VIJ_LBORDER,
+                                 MPI_COMM_WORLD,
+                                 &rcv_requests[0]);
+         
+               MPI_Irecv(Vij[0],
+                                 height,
+                                 MPI_DOUBLE,
+                                 rank-1,
+                                 MSG_TAG_VIJ_RBORDER,
+                                 MPI_COMM_WORLD,
+                                 &rcv_requests[1]);
+
+               /* update the columns adjacent to our strip
+                  edges */
+               MPI_Waitany(2, 
+                                       rcv_requests, 
+                                       &index,
+                                       &status);
+
+               if (0 == index) {
+                 update_voltage_array(num_cols + 2,0,Vij_TO_Vij);
+               } else {
+                 update_voltage_array(1,0,Vij_TO_Vij);
+               }
+
+               MPI_Waitany(2, 
+                                       rcv_requests, 
+                                       &index,
+                                       &status);
+
+               if (0 == index) {
+                 update_voltage_array(num_cols + 2,0,Vij_TO_Vij);
+               } else {
+                 update_voltage_array(1,0,Vij_TO_Vij);
+               }
+
+
+               MPI_Waitall(2, send_requests, send_statuses);
+         
+               i++;
+         } while(i < iterations);
+
+
+         energy_per_metre=0.0;
+         for(i=2;i<2+num_cols;++i)
+               for(j=0;j<height;++j) { 
+                 energy_per_metre+=find_energy_per_metre(i,j);
+               }
+
+         MPI_Send(&energy_per_metre,
+                          1,
+                          MPI_DOUBLE,
+                          0,
+                          MSG_TAG_ENERGY,
+                          MPI_COMM_WORLD);
+         break;
+       case CONTROL_VALUE_EXIT:
+         done = 1;
+         break;
+       }
+       
+  } while (0 == done);
+  
+}
+
+
+
+void do_columns(int start_col, int num_cols, int calculate_edges)
+{
+  int i;
+  int end_col;
+
+  end_col = start_col + num_cols - 1;
+
+  for(i=start_col; i<=end_col; ++i)
+  {
+       update_voltage_array(i, calculate_edges,Vij_TO_Vij);
+  }
+}
+
+
+
+/* There are three versions of finite_difference. They all take the same 
+arguments and return the same data. One is single threaded, one is
+multi-threaded, and this one uses MPI. */
+
+double finite_difference(int accuracy)
+{
+  int i, j, a;
+  double capacitance_per_metre=0.0, energy_per_metre;
+  int left_start_col, left_num_cols;
+  int right_start_col, right_num_cols;
+  MPI_Status status;
+  int control;
+  MPI_Request send_requests[2];
+  MPI_Status send_statuses[2];
+  MPI_Request rcv_requests[2];
+  MPI_Status rcv_statuses[2];
+  int index;
+
+  for(i=1; i<num_pes; i++) {
+
+       /* arm worker */
+       control = CONTROL_VALUE_DO_ITERATIONS;
+       MPI_Send(&control,
+                        1,
+                        MPI_INT,
+                        i,
+                        MSG_TAG_CONTROL,
+                        MPI_COMM_WORLD);
+
+       /* send the iteration count */
+       MPI_Send(&accuracy,
+                        1,
+                        MPI_INT,
+                        i,
+                        MSG_TAG_ITERATIONS,
+                        MPI_COMM_WORLD);
+  }
+
+  /* these are the parameters of the left and right
+        half-strips that PE 0 is responsible for */
+  left_start_col = strip_map[0].start_col;
+  left_num_cols = strip_map[0].num_cols;
+
+  right_start_col = strip_map[num_pes].start_col;
+  right_num_cols = strip_map[num_pes].num_cols;
+
+  for(a=1; a<=accuracy; ++a) {
+       
+       /* update the left and right half-strips */
+       do_columns(left_start_col+1, left_num_cols-1, 1);
+       do_columns(right_start_col, right_num_cols-1, 1);
+
+       /* send the columns that PE 1 and PE N-1
+          need to those PEs */
+       MPI_Isend(Vij[left_num_cols - 2],
+                         height,
+                         MPI_DOUBLE,
+                         1,
+                         MSG_TAG_VIJ_RBORDER,
+                         MPI_COMM_WORLD,
+                         &send_requests[0]);
+
+       MPI_Isend(Vij[right_start_col+1],
+                         height,
+                         MPI_DOUBLE,
+                         num_pes-1,
+                         MSG_TAG_VIJ_LBORDER,
+                         MPI_COMM_WORLD,
+                         &send_requests[1]);
+
+       /* receive the columns that we need
+          to update the columns adjacent
+          to our strip edges from PE 1 and
+          PE N-1 */
+       MPI_Irecv(Vij[right_start_col-2],
+                         height,
+                         MPI_DOUBLE,
+                         num_pes-1,
+                         MSG_TAG_VIJ_RBORDER,
+                         MPI_COMM_WORLD,
+                         &rcv_requests[0]);
+
+       MPI_Irecv(Vij[left_num_cols+1],
+                         height,
+                         MPI_DOUBLE,
+                         1,
+                         MSG_TAG_VIJ_LBORDER,
+                         MPI_COMM_WORLD,
+                         &rcv_requests[1]);
+
+       MPI_Waitall(2, rcv_requests, rcv_statuses);
+
+       /* update the columns adjacent to our strip
+          edges */
+       update_voltage_array(left_num_cols, 1,Vij_TO_Vij);
+       update_voltage_array(right_start_col - 1, 1,Vij_TO_Vij);
+
+       MPI_Waitall(2, send_requests, send_statuses);
+
+  }  /* end of accuracy loop */
+
+  /* set up receives for the energies from the worker PEs */
+  for(i=1; i<num_pes; i++) {
+       MPI_Irecv(&energies[i-1],
+                         1,
+                         MPI_DOUBLE,
+                         i,
+                         MSG_TAG_ENERGY,
+                         MPI_COMM_WORLD,
+                         &energy_rcv_requests[i-1]);
+  }
+
+
+  /* The energy in the matrix has now been minimised a number
+        (accuracy) times, so we now calcuate the capacitance to see if it is
+        converging */
+
+  energy_per_metre=0.0;
+
+  /* sum up all of the PE energies.
+     they can arrive in any order. */
+  for(i=1; i<num_pes; i++) {
+       MPI_Waitany(num_pes-1, 
+                               energy_rcv_requests,
+                               &index,
+                               &status);
+       energy_per_metre += energies[index];
+  }
+       
+  /* add in the left half-strip energy */
+  for(i=left_start_col;i<left_start_col+left_num_cols;++i)
+       for(j=0;j<height;++j)
+         { 
+               energy_per_metre+=find_energy_per_metre(i,j);
+         }
+
+  /* add in the right half-strip energy */
+  for(i=right_start_col;i<right_start_col+right_num_cols;++i)
+       for(j=0;j<height;++j)
+         { 
+               energy_per_metre+=find_energy_per_metre(i,j);
+         }
+
+  if(coupler==FALSE)
+       capacitance_per_metre=2*energy_per_metre;
+  else if (coupler==TRUE)
+       capacitance_per_metre=energy_per_metre;
+
+  return(capacitance_per_metre);
+}
+#endif
diff --git a/src/non_gui/finite_difference_multi_threaded.c b/src/non_gui/finite_difference_multi_threaded.c
new file mode 100644 (file)
index 0000000..bf29153
--- /dev/null
@@ -0,0 +1,355 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#define SLOW
+
+#ifndef ENABLE_POSIX_THREADS 
+
+/* If we are not comiling for multi-threaded use, a function
+is defined, but it is not used. This keeps the linker happy */
+
+double finite_difference_multi_threaded()
+{
+  return(0.0);
+}
+#endif
+
+
+#ifdef ENABLE_POSIX_THREADS 
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include <pthread.h>
+
+#ifdef HAVE_SCHED_H
+#include <sched.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+extern int coupler;
+extern int width, height;
+extern double **Vij, **Er;
+extern signed char **oddity;
+extern int number_of_workers; 
+
+
+/* The algorithm for this is based on one in the book 'Foundations of Multithraded, 
+Parallel and Distributed Programming' by G. A. Andrews, (2000). Especially 
+chapter 11, Fig 11.6, "Red/Black Gauss-Seidel using shared vairables'. 
+
+Basically the array is a considered a chess board. Since we only use in the computation the
+values above, below, to the left and the right of the current pixel, these will all be the
+same colour on the chess board (black or white). So we compute all the white squares, which
+can all be done in parallel, since they don't depend on each other. Once the white squares
+are done, the black ones can be done. Again, these don't depend on the white squares, but
+only the black ones. So the algorithm does
+
+1) Covers the array with a large chess board with black and white squares. 
+
+
+B W B W B W B W B W B W B W B W B W B W B W B W B W B W
+W B W B W B W B W B W B W B W B W B W B W B W B W B W B
+B W B W B W B W B W B W B W B W B W B W B W B W B W B W 
+W B W B W B W B W B W B W B W B W B W B W B W B W B W B 
+B W B W B W B W B W B W B W B W B W B W B W B W B W B W 
+W B W B W B W B W B W B W B W B W B W B W B W B W B W B 
+B W B W B W B W B W B W B W B W B W B W B W B W B W B W 
+W B W B W B W B W B W B W B W B W B W B W B W B W B W B 
+B W B W B W B W B W B W B W B W B W B W B W B W B W B W 
+W B W B W B W B W B W B W B W B W B W B W B W B W B W B
+B W B W B W B W B W B W B W B W B W B W B W B W B W B W 
+W B W B W B W B W B W B W B W B W B W B W B W B W B W B
+
+
+2) Split the array into a number of columns, one for each CPU.
+
+B W B W B W B   W B W B W B W   B W B W B W B   W B W B W B W
+W B W B W B W   B W B W B W B   W B W B W B W   B W B W B W B
+B W B W B W B   W B W B W B W   B W B W B W B   W B W B W B W 
+W B W B W B W   B W B W B W B   W B W B W B W   B W B W B W B 
+B W B W B W B   W B W B W B W   B W B W B W B   W B W B W B W 
+W B W B W B W   B W B W B W B   W B W B W B W   B W B W B W B 
+B W B W B W B   W B W B W B W   B W B W B W B   W B W B W B W 
+W B W B W B W   B W B W B W B   W B W B W B W   B W B W B W B 
+B W B W B W B   W B W B W B W   B W B W B W B   W B W B W B W 
+W B W B W B W   B W B W B W B   W B W B W B W   B W B W B W B
+B W B W B W B   W B W B W B W   B W B W B W B   W B W B W B W 
+W B W B W B W   B W B W B W B   W B W B W B W   B W B W B W B
+
+3) Do all columns in parallel on the black squares. 
+
+B   B   B   B     B   B   B     B   B   B   B     B   B   B  
+  B   B   B     B   B   B   B     B   B   B     B   B   B   B
+B   B   B   B     B   B   B     B   B   B   B     B   B   B   
+  B   B   B     B   B   B   B     B   B   B     B   B   B   B 
+B   B   B   B     B   B   B     B   B   B   B     B   B   B   
+  B   B   B     B   B   B   B     B   B   B     B   B   B   B 
+B   B   B   B     B   B   B     B   B   B   B     B   B   B   
+  B   B   B     B   B   B   B     B   B   B     B   B   B   B 
+B   B   B   B     B   B   B     B   B   B   B     B   B   B   
+  B   B   B     B   B   B   B     B   B   B     B   B   B   B
+B   B   B   B     B   B   B     B   B   B   B     B   B   B   
+  B   B   B     B   B   B   B     B   B   B     B   B   B   B
+
+Thread 0          Thread 1        Thread 2         Thread 3
+
+4) Wait until all the black squares are done.
+
+5) Compute all the white squares in parallel. 
+
+  W   W   W     W   W   W   W     W   W   W     W   W   W   W
+W   W   W   W     W   W   W     W   W   W   W     W   W   W  
+  W   W   W     W   W   W   W     W   W   W     W   W   W   W 
+W   W   W   W     W   W   W     W   W   W   W     W   W   W   
+  W   W   W     W   W   W   W     W   W   W     W   W   W   W 
+W   W   W   W     W   W   W     W   W   W   W     W   W   W   
+  W   W   W     W   W   W   W     W   W   W     W   W   W   W 
+W   W   W   W     W   W   W     W   W   W   W     W   W   W   
+  W   W   W     W   W   W   W     W   W   W     W   W   W   W 
+W   W   W   W     W   W   W     W   W   W   W     W   W   W  
+  W   W   W     W   W   W   W     W   W   W     W   W   W   W 
+W   W   W   W     W   W   W     W   W   W   W     W   W   W  
+Thread 0          Thread 1        Thread 2         Thread 3
+
+
+6) Repeat a large number (typically 100) times. 
+
+7) Check for convergence. 
+
+8) Stop if the solution has converged. 
+*/
+
+extern double r;
+
+pthread_mutex_t barrier;  /* mutex semaphore for the barrier */
+pthread_cond_t go;        /* condition variable for leaving */
+int numArrived = 0;       /* count of the number who have arrived */
+
+#define BARRIER2 
+
+#ifdef BARRIER1
+void Barrier() {
+#ifndef DEBUG
+  pthread_mutex_lock(&barrier);
+#else
+  if( pthread_mutex_lock(&barrier) != 0 )
+    exit_with_msg_and_exit_code("pthread_mutex_lock failed",PTHREAD_MUTEX_LOCK_FAILED);
+#endif
+  
+  numArrived++;
+  if (numArrived == number_of_workers) {
+    numArrived = 0;
+    pthread_cond_broadcast(&go);
+  } else
+    pthread_cond_wait(&go, &barrier);
+#ifndef DEBUG
+  pthread_mutex_unlock(&barrier);
+#else
+  if( pthread_mutex_unlock(&barrier) != 0 )
+    exit_with_msg_and_exit_code("pthread_mutex_unlock failed",PTHREAD_MUTEX_UNLOCK_FAILED);
+#endif
+}
+#endif
+
+#ifdef BARRIER2
+int numArrived2[2] = {0, 0};
+int barrierNdx = 0;
+
+void Barrier() {
+  int localNdx;
+#ifndef DEBUG
+  pthread_mutex_lock(&barrier);
+#else
+  if( pthread_mutex_lock(&barrier) != 0 )
+    exit_with_msg_and_exit_code("pthread_mutex_lock failed in finite_difference_multi_threaded.c",PTHREAD_MUTEX_LOCK_FAILED);
+#endif
+  
+  numArrived2[barrierNdx]++;
+  if (numArrived2[barrierNdx] == number_of_workers) {
+    barrierNdx = (barrierNdx + 1)%2;  /* toggle */
+    numArrived2[barrierNdx] = 0; /* reset other count */
+
+#ifndef DEBUG
+    pthread_cond_broadcast(&go);
+#else
+    if( pthread_cond_broadcast(&go) != 0)
+      exit_with_msg_and_exit_code("pthread_cond_broadcast failed in finite_difference_multi_threaded.c",PTHREAD_COND_BROADCAST_FAILED);
+#endif
+  }
+  else
+  {
+    localNdx = barrierNdx; /* wait on "current" numArrived. */
+    while (numArrived2[localNdx] != number_of_workers)
+#ifndef DEBUG
+       pthread_cond_wait(&go, &barrier);
+#else
+       if( pthread_cond_wait(&go, &barrier) != 0)
+         exit_with_msg_and_exit_code("pthread_cond_wait failed finite_difference_multi_threaded.c",PTHREAD_COND_WAIT_FAILED);
+#endif
+  } 
+#ifndef DEBUG
+  pthread_mutex_unlock(&barrier);
+#else
+  if( pthread_mutex_unlock(&barrier) != 0 )
+    exit_with_msg_and_exit_code("pthread_mutex_unlock failed finite_difference_multi_threaded.c",PTHREAD_MUTEX_UNLOCK_FAILED);
+#endif
+}
+#endif
+
+
+
+/* Each Worker computes values in one strip of the grids.
+   The main worker loop does two computations to avoid copying from
+   one grid to the other.  */
+
+void *worker(void *arg) {
+  int myid = (int) arg;
+  double r_over_4,a,b,c,d,e,f,g,h;
+  double one_minus_r;
+  int i, j, iters, jstart;
+  int firstcol, lastcol;
+  int strip_width=width/number_of_workers;
+
+  firstcol = myid*strip_width+1;
+  lastcol = firstcol + strip_width - 1;
+  r_over_4=r/4.0;
+  one_minus_r=1-r;
+  if(myid == number_of_workers -1) 
+    lastcol=width-2;
+  Barrier();
+  for (iters = 1; iters <= ITERATIONS; iters++) 
+  {
+    for(i= firstcol ; i <= lastcol; ++i){
+      if(i%2 ==1 )
+       jstart=1;
+      else
+       jstart=2;
+      for(j=jstart ; j < height-1 ; j+=2){
+        if(oddity[i][j] == ORDINARY_INTERIOR_POINT) /* Same dielectric all around */
+          Vij[i][j]=r_over_4*(Vij[i][j+1]+Vij[i+1][j]+Vij[i][j-1]+Vij[i-1][j])+one_minus_r*Vij[i][j];
+        else if(oddity[i][j] > ORDINARY_INTERIOR_POINT) /* only update dielectrics, not conductors */
+        {
+          a=(Er[i][j] * Er[i][j-1] * Vij[i][j-1])/(Er[i][j] + Er[i][j-1]);
+          b=(Er[i][j] * Er[i][j+1] * Vij[i][j+1])/(Er[i][j] + Er[i][j+1]);
+          c=(Er[i][j] * Er[i-1][j] * Vij[i-1][j])/(Er[i][j] + Er[i-1][j]);
+          d=(Er[i][j] * Er[i+1][j] * Vij[i+1][j])/(Er[i][j] + Er[i+1][j]);
+    
+          e=(Er[i][j] * Er[i][j-1])/(Er[i][j]+Er[i][j-1]);
+          f=(Er[i][j] * Er[i][j+1])/(Er[i][j]+Er[i][j+1]);
+          g=(Er[i][j] * Er[i-1][j])/(Er[i][j]+Er[i-1][j]);
+          h=(Er[i][j] * Er[i+1][j])/(Er[i][j]+Er[i+1][j]);
+                        
+          Vij[i][j]=r*(a+b+c+d)/(e+f+g+h) + (1-r)*Vij[i][j];
+        }
+      }
+    }
+    Barrier();
+    for(i= firstcol ; i <= lastcol; ++i){
+      if(i%2 ==1 )
+       jstart=2;
+      else
+       jstart=1;
+      for(j=jstart ; j < height -1; j+=2){
+        if(oddity[i][j] == ORDINARY_INTERIOR_POINT) /* Same dielectric all around */
+          Vij[i][j]=r_over_4*(Vij[i][j+1]+Vij[i+1][j]+Vij[i][j-1]+Vij[i-1][j])+one_minus_r*Vij[i][j];
+        else if(oddity[i][j] > ORDINARY_INTERIOR_POINT) /* only update dielectrics, not conductors */
+        {
+          a=(Er[i][j] * Er[i][j-1] * Vij[i][j-1])/(Er[i][j] + Er[i][j-1]);
+          b=(Er[i][j] * Er[i][j+1] * Vij[i][j+1])/(Er[i][j] + Er[i][j+1]);
+          c=(Er[i][j] * Er[i-1][j] * Vij[i-1][j])/(Er[i][j] + Er[i-1][j]);
+          d=(Er[i][j] * Er[i+1][j] * Vij[i+1][j])/(Er[i][j] + Er[i+1][j]);
+    
+          e=(Er[i][j] * Er[i][j-1])/(Er[i][j]+Er[i][j-1]);
+          f=(Er[i][j] * Er[i][j+1])/(Er[i][j]+Er[i][j+1]);
+          g=(Er[i][j] * Er[i-1][j])/(Er[i][j]+Er[i-1][j]);
+          h=(Er[i][j] * Er[i+1][j])/(Er[i][j]+Er[i+1][j]);
+                        
+          Vij[i][j]=r*(a+b+c+d)/(e+f+g+h) + (1-r)*Vij[i][j];
+        }
+      }
+    }
+    Barrier();
+  }
+  Barrier();
+  return(0);
+}
+
+double finite_difference_multi_threaded()
+{
+  int i, j, ret, thread_number;
+  pthread_t thread_id[MAXIMUM_PROCESSING_DEVICES];
+
+
+  double capacitance_per_metre, energy_per_metre;
+
+
+  /* initialize mutex and condition variable */
+  pthread_mutex_init(&barrier, NULL);
+  pthread_cond_init(&go, NULL);
+  for(thread_number=0;thread_number<number_of_workers;thread_number++){   
+    ret=pthread_create(&thread_id[thread_number],NULL, worker,(void *)thread_number);
+    if(ret != 0)
+      exit_with_msg_and_exit_code("failed to create thread in finite_difference_multi_threaded.c",THREAD_CREATION_FAILED);
+  } 
+  /* Wait for each thread to join - i.e. once they are all finished. */
+  for(thread_number=0;thread_number<number_of_workers;thread_number++)
+  {
+    ret=pthread_join(thread_id[thread_number], NULL);
+    if(ret != 0)
+      exit_with_msg_and_exit_code("failed to join thread in finite_difference_multi_threaded.c",THREAD_FAILED_TO_JOIN);
+      }
+  energy_per_metre=0.0;
+  /*
+  The following code is wrong, but worked on all systems apart from AIX !!
+
+  for(i=0;i<width;++i)
+    for(j=0;j<height;++j)
+       energy_per_metre+=find_energy_per_metre(i,j);
+       */
+
+  for(i=1;i<width-1;++i)
+    for(j=1;j<height-1;++j)
+       energy_per_metre+=find_energy_per_metre(i,j);
+  if(coupler==FALSE)
+    capacitance_per_metre=2*energy_per_metre;
+  else 
+    capacitance_per_metre=energy_per_metre;
+  return(capacitance_per_metre);
+}
+#endif
diff --git a/src/non_gui/finite_difference_single_threaded.c b/src/non_gui/finite_difference_single_threaded.c
new file mode 100644 (file)
index 0000000..5b38fd3
--- /dev/null
@@ -0,0 +1,69 @@
+#ifndef ENABLE_MP
+
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif 
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif 
+
+#include "definitions.h"
+
+
+extern int width, height;
+extern double **Vij, **Er;
+extern unsigned char  **oddity;
+extern int dielectrics_to_consider_just_now;
+extern double r; 
+extern int coupler;
+
+#include "exit_codes.h"
+
+double finite_difference_single_threaded()
+{
+  int i, j;
+  int number_of_iterations=25;
+  double capacitance_per_metre, energy_per_metre;
+
+  /* The following might not look very neat, with a whole load of code being 
+  written twice, when it would be posible to make it easier to read if the 
+  'if(dielectrics_in_bitmap > 1)' was in an inner loop. However, the 
+  following is almost certainly more efficient. It is not a good idea to 
+  have any more than necessary in the inner loop. 
+
+  The option to avoid the faster convergence algorithm has been didtched
+  too, as this was in an inner loop. The faster covergence method seems
+  to work fine, so there is no need to avoid using it */
+
+  /* Note, that while the number of intterations requested is set in the first
+  parameter to update_voltage_array, the actual number done is 4x higher, as 
+  each computation id done in 4 directions */
+
+  update_voltage_array(number_of_iterations, 0, width-1, 0, height-1, Vij, Vij);
+
+  /* Once the voltage distribution is found, the energy in the field may be 
+  found. This can be shown to be Energy = 0.5 * integral(E.D) dV, when 
+  integrated over a volume V, and D.E is the vector dot product of E and
+  D. 
+  
+  Energy per metre is 0.5 * D.E or (0.5*Epsilon)* E.E. Now E.E is given
+  by Ex^2 + Ey^2 (by definition of a dot product. */
+
+  energy_per_metre=0.0;
+  for(i=0;i<width;++i)
+    for(j=0;j<height;++j)
+    { 
+      energy_per_metre+=find_energy_per_metre(i,j);
+    }
+  if(coupler==FALSE)
+    capacitance_per_metre=2*energy_per_metre;
+  else
+    capacitance_per_metre=energy_per_metre;
+  return(capacitance_per_metre);
+}
+#endif /* #endif to #ifndef ENABLE_MP */
+
diff --git a/src/non_gui/get_Er1_and_Er2_colours.c b/src/non_gui/get_Er1_and_Er2_colours.c
new file mode 100644 (file)
index 0000000..37a7941
--- /dev/null
@@ -0,0 +1,59 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+extern double Er1, Er2, Ers[];
+extern int colours[];
+
+void get_Er1_and_Er2_colours(int *colour_Er1, int *colour_Er2)
+{
+   int i;
+   *colour_Er2=-1; /* set them to a silly value, so we can check for it */
+   for(i=0; i<NUMBER_OF_DIELECTRICS_DEFINED; ++i)
+   {
+      if (  (Er1 < Ers[i] + TINY) && (Er1 > Ers[i] - TINY) )
+         *colour_Er1=colours[i];
+      if (  (Er2 < Ers[i] + TINY) && (Er2 > Ers[i] - TINY) )
+         *colour_Er2=colours[i];
+   }
+   if (*colour_Er2 == -1) /* ie its not one defined in Erdata.h */
+      *colour_Er2 =0xac82ac; /* report it is a silly value */
+   if (*colour_Er1 == -1) /* ie its not one defined in Erdata.h */
+      *colour_Er1 =0xcaff00; /* report it is a silly value */
+}
diff --git a/src/non_gui/get_file_pointer_with_right_filename.c b/src/non_gui/get_file_pointer_with_right_filename.c
new file mode 100644 (file)
index 0000000..8ff33da
--- /dev/null
@@ -0,0 +1,65 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* This function take a filename with the extension .bmp (eg coax.bmp) 
+and will produce files such as coax.V.bmp, coax.E.bmp, coax.E.bin etc */
+
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+FILE *get_file_pointer_with_right_filename(char *filename, const char *extension)
+{
+  char *basename, *temp;
+  FILE *fp;
+  basename=string(0,1024);
+  temp=string(0,1024);
+  (void) memset((void *)temp,0,(size_t) 1024);
+  (void) memset((void *)basename,0,(size_t) 1024);
+
+  basename=strncpy(basename,filename,strlen(filename)-4);
+  (void) strcpy(temp,basename);
+  (void) strcat(temp,extension);
+  if((fp=fopen(temp,"w+b"))==NULL)
+  {
+    fprintf(stderr,"Sorry, cant open %s for writing\n", temp);
+    exit_with_msg_and_exit_code("",CANT_OPEN_FOR_WRITING);
+  }
+  free_string(basename,0,1024);
+  free_string(temp,0,1024);
+  return(fp);
+}
diff --git a/src/non_gui/get_options.c b/src/non_gui/get_options.c
new file mode 100644 (file)
index 0000000..31fe01e
--- /dev/null
@@ -0,0 +1,141 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+
+/*
+ * Here's something you've all been waiting for:  the AT&T public domain
+ * source for getopt(3).  It is the code which was given out at the 1985
+ * UNIFORUM conference in Dallas.  I obtained it by electronic mail
+ * directly from AT&T.  The people there assure me that it is indeed
+ * in the public domain.
+ * 
+ * There is no manual page.  That is because the one they gave out at
+ * UNIFORUM was slightly different from the current System V Release 2
+ * manual page.  The difference apparently involved a note about the
+ * famous rules 5 and 6, recommending using white space between an option
+ * and its first argument, and not grouping options that have arguments.
+ * Getopt itself is currently lenient about both of these things White
+ * space is allowed, but not mandatory, and the last option in a group can
+ * have an argument.  That particular package_version of the man page evidently
+ * has no official existence, and my source at AT&T did not send a copy.
+ * The current SVR2 man page reflects the actual behavor of this getopt.
+ * However, I am not about to post a copy of anything licensed by AT&T.
+ */
+
+#include "config.h"
+
+#include "definitions.h"
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+/*LINTLIBRARY*/
+#ifndef NULL
+#define NULL    0
+#endif
+#define EOF     (-1)
+
+
+int     my_opterr = 1;
+int     my_optind = 1;
+int     my_optopt;
+char    *my_optarg;
+
+void ERR(const char *s, char c, char **argv)  
+{
+       if(my_opterr)
+       {
+               char errbuf[2];
+               errbuf[0] = c;
+               errbuf[1] = '\n';
+               /* (void) write(2, argv[0], (unsigned)strlen(argv[0]));
+               (void) write(2, s, (unsigned)strlen(s));
+               (void) write(2, errbuf, 2); */
+               (void) fwrite(argv[0], (unsigned)strlen(argv[0]),1,stderr);
+               (void) fwrite(s, (unsigned)strlen(s),1,stderr);
+               (void) fwrite(errbuf, 2, 1,stderr); 
+       }
+}
+
+char *index2(const char *str, char c)
+{
+       char *ret;
+       ret=strchr((char *) str,c);
+       return(ret);
+}
+
+
+int get_options(int argc, char **argv, const char *opts)
+{
+       static int sp = 1;
+       /* register int c;
+        register char *cp; */
+        int c;
+        char tmp;
+       char *cp;
+        cp=&tmp;
+
+       if(sp == 1)
+       {
+               if(my_optind >= argc ||
+                  argv[my_optind][0] != '-' || argv[my_optind][1] == '\0')
+                       return(EOF);
+               else if(strcmp(argv[my_optind], "--") == 0) {
+                       my_optind++;
+                       return(EOF);
+               }
+        }
+       my_optopt = c = argv[my_optind][sp];
+       if(c == ':' || (cp=index2((char *) opts, c)) == NULL) {
+               ERR(": illegal option -- ", c,argv);
+               if(argv[my_optind][++sp] == '\0') {
+                       my_optind++;
+                       sp = 1;
+               }
+               return('?');
+       }
+       if(*++cp == ':') {
+               if(argv[my_optind][sp+1] != '\0')
+                       my_optarg = &argv[my_optind++][sp+1];
+               else if(++my_optind >= argc) {
+                       ERR(": option requires an argument -- ", c,argv);
+                       sp = 1;
+                       return('?');
+               } else
+                       my_optarg = argv[my_optind++];
+               sp = 1;
+       } else {
+               if(argv[my_optind][++sp] == '\0') {
+                       sp = 1;
+                       my_optind++;
+               }
+               my_optarg = NULL;
+       }
+       return(c);
+}
diff --git a/src/non_gui/give_examples_of_using_design_coupler.c b/src/non_gui/give_examples_of_using_design_coupler.c
new file mode 100644 (file)
index 0000000..b88cc2a
--- /dev/null
@@ -0,0 +1,81 @@
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void give_examples_of_using_design_coupler(void)
+{
+  printf("Here are a examples of how to use 'design_coupler'\n");
+  printf("In the examples, the %c sign is used in front of anything you must type\n",'%');
+  printf("which is what you will probably see when using the csh or tcsh as a shell. It\n");
+  printf("would probably be a $ sign if using the sh or bash shell. \n\n");
+  printf("To find the odd and even mode impedances and frequency response of a 50 Ohm\n"); 
+  printf("coupler, covering 130 to 170 MHz, with a coupling coefficient of 30 dB:\n\n");
+  printf("%c design_coupler 30 130 170\n\n",'%');
+  printf("Note the frequency response is symmetrical about the centre frequency at 0.192 dB\n");
+  printf("below that wanted. You may wish to redesign this for a coupling coefficient of \n");
+  printf("about 29.9 dB, so the maximum deviation from the ideal 30.0 dB never exceeds 0.1 dB\n");
+  printf("Note the length suggested is 0.5 m (nearly 20\") is a quarter wave at\n");
+  printf("the centre frequency of 150 MHz. You might find this a bit too long, so\n");
+  printf("let's specify a length of 0.25 m.\n\n");
+  printf("%c design_coupler -L 0.25 30 130 170\n\n",'%');
+  printf("What you may notice is that while the coupling to the coupled port is exactly\n");
+  printf("30 dB below the input power at the centre frequency (150 MHz) it is \n");
+  printf("no longer symmetrical about the centre frequency. Also, deviations from the\n");
+  printf("ideal 30 dB are now much larger, with a maximum error of 1.012 dB\n");
+  printf("Unlike the case when the length is the default quarter wave, there is not much\n");
+  printf("you can do about this, since the deviations occur in both directions.\n\n");
+  printf("Now assume you are reasonably happy with the response when the length is 250 mm\n");
+  printf("but would like to see the response at every 2.5 MHz. This can be done using the\n");
+  printf("-s option to design_coupler.\n\n");
+  printf("%c design_coupler -L 0.25 -s 2.5 30 130 170\n\n",'%');
+  printf("Assuming the performance is acceptable, the dimensions of the coupler can\n"); 
+  printf("be determined by adding the -d option. This will design a coupler that must look\n");
+  printf("like the structure below. The two inner conductors, which are spaced equally\n");
+  printf("between the top and bottom edges of the outer conductor, must be very thin.\n");
+  printf("These are placed along the length of a box of width W, height H and of\n");
+  printf("a length L determined by the user, which in this case is 250 mm.\n");
+  printf("|-----------^------------------------------------------------------------------|\n");
+  printf("|           |                                                                  |\n");
+  printf("|           |              <---w---><-----s----><---w-->                       |\n");
+  printf("|           H              ---------            --------                       |\n");
+  printf("|           |                                                                  |\n");
+  printf("|           |   Er=1.0 (air)                                                   |\n");
+  printf("------------v------------------------------------------------------------------\n");
+  printf("<-----------------------------------------W----------------------------------->\n");
+  printf("The program reports: H = 1.0, ; w = 1.44 ; s = 0.44\n");
+
+  printf("The height of the box H must be small compared to the length L, (perhaps no\n");
+  printf("more than 7%c of the length), or 17.5 mm in this case, with a length of 250 mm,\n",'%');
+  printf("otherwise fringing effects will be significant. The width of the structure W\n");
+  printf("should be as large as possible. The program suggests making this 5*H+2*w+s. The\n");
+  printf("7%c and 5*H+2*w+s are educated guesses, rather than exact figures. There is\n",'%');
+  printf("no problem in making the width  larger than 5*H+2*w+s. The length L must be\n");
+  printf("kept at 250 mm. The RATIO of the dimensions H, w and s (but not L or W\n");
+  printf("must be kept constant. W just needs to be sufficiently large - it is\n");
+  printf("uncritical.  \n\n");
+  printf("If you happened to have some 15 mm square brass available, then using that\n");
+  printf("for the side-walls would require that H becomes 15*1.0 = 15 mm,\n");
+  printf("w = 15*1.44 = 21.6 mm  and s = 15*0.44 = 6.6 mm\n\n");
+  printf("There is no need to compute the above scaling with a calculator, as using\n");
+  printf("The -H option allows one to specify the height H. The program then reports the\n");
+  printf("exact dimensions for the length L, height H, w, s and suggests a minimum width\n");
+  printf("for W.\n\n");
+  printf("In summary we have:\n");
+  printf("                   30 dB coupler +1.02 dB / -0.78 dB for 130 to 170 MHz\n");
+  printf("                   Length L = 250 mm, height H = 15 mm, stripline spacing s\n");
+  printf("                   = 6.6 mm, stripline width w = 21.6 mm, width W >= 124 mm\n");
+  printf("By default, design_coupler prints a lot of information to the screen.\n");
+  printf("This can be reduced by the -q option or reduced to only one line with -Q\n");
+  printf("Other options include -Z to change the impedance from the default 50 Ohms\n");
+  printf("and -C to see the fully copyright, Licensing and distribution information\n");
+  exit_with_msg_and_exit_code("",OKAY);
+}
diff --git a/src/non_gui/gsl_definitions.h b/src/non_gui/gsl_definitions.h
new file mode 100644 (file)
index 0000000..383abbc
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/*
+The following code is taken from the GNU Scientifi Library, gsl, 
+which is also issued under the GPL. 
+
+*/
+#define GSL_PREC_DOUBLE                    0
+#define GSL_SUCCESS                      0
+/*
+These values suita IEEE machines but might be too large 
+for non-IEEE machines. Since I don't think its that 
+important, I've changed the values a bit to be sure
+double will work out okay. 
+
+#define GSL_DBL_EPSILON        2.2204460492503131e-16
+#define GSL_SQRT_DBL_EPSILON   1.4901161193847656e-08
+#define GSL_DBL_MIN        2.2250738585072014e-308
+#define GSL_DBL_MAX        1.7976931348623157e+308
+*/
+
+#define GSL_DBL_EPSILON        1e-14
+#define GSL_SQRT_DBL_EPSILON   1e-7
+#define GSL_DBL_MIN        1e-100
+#define GSL_DBL_MAX        1e+100
+
+#define GSL_MODE_PREC(mt) ((mt) & (unsigned int)7)
+#define GSL_MAX(a,b) ((a) > (b) ? (a) : (b))
+/* GSL_VAR const double gsl_prec_eps[]; */
+
+typedef unsigned int gsl_mode_t;
+typedef unsigned int gsl_prec_t;
+
+typedef struct
+{
+  double val;
+  double err;
+} gsl_sf_result;
+
+double gsl_sf_ellint_Kcomp(double k, gsl_mode_t mode);
+int gsl_sf_ellint_Kcomp_e(double k, gsl_mode_t mode, gsl_sf_result * result);
+int gsl_sf_ellint_RF_e(double x, double y, double z, gsl_mode_t mode, gsl_sf_result * result);
+double locMAX3(double x, double y, double z);
+
+
+/* End of things taken from gsl library */
diff --git a/src/non_gui/gsl_sf_ellint_Kcomp.c b/src/non_gui/gsl_sf_ellint_Kcomp.c
new file mode 100644 (file)
index 0000000..4fcdde3
--- /dev/null
@@ -0,0 +1,136 @@
+
+
+#include "config.h"
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#include "definitions.h"
+#include "gsl_types.h"
+#include "gsl_definitions.h"
+#include "exit_codes.h"
+
+/* This part of atlc is a copy from the code in the GPL'ed 
+GNU Scientific Library, gsl. By including this code, it saves 
+the user having to like with gsl. */
+
+const double gsl_prec_eps[3];
+
+
+
+double gsl_sf_ellint_Kcomp(double k, gsl_mode_t mode)
+{
+  gsl_sf_result result;
+  gsl_sf_ellint_Kcomp_e(k, mode, &result);
+  return result.val;
+}
+
+
+/* [Carlson, Numer. Math. 33 (1979) 1, (4.5)] */
+int gsl_sf_ellint_Kcomp_e(double k, gsl_mode_t mode, gsl_sf_result * result)
+{
+  int return_val=0;
+  if(k*k >= 1.0) {
+    exit_with_msg_and_exit_code("domain error in gsl_sf_Kcomp_e", DOMAIN_ERROR);
+  }
+  else if(k*k >= 1.0 - GSL_SQRT_DBL_EPSILON) {
+    /* [Abramowitz+Stegun, 17.3.33] */
+    const double y = 1.0 - k*k;
+    const double a[] = { 1.38629436112, 0.09666344259, 0.03590092383 };
+    const double b[] = { 0.5, 0.12498593597, 0.06880248576 };
+    const double ta = a[0] + y*(a[1] + y*a[2]);
+    const double tb = -log(y) * (b[0] * y*(b[1] + y*b[2]));
+    result->val = ta + tb;
+    result->err = 2.0 * GSL_DBL_EPSILON * result->val;
+    return_val=GSL_SUCCESS;
+  }
+  else {
+    /* This was previously computed as,
+
+         return gsl_sf_ellint_RF_e(0.0, 1.0 - k*k, 1.0, mode, result);
+
+       but this underestimated the total error for small k, since the 
+       argument y=1-k^2 is not exact (there is an absolute error of
+       GSL_DBL_EPSILON near y=0 due to cancellation in the subtraction).
+       Taking the singular behavior of -log(y) above gives an error
+       of 0.5*epsilon/y near y=0. (BJG) */
+
+    double y = 1.0 - k*k;
+    int status = gsl_sf_ellint_RF_e(0.0, y, 1.0, mode, result);
+    result->err += 0.5 * GSL_DBL_EPSILON / y;
+    return_val=status ;
+  }
+  return(return_val);
+}
+
+int gsl_sf_ellint_RF_e(double x, double y, double z, gsl_mode_t mode, gsl_sf_result * result)
+{
+  int return_val=0;
+  const double lolim = 5.0 * GSL_DBL_MIN;
+  const double uplim = 0.2 * GSL_DBL_MAX;
+  const gsl_prec_t goal = GSL_MODE_PREC(mode);
+  const double errtol = ( goal == GSL_PREC_DOUBLE ? 0.001 : 0.03 );
+  const double prec   = gsl_prec_eps[goal];
+
+  if(x < 0.0 || y < 0.0 || z < 0.0) {
+    exit_with_msg_and_exit_code("domain error in gsl_sf_ellint_RF_e", DOMAIN_ERROR);
+  }
+  else if(x+y < lolim || x+z < lolim || y+z < lolim) {
+    exit_with_msg_and_exit_code("domain error in gsl_sf_ellint_RF_e", DOMAIN_ERROR);
+  }
+  else if(locMAX3(x,y,z) < uplim) { 
+    const double c1 = 1.0 / 24.0;
+    const double c2 = 3.0 / 44.0;
+    const double c3 = 1.0 / 14.0;
+    double xn = x;
+    double yn = y;
+    double zn = z;
+    double mu, xndev, yndev, zndev, e2, e3, s;
+    while(1) {
+      double epslon, lamda;
+      double xnroot, ynroot, znroot;
+      mu = (xn + yn + zn) / 3.0;
+      xndev = 2.0 - (mu + xn) / mu;
+      yndev = 2.0 - (mu + yn) / mu;
+      zndev = 2.0 - (mu + zn) / mu;
+      epslon = locMAX3(fabs(xndev), fabs(yndev), fabs(zndev));
+      if (epslon < errtol) break;
+      xnroot = sqrt(xn);
+      ynroot = sqrt(yn);
+      znroot = sqrt(zn);
+      lamda = xnroot * (ynroot + znroot) + ynroot * znroot;
+      xn = (xn + lamda) * 0.25;
+      yn = (yn + lamda) * 0.25;
+      zn = (zn + lamda) * 0.25;
+    }
+    e2 = xndev * yndev - zndev * zndev;
+    e3 = xndev * yndev * zndev;
+    s = 1.0 + (c1 * e2 - 0.1 - c2 * e3) * e2 + c3 * e3;
+    result->val = s / sqrt(mu);
+    result->err = prec * fabs(result->val);
+    return_val= GSL_SUCCESS;
+  }
+  else {
+    exit_with_msg_and_exit_code("domain error in gsl_sf_ellint_RF_e", DOMAIN_ERROR);
+  }
+  return(return_val);
+}
+
+
+/* static double locMAX3(double x, double y, double z) */
+double locMAX3(double x, double y, double z)
+{
+  double xy = GSL_MAX(x, y);
+  return GSL_MAX(xy, z);
+}
+
+
+#define EVAL_RESULT(fn) \
+   gsl_sf_result result; \
+   int status = fn; \
+   if (status != GSL_SUCCESS) { \
+     GSL_ERROR_VAL(#fn, status, result.val); \
+   } ; \
+return result.val;
+
diff --git a/src/non_gui/gsl_types.h b/src/non_gui/gsl_types.h
new file mode 100644 (file)
index 0000000..4782b1d
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+This is haevily hacked from the gsl_types.h file which is copyright
+
+* Copyright (C) 2001 Brian Gough
+and for part of the GNU Scientific library (gsl).
+
+It is not identical and only contrains a subset of the information 
+from that file and is hacked somewhat. 
+
+*/
+
+
+#ifndef __GSL_TYPES_H__
+#define __GSL_TYPES_H__
+
+#ifndef GSL_VAR
+
+#ifdef WIN32
+#  ifdef _DLL
+#    ifdef DLL_EXPORT
+#      define GSL_VAR __declspec(dllexport)
+#    else
+#      define GSL_VAR __declspec(dllimport)
+#    endif
+#  else
+#    define GSL_VAR extern
+#  endif
+#else
+#  define GSL_VAR extern
+#endif
+
+#endif
+
+#endif /* __GSL_TYPES_H__ */
diff --git a/src/non_gui/memory.c b/src/non_gui/memory.c
new file mode 100644 (file)
index 0000000..5741c8a
--- /dev/null
@@ -0,0 +1,227 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+Some of these memory allocation routies are hacked versions of those
+from the book 'Numerical Recipes in C' by Press et al. */
+
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_SYS_TYPES
+#include <sys/types.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+#define NR_END 1
+
+char *string(long nl,long nh)
+{
+  char *v;
+
+  v=(char *)malloc((unsigned) (nh-nl+1));
+  if (!v)
+    exit_with_msg_and_exit_code("Memory allocation failure in string()",MEMORY_ALLOCATION_ERROR_IN_STRING);
+  
+  return v-nl;
+}
+
+unsigned char *ustring(long nl,long nh)
+{
+  unsigned char *v;
+
+  v=(unsigned char *)malloc((size_t) (sizeof(unsigned char)* (nh-nl+1)));
+  if (!v) {
+    fprintf(stderr,"Can't allocate %ld bytes\n",nh-nl+1); 
+    while(1)
+    {
+    } 
+    exit_with_msg_and_exit_code("Memory allocation failure in ustring()",MEMORY_ALLOCATION_ERROR_IN_USTRING);
+  }
+  return v-nl;
+}
+
+void free_string(char *v, long nl, long nh)
+/* free a string allocated with string() */
+{
+  if(nh <= nl)
+    exit_with_msg_and_exit_code("nh <= nl in free_string()",SILLY_ARGUMENTS_IN_FREE_STRING);
+  free((FREE_ARG) (v+nl));
+}
+
+void free_ustring(unsigned char *v, long nl, long nh)
+/* free a string allocated with ustring() */
+{
+  if(nh <= nl)
+    exit_with_msg_and_exit_code("nh <= nl in free_ustring()",SILLY_ARGUMENTS_IN_FREE_USTRING);
+  free((FREE_ARG) (v+nl));
+}
+
+
+/* allocate a signed char matrix with subscript range m[nrl..nrh][ncl..nch] */
+signed char **scmatrix(long nrl, long nrh, long ncl, long nch)
+{
+       long i, nrow=nrh-nrl+1,ncol=nch-ncl+1;
+       signed char **m;
+       /* allocate pointers to rows */
+       m=(signed char **) malloc((size_t)((nrow+NR_END)*sizeof(signed char*)));
+       if (!m) 
+         exit_with_msg_and_exit_code("Memory allocation failure #1 in scmatrix()",MEMORY_ALLOCATION_ERROR_IN_SCMATRIX);
+       m += NR_END;
+       m -= nrl;
+
+       /* allocate rows and set pointers to them */
+       m[nrl]=(signed char *) malloc((size_t)((nrow*ncol+NR_END)*sizeof(signed char)));
+       if (!m[nrl]) 
+         exit_with_msg_and_exit_code("Memory allocation failure #2 in ucmatrix()",MEMORY_ALLOCATION_ERROR_IN_UCMATRIX);
+
+       m[nrl] += NR_END;
+       m[nrl] -= ncl;
+
+       for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol;
+
+       /* return pointer to array of pointers to rows */
+       return m;
+}
+
+
+/* allocate a unsigned char matrix with subscript range m[nrl..nrh][ncl..nch] */
+unsigned char **ucmatrix(long nrl, long nrh, long ncl, long nch)
+{
+       long i, nrow=nrh-nrl+1,ncol=nch-ncl+1;
+       unsigned char **m;
+       /* allocate pointers to rows */
+       m=(unsigned char **) malloc((size_t)((nrow+NR_END)*sizeof(unsigned char*)));
+       if (!m) 
+         exit_with_msg_and_exit_code("Memory allocation failure #1 in scmatrix()",MEMORY_ALLOCATION_ERROR_IN_UCMATRIX);
+       m += NR_END;
+       m -= nrl;
+
+       /* allocate rows and set pointers to them */
+       m[nrl]=(unsigned char *) malloc((size_t)((nrow*ncol+NR_END)*sizeof(unsigned char)));
+       if (!m[nrl]) 
+         exit_with_msg_and_exit_code("Memory allocation failure #2 in ucmatrix()",MEMORY_ALLOCATION_ERROR_IN_UCMATRIX);
+
+       m[nrl] += NR_END;
+       m[nrl] -= ncl;
+
+       for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol;
+
+       /* return pointer to array of pointers to rows */
+       return m;
+}
+
+
+/* free a signed char matrix allocated by cmatrix() */
+void free_scmatrix(signed char **m, long nrl, long nrh, long ncl, long nch)
+{
+  if(nrh <= nrl)
+      exit_with_msg_and_exit_code("nrh <= nrl in free_scmatrix()",SILLY_ARGUMENTS_IN_FREE_SCMATRIX);
+  if(nch <= ncl)
+      exit_with_msg_and_exit_code("nch <= ncl in free_scmatrix()",SILLY_ARGUMENTS_IN_FREE_SCMATRIX);
+  free((FREE_ARG) (m[nrl]+ncl-NR_END));
+  free((FREE_ARG) (m+nrl-NR_END));
+}
+
+
+/* free a unsigned char matrix allocated by ucmatrix() */
+void free_ucmatrix(unsigned char **m, long nrl, long nrh, long ncl, long nch)
+{
+  if(nrh <= nrl)
+      exit_with_msg_and_exit_code("nrh <= nrl in free_ucmatrix()",SILLY_ARGUMENTS_IN_FREE_UCMATRIX);
+  if(nch <= ncl)
+      exit_with_msg_and_exit_code("nch <= ncl in free_ucmatrix()",SILLY_ARGUMENTS_IN_FREE_UCMATRIX);
+  free((FREE_ARG) (m[nrl]+ncl-NR_END));
+  free((FREE_ARG) (m+nrl-NR_END));
+}
+
+double **dmatrix(long nrl, long nrh, long ncl, long nch)
+/* allocate a double matrix with subscript range m[nrl..nrh][ncl..nch] */
+{
+       long i, nrow=nrh-nrl+1,ncol=nch-ncl+1;
+       double **m;
+
+       /* allocate pointers to rows */
+       m=(double **) malloc((size_t)((nrow+NR_END)*sizeof(double*)));
+       if (!m) 
+         exit_with_msg_and_exit_code("Memory allocation error #1 in dmatrix()",MEMORY_ALLOCATION_ERROR_IN_DMATRIX);
+       m += NR_END;
+       m -= nrl;
+
+       /* allocate rows and set pointers to them */
+       m[nrl]=(double *) malloc((size_t)((nrow*ncol+NR_END)*sizeof(double)));
+       if (!m[nrl]) 
+         exit_with_msg_and_exit_code("Memory allocation error #2 in dmatrix()",MEMORY_ALLOCATION_ERROR_IN_DMATRIX);
+       m[nrl] += NR_END;
+       m[nrl] -= ncl;
+
+       for(i=nrl+1;i<=nrh;i++) m[i]=m[i-1]+ncol;
+
+       /* return pointer to array of pointers to rows */
+       return m;
+}
+
+
+void free_dvector(double *v, long nl, long nh)
+/* free a double vector allocated with dvector() */
+{
+  if(nh <= nl)
+    exit_with_msg_and_exit_code("nh is <= nl in call to free_dvector",SILLY_ARGUMENTS_IN_FREE_DVECTOR);
+  free((FREE_ARG) (v+nl-NR_END));
+}
+
+void free_dmatrix(double **m, long nrl, long nrh, long ncl, long nch)
+/* free a double matrix allocated by dmatrix() */
+{
+  if(nrh <= nrl)
+    exit_with_msg_and_exit_code("nhh is <= nl in call to free_dmatrix",SILLY_ARGUMENTS_IN_FREE_DMATRIX);
+  if(nch <= ncl)
+    exit_with_msg_and_exit_code("nch is <= nl in call to free_dmatrix",SILLY_ARGUMENTS_IN_FREE_DMATRIX);
+  free((FREE_ARG) (m[nrl]+ncl-NR_END));
+  free((FREE_ARG) (m+nrl-NR_END));
+}
+
+void free_cx(char **m, long nrl, long nrh, long ncl, long nch)
+/* free a char matrix allocated by cmatrix() */
+{
+  if(nrh <= nrl)
+    exit_with_msg_and_exit_code("nrh is <= nrl in call to free_charmatrix",SILLY_ARGUMENTS_IN_FREE_CMATRIX);
+  if(nch <= ncl)
+    exit_with_msg_and_exit_code("nch is <= ncl in call to free_charmatrix",SILLY_ARGUMENTS_IN_FREE_CMATRIX);
+  free((FREE_ARG) (m[nrl]+ncl-NR_END));
+  free((FREE_ARG) (m+nrl-NR_END));
+}
+
+double *dvector(long nl, long nh)
+/* allocate a double vector with subscript range v[nl..nh] */
+{
+       double *v;
+       v=(double *)malloc((size_t) ((nh-nl+1+NR_END)*sizeof(double)));
+       if (!v)
+         exit_with_msg_and_exit_code("Memory allocation error in dvector()",MEMORY_ALLOCATION_ERROR_IN_DVECTOR);
+       return v-nl+NR_END;
+}
+
diff --git a/src/non_gui/print_copyright.c b/src/non_gui/print_copyright.c
new file mode 100644 (file)
index 0000000..3767cd8
--- /dev/null
@@ -0,0 +1,299 @@
+
+#include "config.h"
+#include "definitions.h"
+
+void print_copyright(const char *s)
+{
+  printf("Copyright (C) %s. Dr. David Kirkby, PhD (G8WRB).\n",s);
+  printf("Dr. David Kirkby, e-mail drkirkby at ntlworld.com \n");
+  printf("Stokes Hall Lodge, Burnham Road, Althorne, Essex, CM3 6DT, UK.\n\n");
+
+  printf("This program is free software; you can redistribute it and/or\n");
+  printf("modify it under the terms of the GNU General Public License\n");
+  printf("as published by the Free Software Foundation; either package_version 2\n");
+  printf("of the License, or (at your option) any later package_version.\n\n");
+
+  printf("This program is distributed in the hope that it will be useful,\n");
+  printf("but WITHOUT ANY WARRANTY; without even the implied warranty of\n");
+  printf("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n");
+  printf("GNU General Public License, printed below, for more details.\n\n");
+  
+
+  printf("                 GNU GENERAL PUBLIC LICENSE\n");
+  printf("                    Package_version 2, June 1991\n\n");
+  printf(" Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n");
+  printf("                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n");
+  printf(" Everyone is permitted to copy and distribute verbatim copies\n");
+  printf(" of this license document, but changing it is not allowed.\n\n");
+  printf("                         Preamble\n");
+  printf("   The licenses for most software are designed to take away your\n");
+  printf("freedom to share and change it.  By contrast, the GNU General Public\n");
+  printf("License is intended to guarantee your freedom to share and change free\n");
+  printf("software--to make sure the software is free for all its users.  This\n");
+  printf("General Public License applies to most of the Free Software\n");
+  printf("Foundation's software and to any other program whose authors commit to\n");
+  printf("using it.  (Some other Free Software Foundation software is covered by\n");
+  printf("the GNU Library General Public License instead.)  You can apply it to\n");
+  printf("your programs, too.\n\n");
+
+  printf("  When we speak of free software, we are referring to freedom, not\n");
+  printf("price.  Our General Public Licenses are designed to make sure that you\n");
+  printf("have the freedom to distribute copies of free software (and charge for\n");
+  printf("this service if you wish), that you receive source code or can get it\n");
+  printf("if you want it, that you can change the software or use pieces of it\n");
+  printf("in new free programs; and that you know you can do these things.\n\n");
+
+  printf("  To protect your rights, we need to make restrictions that forbid\n");
+  printf("anyone to deny you these rights or to ask you to surrender the rights.\n");
+  printf("These restrictions translate to certain responsibilities for you if you\n");
+  printf("distribute copies of the software, or if you modify it.\n\n");
+
+  printf("  For example, if you distribute copies of such a program, whether\n");
+  printf("gratis or for a fee, you must give the recipients all the rights that\n");
+  printf("you have.  You must make sure that they, too, receive or can get the\n");
+  printf("source code.  And you must show them these terms so they know their\n");
+  printf("rights.\n");
+  printf("\n");
+  printf("  We protect your rights with two steps: (1) copyright the software, and\n");
+  printf("(2) offer you this license which gives you legal permission to copy,\n");
+  printf("distribute and/or modify the software.\n");
+  printf("\n");
+  printf("  Also, for each author's protection and ours, we want to make certain\n");
+  printf("that everyone understands that there is no warranty for this free\n");
+  printf("software.  If the software is modified by someone else and passed on, we\n");
+  printf("want its recipients to know that what they have is not the original, so\n");
+  printf("that any problems introduced by others will not reflect on the original\n");
+  printf("authors' reputations.\n");
+  printf("\n");
+  printf("  Finally, any free program is threatened constantly by software\n");
+  printf("patents.  We wish to avoid the danger that redistributors of a free\n");
+  printf("program will individually obtain patent licenses, in effect making the\n");
+  printf("program proprietary.  To prevent this, we have made it clear that any\n");
+  printf("patent must be licensed for everyone's free use or not licensed at all.\n");
+  printf("\n");
+  printf("  The precise terms and conditions for copying, distribution and\n");
+  printf("modification follow.\n");
+  printf("\f\n");
+  printf("                 GNU GENERAL PUBLIC LICENSE\n");
+  printf("   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n");
+  printf("\n");
+  printf("  0. This License applies to any program or other work which contains\n");
+  printf("a notice placed by the copyright holder saying it may be distributed\n");
+  printf("under the terms of this General Public License.  The \"Program\", below,\n");
+  printf("refers to any such program or work, and a \"work based on the Program\"\n");
+  printf("means either the Program or any derivative work under copyright law:\n");
+  printf("that is to say, a work containing the Program or a portion of it,\n");
+  printf("either verbatim or with modifications and/or translated into another\n");
+  printf("language.  (Hereinafter, translation is included without limitation in\n");
+  printf("the term \"modification\".)  Each licensee is addressed as \"you\".\n");
+  printf("\n");
+  printf("Activities other than copying, distribution and modification are not\n");
+  printf("covered by this License; they are outside its scope.  The act of\n");
+  printf("running the Program is not restricted, and the output from the Program\n");
+  printf("is covered only if its contents constitute a work based on the\n");
+  printf("Program (independent of having been made by running the Program).\n");
+  printf("Whether that is true depends on what the Program does.\n");
+  printf("\n");
+  printf("  1. You may copy and distribute verbatim copies of the Program's\n");
+  printf("source code as you receive it, in any medium, provided that you\n");
+  printf("conspicuously and appropriately publish on each copy an appropriate\n");
+  printf("copyright notice and disclaimer of warranty; keep intact all the\n");
+  printf("notices that refer to this License and to the absence of any warranty;\n");
+  printf("and give any other recipients of the Program a copy of this License\n");
+  printf("along with the Program.\n");
+  printf("\n");
+  printf("You may charge a fee for the physical act of transferring a copy, and\n");
+  printf("you may at your option offer warranty protection in exchange for a fee.\n");
+  printf("\n");
+  printf("  2. You may modify your copy or copies of the Program or any portion\n");
+  printf("of it, thus forming a work based on the Program, and copy and\n");
+  printf("distribute such modifications or work under the terms of Section 1\n");
+  printf("above, provided that you also meet all of these conditions:\n");
+  printf("\n");
+  printf("    a) You must cause the modified files to carry prominent notices\n");
+  printf("    stating that you changed the files and the date of any change.\n");
+  printf("\n");
+  printf("    b) You must cause any work that you distribute or publish, that in\n");
+  printf("    whole or in part contains or is derived from the Program or any\n");
+  printf("    part thereof, to be licensed as a whole at no charge to all third\n");
+  printf("    parties under the terms of this License.\n");
+  printf("\n");
+  printf("    c) If the modified program normally reads commands interactively\n");
+  printf("    when run, you must cause it, when started running for such\n");
+  printf("    interactive use in the most ordinary way, to print or display an\n");
+  printf("    announcement including an appropriate copyright notice and a\n");
+  printf("    notice that there is no warranty (or else, saying that you provide\n");
+  printf("    a warranty) and that users may redistribute the program under\n");
+  printf("    these conditions, and telling the user how to view a copy of this\n");
+  printf("    License.  (Exception: if the Program itself is interactive but\n");
+  printf("    does not normally print such an announcement, your work based on\n");
+  printf("    the Program is not required to print an announcement.)\n");
+  printf("\f\n");
+  printf("These requirements apply to the modified work as a whole.  If\n");
+  printf("identifiable sections of that work are not derived from the Program,\n");
+  printf("and can be reasonably considered independent and separate works in\n");
+  printf("themselves, then this License, and its terms, do not apply to those\n");
+  printf("sections when you distribute them as separate works.  But when you\n");
+  printf("distribute the same sections as part of a whole which is a work based\n");
+  printf("on the Program, the distribution of the whole must be on the terms of\n");
+  printf("this License, whose permissions for other licensees extend to the\n");
+  printf("entire whole, and thus to each and every part regardless of who wrote it.\n");
+  printf("\n");
+  printf("Thus, it is not the intent of this section to claim rights or contest\n");
+  printf("your rights to work written entirely by you; rather, the intent is to\n");
+  printf("exercise the right to control the distribution of derivative or\n");
+  printf("collective works based on the Program.\n");
+  printf("\n");
+  printf("In addition, mere aggregation of another work not based on the Program\n");
+  printf("with the Program (or with a work based on the Program) on a volume of\n");
+  printf("a storage or distribution medium does not bring the other work under\n");
+  printf("the scope of this License.\n");
+  printf("\n");
+  printf("  3. You may copy and distribute the Program (or a work based on it,\n");
+  printf("under Section 2) in object code or executable form under the terms of\n");
+  printf("Sections 1 and 2 above provided that you also do one of the following:\n");
+  printf("\n");
+  printf("    a) Accompany it with the complete corresponding machine-readable\n");
+  printf("    source code, which must be distributed under the terms of Sections\n");
+  printf("    1 and 2 above on a medium customarily used for software interchange; or,\n");
+  printf("\n");
+  printf("    b) Accompany it with a written offer, valid for at least three\n");
+  printf("    years, to give any third party, for a charge no more than your\n");
+  printf("    cost of physically performing source distribution, a complete\n");
+  printf("    machine-readable copy of the corresponding source code, to be\n");
+  printf("    distributed under the terms of Sections 1 and 2 above on a medium\n");
+  printf("    customarily used for software interchange; or,\n");
+  printf("\n");
+  printf("    c) Accompany it with the information you received as to the offer\n");
+  printf("    to distribute corresponding source code.  (This alternative is\n");
+  printf("    allowed only for noncommercial distribution and only if you\n");
+  printf("    received the program in object code or executable form with such\n");
+  printf("    an offer, in accord with Subsection b above.)\n");
+  printf("\n");
+  printf("The source code for a work means the preferred form of the work for\n");
+  printf("making modifications to it.  For an executable work, complete source\n");
+  printf("code means all the source code for all modules it contains, plus any\n");
+  printf("associated interface definition files, plus the scripts used to\n");
+  printf("control compilation and installation of the executable.  However, as a\n");
+  printf("special exception, the source code distributed need not include\n");
+  printf("anything that is normally distributed (in either source or binary\n");
+  printf("form) with the major components (compiler, kernel, and so on) of the\n");
+  printf("operating system on which the executable runs, unless that component\n");
+  printf("itself accompanies the executable.\n");
+  printf("\n");
+  printf("If distribution of executable or object code is made by offering\n");
+  printf("access to copy from a designated place, then offering equivalent\n");
+  printf("access to copy the source code from the same place counts as\n");
+  printf("distribution of the source code, even though third parties are not\n");
+  printf("compelled to copy the source along with the object code.\n");
+  printf("\f\n");
+  printf("  4. You may not copy, modify, sublicense, or distribute the Program\n");
+  printf("except as expressly provided under this License.  Any attempt\n");
+  printf("otherwise to copy, modify, sublicense or distribute the Program is\n");
+  printf("void, and will automatically terminate your rights under this License.\n");
+  printf("However, parties who have received copies, or rights, from you under\n");
+  printf("this License will not have their licenses terminated so long as such\n");
+  printf("parties remain in full compliance.\n");
+  printf("\n");
+  printf("  5. You are not required to accept this License, since you have not\n");
+  printf("signed it.  However, nothing else grants you permission to modify or\n");
+  printf("distribute the Program or its derivative works.  These actions are\n");
+  printf("prohibited by law if you do not accept this License.  Therefore, by\n");
+  printf("modifying or distributing the Program (or any work based on the\n");
+  printf("Program), you indicate your acceptance of this License to do so, and\n");
+  printf("all its terms and conditions for copying, distributing or modifying\n");
+  printf("the Program or works based on it.\n");
+  printf("\n");
+  printf("  6. Each time you redistribute the Program (or any work based on the\n");
+  printf("Program), the recipient automatically receives a license from the\n");
+  printf("original licensor to copy, distribute or modify the Program subject to\n");
+  printf("these terms and conditions.  You may not impose any further\n");
+  printf("restrictions on the recipients' exercise of the rights granted herein.\n");
+  printf("You are not responsible for enforcing compliance by third parties to\n");
+  printf("this License.\n");
+  printf("\n");
+  printf("  7. If, as a consequence of a court judgment or allegation of patent\n");
+  printf("infringement or for any other reason (not limited to patent issues),\n");
+  printf("conditions are imposed on you (whether by court order, agreement or\n");
+  printf("otherwise) that contradict the conditions of this License, they do not\n");
+  printf("excuse you from the conditions of this License.  If you cannot\n");
+  printf("distribute so as to satisfy simultaneously your obligations under this\n");
+  printf("License and any other pertinent obligations, then as a consequence you\n");
+  printf("may not distribute the Program at all.  For example, if a patent\n");
+  printf("license would not permit royalty-free redistribution of the Program by\n");
+  printf("all those who receive copies directly or indirectly through you, then\n");
+  printf("the only way you could satisfy both it and this License would be to\n");
+  printf("refrain entirely from distribution of the Program.\n");
+  printf("\n");
+  printf("If any portion of this section is held invalid or unenforceable under\n");
+  printf("any particular circumstance, the balance of the section is intended to\n");
+  printf("apply and the section as a whole is intended to apply in other\n");
+  printf("circumstances.\n");
+  printf("\n");
+  printf("It is not the purpose of this section to induce you to infringe any\n");
+  printf("patents or other property right claims or to contest validity of any\n");
+  printf("such claims; this section has the sole purpose of protecting the\n");
+  printf("integrity of the free software distribution system, which is\n");
+  printf("implemented by public license practices.  Many people have made\n");
+  printf("generous contributions to the wide range of software distributed\n");
+  printf("through that system in reliance on consistent application of that\n");
+  printf("system; it is up to the author/donor to decide if he or she is willing\n");
+  printf("to distribute software through any other system and a licensee cannot\n");
+  printf("impose that choice.\n");
+  printf("\n");
+  printf("This section is intended to make thoroughly clear what is believed to\n");
+  printf("be a consequence of the rest of this License.\n");
+  printf("\f\n");
+  printf("  8. If the distribution and/or use of the Program is restricted in\n");
+  printf("certain countries either by patents or by copyrighted interfaces, the\n");
+  printf("original copyright holder who places the Program under this License\n");
+  printf("may add an explicit geographical distribution limitation excluding\n");
+  printf("those countries, so that distribution is permitted only in or among\n");
+  printf("countries not thus excluded.  In such case, this License incorporates\n");
+  printf("the limitation as if written in the body of this License.\n");
+  printf("\n");
+  printf("  9. The Free Software Foundation may publish revised and/or new versions\n");
+  printf("of the General Public License from time to time.  Such new versions will\n");
+  printf("be similar in spirit to the present package_version, but may differ in detail to\n");
+  printf("address new problems or concerns.\n");
+  printf("\n");
+  printf("Each package_version is given a distinguishing package_version number.  If the Program\n");
+  printf("specifies a package_version number of this License which applies to it and \"any\n");
+  printf("later package_version\", you have the option of following the terms and conditions\n");
+  printf("either of that package_version or of any later package_version published by the Free\n");
+  printf("Software Foundation.  If the Program does not specify a package_version number of\n");
+  printf("this License, you may choose any package_version ever published by the Free Software\n");
+  printf("Foundation.\n");
+  printf("\n");
+  printf("  10. If you wish to incorporate parts of the Program into other free\n");
+  printf("programs whose distribution conditions are different, write to the author\n");
+  printf("to ask for permission.  For software which is copyrighted by the Free\n");
+  printf("Software Foundation, write to the Free Software Foundation; we sometimes\n");
+  printf("make exceptions for this.  Our decision will be guided by the two goals\n");
+  printf("of preserving the free status of all derivatives of our free software and\n");
+  printf("of promoting the sharing and reuse of software generally.\n");
+  printf("\n");
+  printf("                         NO WARRANTY\n");
+  printf("\n");
+  printf("  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n");
+  printf("FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\n");
+  printf("OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n");
+  printf("PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n");
+  printf("OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n");
+  printf("MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\n");
+  printf("TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\n");
+  printf("PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n");
+  printf("REPAIR OR CORRECTION.\n");
+  printf("\n");
+  printf("  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n");
+  printf("WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n");
+  printf("REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n");
+  printf("INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n");
+  printf("OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n");
+  printf("TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n");
+  printf("YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n");
+  printf("PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n");
+  printf("POSSIBILITY OF SUCH DAMAGES.\n");
+  printf("\n");
+  printf("                  END OF TERMS AND CONDITIONS\n");
+}
diff --git a/src/non_gui/print_data_for_directional_couplers.c b/src/non_gui/print_data_for_directional_couplers.c
new file mode 100644 (file)
index 0000000..b2294cb
--- /dev/null
@@ -0,0 +1,50 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#include "definitions.h"
+
+/* The following simple function just prints data into a file, or if
+fp-stout, to the screen. Depending on whether the dielectric is mixed or
+not, it is or is not possible to quote a value for Er. If Er is passed
+as a mumber < 0, this function interprets that as meaning that the
+dielectric is mixed, and says 'Er= MIXED' */
+
+void print_data_for_directional_couplers(struct transmission_line_properties data, FILE *where_to_print_fp, char *inputfile_name)
+{
+  if(data.display==Z_ODD_SINGLE_DIELECTRIC)
+  {
+    if(data.verbose_level ==1)
+      fprintf(where_to_print_fp,"%s 3 Er_odd= %6.2f Er_even= %s Zodd= %7.3f Zeven= %s Zo= %s Zdiff= %6.2f Zcomm= %s Ohms VERSION=%s\n",inputfile_name,data.Er_odd, "??????", data.Zodd, "??????","??????",data.Zdiff, "??????", PACKAGE_VERSION);
+    else if (data.verbose_level >=2)
+      fprintf(where_to_print_fp,"%s 3 Er_odd= %6.2f Er_even= %s Zodd= %7.3f Zeven= %s Zo= %s Zdiff= %6.2f Zcomm= %s Ohms VERSION=%s\n",inputfile_name,data.Er_odd, "??????", data.Zodd, "??????","??????",data.Zdiff, "??????", PACKAGE_VERSION);
+  }
+  else if(data.display == Z_EVEN_SINGLE_DIELECTRIC)
+  {
+    if(data.verbose_level ==1)
+      fprintf(where_to_print_fp,"%s 3 Er_odd= %7.3f Er_even= %7.3f Zodd= %7.3f Zeven= %7.3f Zo= %7.3f Zdiff= %7.3f Zcomm= %7.3f Ohms VERSION=%s\n",inputfile_name,data.Er_odd, data.Er_even, data.Zodd, data.Zeven, data.Zo,data.Zdiff, data.Zcomm, PACKAGE_VERSION);
+    else if (data.verbose_level >=2)
+      fprintf(where_to_print_fp,"%s 3 Er_odd= %7.3f Er_even= %7.3f Zodd= %7.3f Zeven= %7.3f Zo= %7.3f Zdiff= %7.3f Zcomm= %7.3f Ohms VERSION=%s\n",inputfile_name,data.Er_odd, data.Er_even, data.Zodd, data.Zeven, data.Zo,data.Zdiff, data.Zcomm, PACKAGE_VERSION);
+  }
+}
diff --git a/src/non_gui/print_data_for_two_conductor_lines.c b/src/non_gui/print_data_for_two_conductor_lines.c
new file mode 100644 (file)
index 0000000..fb0197f
--- /dev/null
@@ -0,0 +1,48 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#include "definitions.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+/* The following simple function just prints data into a file, or if
+fp-stout, to the screen. Depending on whether the dielectric is mixed or
+not, it is or is not possible to quote a value for Er. If Er is passed
+as a mumber < 0, this function interprets that as meaning that the
+dielectric is mixed, and says 'Er= MIXED' */
+
+void print_data_for_two_conductor_lines(struct transmission_line_properties data, FILE *where_to_print_fp, char *inputfile_name)
+{
+  if(data.verbose_level <2)
+    fprintf(where_to_print_fp,"%s 2 Er= %5.2f Zo= %7.3f Ohms C= %6.1f pF/m L= %6.1f nH/m v= %.4g m/s v_f= %.3f VERSION= %s\n",inputfile_name,data.Er, data.Zo,data.C*1e12, data.L_vacuum*1e9, data.velocity,data.velocity_factor,PACKAGE_VERSION);
+  else
+    fprintf(where_to_print_fp,"%s 2 Er= %16.13f Zo= %16.13f Ohms C= %16.13f pF/m L= %16.13f nH/m v= %16.13g m/s v_f= %16.13f VERSION= %s\n",inputfile_name,data.Er, data.Zo,data.C*1e12, data.L_vacuum*1e9, data.velocity,data.velocity_factor,PACKAGE_VERSION);
+}
diff --git a/src/non_gui/read_bitmap_file_headers.c b/src/non_gui/read_bitmap_file_headers.c
new file mode 100644 (file)
index 0000000..a766d72
--- /dev/null
@@ -0,0 +1,205 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+unsigned char *bmp_buff;
+
+/* We make the bitmap header public, as we write it back 
+later, when saving bmp files. It saves a lot of hassle,
+just writing what we read back, rather than correctly 
+calculating all the data in the header correctly */
+
+/* #define DEBUG */
+
+#define BITMAP_HEADER_SIZE 0x36 /* 54 */
+
+void read_bitmap_file_headers(char *filename, int *offset, size_t *size, int *width, int *height)
+{
+   FILE *fp;
+
+   struct Bitmap_File_Head_Struct Bitmap_File_Head;
+   struct Bitmap_Head_Struct Bitmap_Head;
+   int ColormapSize, Maps;
+   int length_of_file; /* Appently Photoshop versions < 7.01
+                      don't write this into Bitmap_Head.biSizeIm
+                      so it causes a problem. So we will work out
+                      the length by seeking to the end of the file
+                      and finding the position of the file 
+                      pointer */
+
+   bmp_buff=ustring(0,BITMAP_HEADER_SIZE);
+   if(strcmp(filename,"-")==0)
+   {
+      fp=stdin;   
+   }
+   else  
+      fp=fopen(filename,"rb");
+
+   if(fp==NULL)
+   {
+      fprintf(stderr,"cannot open %s\n", filename);
+      exit_with_msg_and_exit_code("",CANT_OPEN_FILE_FOR_READING);
+   }
+
+   /* deternine the length of the file, as its not always 
+   written into the bitmap. I thought it needed to be, but
+   apparently it does not and photoshop versions < 7.01 
+   don't do it. */
+   if( fseek(fp, 0, SEEK_END)  == -1)
+   {
+     fprintf(stderr," Can't seek to the end of the file in read_bitmap_file_headers.c\n");
+     exit(FSEEK_FAILURE);
+   }
+   if( (length_of_file=ftell(fp))  == -1)
+     exit_with_msg_and_exit_code("Can't find length of file in read_bitmap_file_headers.c",FTELL_FAILURE);
+
+   if( (fseek(fp, 0, SEEK_SET) ) == -1)
+   {
+     fprintf(stderr," Can't seek to the beggining of the file in read_bitmap_file_headers.c\n");
+     exit(FSEEK_FAILURE);
+   }
+   /* Read the .bmp file header into a bmp_buff */
+   if (!(fread(bmp_buff, 1,BITMAP_HEADER_SIZE,fp))||(strncmp((char *) bmp_buff,"BM",2)))
+   {
+      fprintf(stderr,"%s is not a valid BMP file\n", filename);
+      exit_with_msg_and_exit_code("",NOT_A_VALID_BITMAP_FILE);
+   }
+
+/* On most machines, sizeof(short)==2 and sizeof(int)==4. This is so no matter
+if the machine is 32 or 64 bis. An exception is the Cray Y-MP, which has  
+sizeof(short)=8
+sizeof(int)=8
+sizeof(long)=8.
+
+In this case, it is much more difficult to write the header for the bitmap. But in
+the aid of portability, this is done. So these is a section of code that will work
+even if sizeof(short)=8 and sizeof(int)=8. See below for that. */
+
+
+   /* Read the bmp_buff into the two structures we want */
+
+   Bitmap_File_Head.zzMagic[0x0] = bmp_buff[0];
+   Bitmap_File_Head.zzMagic[0x1] = bmp_buff[1];
+   Bitmap_File_Head.bfSize = bmp_buff[0x2] + ((bmp_buff[3] + ((bmp_buff[4] + (bmp_buff[5] << 8)) << 8)) <<8);
+   Bitmap_File_Head.zzHotX = bmp_buff[0x6] + (bmp_buff[7] << 8);
+   Bitmap_File_Head.zzHotY = bmp_buff[0x8] + (bmp_buff[0x09] << 8);
+   Bitmap_File_Head.bfOffs = bmp_buff[0x0a] + ((bmp_buff[0xb] + ((bmp_buff[0xc] + (bmp_buff[0x0d] << 8)) << 8)) <<8);
+   Bitmap_File_Head.biSize = bmp_buff[0x0E] + ((bmp_buff[0x0f] + ((bmp_buff[0x10] + (bmp_buff[0x11] << 8)) << 8)) <<8);
+#ifdef DEBUG
+   printf("Bitmap_File_Head.bfSize = %d \n",Bitmap_File_Head.bfSize);
+   printf("Bitmap_File_Head.zzHotX = %d\n",Bitmap_File_Head.zzHotX);
+   printf("Bitmap_File_Head.zzHotY = %d\n",Bitmap_File_Head.zzHotY);
+   printf("Bitmap_File_Head.bfOffs = %d\n",Bitmap_File_Head.bfOffs);
+   printf("Bitmap_File_Head.biSize = %d\n\n",Bitmap_File_Head.biSize); 
+#endif
+
+   Bitmap_Head.biWidth=bmp_buff[0x12] + ((bmp_buff[0x13] + ((bmp_buff[0x14] + (bmp_buff[0x15] << 8)) << 8)) <<8);
+   Bitmap_Head.biHeight=bmp_buff[0x16] + ((bmp_buff[0x17] + ((bmp_buff[0x18] + (bmp_buff[0x19] << 8)) << 8)) <<8);
+   Bitmap_Head.biPlanes = bmp_buff[0x1A] + (bmp_buff[0x1b] << 8);
+   Bitmap_Head.biBitCnt = bmp_buff[0x1C] + (bmp_buff[0x1d] << 8);
+   Bitmap_Head.biCompr= bmp_buff[0x1E] + ((bmp_buff[0x1f] + ((bmp_buff[0x20] + (bmp_buff[0x21] << 8)) << 8)) <<8);
+   Bitmap_Head.biSizeIm=bmp_buff[0x22] + ((bmp_buff[0x23] + ((bmp_buff[0x24] + (bmp_buff[0x25] << 8)) << 8)) <<8);
+   /* I thought the length of the image was always stored in Bitmap_Head.biSizeIm, but 
+   this appears not to be so. Hence it is now calculated from the length of the file
+   */ 
+   Bitmap_Head.biSizeIm=length_of_file-BITMAP_HEADER_SIZE;
+   Bitmap_Head.biXPels  = bmp_buff[0x26] + ((bmp_buff[0x27] + ((bmp_buff[0x28] + (bmp_buff[0x29] << 8)) << 8)) <<8);
+   Bitmap_Head.biYPels= bmp_buff[0x2A] + ((bmp_buff[0x2b] + ((bmp_buff[0x2c] + (bmp_buff[0x2d] << 8)) << 8)) <<8);
+   Bitmap_Head.biClrUsed = bmp_buff[0x2E] + ((bmp_buff[0x2f] + ((bmp_buff[0x30] + (bmp_buff[0x31] << 8)) << 8)) <<8);
+   Bitmap_Head.biClrImp  = bmp_buff[0x32] + ((bmp_buff[0x33] + ((bmp_buff[0x34] + (bmp_buff[0x35] << 8)) << 8)) <<8);
+
+   Maps=4;
+   if(Bitmap_Head.biBitCnt!=24)
+   {
+      fprintf(stderr,"Sorry, the .bmp bitmap must have 24 bits per colour,\n");
+      fprintf(stderr,"but it has %d bits. Resave the \n",Bitmap_Head.biBitCnt);
+      fprintf(stderr,"image using 24-bit colour\n");
+      exit_with_msg_and_exit_code("mage using 24-bit colour",BITMAP_NOT_24_BIT);
+   }
+#ifdef DEBUG
+   printf("Bitmap_Head.biWidth   =%d =0x%x\n",Bitmap_Head.biWidth,Bitmap_Head.biWidth);
+   printf("Bitmap_Head.biHeight  =%d =0x%x\n",Bitmap_Head.biHeight,Bitmap_Head.biHeight);
+   printf("Bitmap_Head.biPlanes  =%d =0x%x\n",Bitmap_Head.biPlanes,Bitmap_Head.biPlanes);
+   printf("Bitmap_Head.biBitCnt  =%d =0x%x\n",Bitmap_Head.biBitCnt,Bitmap_Head.biBitCnt);
+   printf("Bitmap_Head.biCompr   =%d =0x%x\n",Bitmap_Head.biCompr,Bitmap_Head.biCompr );
+   printf("Bitmap_Head.biSizeIm  =%d =0x%x\n",Bitmap_Head.biSizeIm,Bitmap_Head.biSizeIm);
+   printf("size by ftell=%d\n", length_of_file);
+   printf("Bitmap_Head.biXPels   =%d =0x%x\n",Bitmap_Head.biXPels,Bitmap_Head.biXPels);
+   printf("Bitmap_Head.biYPels   =%d =0x%x\n",Bitmap_Head.biYPels,Bitmap_Head.biYPels);
+   printf("Bitmap_Head.biClrUsed =%d =0x%x\n",Bitmap_Head.biClrUsed,Bitmap_Head.biClrUsed);
+   printf("Bitmap_Head.biClrImp  =%d =0x%x\n",Bitmap_Head.biClrImp,Bitmap_Head.biClrImp);
+#endif
+   ColormapSize = (Bitmap_File_Head.bfOffs - Bitmap_File_Head.biSize - 14) / Maps;
+
+   if ((Bitmap_Head.biClrUsed == 0) && (Bitmap_Head.biBitCnt <= 8))
+          Bitmap_Head.biClrUsed = ColormapSize;
+
+   /* Sanity checks */
+
+   if (Bitmap_Head.biHeight == 0 || Bitmap_Head.biWidth == 0) 
+   {
+      fprintf(stderr,"error reading BMP file header of %s - width or height is zero\n",filename);
+      exit_with_msg_and_exit_code("",WIDTH_OR_HEIGHT_ZERO_IN_BITMAP);
+   } 
+   if (Bitmap_Head.biPlanes != 1) 
+   {
+      fprintf(stderr,"error reading BMP file header of %s - bitplanes not equal to 1\n",filename);
+      exit_with_msg_and_exit_code("",BITPLANES_NOT_1_IN_BITMAP);
+   }
+   if (ColormapSize > 256 || Bitmap_Head.biClrUsed > 256)
+   {
+      fprintf(stderr,"error reading BMP file header of %s - colourmap size error\n",filename);
+      exit_with_msg_and_exit_code("",COLOURMAP_GREATER_THAN_256);
+   }
+   /* Windows and OS/2 declare filler so that rows are a multiple of
+      word length (32 bits == 4 bytes)
+   */
+
+   /*fclose(fp); I'm not sure if this should be closed or not. Why did I ??? */
+   *width=Bitmap_Head.biWidth;
+   *height=Bitmap_Head.biHeight;
+   *offset=Bitmap_File_Head.bfOffs;
+   *size=Bitmap_Head.biSizeIm;
+   if( *size < 3 * (*width) * (*height) )
+   {
+     fprintf(stderr,"Internal error in read_bitmap_file_headers.c\n"); 
+     exit(1);
+  }
+}
diff --git a/src/non_gui/readbin.c b/src/non_gui/readbin.c
new file mode 100644 (file)
index 0000000..b819abd
--- /dev/null
@@ -0,0 +1,98 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+#ifdef WINDOWS
+#pragma hrdstop
+#include <condefs.h>
+#endif
+
+int main(int argc, char **argv)
+{
+  FILE *fp;
+  double *data, x;
+  int q;
+  int one=0, zero=0, minusone=0, other=0, length=0, i, reverse=0;
+  int metal_er=0;
+  while((q=get_options(argc,argv,"Cr")) != -1)
+  switch (q)
+  {
+    case 'C':
+      print_copyright("2002");
+      exit_with_msg_and_exit_code("",OKAY);
+    break;
+    case 'r':
+      reverse=1;
+    break;
+    case '?':
+      usage_readbin();
+  }
+  if(argc-my_optind == 1)
+  {
+    fp=fopen(argv[my_optind],"rb");
+    if (fp==NULL)
+    {
+      fprintf(stderr,"Can't open %s for reading\n",argv[my_optind]);
+      exit_with_msg_and_exit_code("Can't open file for reading",CANT_OPEN_FILE_FOR_READING);
+    }
+    if (fseek(fp,0,SEEK_END) != 0)
+      exit_with_msg_and_exit_code("failed to fseek in readbin.c #1", FSEEK_FAILURE);
+    length=ftell(fp);
+    printf("file length=%d bytes. There are %ld pixels\n", length, (long)
+    length/sizeof(double));
+    data=dvector(0,length);
+    if( fseek(fp,0,SEEK_SET) != 0)
+      exit_with_msg_and_exit_code("failed to fseek in readbin.c #2", FSEEK_FAILURE);
+
+    if (fread(&(data[0]), (size_t) length, (size_t) 1,fp) != 1)
+      exit_with_msg_and_exit_code("can't read all fo the file in readbin.c", CANT_READ_ALL_OF_FILE);
+    for(i=0;i<length/sizeof(double);++i)
+    {
+       x=data[i];
+       if(reverse==1)
+        byteswap_doubles(&x);
+       if (fabs(x) <= 1e-15)
+         zero++;
+       else if ( x > 0.9999999999 && x < 1.000000000000001)
+         one++;
+       else if (x < -0.9999999999 && x > -1.000000000000001)
+         minusone++;
+       else if (x == METAL_ER)
+        metal_er++;
+       else 
+         other++;
+    }
+    free_dvector(data,0L,(long) length);
+  }
+  else
+    usage_readbin();
+  return(OKAY);
+}
diff --git a/src/non_gui/set_data_to_sensible_starting_values.c b/src/non_gui/set_data_to_sensible_starting_values.c
new file mode 100644 (file)
index 0000000..1c5e172
--- /dev/null
@@ -0,0 +1,57 @@
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+
+#include "definitions.h"
+
+
+void set_data_to_sensible_starting_values(struct transmission_line_properties *data)
+{
+  /* Most of the values below are set to -3. This is so when they are unchanged,
+  its easy to pick them up in a debugger. Others are set to important values
+  rather than -3 */
+  data->dielectrics_in_bitmap=0;
+  data->dielectrics_on_command_line=0;
+  data->r=1.9; /* For now at least, this is still global, so this has no effect XXX */
+  data->image_fiddle_factor=IMAGE_FIDDLE_FACTOR;
+  data->cutoff=0.0001;
+  data->avoid_use_of_fast_convergence_methodQ=FALSE;
+  data->the_single_Er=1.0;
+  data->Er=1.0;
+  data->found_this_dielectric=1.0;
+  data->couplerQ=FALSE;
+  data->verbose_level=0;
+  data->should_binary_data_be_written_tooQ=FALSE;
+  data->write_binary_field_imagesQ=TRUE;
+  data->write_bitmap_field_imagesQ=TRUE;
+
+  data->Lodd_vacuum=-3; data->Leven_vacuum=-3;
+  data->L_vacuum=-3; data->Codd_vacuum=-3;
+  data->Codd_vacuum=-3; data->Ceven_vacuum=-3;
+  data->Lodd_vacuum=-3; data->Leven_vacuum=-3; 
+  data->display=-3;
+  data->Zo=-3 ; data->Zo_vacuum=-3 ; data->Zodd_vacuum=-3; 
+  data->Zodd_vacuum=-3; data->Zeven_vacuum=-3; 
+  data->Zeven_vacuum=-3; data->Zdiff=-3; data->Zdiff_vacuum=-3; 
+  data->Zcomm=-3; data->Zcomm_vacuum=-3;
+  data->velocity=-3; data->velocity_factor=-3; 
+  data->relative_permittivity=-3;
+}
diff --git a/src/non_gui/set_oddity_from_Greens_paper.c b/src/non_gui/set_oddity_from_Greens_paper.c
new file mode 100644 (file)
index 0000000..6d05c3f
--- /dev/null
@@ -0,0 +1,191 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* The function setup_arrays sets the type of a pixel to be dielectric, 
+or metal. This routines refines that, setting the type of a pixel to be
+some number between 1 and 28 according to where it is located, and what 
+is around it. See Green paper to understand what they mean */
+
+#include "config.h"
+#include "definitions.h"
+#include "exit_codes.h"
+
+extern int width, height;
+extern unsigned char **cell_type, **oddity;
+extern double **Er;
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+void set_oddity_value(void) 
+{
+  int i, j;
+  double er, ERa, ERb, ERl, ERr;
+  int cl, cr, ca, cb;
+  unsigned char c; 
+
+  /* Its easier to set the endge values first, as it
+  reduces the amount of checking needed in the main body.
+  There are only 11 cases here - 3 types of metal, 
+  the four corners, and the four sides */
+
+  for(i=0;i<width; ++i) {
+    for(j=0;j<height;++j) {  
+
+      oddity[i][j]=UNDEFINED_ODDITY;  /* Stick it to some underfined status  */
+
+      c=cell_type[i][j];   /* Cell type at point (i,j) */
+
+
+      /* The 3 metal cases can be quickly checked and the 
+      oddity value assigned to a fixed value depending on
+      whether it's -1, 0 or +1 V */
+
+      if(c <= CONDUCTOR_PLUS_ONE_V ) /* a metal */
+       oddity[i][j]=c;    
+
+
+      /* Now do the 4 courners */
+      else if( (i == 0) && (j ==  height-1)  ) 
+       oddity[i][j]=BOTTOM_LEFT_CORNER;
+
+      else if ( (i == width-1) && (j == height-1)  )  
+       oddity[i][j]=BOTTOM_RIGHT_CORNER;
+
+      else if( (i == 0) && (j == 0) ) 
+       oddity[i][j]=TOP_LEFT_CORNER;
+
+      else if( (i == width-1) && (j == 0)  )
+       oddity[i][j]=TOP_RIGHT_CORNER;
+
+      /* Now the four edges */ 
+      else if ( i == 0 )
+       oddity[i][j]=ORDINARY_POINT_LEFT_EDGE;
+
+      else if ( j == 0 ) 
+       oddity[i][j]=ORDINARY_POINT_TOP_EDGE;
+
+      else if ( j == height-1) 
+       oddity[i][j]=ORDINARY_POINT_BOTTOM_EDGE;
+
+      else if ( i == width-1 ) 
+       oddity[i][j]=ORDINARY_POINT_RIGHT_EDGE;
+
+
+      else if ( (i == 0 || i == width-1 || j == 0 || j == height-1 ) && (oddity[i][j]==UNDEFINED_ODDITY)) {
+       fprintf(stderr,"Internal error: one of the edge points (%d,%d) is still undefined\n",i,j);
+       fprintf(stderr, "ZZZZZZZZZZZZZ width=%d height=%d\n", width, height);
+       fprintf(stderr,"Error set_oddity_value.c\n");
+       exit(INTERNAL_ERROR);
+      }
+    } /* end of for(j=0;j<height-0;++j) { */
+  } /* end of for(i=0;i<width-0; ++i) { */
+  /* With the oddity values of all the edges now know, the centre
+  values can be attempted */
+
+  for(i=1;i<width-1; ++i) {
+    for(j=1;j<height-1;++j) {  
+
+      c=cell_type[i][j];   /* Cell type at point (i,j) */
+      cl=cell_type[i-1][j];  /* Cell type to left of point (i,j) */
+      cr=cell_type[i+1][j];  /* Cell type to right of point (i,j) */
+      ca=cell_type[i][j-1];  /* Cell type above point (i,j) */
+      cb=cell_type[i][j+1];  /* Cell type below point (i,j) */
+
+      ERa=Er[i][j-1];
+      ERb=Er[i][j+1];
+      ERl=Er[i-1][j];
+      ERr=Er[i+1][j];
+      er=Er[i][j];
+
+
+      /* If the conductor is at a fixed voltage, it must stay there
+      so there is nothing to do with it */
+
+      if(c == CONDUCTOR_ZERO_V )
+        oddity[i][j] = CONDUCTOR_ZERO_V;
+
+      else if(c== CONDUCTOR_PLUS_ONE_V)
+        oddity[i][j] = CONDUCTOR_PLUS_ONE_V;
+
+      else if(c == CONDUCTOR_MINUS_ONE_V )
+        oddity[i][j] = CONDUCTOR_MINUS_ONE_V; 
+
+      else if ( cr <= CONDUCTOR_PLUS_ONE_V && cb<= CONDUCTOR_PLUS_ONE_V)
+        oddity[i][j]= METAL_BELOW_AND_RIGHT;
+
+      else if ( cr <= CONDUCTOR_PLUS_ONE_V && ca<= CONDUCTOR_PLUS_ONE_V)
+        oddity[i][j]= METAL_ABOVE_AND_RIGHT;
+
+      else if ( cl <= CONDUCTOR_PLUS_ONE_V && cb<= CONDUCTOR_PLUS_ONE_V)
+        oddity[i][j]= METAL_BELOW_AND_LEFT;
+
+      else if ( cl <= CONDUCTOR_PLUS_ONE_V && ca<= CONDUCTOR_PLUS_ONE_V)
+        oddity[i][j]= METAL_ABOVE_AND_LEFT;
+
+      else if ( ca <= CONDUCTOR_PLUS_ONE_V )
+       oddity[i][j]= METAL_ABOVE;
+
+      else if ( cb <= CONDUCTOR_PLUS_ONE_V )
+       oddity[i][j]= METAL_BELOW;
+
+      else if ( cl <= CONDUCTOR_PLUS_ONE_V )
+       oddity[i][j]= METAL_LEFT;
+
+      else if ( cr <= CONDUCTOR_PLUS_ONE_V )
+       oddity[i][j]= METAL_RIGHT;
+
+      else if ( ERb != ERa)
+       oddity[i][j]= DIFFERENT_DIELECTRIC_VERTICALLY; 
+      else if ( ERl != ERr )
+       oddity[i][j]= DIFFERENT_DIELECTRIC_HORIZONTALLY;      
+/*
+      else if ( ERa != er  && ERr != er)
+       oddity[i][j]= DIFFERENT_DIELECTRIC_ABOVE_AND_RIGHT; 
+
+      else if ( ERa != er  && ERl != er)
+       oddity[i][j]= DIFFERENT_DIELECTRIC_ABOVE_AND_LEFT; 
+
+      else if ( ERb != er  && ERl != er)
+       oddity[i][j]= DIFFERENT_DIELECTRIC_BELOW_AND_LEFT; 
+
+      else if ( ERa != er )
+       oddity[i][j]= DIFFERENT_DIELECTRIC_ABOVE; 
+
+      else if ( ERb != er )
+       oddity[i][j]= DIFFERENT_DIELECTRIC_BELOW; 
+      else if ( ERl != er )
+       oddity[i][j]= DIFFERENT_DIELECTRIC_LEFT; 
+
+      else if ( ERr != er )
+       oddity[i][j]= DIFFERENT_DIELECTRIC_RIGHT; 
+*/
+      else
+       oddity[i][j]= ORDINARY_INTERIOR_POINT;
+    }/* end of for i=0 to width-1 */
+  } /* end of for j= 0 to height-1 */
+}
+
diff --git a/src/non_gui/setup_arrays.c b/src/non_gui/setup_arrays.c
new file mode 100644 (file)
index 0000000..0f17b84
--- /dev/null
@@ -0,0 +1,232 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+#include "Erdata.h"
+
+/* We need to set up the permittivity and cell_type arrays. A
+complication arrises if a diaectric is found, that is not vacuum. 
+If it is the only dielectric found, we calaculate C by saying C=C*Er. If
+there are more than one dielectric, we need to calculate it twice. */
+
+extern struct pixels Er_in_bitmap[MAX_DIFFERENT_PERMITTIVITIES];
+extern struct pixels Er_on_command_line[MAX_DIFFERENT_PERMITTIVITIES];
+extern int width, height;
+
+extern double **Vij, **Er;
+extern unsigned char *image_data;
+extern unsigned char **cell_type;
+extern int non_vacuum_found;
+extern int coupler;
+extern char *inputfile_name;
+
+void setup_arrays(struct transmission_line_properties *data)
+{
+   struct pixels pixels_found;
+   int conductor_found;
+   int conductors = 0;
+   int w,h, offset=-3, colour_mixture, i, z;
+   unsigned char red, green, blue;
+   int dielectric_found;
+   int new_colour_in_image;
+   data->dielectrics_in_bitmap=0;
+   pixels_found.red=0;
+   pixels_found.green=0;
+   pixels_found.blue=0;
+   pixels_found.white=0; 
+   pixels_found.other_colour=0; 
+
+   for(h=0;h<height;h++)
+   {
+      for (w=0; w<width;++w)
+      {
+        cell_type[w][height-1-h]=0;
+         dielectric_found=FALSE;
+         conductor_found=FALSE;
+        offset+=3;
+        if((w==0) && (offset%4!=0) && (h!=0)) 
+           offset++; 
+        if((w==0) && (offset%4!=0) && (h!=0)) 
+           offset++; 
+        if((w==0) && (offset%4!=0) && (h!=0)) 
+           offset++; 
+        blue=image_data[offset];
+        green=image_data[offset+1];
+        red=image_data[offset+2];
+        colour_mixture=256*256*red+256*green+blue;
+        if( colour_mixture == 0xff0000 ) /* +1V red */
+        {
+           cell_type[w][height-1-h]=CONDUCTOR_PLUS_ONE_V;
+           Vij[w][height-1-h]=1.0;
+           Er[w][height-1-h]=METAL_ER;
+           conductor_found=TRUE;
+           pixels_found.red++;
+         }
+        else if( colour_mixture == 0x00ff00 ) /* 0v green */
+        {
+           cell_type[w][height-1-h]=CONDUCTOR_ZERO_V;
+           Vij[w][height-1-h]=0.0;
+           conductor_found=TRUE;
+           pixels_found.green++;
+           Er[w][height-1-h]=METAL_ER;
+         }
+        else if( colour_mixture == 0x0000ff ) /* -1V blue */
+        {
+           cell_type[w][height-1-h]=CONDUCTOR_MINUS_ONE_V;
+           Vij[w][height-1-h]=-1.0;
+           conductor_found=TRUE;
+           pixels_found.blue++;
+           Er[w][height-1-h]=METAL_ER;
+           coupler=TRUE;
+           data->couplerQ=TRUE;
+         }
+        else /* A dielectric */
+        {
+           if(colour_mixture == 0xffffff ) /* White */
+              pixels_found.white++; /* Vacuum */
+           else
+              pixels_found.other_colour++; /* Some other dielectric */
+           cell_type[w][height-1-h]=DIELECTRIC;
+           Vij[w][height-1-h]=0.0;    /* XXXXXXXXXXx */
+           for(z=0;z<NUMBER_OF_DIELECTRICS_DEFINED;++z)
+           {
+              /* Check to see if the colour is one of the 10 known
+              about, without any need to define on the command line
+              */
+              if (colour_mixture == colours[z])
+              {
+                 Er[w][height-1-h]=Ers[z];
+                 dielectric_found=TRUE;
+                 if(z != 0)
+                 {
+                    non_vacuum_found=TRUE;
+                    data->found_this_dielectric=Ers[z];
+                  }
+               }
+            }
+            for(i=0;i<data->dielectrics_on_command_line;++i)
+            {
+              if (Er_on_command_line[i].other_colour ==  colour_mixture)
+              {
+                 Er[w][height-1-h]=Er_on_command_line[i].epsilon;
+                 dielectric_found=TRUE;
+                 data->found_this_dielectric=Er_on_command_line[i].epsilon;
+                 non_vacuum_found=TRUE;
+               }
+            }
+         }
+         if((dielectric_found == FALSE) && (conductor_found==FALSE))
+         {
+            fprintf(stderr,"Error#7: The colour r=0x%x g=0x%x b=0x%x (0x%02x%02x%02x) exists at pixel %d,%d.\n",red,green,blue,red,green,blue,w,h);
+           fprintf(stderr,"However, atlc does not know how to interpret this colour. This is not a\n");
+           fprintf(stderr,"conductor (pure red, green or blue), nor is it one of the %d dielectrics that\n",NUMBER_OF_DIELECTRICS_DEFINED);
+           fprintf(stderr,"are predefined in Erdata.h, nor is a corresponding dielectric constant defined\n");
+           fprintf(stderr,"on the command line with the -d option. Sometimes this occurs when a\n");
+           fprintf(stderr,"graphics package is used to make the bitmap, but it performs some form of\n");
+           fprintf(stderr,"anti-aliasing or smooting. If this is the case, redraw the image turning such\n"); 
+           fprintf(stderr,"options off. If this is not the case then re-run atlc adding the -d option\n");
+           fprintf(stderr,"to define the relative permittivity of the dielectric\n\n");
+           fprintf(stderr,"e.g. atlc -d %02x%02x%02x=1.9 %s  \n\n",red,green,blue, inputfile_name);
+           fprintf(stderr,"if this colour has a permittivity of 1.9. If there are multiple undefined\n");
+           fprintf(stderr,"dielectrics, then there will need to be multiple copies of the -d option given.\n");
+           exit_with_msg_and_exit_code("",UNDEFINED_COLOUR_IN_BITMAP);
+         }
+         /* We need to keep a record of the number of dielectrics in the image, 
+         and determine if they are defined on the command line, or if they are
+         defined on in the header file. */ 
+         if (dielectric_found == TRUE) 
+         {
+           new_colour_in_image=TRUE;
+            for (i=0; i< data->dielectrics_in_bitmap; ++i)
+           {
+              if (Er_in_bitmap[i].other_colour == colour_mixture) /* a known colour */
+              {
+                 new_colour_in_image=FALSE;
+                 if(colour_mixture != 0xffffff)
+                 {
+                    non_vacuum_found=TRUE;
+                  }
+              }
+            } 
+           if(new_colour_in_image==TRUE)
+           {
+             (data->dielectrics_in_bitmap)++;
+             Er_in_bitmap[i].other_colour=colour_mixture;
+             Er_in_bitmap[i].red=red;
+             Er_in_bitmap[i].green=green;
+             Er_in_bitmap[i].blue=blue;
+             Er_in_bitmap[i].epsilon=Er[w][height-1-h];
+            }
+         } /* end of if dielctric found */ 
+      } /* end of for w */
+   } /*end of for h */
+   /* The following prints a lot of data that is generally not wanted
+   but is when finding statistics of performance etc. */
+   if(data->verbose_level >=3)
+   {
+     printf("Red (+1 V conductor) pixels found   =        %8d \n",pixels_found.red);
+     printf("Green (0 V conductor) pixels found  =        %8d \n",pixels_found.green);
+     printf("Blue  (-1 V conductor) pixels found =        %8d \n",pixels_found.blue);
+     printf("White (vacuum dielectric) pixels found =     %8d \n",pixels_found.white);
+     printf("Others (not vacuum dielectic) pixels found = %8d \n",pixels_found.other_colour);
+     printf("Width  =                                     %8d \n",width);
+     printf("Height =                                     %8d \n",height);
+     printf("Pixels =                                     %8d \n",width*height);
+     printf("Number of Dielectrics found =                %8d \n", data->dielectrics_in_bitmap);
+     data->non_metallic_pixels=width*height-pixels_found.red-pixels_found.green -pixels_found.blue;
+     printf("Number of non-metallic pixels =              %8d \n", data->non_metallic_pixels);
+     printf("filename =             %30s \n",inputfile_name);
+     if (pixels_found.red > 0 )
+       conductors+=1;  
+     if (pixels_found.green > 0 )
+       conductors+=1;  
+     if (pixels_found.blue > 0 )
+       conductors+=1;  
+     printf("Number of Conductors  = %d \n", conductors);
+   }
+   /* The following should not be necessary, but may be as a test */
+   /* I'd like to Miguel Berg for noticcing a servere bug, where the
+   indeces of w and h were transposed, leading to crashes on Windoze
+   XP */
+   for(h=0;h<height;h++)
+   {
+     for (w=0; w<width;++w)
+     {
+       if((Vij[w][h] > 1.0) || (Vij[w][h]<-1.0))
+       {
+         fprintf(stderr,"Sorry, something is wrong Vij[%d][%d]=%f in %s %d\n",w,h,Vij[w][h], __FILE__,__LINE__);
+        exit_with_msg_and_exit_code("Exiting ....",VOLTAGE_OUT_OF_RANGE);
+       }
+     }
+   } 
+  /* Check two conductors and not next to each other, creating a short */
+  check_for_shorts();
+} /* end of function */
diff --git a/src/non_gui/swap_conductor_voltages.c b/src/non_gui/swap_conductor_voltages.c
new file mode 100644 (file)
index 0000000..ba84d4e
--- /dev/null
@@ -0,0 +1,61 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+/* When calculationg the properties of couplers it is necessary to swap
+around the voltages on the conductors. First we consider the voltages as
+present, which will be positive and negative. Next the negative pixels
+must be changed to positive, to calculate the even mode impedance. This
+routine does the swapping around, based on the value of the parameter
+oddity, which will be set to CONDUCTOR_PLUS_ONE_V or
+
+CONDUCTOR_MINUS_ONE_V in definitions.h */
+
+#include "config.h"
+
+#include "definitions.h"
+
+extern int width, height;
+unsigned char **oddity;
+extern double **Vij;
+
+/* This swaps any conductor orignally at -1 V to +1 V. Any
+dielectric is set to zero volts. This is used in computation
+of couplers. */
+
+void swap_conductor_voltages()
+{
+  int i, j;
+  int pixel;
+  for(i=0;i<width;++i)
+  {
+    for(j=0;j<height;++j)
+    {
+      pixel=oddity[i][j];
+      if(pixel==CONDUCTOR_MINUS_ONE_V){
+        Vij[i][j]=+1.0;
+       oddity[i][j]=CONDUCTOR_PLUS_ONE_V;
+      }
+    }
+  }
+}
diff --git a/src/non_gui/update_voltage_array.c b/src/non_gui/update_voltage_array.c
new file mode 100644 (file)
index 0000000..dc48093
--- /dev/null
@@ -0,0 +1,243 @@
+/*
+The code below for calculating the voltage at a point i,j, given the
+voltages and permittivities at the four adjacent points (i,j+1),
+(i,j-1), (i-1,j), and (i+1,j), although I am not convinced it is 
+100% correct in the case of mulitple dielectrics, the errors are 
+still very small. 
+*/
+
+
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif 
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif 
+
+#include "definitions.h"
+
+
+extern int width, height;
+extern double **Er;
+extern unsigned char  **oddity;
+extern int dielectrics_to_consider_just_now;
+extern double r; 
+extern int coupler;
+
+#include "exit_codes.h"
+
+/* The following function updates the voltage on the matrix V_to given data about the 
+oddity of the location i,j and the voltages in the matrix V_from. It does this for n interations
+between rows jmin and jmax inclusive and between columns imain and imax inclusive */
+
+void update_voltage_array(int nmax, int imin, int imax, int jmin, int jmax, double **V_from, double **V_to)
+{
+  int k, i, j, n;  
+  unsigned char oddity_value;
+  double Va, Vb, Vl, Vr, ERa, ERb, ERl, ERr;
+  double Vnew, g;
+
+  if (dielectrics_to_consider_just_now==1)
+    g=r;
+  else 
+    g=1; 
+  for(n=0; n  < nmax; ++n)
+    for(k=0; k < 4; ++k)
+      for (i = k&1 ? imax : imin;   k&1 ? i >=imin : i <= imax ;  k&1 ? i-- : i++)
+        for (j = (k==0 || k ==3) ? jmin : jmax; (k ==0 || k == 3)  ? j <= jmax : j >= jmin ; (k == 0 || k ==3) ?  j++ : j--){
+          oddity_value=oddity[i][j];
+
+          if( oddity_value == CONDUCTOR_ZERO_V ){  
+            V_to[i][j]=0.0;
+          }
+
+          else if( oddity_value == CONDUCTOR_PLUS_ONE_V ){  
+            V_to[i][j]=1.0;
+          }
+
+          else if( oddity_value == CONDUCTOR_MINUS_ONE_V ){  
+            V_to[i][j]=-1.0;
+          }
+
+          else if( oddity_value == TOP_LEFT_CORNER ) {  /* top left */
+            Vnew=0.5*(V_from[1][0]+V_from[0][1]);               
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+          else if( oddity_value == TOP_RIGHT_CORNER ) {
+            Vnew=0.5*(V_from[width-2][0]+V_from[width-1][1]);         /* top right */
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if(oddity_value == BOTTOM_LEFT_CORNER) {
+            Vnew=0.5*(V_from[0][height-2]+V_from[1][height-1]);       /* bottom left */
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == BOTTOM_RIGHT_CORNER) {   
+            Vnew=0.5*(V_from[width-2][height-1]+V_from[width-1][height-2]); /* bottom right */
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          /* Now the sides */
+
+          else if( oddity_value == ORDINARY_POINT_LEFT_EDGE ){  /* left hand side  */
+            Vnew=0.25*(V_from[0][j-1]+V_from[0][j+1] + 2*V_from[1][j]);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == ORDINARY_POINT_RIGHT_EDGE){   /* right hand side */
+            Vnew=0.25*(V_from[width-1][j+1]+V_from[width-1][j-1]+2*V_from[width-2][j]);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+        
+          else if( oddity_value == ORDINARY_POINT_TOP_EDGE ){ /* top row */ 
+            Vnew=0.25*(V_from[i-1][0]+V_from[i+1][0]+2*V_from[i][1]);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == ORDINARY_POINT_BOTTOM_EDGE ){   /* bottom row */ 
+            Vnew=0.25*(V_from[i-1][height-1]+V_from[i+1][height-1]+2*V_from[i][height-2]);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if ( oddity_value == ORDINARY_INTERIOR_POINT || (oddity_value>=DIFFERENT_DIELECTRIC_ABOVE_AND_RIGHT && oddity_value < UNDEFINED_ODDITY && dielectrics_to_consider_just_now == 1) ) {
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            Vnew=(Va+Vb+Vl+Vr)/4.0;
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+         }
+
+         /* I'm not sure the following equations, which compute the voltage  
+         where there is a metal around are okay. One line of thought would 
+         say that the same equations as normal  i.e.
+          v_new=(v(i+1,j_+v(i-1,j)+v(i,j-1)+v(i,j+1))/4 should be used
+         but then since the electric field across the metal surface is zero,
+         the equation that was used to derrive  that equation is not valid.
+
+         Another thought of mine is that voltage near a metal will be more affected
+         by the metal than the dielectric, since the nearest part of the metal is at
+         at the same voltage as the node, whereas for a dielectric is less so. Hence
+         the following seems a sensible solution. Since the metal will have twice 
+         the effect of a dielectric, the voltage at i,j should be weighted such
+         that its effect is more strongly affected by the metal. This seems to 
+         produce reasonably accurate results, but whether this is chance or not
+         I don't know. */
+
+          else if( oddity_value == METAL_ABOVE ){  
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            Vnew=0.25*(4*Va/3+2*Vb/3+Vl+Vr);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == METAL_BELOW ){   
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            Vnew=0.25*(4*Vb/3+2*Va/3+Vl+Vr);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == METAL_LEFT ){   
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            Vnew=0.25*(4*Vl/3+2*Vr/3+Va+Vb);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == METAL_RIGHT ){   
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            Vnew=0.25*(4*Vr/3+2*Vl/3+Va+Vb);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == METAL_ABOVE_AND_RIGHT ){   
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            Vnew=0.25*(4*Vr/3+4*Va/3 +2*Vl/3 + 2*Vb/3);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == METAL_ABOVE_AND_LEFT ){   
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            Vnew=0.25*(4*Vl/3+4*Va/3+2*Vr/3+2*Vb/3);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == METAL_BELOW_AND_LEFT ){   
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            Vnew=0.25*(4*Vl/3+4*Vb/3+2*Vr/3+2*Va/3);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+          else if( oddity_value == METAL_BELOW_AND_RIGHT ){   
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            Vnew=0.25*(4*Vb/3+4*Vr/3+2*Va/3+2*Vl/3);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+          }
+
+         /* Again, when there is a change of permittivity, my equations may
+         (probably are wrong). My logic is that if there's and RF field,
+         the impedance is inversly proportional to Er. So if the material
+         above a node is of a higher permittivity, then the 
+         voltage will be closer to that of the node above, becuase of this.
+         The same applies for other directions of change in Er. */
+
+
+          else if(dielectrics_to_consider_just_now > 1){
+
+            Va=V_from[i][j-1]; 
+            Vb=V_from[i][j+1];
+            Vl=V_from[i-1][j];
+            Vr=V_from[i+1][j];
+
+            ERa=Er[i][j-1]; 
+            ERb=Er[i][j+1];
+            ERl=Er[i-1][j];
+            ERr=Er[i+1][j];
+
+            Vnew=(Va * ERa + Vb * ERb + Vl * ERl + Vr * ERr)/(ERa + ERb + ERl + ERr);
+            V_to[i][j]=g*Vnew+(1-g)*V_from[i][j];
+
+         }
+         else if ( (dielectrics_to_consider_just_now == 1 && oddity_value == UNDEFINED_ODDITY) || (dielectrics_to_consider_just_now > 1)) {
+            fprintf(stderr,"Internal error in update_voltage_array.c\n");
+            fprintf(stderr,"i=%d j=%d oddity[%d][%d]=%d\n",i,j,i,j,oddity[i][j]);
+            exit(INTERNAL_ERROR);
+          } /* end if if an internal error */
+
+        } /* end of j loop */
+} 
diff --git a/src/non_gui/usage_atlc.c b/src/non_gui/usage_atlc.c
new file mode 100644 (file)
index 0000000..48e7c6f
--- /dev/null
@@ -0,0 +1,81 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+
+void usage_atlc(void)
+{
+#ifdef ENABLE_POSIX_THREADS
+  fprintf(stderr,"Usage: atlc [options ...] bitmap\n\n");
+#endif
+  fprintf(stderr,"atlc %s: options are:\n",PACKAGE_VERSION);
+  fprintf(stderr,"  -C       \n      Print Licence and copying information\n");
+  fprintf(stderr,"  -s       \n      Skip writing the Ex, Ey, E, V, U and Er files bitmap (.bmp) files\n");
+  fprintf(stderr,"  -S       \n      Skip writing the Ex, Ey, E, V, U and Er files binary (.bin) files\n");
+  fprintf(stderr,"  -v       \n      Be verbose (-vv -vvv or -vvvv gives progressively more information)\n");
+  fprintf(stderr,"  -c cutoff\n      where 'cutoff' sets the cutoff criteria - see html docs or man page.\n");
+  fprintf(stderr,"  -d rrggbb=Er\n      where the colour rrggbb (in hex) is a (d)ielectric of permittivity Er.\n");
+  fprintf(stderr,"  -i factor\n      which lightens (factor>%.1f) or darkens (1.0 <factor<%.1f) output bitmaps.\n",
+  IMAGE_FIDDLE_FACTOR,IMAGE_FIDDLE_FACTOR);
+  fprintf(stderr,"  -p prefix\n      where 'prefix' is a name (normally a directory) added in front of output files\n");
+  fprintf(stderr,"  -r rate_multiplier\n      where 'rate_multiplier' sets the rate multipler (1 <= r < 2)\n");  
+#ifdef ENABLE_POSIX_THREADS
+  fprintf(stderr,"  -t THREADs. \n      Where THREADs is the number of threads to use (normally best set to \n      the number of cpus). The default is %d. Set to 0 for single threaded algorithm.\n",MAX_THREADS);
+#endif
+#ifdef ENABLE_MPI
+  fprintf(stderr,"  -w weights\n     where weights is a colon-separated list of weights to use when dividing up the work amongst the processors.\n"); 
+#endif
+/*
+#ifndef ENABLE_POSIX_THREADS
+  fprintf(stderr,"****************NOTE******************************\n");
+  fprintf(stderr,"The -t option setting the number of threads to use is disabled since\n");
+  fprintf(stderr,"since this was not configured with multi-processor support.\n");
+  fprintf(stderr,"To add support for multiple threads (for an MP machine), \"make clean\" then \nre-run the configure script with the option --with-threads\n");
+#endif
+*/
+#ifndef ENABLE_MPI
+  fprintf(stderr," ");
+/*
+  fprintf(stderr,"****************NOTE******************************\n");
+  fprintf(stderr,"The -w option setting the weights to use when dividing up the work for\n");
+  fprintf(stderr,"multiple CPUs on distributed processors is disabled since this was not\n");
+  fprintf(stderr,"for distributed processing. To add such support, \"make clean\" then re-run\n");
+  fprintf(stderr,"the configure script with the option --with-mpi\n");
+  */
+#endif
+#ifdef WINDOWS
+  fprintf(stderr,"****************NOTE******************************\n");
+  fprintf(stderr,"The -t and -w options are disabled disabled since\n");
+  fprintf(stderr,"this is a Windoze executable.\n");
+  fprintf(stderr,"There are no plans to add multi-processor or distributed\n");
+  fprintf(stderr,"processing to Windoze.\n");
+
+#endif
+}
diff --git a/src/non_gui/usage_create_any_bitmap.c b/src/non_gui/usage_create_any_bitmap.c
new file mode 100644 (file)
index 0000000..be14cfa
--- /dev/null
@@ -0,0 +1,51 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>  
+#endif
+
+#include "definitions.h"
+
+void usage_create_any_bitmap()
+{
+  
+  fprintf(stderr,"create_any_bitmap version %s\n\n",PACKAGE_VERSION);
+  fprintf(stderr,"Usage: create_any_bitmap commandfile\n\n");
+  fprintf(stderr,"where 'commandfile' is a text file, which:\n");
+  fprintf(stderr,"a) MUST have a FILENAME command\n");
+  fprintf(stderr,"b) MUST have either a BACKGROUND or a GREEN_ENCLOSED_BACKGROUND command\n");
+  fprintf(stderr,"c) Must have at least one RECTANGLE or CIRCLE command, but might have several.\n\n");
+  fprintf(stderr,"The following is a typical command file, which in this case creates an bitmap\n");
+  fprintf(stderr,"called twin-wire-a.bmp, consisting of a rectangle 5000 x 4500 pixels\n");
+  fprintf(stderr,"which has a green (0 V) border of 5 pixels in thickness\n");
+  fprintf(stderr,"Inside are placed two red (V = +1 V) circular conductors, each of diameter\n");
+  fprintf(stderr,"80 pixels which have centres of 2400,2000 and 2600,2000\n\n");
+  fprintf(stderr,"FILENAME twin-wire-a.bmp                # Write to file 'twin-wire-a.bmp'\n");
+  fprintf(stderr,"GREEN_ENCLOSED_BACKGROUND 5000 4000 1.0 # 5000x4000 image.  Er=1.0 Green border\n");
+  fprintf(stderr,"CIRCLE  80 2400 2000  RED               # Red circle, dia 80, centre (2400,2000)\n");
+  fprintf(stderr,"CIRCLE  80 2600 2000  RED               # Red circle, dia 80, centre (2600,2000)\n");
+}
diff --git a/src/non_gui/usage_create_bmp_for_circ_in_circ.c b/src/non_gui/usage_create_bmp_for_circ_in_circ.c
new file mode 100644 (file)
index 0000000..70f5208
--- /dev/null
@@ -0,0 +1,79 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>    
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void usage_create_bmp_for_circ_in_circ(void)
+{
+      fprintf(stderr,"Usage: circ_in_circ [-b bmp_size] [-f outfile] [-v] D d O Er filename\n\n");
+      fprintf(stderr,"Version %s\n", PACKAGE_VERSION);
+      fprintf(stderr,"Where \n");
+      fprintf(stderr,"  D  is the internal diameter of the outer conductor \n");
+      fprintf(stderr,"  d  is the outside diameter of the inner conductor\n");
+      fprintf(stderr,"  O  is the offset between centres (zero in the case of coax cable)\n");
+      fprintf(stderr,"  Er is the relative permettivity of the dielectric.\n");
+      fprintf(stderr,"  D, d and O are either all in mm or all in inches (but not a mixture!!)\n\n");   
+      fprintf(stderr,"options are:\n");
+      fprintf(stderr,"  -C         \n     Print copyright, licencing and distribution information\n");
+      fprintf(stderr,"  -b bmp_size\n     Sets the size of the bitmap, in the range 1 to 15 (default %d).\n",DEFAULT_BMP_SIZE);
+      fprintf(stderr,"  -v         \n     Write diagnostic information to stderr\n\n");
+
+      fprintf(stderr,"                              *****************\n"); 
+      fprintf(stderr,"                          ****                 ****\n");                        
+      fprintf(stderr,"                       ****    <-----d------>     ****\n");                     
+      fprintf(stderr,"                     ***            *****            ***\n");                   
+      fprintf(stderr,"                   ***           ***********           ***\n");                 
+      fprintf(stderr,"                 ***            *************            ***\n");               
+      fprintf(stderr,"                ***            ***************            ***\n");              
+      fprintf(stderr,"               ***      ^      ***************             ***\n");             
+      fprintf(stderr,"              ***       |      ***************              ***\n");            
+      fprintf(stderr,"             ***        |       *************                ***\n");           
+      fprintf(stderr,"             **         O        ***********                  **\n");           
+      fprintf(stderr,"            ***         |            ***                      ***\n");          
+      fprintf(stderr,"            **          |                                      **\n");          
+      fprintf(stderr,"            *<------------------------D------------------------>*\n");          
+      fprintf(stderr,"            **                                                 **\n");          
+      fprintf(stderr,"            **                                                 **\n");          
+      fprintf(stderr,"            **                                                 **\n");          
+      fprintf(stderr,"            ***                                               ***\n");          
+      fprintf(stderr,"             **                                               **\n");           
+      fprintf(stderr,"             ***                                             ***\n");           
+      fprintf(stderr,"              **                                             **\n");            
+      fprintf(stderr,"               **                                           **\n");             
+      fprintf(stderr,"                **                                         **\n");              
+      fprintf(stderr,"                 ***                                     ***\n");               
+      fprintf(stderr,"                  ****                                 ****\n");                
+      fprintf(stderr,"                    ****                             ****\n");                  
+      fprintf(stderr,"                      *****                       *****\n");                    
+      fprintf(stderr,"                         ******               ******\n");                       
+      fprintf(stderr,"                             *******************\n");                           
+      fprintf(stderr,"                                     ***\n\n");
+      exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);
+}
diff --git a/src/non_gui/usage_create_bmp_for_circ_in_rect.c b/src/non_gui/usage_create_bmp_for_circ_in_rect.c
new file mode 100644 (file)
index 0000000..684c0fe
--- /dev/null
@@ -0,0 +1,75 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>    
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void usage_create_bmp_for_circ_in_rect(void)
+{
+      fprintf(stderr,"Usage: create_bmp_for_circ_in_rect [-b bmp_size] [-v] d W H x y Er outputfile\n\n");
+      fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+      fprintf(stderr,"Where \n");
+      fprintf(stderr,"  d  is the outside diameter of the inner conductor\n");
+      fprintf(stderr,"  W  is the horizontal internal dimension of the outer conductor\n");
+      fprintf(stderr,"  H  is the vertical internal dimension of the outer conductor\n");
+      fprintf(stderr,"  x  is the horizontal offset between the centre of the inner and outer conductors \n");
+      fprintf(stderr,"  y  is the vertical offset between the centre of the inner and outer conductors \n");
+      fprintf(stderr,"  Er is the relative permittivity of the dielectric.\n");
+      fprintf(stderr,"  d, W, H, x and y are either all in mm or all in inches (but not a mixture!!)\n\n");   
+      fprintf(stderr,"options are:\n");
+      fprintf(stderr,"  -b bmp_size\n     Sets the size of the bitmap, in the range 1 to 15 (default %d).\n",DEFAULT_BMP_SIZE);
+      fprintf(stderr,"  -v         \n     Write extra diagnostic information to stdout\n\n");
+      fprintf(stderr," --------------------------------------------------------  ^\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"|           Dielectric, permittivity=Er                |  |\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"|         <------x------> ^                            |  H\n");
+      fprintf(stderr,"|       *****             |                            |  |\n");
+      fprintf(stderr,"|    ***********          y                            |  |\n");
+      fprintf(stderr,"|   *************         |                            |  |\n");
+      fprintf(stderr,"|   **************        |                            |  |\n");
+      fprintf(stderr,"|   <-----d------>        v                            |  |\n");
+      fprintf(stderr,"|   **************                                     |  |\n");
+      fprintf(stderr,"|   *************                                      |  |\n");
+      fprintf(stderr,"|    ***********                                       |  |\n");
+      fprintf(stderr,"|        ***                                           |  |\n");
+      fprintf(stderr,"|                                                      |  |\n");
+      fprintf(stderr,"-------------------------------------------------------   v\n");
+      fprintf(stderr,"<---------------------------W-------------------------->\n");
+      fprintf(stderr,"                                     ***\n\n");
+      fprintf(stderr,"Example: create_bmp_for_circ_in_rect 20 100 150 25 10 3.7 foo.bmp\n");
+      exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);
+}
diff --git a/src/non_gui/usage_create_bmp_for_microstrip_coupler.c b/src/non_gui/usage_create_bmp_for_microstrip_coupler.c
new file mode 100644 (file)
index 0000000..749d0d8
--- /dev/null
@@ -0,0 +1,73 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void usage_create_bmp_for_microstrip_coupler(void)
+{
+      fprintf(stderr,"Usage: create_bmp_for_microstrip_coupler [-b bmp_size] [-v] w s g h t Er1 Er2 filename\n\n");
+      fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+      fprintf(stderr,"where h, t, g1 and g2 are all ,in mm, all in inches or all in ..\n");      
+      fprintf(stderr,"(they *must* use the same units. Non-integers allowed for all parameters)\n");
+      fprintf(stderr,"Options are:\n");
+      fprintf(stderr,"  -C              Print copyright, licencing and distribution information.\n");
+      fprintf(stderr,"  -b bmp_size     Sets the size of the bitmap, in the range 1 to 15 (default %d).\n",DEFAULT_BMP_SIZE);
+      fprintf(stderr,"  -H height       Sets the height 'H' of the box. Normally 15x(h+t)\n");
+      fprintf(stderr,"  -W width        Sets the height 'H' of the box. Normally 6h+2g+s+2w)\n");
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  ^\n");
+      fprintf(stderr,"G                                                                       G  |\n");
+      fprintf(stderr,"G                                                                       G  |\n");
+      fprintf(stderr,"G        Dielectric, permittivity=Er1 (usually 1.0)                     G  |\n");
+      fprintf(stderr,"G                                                                       G  |\n");
+      fprintf(stderr,"G    c's denonte the copuled transmission lines of width w.             G  |\n");
+      fprintf(stderr,"G    t   is the thickness of the copper of the PCB (typically 0.035 mm) G  |\n");
+      fprintf(stderr,"G    h   is the thickness of the dielectric ( ~1.593 mm for 1.6 mm PCB) G  |\n");
+      fprintf(stderr,"G |  g   is the gap between the coupled lines and the groundplane.      G  |\n");
+      fprintf(stderr,"G |  s   is the spacing between the two coupled lines.                  G  |\n");
+      fprintf(stderr,"G |  This is NOT drawn to scale (W and H are shown far too small )      G  H\n");
+      fprintf(stderr,"G |                                                                     G  |\n");
+      fprintf(stderr,"G v                <--g--><--w--><----s----><--w--><--g-->              G  |\n");
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGG       ccccccc           ccccccc       GGGGGGGGGGGGGGG  |\n");
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGG.......ccccccc...........ccccccc.......GGGGGGGGGGGGGGG  |\n");
+      fprintf(stderr,"G.^................................................^....................G  |\n");
+      fprintf(stderr,"G.|................................................|....................G  |\n");
+      fprintf(stderr,"G.|t........Dielectric, permittivity=Er2...........h....................G  |\n");
+      fprintf(stderr,"G.|............(3.7 for FR4 PCB)...................|....................G  |\n");
+      fprintf(stderr,"G..................................................V....................G  |\n");
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  |\n");
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG. v\n");
+      fprintf(stderr,"<-----------------------------------W----------------------------------->\n\n");
+      fprintf(stderr,"E.g. \ncreate_bmp_for_microstrip_coupler 1.5 2.0 1 1.593 0.035 1 3.7 foo.bmp\n");
+      fprintf(stderr,"In this example, the conductor thickness t was small, but the width w is\n");
+      fprintf(stderr,"large, so a fine grid (large bitmap) was needed. Hence the bitmap size\n");
+      fprintf(stderr,"was increassed with the -b optoin. Without it, an error would result\n");
+      exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);
+}
diff --git a/src/non_gui/usage_create_bmp_for_rect_cen_in_rect.c b/src/non_gui/usage_create_bmp_for_rect_cen_in_rect.c
new file mode 100644 (file)
index 0000000..0b224c9
--- /dev/null
@@ -0,0 +1,59 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>    
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void usage_create_bmp_for_rect_cen_in_rect(void)
+{
+      fprintf(stderr,"Usage: rect_cen_in_rect [-b bmp_size] [-f outfile] [-v] W H w h Er1 outfile.bmp\n\n");
+      fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+      fprintf(stderr,"outfile.bmp is the file to write the bitmap to\n");      
+      fprintf(stderr,"W, H, w, and h  are all in mm or all in inches\n");      
+      fprintf(stderr,"(they *must* use the same units. Non-integers allowed for all parameters)\n");
+      fprintf(stderr,"options are:\n");
+      fprintf(stderr,"  -b bmp_size\n     Sets the size of the bitmap, in the range 1 to 15 (default %d).\n",DEFAULT_BMP_SIZE);
+      fprintf(stderr,"  -v         \n     Write diagnostic information to stdout\n");
+      fprintf(stderr,"-----------------------------------------------------  ^\n");
+      fprintf(stderr,"|                                                   |  |\n");
+      fprintf(stderr,"|     Er1     <----------w----------->              |  |\n");
+      fprintf(stderr,"|             ------------------------   ^          |  |\n");
+      fprintf(stderr,"|             |                      |   |          |  |\n");
+      fprintf(stderr,"|             |  Metallic conductor  |   |          |  H\n");
+      fprintf(stderr,"|             |  conductor (centred  |   h          |  |\n");
+      fprintf(stderr,"|             |  vertically and      |   |          |  |\n");
+      fprintf(stderr,"|             |  horizontally)       |   |          |  |\n");
+      fprintf(stderr,"|             ------------------------              |  |\n");
+      fprintf(stderr,"|                                                   |  |\n");
+      fprintf(stderr,"-----------------------------------------------------  |\n");
+      fprintf(stderr,"<-------------------------W------------------------->\n\n");
+      fprintf(stderr,"Eg: create_bmp_for_rect_cen_in_rect 200 100 30 30 1.0 foo.bmp\n\n");
+      exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS); 
+}
diff --git a/src/non_gui/usage_create_bmp_for_rect_cen_in_rect_coupler.c b/src/non_gui/usage_create_bmp_for_rect_cen_in_rect_coupler.c
new file mode 100644 (file)
index 0000000..83b4a8b
--- /dev/null
@@ -0,0 +1,59 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>    
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void usage_create_bmp_for_rect_cen_in_rect_coupler(void)
+{
+      fprintf(stderr,"Usage: rect_cen_in_rect [-b bmp_size] [-f outfile] [-v] W H w h Er1 outfile.bmp\n\n");
+      fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+      fprintf(stderr,"outfile.bmp is the file to write the bitmap to\n");      
+      fprintf(stderr,"W, H, w, and h  are all in mm or all in inches\n");      
+      fprintf(stderr,"(they *must* use the same units. Non-integers allowed for all parameters)\n");
+      fprintf(stderr,"options are:\n");
+      fprintf(stderr,"  -b bmp_size\n     Sets the size of the bitmap, in the range 1 to 15 (default %d).\n",DEFAULT_BMP_SIZE);
+      fprintf(stderr,"  -v         \n     Write diagnostic information to stdout\n");
+      fprintf(stderr,"-----------------------------------------------------  ^\n");
+      fprintf(stderr,"|                                                   |  |\n");
+      fprintf(stderr,"|     Er1     <----------w----------->              |  |\n");
+      fprintf(stderr,"|             ------------------------   ^          |  |\n");
+      fprintf(stderr,"|             |                      |   |          |  |\n");
+      fprintf(stderr,"|             |  Metallic conductor  |   |          |  H\n");
+      fprintf(stderr,"|             |  conductor (centred  |   h          |  |\n");
+      fprintf(stderr,"|             |  vertically and      |   |          |  |\n");
+      fprintf(stderr,"|             |  horizontally)       |   |          |  |\n");
+      fprintf(stderr,"|             ------------------------              |  |\n");
+      fprintf(stderr,"|                                                   |  |\n");
+      fprintf(stderr,"-----------------------------------------------------  |\n");
+      fprintf(stderr,"<-------------------------W------------------------->\n\n");
+      fprintf(stderr,"Eg: create_bmp_for_rect_cen_in_rect 200 100 30 30 1.0 foo.bmp\n\n");
+
+      exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS); 
+}
diff --git a/src/non_gui/usage_create_bmp_for_rect_in_circ.c b/src/non_gui/usage_create_bmp_for_rect_in_circ.c
new file mode 100644 (file)
index 0000000..e16f948
--- /dev/null
@@ -0,0 +1,86 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>    
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void usage_create_bmp_for_rect_in_circ(void)
+{
+      fprintf(stderr,"Usage: rect_in_circ [-b bmp_size] [-f outfile] [-v] D w h x y Er\n\n");
+      fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+      fprintf(stderr,"Where \n");
+      fprintf(stderr,"  D  is the internal diameter of the outer conductor \n");
+      fprintf(stderr,"  w  is the width of the inner conductor\n");
+      fprintf(stderr,"  h  is the height of the inner conductor\n");
+      fprintf(stderr,"  x  is the horizontal offset between centres of the conductors\n");
+      fprintf(stderr,"  y  is the vertical offset between centres of the conductors\n");
+      fprintf(stderr,"  Er is the relative permettivity of the dielectric.\n");
+      fprintf(stderr,"  D, w, h, x, and y are either all in mm or all in inches (but not a mixture!!)\n\n");   
+      fprintf(stderr,"options are:\n");
+      fprintf(stderr,"  -b bmp_size\n     Sets the size of the bitmap, in the range 1 to 15 (default %d).\n",DEFAULT_BMP_SIZE);
+      fprintf(stderr,"  -f outfile \n     Write output to 'outfile' instead of stdout\n");
+      fprintf(stderr,"  -v         \n     Write diagnostic information to stderr\n\n");
+      fprintf(stderr,"                                     ***\n");
+      fprintf(stderr,"                              *****************\n"); 
+      fprintf(stderr,"                          ****                 ****\n");                        
+      fprintf(stderr,"                       ****                       ****\n");                     
+      fprintf(stderr,"                     ***                             ***\n");                   
+      fprintf(stderr,"                   ***    *************  ^             ***\n");                 
+      fprintf(stderr,"                 ***      *************  |               ***\n");               
+      fprintf(stderr,"                ***       *************  |                ***\n");              
+      fprintf(stderr,"               ***      ^ *************  h                 ***\n");             
+      fprintf(stderr,"              ***       | *************  |                  ***\n");            
+      fprintf(stderr,"             ***        | *************  |                   ***\n");           
+      fprintf(stderr,"             **         y *************  v                   **\n");           
+      fprintf(stderr,"            ***         | <-----w----->                        ***\n");          
+      fprintf(stderr,"            **          |                                      **\n");          
+      fprintf(stderr,"            *<----------v-------------D------------------------>*\n");          
+      fprintf(stderr,"            **                                                 **\n");          
+      fprintf(stderr,"            **                                                 **\n");          
+      fprintf(stderr,"            **                   <--x->                        **\n");          
+      fprintf(stderr,"            ***                                               ***\n");          
+      fprintf(stderr,"             **                                               **\n");           
+      fprintf(stderr,"             ***                                             ***\n");           
+      fprintf(stderr,"              **                                             **\n");            
+      fprintf(stderr,"               **                                           **\n");             
+      fprintf(stderr,"                **                                         **\n");              
+      fprintf(stderr,"                 ***                                     ***\n");               
+      fprintf(stderr,"                  ****                                 ****\n");                
+      fprintf(stderr,"                    ****                             ****\n");                  
+      fprintf(stderr,"                      *****                       *****\n");                    
+      fprintf(stderr,"                         ******               ******\n");                       
+      fprintf(stderr,"                             *******************\n");                           
+      fprintf(stderr,"                                     ***\n\n");
+      fprintf(stderr,"***WARNING*** Since the output from rect_in_circ is binary data (the bitmap) it\n");
+      fprintf(stderr,"will screw up your terminal unless you redirect the ouptut to a file.\n");
+      fprintf(stderr,"The '-f' option can be used to send the output to 'outfile' \n");
+      fprintf(stderr,"or you can use rect_in_circ D d h Er > filename.bmp \n");
+      exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS); 
+}
diff --git a/src/non_gui/usage_create_bmp_for_rect_in_rect.c b/src/non_gui/usage_create_bmp_for_rect_in_rect.c
new file mode 100644 (file)
index 0000000..0cca98f
--- /dev/null
@@ -0,0 +1,67 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>   
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void usage_create_bmp_for_rect_in_rect(void)
+{
+      fprintf(stderr,"Usage: create_bmp_for_rect_in_rect [-b bmp_size] [-f outfile] [-v] W H a b c d w h Er1 Er2 outfile.bmp\n\n");
+      fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+      fprintf(stderr,"where W, H, a, b, c, d, w, and h  are all in mm or all in inches\n");      
+      fprintf(stderr,"(they *must* use the same units. Non-integers allowed for all parameters)\n");
+      fprintf(stderr,"outfile.bmp is the name of a file to writ the bitmap to\n");
+      fprintf(stderr,"Options are:\n");
+      fprintf(stderr,"  -C         \n     Print copyright, licencing and distribution information.\n");
+      fprintf(stderr,"  -b bmp_size\n     Sets the size of the bitmap, in the range 1 to 15 (default %d).\n",DEFAULT_BMP_SIZE);
+      fprintf(stderr,"  -v         \n     Write diagnostic information to stderr\n");
+      fprintf(stderr,"-----------------------------------------------------------------------  ^\n");
+      fprintf(stderr,"|                                                                     |  |\n");
+      fprintf(stderr,"|               Dielectric, permittivity=Er1                          |  |\n");
+      fprintf(stderr,"|                                                                     |  |\n");
+      fprintf(stderr,"|       <----------------d------------------------->                  |  |\n");
+      fprintf(stderr,"|                                                                     |  |\n");
+      fprintf(stderr,"|             <----------w----------->                                |  |\n");
+      fprintf(stderr,"|             ------------------------   ^                            |  |\n");
+      fprintf(stderr,"|             |                      |   |                            |  |\n");
+      fprintf(stderr,"|             |  Metallic conductor  |   |                            |  H\n");
+      fprintf(stderr,"|<-----b----->|  conductor (can be   |   c                            |  |\n");
+      fprintf(stderr,"|             |  off-centre)         |   |                            |  |\n");
+      fprintf(stderr,"|             |                      |   |                            |  |\n");
+      fprintf(stderr,"|       |------------------------------------------- ^                |  |\n");
+      fprintf(stderr,"|       |..........................................| |                |  |\n");
+      fprintf(stderr,"|       |.....Dielectric, permittivity=Er2.........| |                |  |\n");
+      fprintf(stderr,"|<--a-->|.......(can be off centre )...............| h                |  |\n");
+      fprintf(stderr,"|       |..........................................| |                |  |\n");
+      fprintf(stderr,"|       |..........................................| |                |  |\n");
+      fprintf(stderr,"-----------------------------------------------------------------------  |\n");
+      fprintf(stderr,"<----------------------------------W--------------------------------->\n\n");
+      fprintf(stderr,"Eg: create_bmp_for_rect_in_rect 250 100 20 100 4.25 205 45 15 1.0006 3.7 ms.bmp \n");
+      exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);
+}
diff --git a/src/non_gui/usage_create_bmp_for_stripline_coupler.c b/src/non_gui/usage_create_bmp_for_stripline_coupler.c
new file mode 100644 (file)
index 0000000..0589f30
--- /dev/null
@@ -0,0 +1,55 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>  
+#endif
+
+#include "definitions.h"
+
+void usage_create_bmp_for_stripline_coupler(void)
+{
+  fprintf(stderr,"Usage: create_bmp_for_stripline_coupler [-C] [-b bitmapsize] [-v] H w s Er filename\n\n");
+  fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+  fprintf(stderr,"Options:\n");
+  fprintf(stderr,"         -C\n");
+  fprintf(stderr,"            Print copyright, licencing and distribution information\n");
+  fprintf(stderr,"         -b  bitmapsize\n");
+  fprintf(stderr,"            Set the size of the bitmap to about 2^bitmapsize bytes\n");
+  fprintf(stderr,"         -v\n");
+  fprintf(stderr,"            Prints the theoretical impedances too - good for verifying atlc\n");
+  fprintf(stderr,"------------^------------------------------------------------------------------\n");
+  fprintf(stderr,"            |                                               \n");
+  fprintf(stderr,"            |              <---w---><-----s----><---w-->\n");
+  fprintf(stderr,"            H              ---------            --------\n");
+  fprintf(stderr,"            |                                      \n");
+  fprintf(stderr,"            |   Er                          \n");
+  fprintf(stderr,"------------v------------------------------------------------------------------\n");
+  fprintf(stderr,"e.g. create_bmp_for_stripline_coupler  1.23 0.7 1.2 1.0 coupler.bmp\n");
+  fprintf(stderr,"e.g. create_bmp_for_stripline_coupler -b 8 1.23 0.7 1.0 1.0 smaller.bmp\n");
+  fprintf(stderr,"e.g. create_bmp_for_stripline_coupler -v 12 1.23 0.7 1.006  air.bmp\n");
+  fprintf(stderr,"\nThe default bitmap_bitmap size b is %d. Files will be between 2^(b-1)\n", DEFAULT_COUPLER_BMP_SIZE);
+  fprintf(stderr,"and 2^(b+1) bytes in length\n");
+}
diff --git a/src/non_gui/usage_create_bmp_for_symmetrical_stripline.c b/src/non_gui/usage_create_bmp_for_symmetrical_stripline.c
new file mode 100644 (file)
index 0000000..d5388f0
--- /dev/null
@@ -0,0 +1,55 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>  
+#endif
+
+#include "definitions.h"
+
+void usage_create_bmp_for_symmetrical_stripline(void)
+{
+  fprintf(stderr,"create_bmp_for_symmetrical_stripline produces a bitmap for a wide stripline and \ncan calculate Zo ASSUMING IT IT INFINITELY WIDE (which it is not of course) if the -v option is added.\n\n");
+  fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+  fprintf(stderr,"Usage: usage_create_bmp_for_symmetrical_stripline [-C][-v] W H w filename\n\n");
+  fprintf(stderr,"---------^-----------------------------------------------------\n");
+  fprintf(stderr,"         |                                     \n");
+  fprintf(stderr,"         |         <----------w----------->\n");
+  fprintf(stderr,"         H         ------------------------\n");
+  fprintf(stderr,"         |                              \n");
+  fprintf(stderr,"         |                              \n");
+  fprintf(stderr,"---------v-----------------------------------------------------\n");
+  fprintf(stderr,"<-----------------------------W-------------------------------->\n\n");
+  fprintf(stderr,"Option:\n");
+  fprintf(stderr,"     -C      Print copyright, licensing and distribution information.\n");
+  fprintf(stderr,"     -i      Force the width W to be effectively infinite.\n");
+  fprintf(stderr,"     -v      Compute the theoretical impedance and print to stdout.\n\n");
+  fprintf(stderr,"WARNING create_bmp_for_symmetrical_stripline  does *NOT* take floating points for W, H and w. You must\n");
+  fprintf(stderr,"enter only integers. The program was put together quickly, so does NOT\n");
+  fprintf(stderr,"automatically convert floating point values to integers like create_bmp_for_rect_in_rect,\n");
+  fprintf(stderr,"create_bmp_for_circ_in_circ, create_bmp_for_circ_in_rect, create_bmp_for_rect_cen_in_rect\n");
+  fprintf(stderr,"create_bmp_for_microstrip_coupler and create_bmp_for_stripline_coupler\n");
+}
diff --git a/src/non_gui/usage_design_coupler.c b/src/non_gui/usage_design_coupler.c
new file mode 100644 (file)
index 0000000..acf8c3c
--- /dev/null
@@ -0,0 +1,53 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#include "definitions.h"
+
+void usage_design_coupler()
+{
+  fprintf(stderr,"\nUsage: design_coupler [-d] [-e] [-q] [-s fstep] [-C] [-D] [-H height] [-L length] [-Z Zo] CF fmin fmax\n");
+  fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+  fprintf(stderr,"where: \n");
+  fprintf(stderr,"     CF          is the coupling factor required in dB [10 log(P1/P2)]\n");
+  fprintf(stderr,"     fmin        is the minimum frequency (MHz)\n");
+  fprintf(stderr,"     fman        is the maximum frequency (MHz)\n");
+  fprintf(stderr,"Options are:\n");
+  fprintf(stderr,"      -d           Calculate physical dimensions (takes a while).\n");
+  fprintf(stderr,"      -e           Give lots of examples of usage.\n");
+  fprintf(stderr,"      -q           Run in quite mode, giving less output.\n");
+  fprintf(stderr,"      -s fstep     Set the analysis frequency step in MHz.\n");
+  fprintf(stderr,"      -C           Print Copyright, Licencing and Distribution information.\n");
+  fprintf(stderr,"      -D           Calculate physical dimensions to high accuracy (takes a *very* long while).\n");
+  fprintf(stderr,"      -H height    to set the height of the enclosure (defaults to 1 unit).\n");
+  fprintf(stderr,"      -L length    to set the coupler length (m). Defaults to lambda/4.\n");
+  fprintf(stderr,"      -Q           Run in very quite mode, giving just one line of output\n");
+  fprintf(stderr,"      -Z Zo        Set the design impedance (default is 50 Ohms)\n");
+  fprintf(stderr,"coupled port 2 ************************************************ reflected port 3\n\n");
+  fprintf(stderr,"input port 1   ************************************************ output port 4\n");
+  fprintf(stderr,"               <--------------------L------------------------->\n");
+  fprintf(stderr,"Drive Port 1. The main power comes out from port 4. A fraction (set by the \n");
+  printf("coupling factor) of the forward power comes from port 2. A fraction of the\n");
+  printf("reflected power comes from port 3. All ports must present an impedance Zo.\n");
+}
diff --git a/src/non_gui/usage_find_optimal_dimensions_for_microstrip_coupler.c b/src/non_gui/usage_find_optimal_dimensions_for_microstrip_coupler.c
new file mode 100644 (file)
index 0000000..dadb29f
--- /dev/null
@@ -0,0 +1,77 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif  
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void usage_find_optimal_dimensions_for_microstrip_coupler(void)
+{
+      fprintf(stderr,"Usage: find_optimal_dimensions_for_microstrip_coupler [-s smin] [-S smax] [-t sstep] [-w wmin] [-W wmax] [-x wstep] [-g gmin] [-G GMAX] [-i gstep] h t Er1 Er2 Zodd_required Zeven_required output_filename\n\n");
+      fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+      fprintf(stderr,"where h and t are all, in mm, all in inches or all in ..;   Zodd_required and Zeven are in Ohms\n");
+      fprintf(stderr,"(they *must* use the same units. Non-integers allowed for all parameters)\n");
+      fprintf(stderr,"Options are:\n");
+      fprintf(stderr,"  -C              Print copyright, licencing and distribution information.\n");
+      /*fprintf(stderr,"  -b bmp_size     Sets the size of the bitmap used by 'atlc', in the range 1 to 15 (default %d).\n",DEFAULT_BMP_SIZE); */
+      fprintf(stderr,"  -s gmin         Sets the minimum gap between the two coupled lines (default = %f)\n", DEFAULT_SMIN);
+      fprintf(stderr,"  -s gmax         Sets the maximum gap between the two coupled lines (default = %f)\n", DEFAULT_SMAX);
+      fprintf(stderr,"  -i gstep        Sets the stepsize used for interations between gmin and gmax (default = %f)\n", DEFAULT_SSTEP);
+      fprintf(stderr,"  -g gmin         Sets the minimum gap between the coupled lines and the groundplane (default = %f)\n", DEFAULT_GMIN);
+      fprintf(stderr,"  -G gmax         Sets the maximum gap between the coupled lines and the groundplane (default = %f)\n", DEFAULT_GMAX);
+      fprintf(stderr,"  -i gmin         Sets the stepsize used between gmain and max (default = %f)\n", DEFAULT_GSTEP);
+      fprintf(stderr,"  -w wstep        Sets the minimum width of the coupled lines (default = %f)\n", DEFAULT_WMIN);
+      fprintf(stderr,"  -W Wstep        Sets the maximum width of the coupled lines (default = %f)\n", DEFAULT_WMAX);
+      fprintf(stderr,"  -x Wstep        Sets the stepsize used between wmin and wmax (default = %f)\n", DEFAULT_WSTEP);
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  ^\n");
+      fprintf(stderr,"G                                                                       G  |\n");
+      fprintf(stderr,"G                                                                       G  |\n");
+      fprintf(stderr,"G        Dielectric, permittivity=Er1 (usually 1.0)                     G  |\n");
+      fprintf(stderr,"G                                                                       G  |\n");
+      fprintf(stderr,"G    c's denonte the copuled transmission lines of width w.             G  |\n");
+      fprintf(stderr,"G    t   is the thickness of the copper of the PCB (typically 0.035 mm) G  |\n");
+      fprintf(stderr,"G    h   is the thickness of the dielectric ( ~1.593 mm for 1.6 mm PCB) G  |\n");
+      fprintf(stderr,"G |  g   is the gap between the coupled lines and the groundplane.      G  |\n");
+      fprintf(stderr,"G |  s   is the spacing between the two coupled lines.                  G  |\n");
+      fprintf(stderr,"G |  This is NOT drawn to scale (W and H are shown far too small )      G  H\n");
+      fprintf(stderr,"G |                                                                     G  |\n");
+      fprintf(stderr,"G v                <--g--><--w--><----s----><--w--><--g-->              G  |\n");
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGG       ccccccc           ccccccc       GGGGGGGGGGGGGGG  |\n");
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGG.......ccccccc...........ccccccc.......GGGGGGGGGGGGGGG  |\n");
+      fprintf(stderr,"G.^................................................^....................G  |\n");
+      fprintf(stderr,"G.|................................................|....................G  |\n");
+      fprintf(stderr,"G.|t........Dielectric, permittivity=Er2...........h....................G  |\n");
+      fprintf(stderr,"G.|............(3.7 for FR4 PCB)...................|....................G  |\n");
+      fprintf(stderr,"G..................................................V....................G  |\n");
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  |\n");
+      fprintf(stderr,"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG. v\n");
+      fprintf(stderr,"<-----------------------------------W----------------------------------->\n\n");
+      fprintf(stderr,"E.g. \nfind_optimal_dimensions_for_microstrip_coupler 1.593 0.035 1 3.7 15 180 best.txt\n\n");
+      exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS); 
+}
diff --git a/src/non_gui/usage_readbin.c b/src/non_gui/usage_readbin.c
new file mode 100644 (file)
index 0000000..798f99b
--- /dev/null
@@ -0,0 +1,44 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+void usage_readbin(void)
+{
+  fprintf(stderr,"Usage: readbin [-r] binaryfile.V.bin\n\n");
+  fprintf(stderr,"Version %s\n",PACKAGE_VERSION);
+  fprintf(stderr,"options are:\n");
+  fprintf(stderr,"  -C        Print copyright, licencing and distribution information\n");
+  fprintf(stderr,"  -r        Used when analysing binary files created on\
+  the other byte-ordering\n            (ie a big-endian example.V.bin file\
+  on a small endian machine - or\n            the reverse)\n");
+  exit_with_msg_and_exit_code("",PROGRAM_CALLED_WITH_WRONG_NUMBER_OF_ARGUMENTS);
+}
diff --git a/src/non_gui/write_bitmap.c b/src/non_gui/write_bitmap.c
new file mode 100644 (file)
index 0000000..9a9a4c0
--- /dev/null
@@ -0,0 +1,92 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "definitions.h"
+#include "Erdata.h" 
+
+/* names, colours and Ers are all arrays of 10. It would be better they were 
+in a structure as they are all linked closely, but they are not and I
+can't be bothered to change it */
+
+extern int W, H;
+
+void write_bitmap(FILE *image_data_fp, struct transmission_line_properties xyz)
+{
+   int colour_Er1=-1, colour_Er2=-1, vector_aligned;
+#ifndef HAVE_MEMSET
+   int memory_location;
+#endif
+   unsigned char *image_data, *unaligned_image_vector;
+
+   get_Er1_and_Er2_colours(&colour_Er1, &colour_Er2);
+   W+=2*BORDER;
+   H+=2*BORDER;
+   xyz.W+=2*BORDER;
+   xyz.H+=2*BORDER;
+   /* We create an vector big enough for the image. Since rows are 
+   aligned on 4-byte boundaries, we need to allow suffient space for
+   (W+2)*(H-1) bytes. */
+
+   /* when aligning data on 4-byte boundaries, the 
+   padding must be filled with 0's, to meet the 
+   .bmp standard */
+
+   image_data=ustring(0,(W+3)*3*H);
+   unaligned_image_vector=ustring(0,(W+3)*3*H);
+
+#ifdef HAVE_MEMSET
+   (void) memset((void *) (image_data),0x0,(size_t) ((W+3)*3*H));
+#else
+   for(memory_location=0; memory_location < (W+3)*3*H; ++ memory_location)
+     image_data[memory_location]=0;
+#endif /* end of #ifdef HAVE_MEMSET */
+
+
+   /* Fill a vector with the initial (original) data on the 
+   tline. This is not aligned in any way */
+   /* The following function 'fill_image_vector_with_data' is *not* in the file
+   fill_image_vector_with_data.c, but instead different versions of it are 
+   located in files fill_rect_with_rect.c, fill_circ_with_circ.c, 
+   fill_rect_with_circ.c and fill_circ_with_rect.c */
+   fill_image_vector_with_data(unaligned_image_vector, colour_Er1, colour_Er2, xyz);
+   
+   /* put into the vector, in reverse order - i.e. from bottom to top and 
+   align each row on 4-byte boundaries */
+   vector_aligned=align_bitmap_image(W, H, unaligned_image_vector,image_data);
+   write_bitmap_out(image_data, image_data_fp,vector_aligned, W, H);
+}
diff --git a/src/non_gui/write_bitmap_out.c b/src/non_gui/write_bitmap_out.c
new file mode 100644 (file)
index 0000000..47e0ba1
--- /dev/null
@@ -0,0 +1,180 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#include "definitions.h"
+#include "exit_codes.h"
+
+/* names, colours and Ers are all arrays of 10. It would be better they were 
+in a structure as they are all linked closely, but they are not and I
+can't be bothered to change it */
+
+
+extern int W, H;
+
+/* This function can be used on any routines that writes .bmp files */
+
+/*#define DEBUG*/
+
+void write_bitmap_out(unsigned char *byte_aligned_image_data, FILE *image_data_fp,int sizeof_image, int W, int H)
+{
+   unsigned char *buff;
+
+   struct Bitmap_File_Head_Struct Bitmap_File_Head;
+   struct Bitmap_Head_Struct Bitmap_Head;
+
+#ifdef DEBUG
+   printf("sizeof_image = %d in write_bitmap_out\n", sizeof_image);
+#endif
+
+   buff=ustring(0,0x36);
+
+   /* fprintf(stderr,"file size=%ld\n",temp_long); */
+
+   Bitmap_File_Head.zzMagic[0]='B';
+   Bitmap_File_Head.zzMagic[1]='M';
+   Bitmap_File_Head.bfSize=sizeof_image+0x36;
+   Bitmap_File_Head.zzHotX=0; 
+   Bitmap_File_Head.zzHotY=0; 
+   Bitmap_File_Head.bfOffs=54; 
+   Bitmap_File_Head.biSize=0x28;
+
+
+   Bitmap_Head.biWidth=W;
+   Bitmap_Head.biHeight=H;
+   Bitmap_Head.biPlanes=1;
+   Bitmap_Head.biBitCnt=24;
+   Bitmap_Head.biCompr=0;
+   Bitmap_Head.biSizeIm=sizeof_image;
+   Bitmap_Head.biXPels=W*10;  /* Why ??? XXX */
+   Bitmap_Head.biYPels=H*10;  /* Why ??? XXX */
+   Bitmap_Head.biClrUsed=0;
+   Bitmap_Head.biClrImp=0;
+
+   buff[0x00] = (unsigned char) (Bitmap_File_Head.zzMagic[0]);
+   buff[0x01] = (unsigned char) (Bitmap_File_Head.zzMagic[1]);
+/*
+   buff[0x02] = Bitmap_File_Head.bfSize);
+   buff[0x03] = Bitmap_File_Head.bfSize >> 8);
+   buff[0x04] = Bitmap_File_Head.bfSize >> 16);
+   buff[0x05] = Bitmap_File_Head.bfSize >> 24);
+   */
+
+   buff[0x02] =  (unsigned char) (Bitmap_File_Head.bfSize);
+   buff[0x03] =  (unsigned char) (Bitmap_File_Head.bfSize >> 8);
+   buff[0x04] =  (unsigned char) (Bitmap_File_Head.bfSize >> 16);
+   buff[0x05] =  (unsigned char) (Bitmap_File_Head.bfSize >> 24);
+
+
+   buff[0x06] = (unsigned char) (Bitmap_File_Head.zzHotX);
+   buff[0x07] = (unsigned char) (Bitmap_File_Head.zzHotX >> 8);
+
+   buff[0x08] = (unsigned char) (Bitmap_File_Head.zzHotY);
+   buff[0x09] = (unsigned char) (Bitmap_File_Head.zzHotY >> 8);
+
+   buff[0x0a] = (unsigned char) (Bitmap_File_Head.bfOffs);
+   buff[0x0b] = (unsigned char) (Bitmap_File_Head.bfOffs>> 8);
+   buff[0x0c] = (unsigned char) (Bitmap_File_Head.bfOffs>> 16);
+   buff[0x0d] = (unsigned char) (Bitmap_File_Head.bfOffs>> 24);
+
+   buff[0x0e] = (unsigned char) (Bitmap_File_Head.biSize);
+   buff[0x0f] = (unsigned char) (Bitmap_File_Head.biSize>> 8);
+   buff[0x10] = (unsigned char) (Bitmap_File_Head.biSize>> 16);
+   buff[0x11] = (unsigned char) (Bitmap_File_Head.biSize>> 24);
+
+   /* Write contents of Bitmap_Head_Struct */
+
+   buff[0x12] = (unsigned char) (Bitmap_Head.biWidth);
+   buff[0x13] = (unsigned char) (Bitmap_Head.biWidth>> 8);
+   buff[0x14] = (unsigned char) (Bitmap_Head.biWidth>> 16);
+   buff[0x15] = (unsigned char) (Bitmap_Head.biWidth>> 24);
+
+   buff[0x16] = (unsigned char) (Bitmap_Head.biHeight);
+   buff[0x17] = (unsigned char) (Bitmap_Head.biHeight>> 8);
+   buff[0x18] = (unsigned char) (Bitmap_Head.biHeight>> 16);
+   buff[0x19] = (unsigned char) (Bitmap_Head.biHeight>> 24);
+
+   buff[0x1a] = (unsigned char) (Bitmap_Head.biPlanes);
+   buff[0x1b] = (unsigned char) (Bitmap_Head.biPlanes>> 8);
+
+   buff[0x1c] = (unsigned char) (Bitmap_Head.biBitCnt);
+   buff[0x1d] = (unsigned char) (Bitmap_Head.biBitCnt>> 8);
+
+   buff[0x1e] = (unsigned char) (Bitmap_Head.biCompr);
+   buff[0x1f] = (unsigned char) (Bitmap_Head.biCompr>> 8);
+   buff[0x20] = (unsigned char) (Bitmap_Head.biCompr>> 16);
+   buff[0x21] = (unsigned char) (Bitmap_Head.biCompr>> 24);
+
+   buff[0x22] = (unsigned char) (Bitmap_Head.biSizeIm);
+   buff[0x23] = (unsigned char) (Bitmap_Head.biSizeIm>> 8);
+   buff[0x24] = (unsigned char) (Bitmap_Head.biSizeIm>> 16);
+   buff[0x25] = (unsigned char) (Bitmap_Head.biSizeIm>> 24);
+
+   buff[0x26] = (unsigned char) (Bitmap_Head.biXPels);
+   buff[0x27] = (unsigned char) (Bitmap_Head.biXPels>> 8);
+   buff[0x28] = (unsigned char) (Bitmap_Head.biXPels>> 16);
+   buff[0x29] = (unsigned char) (Bitmap_Head.biXPels>> 24);
+
+   buff[0x2a] = (unsigned char) (Bitmap_Head.biYPels);
+   buff[0x2b] = (unsigned char) (Bitmap_Head.biYPels>> 8);
+   buff[0x2c] = (unsigned char) (Bitmap_Head.biYPels>> 16);
+   buff[0x2d] = (unsigned char) (Bitmap_Head.biYPels>> 24);
+
+   buff[0x2e] = (unsigned char) (Bitmap_Head.biClrUsed);
+   buff[0x2f] = (unsigned char) (Bitmap_Head.biClrUsed>> 8);
+   buff[0x30] = (unsigned char) (Bitmap_Head.biClrUsed>> 16);
+   buff[0x31] = (unsigned char) (Bitmap_Head.biClrUsed>> 24);
+
+   buff[0x32] = (unsigned char) (Bitmap_Head.biClrImp);
+   buff[0x33] = (unsigned char) (Bitmap_Head.biClrImp>> 8);
+   buff[0x34] = (unsigned char) (Bitmap_Head.biClrImp>> 16);
+   buff[0x35] = (unsigned char) (Bitmap_Head.biClrImp>> 24);
+
+   if( fwrite((void *) buff, 0x36, 1, image_data_fp) != 1)
+    exit_with_msg_and_exit_code("Error#1: Failed to write bitmap file in write_bitmap_out.c",WRITE_FAILURE);
+
+
+   /* Now the reader is written, finally write the image */
+   if( fwrite(byte_aligned_image_data,(size_t) sizeof_image,1,image_data_fp) != 1)
+    exit_with_msg_and_exit_code("Error#1: Failed to write bitmap file in write_bitmap_out.c",WRITE_FAILURE);
+   if( fclose(image_data_fp) != 0)
+     exit_with_msg_and_exit_code("failed to close file in write_bitmap_out.c",CANT_CLOSE_FILE);
+}
diff --git a/src/non_gui/write_fields_for_directional_couplers.c b/src/non_gui/write_fields_for_directional_couplers.c
new file mode 100644 (file)
index 0000000..0d83d87
--- /dev/null
@@ -0,0 +1,428 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#include "definitions.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#include "exit_codes.h"
+
+/* Write the following files, assuming an input of example.bmp 
+
+example.E.Even.bmp   Grayscale Bitmap of |E-field|, normallised to 1,
+                     for even mode, but corrected for Gamma
+example.Ex.Even.bmp  Colour Bitmap of x-directed E-field, normallised to 1, 
+                     for even mode, but corrected for Gamma
+example.Ey.Even.bmp  Colour Bitmap of y-directed E-field, normallised to 1, 
+                     for even mode, but corrected for Gamma
+example.V.Even.bmp   Colour Bitmap of Voltage field, normallised to 1,
+                     for even mode, corrected for Gamma
+example.U.Even.bmp   Grayscale bitmap, with just the energy (U=CV^2).
+                     for even mode, corrected for Gamma
+
+
+example.E.Odd.bmp    Grayscale Bitmap of |E-field|, normallised to 1,
+                     for odd mode, but corrected for Gamma
+example.Ex.Odd.bmp   Colour Bitmap of x-directed E-field, normallised to 1, 
+                     for odd mode, but corrected for Gamma
+example.Ey.Odd.bmp   Colour Bitmap of y-directed E-field, normallised to 1, 
+                     for odd mode, but corrected for Gamma
+example.V.Odd.bmp    Colour Bitmap of Voltage field, normallised to 1,
+                     for odd mode, corrected for Gamma
+example.U.Odd.bmp    Grayscale bitmap, with just the energy (U=CV^2).
+                     for odd mode, corrected for Gamma
+
+
+example.Er.bmp       Bitmap, showing dielectric constant as on grayscale 
+                    and conductors as red,green and blue. This is *not* 
+                    specifically for the any one mode. 
+
+
+
+
+example.E.Odd.bin    Binary file of |E-field|, normallised to for odd mode.
+example.Ex.Odd.bin   Colour binary file of x-directed E-field, for odd mode.
+example.Ey.Odd.bin   Colour binary file of y-directed E-field, for odd mode.
+example.V.Odd.bin    Colour binary file of Voltage field, normallised to 1, for odd mode.
+example.U.Odd.bin    Bitmap, with just the energy (U=CV^2).  for odd mode.
+
+example.E.Even.bin   Binary file of |E-field|, for even mode.
+example.Ex.Even.bin  Colour binary file of x-directed E-field for even mode.
+example.Ey.Even.bin  Colour binary file of y-directed E-field for even mode.
+example.V.Even.bin   Colour binary file of Voltage field, for even mode.
+example.U.Even.bin   Bitmap, with just the energy (U=CV^2) for even mode.
+
+
+example.Er.bin       binary file, showing dielectric constant as on grayscale 
+                    and conductors as red,green and blue. This is *not* 
+                    specifically for the any one mode. 
+
+
+*/
+
+extern double **Vij;
+extern double **Er;
+extern unsigned char *bmp_buff;
+extern int width, height;
+
+void write_fields_for_directional_couplers(char * filename, struct transmission_line_properties data, size_t size, int odd_or_even)
+{
+  FILE *Ex_even_bin_fp, *Ey_even_bin_fp, *E_even_bin_fp, *V_even_bin_fp, *U_even_bin_fp;
+  FILE *Ex_odd_bin_fp, *Ey_odd_bin_fp, *E_odd_bin_fp, *V_odd_bin_fp, *U_odd_bin_fp;
+  FILE *Ex_even_bmp_fp, *Ey_even_bmp_fp, *E_even_bmp_fp, *V_even_bmp_fp, *U_even_bmp_fp;
+  FILE *Ex_odd_bmp_fp, *Ey_odd_bmp_fp, *E_odd_bmp_fp, *V_odd_bmp_fp, *U_odd_bmp_fp;
+  FILE *permittivity_bin_fp, *permittivity_bmp_fp;
+#ifdef DEBUG
+  FILE *fpOddEx, *fpOddEy;
+  FILE *fpEvenEx, *fpEvenEy;
+#endif
+  unsigned char *image_data_Ex=NULL; 
+  unsigned char *image_data_Ey=NULL;
+  unsigned char *image_data_E=NULL;
+  unsigned char *image_data_U=NULL; 
+  unsigned char *image_data_V=NULL;
+  unsigned char *image_data_Er=NULL;
+
+  unsigned char r, g, b;
+
+  static struct max_values maximum_values;
+  int offset=-3, w, h; 
+  size_t memory_location;
+  double E, Ex, Ey, U;
+
+  if(data.write_binary_field_imagesQ==TRUE && odd_or_even == ODD)
+  {
+    Ex_odd_bin_fp=get_file_pointer_with_right_filename(filename,".Ex.odd.bin");
+    Ey_odd_bin_fp=get_file_pointer_with_right_filename(filename,".Ey.odd.bin");
+    E_odd_bin_fp=get_file_pointer_with_right_filename(filename,".E.odd.bin");
+    V_odd_bin_fp=get_file_pointer_with_right_filename(filename,".V.odd.bin");
+    U_odd_bin_fp=get_file_pointer_with_right_filename(filename,".U.odd.bin");
+    permittivity_bin_fp=get_file_pointer_with_right_filename(filename,".Er.bin");
+
+    for(h=height-1;h>=0;h--)
+    {
+      for(w=0;w<width;++w)
+      {
+        Ex=find_Ex(w,h);
+        Ey=find_Ey(w,h);
+        E=find_E(w,h);
+        U=find_energy_per_metre(w,h);
+        if( fwrite((void *) &Ex,sizeof(double), 1, Ex_odd_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#1: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &Ey,sizeof(double), 1, Ey_odd_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#2: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &E,sizeof(double), 1, E_odd_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#3: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &U,sizeof(double), 1, U_odd_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#4: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &Vij[w][h],sizeof(double), 1, V_odd_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#5: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &Er[w][h],sizeof(double), 1, permittivity_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#6: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+      }
+    }
+    if( fclose(Ex_odd_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#7: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(Ey_odd_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#8: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(E_odd_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#9: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(U_odd_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#10: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(V_odd_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#11: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(permittivity_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#12: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+  } /* End of writing odd binary files */
+
+  if(data.write_bitmap_field_imagesQ==TRUE && odd_or_even == ODD)
+  {
+    /* Allocate ram to store the bitmaps before they are written to disk */
+    image_data_Ex=ustring(0L,(long) size);
+    image_data_Ey=ustring(0L,(long) size);
+    image_data_E=ustring(0L,(long) size);
+    image_data_V=ustring(0L,(long) size);
+    image_data_Er=ustring(0L,(long) size);
+    image_data_U=ustring(0L,(long) size);
+    for(memory_location=0; memory_location < size; ++memory_location)
+    {
+      image_data_Ex[memory_location]=0;
+      image_data_Ey[memory_location]=0;
+      image_data_E[memory_location]=0;
+      image_data_U[memory_location]=0;
+      image_data_V[memory_location]=0;
+      image_data_Er[memory_location]=0;
+    }
+    /* Find maximum of the parameters */
+    find_maximum_values(&(maximum_values),ZERO_ELEMENTS_FIRST); /* sets stucture maximum_values */
+    Ex_odd_bmp_fp=get_file_pointer_with_right_filename(filename,".Ex.odd.bmp");
+    Ey_odd_bmp_fp=get_file_pointer_with_right_filename(filename,".Ey.odd.bmp");
+    E_odd_bmp_fp=get_file_pointer_with_right_filename(filename,".E.odd.bmp");
+    V_odd_bmp_fp=get_file_pointer_with_right_filename(filename,".V.odd.bmp");
+    U_odd_bmp_fp=get_file_pointer_with_right_filename(filename,".U.odd.bmp");
+    permittivity_bmp_fp=get_file_pointer_with_right_filename(filename,".Er.bmp");
+
+    /* Permittivity images are written along with the odd images. It
+    makes no difference whey they are written, since they don't change */
+
+    permittivity_bmp_fp=get_file_pointer_with_right_filename(filename,".Er.bmp");
+
+    if( fwrite(bmp_buff,0x36,1,Ex_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#6: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,Ey_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#6: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,E_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#6: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,U_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#6: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,V_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#6: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,permittivity_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#6: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    offset=-3;
+    for(h=height-1;h>=0;h--)
+    {
+      for(w=0;w<width;++w)
+      {
+        offset+=3;
+        if((w==0) && (offset%4!=0) && (h!=0)) 
+          offset+=(4-offset%4);
+        Ex=find_Ex(w,h);
+        Ey=find_Ey(w,h);
+        E=find_Ex(w,h);
+        U=find_energy_per_metre(w,h);
+
+        calculate_colour_data(Ex, maximum_values.Ex_or_Ey_max, w, h, offset,image_data_Ex, COLOUR,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(Ey, maximum_values.Ex_or_Ey_max, w, h, offset,image_data_Ey, COLOUR,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(E, maximum_values.E_max, w, h, offset,image_data_E, MONOCHROME,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(U, maximum_values.U_max, w, h, offset,image_data_U, MONOCHROME,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(Vij[w][h], maximum_values.V_max, w, h, offset,image_data_V, COLOUR,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(Er[w][h], MAX_ER, w, h, offset,image_data_Er, MIXED,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+      }
+    } 
+    if( fwrite((void *) image_data_Ex,size, 1, Ex_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#25: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_Ey[0]),size, 1, Ey_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#26: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_E[0]),size, 1, E_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#27: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_V[0]),size, 1, V_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#28: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_U[0]),size, 1, U_odd_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#29: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_Er[0]),size, 1, permittivity_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#29: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+
+    if( fclose(Ex_odd_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#30: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(Ey_odd_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#31: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(E_odd_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#32: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(V_odd_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#33: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(U_odd_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#34: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(permittivity_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#35: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    free_ustring(image_data_Ex,0L,(long) size);
+    free_ustring(image_data_Ey,0L,(long) size);
+    free_ustring(image_data_E,0L,(long) size);
+    free_ustring(image_data_V,0L,(long) size);
+    free_ustring(image_data_U,0L,(long) size);
+    free_ustring(image_data_Er,0L,(long)size);
+  } /* End of writing odd bitmap files  and therefore *all* odd files */
+
+  if(data.write_binary_field_imagesQ==TRUE && odd_or_even == EVEN)
+  {
+    Ex_even_bin_fp=get_file_pointer_with_right_filename(filename,".Ex.even.bin");
+    Ey_even_bin_fp=get_file_pointer_with_right_filename(filename,".Ey.even.bin");
+    E_even_bin_fp=get_file_pointer_with_right_filename(filename,".E.even.bin");
+    V_even_bin_fp=get_file_pointer_with_right_filename(filename,".V.even.bin");
+    U_even_bin_fp=get_file_pointer_with_right_filename(filename,".U.even.bin");
+    permittivity_bin_fp=get_file_pointer_with_right_filename(filename,".Er.bin");
+
+    for(h=height-1;h>=0;h--)
+    {
+      for(w=0;w<width;++w)
+      {
+        Ex=find_Ex(w,h);
+        Ey=find_Ey(w,h);
+        E=find_E(w,h);
+        U=find_energy_per_metre(w,h);
+
+        if( fwrite((void *) &Ex,sizeof(double), 1, Ex_even_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#1: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &Ey,sizeof(double), 1, Ey_even_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#2: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &E,sizeof(double), 1, E_even_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#3: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &U,sizeof(double), 1, U_even_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#4: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &Vij[w][h],sizeof(double), 1, V_even_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#5: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+        if( fwrite((void *) &Er[w][h],sizeof(double), 1, permittivity_bin_fp) != 1)
+         exit_with_msg_and_exit_code("Error#6: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+      }
+    }
+    if( fclose(Ex_even_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#7: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(Ey_even_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#8: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(E_even_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#9: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(U_even_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#10: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(V_even_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#11: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(permittivity_bin_fp) != 0)
+      exit_with_msg_and_exit_code("Error#12: can't close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+  } /* End of writing even binary files */
+
+  if(data.write_bitmap_field_imagesQ==TRUE &&  odd_or_even == EVEN)
+  {
+    /* Allocate ram to store the bitmaps before they are written to disk */
+    image_data_Ex=ustring(0L,(long) size);
+    image_data_Ey=ustring(0L,(long) size);
+    image_data_E=ustring(0L,(long) size);
+    image_data_V=ustring(0L,(long) size);
+    image_data_Er=ustring(0L,(long) size);
+    image_data_U=ustring(0L,(long) size);
+#ifdef HAVE_MEMSET
+    (void) memset((void *) image_data_Ex,0,size);
+    (void) memset((void *) image_data_Ey,0,size);
+    (void) memset((void *) image_data_E,0,size);
+    (void) memset((void *) image_data_U,0,size);
+    (void) memset((void *) image_data_V,0,size);
+    (void) memset((void *) image_data_Er,0,size);
+#else
+    for(memory_location=0; memory_location < size; ++memory_location)
+    {
+      image_data_Ex[memory_location]=0;
+      image_data_Ey[memory_location]=0;
+      image_data_E[memory_location]=0;
+      image_data_U[memory_location]=0;
+      image_data_V[memory_location]=0;
+      image_data_Er[memory_location]=0;
+    }
+#endif /* End of #ifdef HAVE_MEMSET */
+    /* Find maximum of the parameters */
+    find_maximum_values(&(maximum_values),FALSE); /* sets stucture maximum_values */
+
+    Ex_even_bmp_fp=get_file_pointer_with_right_filename(filename,".Ex.even.bmp");
+    Ey_even_bmp_fp=get_file_pointer_with_right_filename(filename,".Ey.even.bmp");
+    E_even_bmp_fp=get_file_pointer_with_right_filename(filename,".E.even.bmp");
+    V_even_bmp_fp=get_file_pointer_with_right_filename(filename,".V.even.bmp");
+    U_even_bmp_fp=get_file_pointer_with_right_filename(filename,".U.even.bmp");
+    permittivity_bmp_fp=get_file_pointer_with_right_filename(filename,".Er.bmp");
+
+    /* Permittivity images are written along with the even images. It
+    makes no difference whey they are written, since they don't change */
+
+    permittivity_bmp_fp=get_file_pointer_with_right_filename(filename,".Er.bmp");
+
+    if( fwrite(bmp_buff,0x36,1,Ex_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#1: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,Ey_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#1: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,E_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#1: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,U_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#1: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,V_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#1: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,permittivity_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#1: Failed to write binary file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    offset=-3;
+#ifdef DEBUG
+    fpEvenEx=fopen("Ex.even.txt","w");
+    fpEvenEy=fopen("Ey.even.txt","w");
+#endif
+    for(h=height-1;h>=0;h--)
+    {
+      for(w=0;w<width;++w)
+      {
+        offset+=3;
+        if((w==0) && (offset%4!=0) && (h!=0)) 
+          offset+=(4-offset%4);
+        Ex=find_Ex(w,h);
+        Ey=find_Ey(w,h);
+        E=find_Ex(w,h);
+        U=find_energy_per_metre(w,h);
+
+        calculate_colour_data(Ex, maximum_values.Ex_or_Ey_max, w, h, offset,image_data_Ex, COLOUR,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(Ey, maximum_values.Ex_or_Ey_max, w, h, offset,image_data_Ey, COLOUR,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(E, maximum_values.E_max, w, h, offset,image_data_E, MONOCHROME,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(U, maximum_values.U_max, w, h, offset,image_data_U, MONOCHROME,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(Vij[w][h], maximum_values.V_max, w, h, offset,image_data_V, COLOUR,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(Er[w][h], MAX_ER, w, h, offset,image_data_Er, MIXED,&r,&g,&b, IMAGE_FIDDLE_FACTOR);
+      }
+    } 
+    if( fwrite((void *) &(image_data_Ex[0]),size, 1, Ex_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#25: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_Ey[0]),size, 1, Ey_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#26: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_E[0]),size, 1, E_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#27: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_V[0]),size, 1, V_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#28: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_U[0]),size, 1, U_even_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#29: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+    if( fwrite((void *) &(image_data_Er[0]),size, 1, permittivity_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#29: Failed to write bitmap file in write_fields_for_directional_couplers.c",WRITE_FAILURE);
+
+    if( fclose(Ex_even_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#30: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(Ey_even_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#31: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(E_even_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#32: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(V_even_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#33: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(U_even_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#34: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+    if( fclose(permittivity_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#35: Unable to close file in write_fields_for_directional_couplers.c",CANT_CLOSE_FILE);
+
+    /* Free ram used to store the bitmaps before they were written to disk */
+    free_ustring(image_data_Ex,0L,(long) size);
+    free_ustring(image_data_Ey,0L,(long) size);
+    free_ustring(image_data_E,0L,(long) size);
+    free_ustring(image_data_V,0L,(long) size);
+    free_ustring(image_data_U,0L,(long) size);
+    free_ustring(image_data_Er,0L,(long) size);
+  } /* End of writing even bitmap files */
+}
diff --git a/src/non_gui/write_fields_for_two_conductor_lines.c b/src/non_gui/write_fields_for_two_conductor_lines.c
new file mode 100644 (file)
index 0000000..d2dade9
--- /dev/null
@@ -0,0 +1,276 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#include "definitions.h"
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#include "exit_codes.h"
+
+extern double **Vij;
+extern double **Er;
+extern unsigned char *bmp_buff;
+extern int width, height, errno;
+#ifdef WRITE_ODDITY_DATA
+extern unsigned char **oddity;
+#endif
+
+/* Write the following files, assuming an input of example.bmp 
+where example.bmp is a 2 conductor transmission lines. For
+3 conductor transmission lines (couplers) the function
+
+
+example.E.bmp   Grayscale Bitmap of |E-field|, normallised to 1,
+but corrected for Gamma
+example.Ex.bmp  Colour Bitmap of x-directed E-field, normallised to 1, 
+but corrected for Gamma
+example.Ey.bmp  Colour Bitmap of y-directed E-field, normallised to 1, 
+but corrected for Gamma
+example.V.bmp   Colour Bitmap of Voltage field, normallised to 1, but 
+corrected for Gamma
+eexample.U.bmp  Grayscale bitmap, with just the energy (U=CV^2).
+
+example.Ex.bin  binary file, with just the x-directed E-field 
+(in volts/pixel) as doubles 
+example.Ey.bin  binary file, with just the y-directed E-field 
+(in volts/pixel) as doubles 
+example.E.bin   binary file, with just the E-field {sqrt(Ex^2+Ey^2)} 
+(in volts/pixel) as doubles 
+example.V.bin   binary file, with just the Voltage as doubles 
+eexample.U.bin  binary file, with just the energy (U=CV^2).
+
+*/
+
+extern double image_fiddle_factor;
+
+
+void write_fields_for_two_conductor_lines(char * filename, struct transmission_line_properties data, size_t size)
+{
+  FILE *Ex_bin_fp=NULL, *Ey_bin_fp=NULL;
+  FILE *E_bin_fp=NULL, *V_bin_fp, *U_bin_fp=NULL;
+  FILE *Ex_bmp_fp=NULL, *Ey_bmp_fp=NULL;
+  FILE *E_bmp_fp=NULL, *V_bmp_fp=NULL, *U_bmp_fp=NULL;
+#ifdef WRITE_ODDITY_DATA
+  FILE *oddity_bmp_fp=NULL;
+  double odd;
+#endif
+  unsigned char r, g, b;
+  FILE *permittivity_bin_fp=NULL, *permittivity_bmp_fp=NULL;
+  struct max_values maximum_values;
+  int offset=-3, w, h;
+  double V, E, Ex, Ey, U;
+
+  unsigned char *image_data_Ex=NULL; 
+  unsigned char *image_data_Ey=NULL;
+  unsigned char *image_data_E=NULL;
+  unsigned char *image_data_U=NULL; 
+  unsigned char *image_data_V=NULL;
+  unsigned char *image_data_Er=NULL;
+#ifdef WRITE_ODDITY_DATA
+  unsigned char *image_data_oddity=NULL;
+#endif 
+
+
+  if(data.write_binary_field_imagesQ==TRUE)
+  {
+    Ex_bin_fp=get_file_pointer_with_right_filename(filename,".Ex.bin");
+    Ey_bin_fp=get_file_pointer_with_right_filename(filename,".Ey.bin");
+    E_bin_fp=get_file_pointer_with_right_filename(filename,".E.bin");
+    V_bin_fp=get_file_pointer_with_right_filename(filename,".V.bin");
+    U_bin_fp=get_file_pointer_with_right_filename(filename,".U.bin");
+    permittivity_bin_fp=get_file_pointer_with_right_filename(filename,".Er.bin");
+    for(h=height-1;h>=0;h--)
+    {
+      for(w=0;w<width;++w)
+      {
+       V=Vij[w][h];
+        Ex=find_Ex(w,h);
+        Ey=find_Ey(w,h);
+        E=find_E(w,h); 
+        U=find_energy_per_metre(w,h);
+#ifdef DEBUG
+        if( Vij[w][h] == 0.0)
+         zeros++;
+        if( Vij[w][h] == 1.0)
+         ones++;
+#endif
+        if( fwrite((void *) &Ex,sizeof(double), 1, Ex_bin_fp) != 1)
+          exit_with_msg_and_exit_code("Error#1: Failed to write binary file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+
+        if( fwrite((void *) &Ey,sizeof(double), 1, Ey_bin_fp) != 1)
+          exit_with_msg_and_exit_code("Error#2: Failed to write binary file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+
+        if( fwrite((void *) &E,sizeof(double), 1, E_bin_fp) != 1)
+          exit_with_msg_and_exit_code("Error#3: Failed to write binary file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+
+        if( fwrite((void *) &V,sizeof(double), 1, V_bin_fp) != 1)
+          exit_with_msg_and_exit_code("Error#4: Failed to write binary file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+
+        if( fwrite((void *) &U,sizeof(double), 1, U_bin_fp) != 1)
+          exit_with_msg_and_exit_code("Error#5: Failed to write binary file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+
+        if( fwrite((void *) &Er[w][h],sizeof(double), 1, permittivity_bin_fp) != 1)
+          exit_with_msg_and_exit_code("Error#6: Failed to write binary file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+      }
+    }
+  } /* end of writing binary files for 2 conductor lines */
+
+  if(data.write_bitmap_field_imagesQ==TRUE)
+  {
+    find_maximum_values(&(maximum_values), ZERO_ELEMENTS_FIRST); /* sets stucture maximum_values */
+
+    /* Allocate ram to store the bitmaps before they are written to disk */
+    image_data_Ex=ustring(0L,(long) size);
+    image_data_Ey=ustring(0L,(long) size);
+    image_data_E=ustring(0L,(long) size);
+    image_data_V=ustring(0L,(long) size);
+    image_data_Er=ustring(0L,(long) size);
+    image_data_U=ustring(0L,(long) size);
+#ifdef WRITE_ODDITY_DATA
+    image_data_oddity=ustring(0L,(long) size);
+#endif
+
+    Ex_bmp_fp=get_file_pointer_with_right_filename(filename,".Ex.bmp");
+    Ey_bmp_fp=get_file_pointer_with_right_filename(filename,".Ey.bmp");
+    E_bmp_fp=get_file_pointer_with_right_filename(filename,".E.bmp");
+    V_bmp_fp=get_file_pointer_with_right_filename(filename,".V.bmp");
+    U_bmp_fp=get_file_pointer_with_right_filename(filename,".U.bmp");
+    permittivity_bmp_fp=get_file_pointer_with_right_filename(filename,".Er.bmp");
+#ifdef WRITE_ODDITY_DATA
+    oddity_bmp_fp=get_file_pointer_with_right_filename(filename,".oddity.bmp");
+#endif
+
+    if( fwrite(bmp_buff,0x36,1,Ex_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("failed to write file with the pointer Ex_bmp_fp in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,Ey_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("failed to write file with the pointer Ey_bmp_fp in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,E_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("failed to write file with the pointer E_bmp_fp in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,V_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("failed to write file with the pointer V_bmp_fp in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,U_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("failed to write file with the pointer U_bmp_fp in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fwrite(bmp_buff,0x36,1,permittivity_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("failed to write file with the pointer permittivity_bmp_fp in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+
+#ifdef WRITE_ODDITY_DATA
+    if( fwrite(bmp_buff,0x36,1,oddity_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("failed to write file with the pointer oddity_bmp_fp in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+#endif 
+
+    offset=-3;
+    for(h=height-1;h>=0;h--)
+    {
+      for(w=0;w<width;++w)
+      {
+       offset+=3;
+       if((w==0) && (offset%4!=0) && (h!=0)) 
+         offset+=(4-offset%4);
+        Ex=find_Ex(w,h);
+        Ey=find_Ey(w,h);
+        E=find_E(w,h); 
+        U=find_energy_per_metre(w,h);
+        calculate_colour_data(Ex, maximum_values.Ex_or_Ey_max, w, h, offset,image_data_Ex, COLOUR,&r,&g,&b,IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(Ey, maximum_values.Ex_or_Ey_max, w, h, offset,image_data_Ey, COLOUR,&r,&g,&b,IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(E, maximum_values.E_max, w, h, offset,image_data_E, MONOCHROME,&r,&g,&b,IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(U, maximum_values.U_max, w, h, offset,image_data_U, MONOCHROME,&r,&g,&b,IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(Vij[w][h], maximum_values.V_max, w, h, offset,image_data_V, COLOUR,&r,&g,&b,IMAGE_FIDDLE_FACTOR);
+        calculate_colour_data(Er[w][h], MAX_ER, w, h, offset,image_data_Er, MIXED,&r,&g,&b,IMAGE_FIDDLE_FACTOR);
+#ifdef WRITE_ODDITY_DATA
+       odd=(double) oddity[w][h];
+        calculate_colour_data(odd, 255 , w, h, offset,image_data_oddity, MONOCHROME,&r,&g,&b,1.0);
+#endif
+
+      }
+    }
+
+    /* if( fwrite((void *) &(image_data_Ex[0]),size, 1, Ex_bmp_fp) != 1) */
+    if( fwrite((void *) image_data_Ex,size, 1, Ex_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#7: Failed to write bitmap file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fclose(Ex_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#8: Unable to close file in write_fields_for_two_conductor_lines.c",CANT_CLOSE_FILE);
+
+    /* if( fwrite((void *) &(image_data_Ey[0]),size, 1, Ey_bmp_fp) != 1) */
+    if( fwrite((void *) image_data_Ey,size, 1, Ey_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#9: Failed to write bitmap file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fclose(Ey_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#10: Unable to close file in write_fields_for_two_conductor_lines.c",CANT_CLOSE_FILE);
+
+    if( fwrite((void *) &(image_data_E[0]),size, 1, E_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#11: Failed to write bitmap file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fclose(E_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#12: Unable to close file in write_fields_for_two_conductor_lines.c",CANT_CLOSE_FILE);
+
+    if( fwrite((void *) &(image_data_U[0]),size, 1, U_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#13: Failed to write bitmap file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fclose(U_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#14: Unable to close file in write_fields_for_two_conductor_lines.c",CANT_CLOSE_FILE);
+
+    if( fwrite((void *) &(image_data_V[0]),size, 1, V_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#15: Failed to write bitmap file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fclose(V_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#16: Unable to close file in write_fields_for_two_conductor_lines.c",CANT_CLOSE_FILE);
+
+    if( fwrite((void *) &(image_data_Er[0]),size, 1, permittivity_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#17: Failed to write bitmap file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fclose(permittivity_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#18: Unable to close file in write_fields_for_two_conductor_lines.c",CANT_CLOSE_FILE);
+
+#ifdef WRITE_ODDITY_DATA
+    if( fwrite((void *) &(image_data_oddity[0]),size, 1, oddity_bmp_fp) != 1)
+      exit_with_msg_and_exit_code("Error#19: Failed to write bitmap file in write_fields_for_two_conductor_lines.c",WRITE_FAILURE);
+    if( fclose(oddity_bmp_fp) != 0)
+      exit_with_msg_and_exit_code("Error#20: Unable to close file in write_fields_for_two_conductor_lines.c",CANT_CLOSE_FILE);
+#endif
+
+    free_ustring(image_data_Ex,0L,(long)size);
+    free_ustring(image_data_Ey,0L,(long)size);
+    free_ustring(image_data_E,0L,(long)size);
+    free_ustring(image_data_V,0L,(long)size);
+    free_ustring(image_data_U,0L,(long)size);
+    free_ustring(image_data_Er,0L,(long)size);
+#ifdef WRITE_ODDITY_DATA
+    free_ustring(image_data_oddity,0L,(long)size);
+#endif
+  }
+#ifdef DEBUG
+  printf("zeros=%d ones=%d\n",zeros,ones);
+#endif 
+}
diff --git a/teston b/teston
new file mode 100755 (executable)
index 0000000..c6bace2
--- /dev/null
+++ b/teston
@@ -0,0 +1,283 @@
+#! /bin/sh
+# 'teston' is used for testing software build properly on remote
+# machines. 
+# Copyright (C) Dr. David Kirkby, drkirkby@ntlworld.com
+
+# This program is 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, or (at your option) any
+# later version.
+
+# This program 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 this program; if not, write to the Free Software
+# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# In other words, you are welcome to use, share and improve this program.
+# You are forbidden to forbid anyone else to use, share and improve
+# #what you give them.   Help stamp out software-hoarding!  */
+
+# The following script allows a distribution of any program which ends
+# .tar.gz to be configured/built on a remote platform. By doing this,
+# possible to spot bugs that are not apparent on a local machine. The
+# script uses ssh/scp to copy the commands and should not require the
+# entry of passwords. A script is created on the local machine, which
+# is copied by scp/scp2 to a remote machine and executed there. Trying
+# to execute the individual staments in the script via ssh takes too
+# long, as the authentication needs to be repeated each time. 
+########################################################################
+########################################################################
+# The following parameters should be set, to save specifying them on the
+# command line each time you run. However ALL can be set on the command
+# line, but it make sense to set the defaults how you will most often use
+########################################################################
+########################################################################
+
+# This shell might look a bit alful, but is writen in a portable way.
+: ${USERNAME='davek'}            # The user name on the remote system
+: ${COMPILER='gcc'}              # can be set to cc or whatever
+: ${MAKE='make'}                   # you might user 'gmake as default 
+COMPILER=_FLAGS=${COMPILER_FLAGS="-Wall -O2"}  # can be set on command line
+LINKER_FLAGS=${LINKER_FLAGS="-L/usr/local/lib"}  
+MAKE_OPTIONS=${MAKE_OPTIONS=""}       # can be changed on the commmand line
+SCP=${SCP="scp"}                      # can be changed on commmand line.
+SSH=${SSH="ssh"}                      # could be changed to rsh 
+EXTENSION=${EXTENSION=".tar.gz"}       #                         
+CONFIGURE_OUTPUT=${CONFIGURE_OUTPUT=''}  # Change to /dev/null if you want
+MAKE_OUTPUT=${MAKE_OUTPUT=''}            # Chnage to /null if you want. 
+
+########################################################################
+########################################################################
+# NOTHING BELOW HERE SHOULD NEED ALTERING !! Don't touch
+# NOTHING BELOW HERE SHOULD NEED ALTERING !! Don't touch
+########################################################################
+########################################################################
+
+#: ${DELETE_FILES_AFTER_USE='no'}  # Don't change
+TMP_NAME=${TMP_NAME=""}
+
+EX1a="eg #1 teston dove atlc-5.0.0"
+EX1b="copies atlc-5.0.0.tar.gz to dove and builds it on dove\n"
+
+EX2a="eg #2 teston -b -c '--with-x --without-y' -m check woodpecker atlc-4.2.12"
+EX2b="Builds and checks atlc-4.2.2.tar.bz2 on woodpecker, configured with x, but not y\n"
+
+EX3a="eg #3 teston -m '-j2' -z bluetit atlc-4.0.0"
+EX3b="copies atlc-4.0.0.zip to bluetit and does a parallel build\n"
+
+EX4a="eg #4 teston -c --enable-hardware-info -M gmake  crow atlc-4.0.0"
+EX4b="copies atlc-4.0.0.tar.gz to crow, configures with --enable-hardware-info and uses gmake to build\n"
+
+EX5a="eg #5 teston -u root duke@medphys.ucl.ac.uk gcc-3.2.2"
+EX5b="builds+tests gcc-3.2.2.tar.gz on duke@medphys.ucl.ac.uk using username root"
+
+TMP_DIR=  # Don't be fooled. Don't touch it. It is not what you think!
+
+while getopts c:m:M:u:tbRrNnTzZ supplied_options
+do 
+  case $supplied_options in
+  u)
+  USERNAME=$OPTARG;;
+  R)
+  SCP="rsh cp"
+  SSH=rsh;;
+  b)
+  EXTENSION=".tar.bz2" ;;
+  t)
+  EXTENSION=".tgz" ;;
+  z)
+  EXTENSION=".zip" ;;
+  Z)
+  EXTENSION='.ZIP'  ;;
+
+  c)
+  CONFIG_OPTIONS=$OPTARG;;
+
+  m)
+  MAKE_OPTIONS=$OPTARG;;
+
+  M)
+  MAKE=$OPTARG;;
+
+  N)
+  CONFIGURE_OUTPUT=\>/dev/null;;
+
+  N)
+  MAKE_OUTPUT=\>/dev/null;;
+  T)
+#  TIME=`date | awk '{print $4}'`
+#  TMP_DIR=$TIME.$$/
+#  TMP_NAME=$TIME.$$.;;
+ TMP_DIR=$$/
+ TMP_NAME=$$.;;
+  r)
+  DELETE_FILES_AFTER_USE="yes" ;;
+  \?)
+  echo "Usage: teston [options] host package\n"
+  echo  "Options are:"
+  echo  "Options are:"
+  echo  "            -u username             # username on host (default = $USERNAME)"
+  echo  "            -R                      # rsh and 'rsh cp' rather than $SSH and $SCP"
+  echo  "            -b                      # assume .tar.bz2 rather than $EXTENSION"
+  echo  "            -t                      # assume .tgz extention rather than $EXTENSION"
+  echo  "            -z                      # assume .zip extention rather than $EXTENSION"
+  echo  "            -Z                      # assume .ZIP extention rather than $EXTENSION"
+  echo  "            -c option_to_configure  # e.g --with-foo"
+  echo  "            -M name_of_make         # e.g. gmake (default = $MAKE)"
+  echo  "            -m option_to_make       # e.g. install (default $MAKE_OPTIONS)"
+  echo  "            -B                      # run make in background. "
+  echo  "            -N                      # Redirect output of make to /dev/null"
+  echo  "            -T                      # Use a unique tmp directory on remote host"
+  echo  "            -r                      # Removes files afterwards"
+  echo  "            -n                      # Redirect output of configure to /dev/null"
+  echo $EX1a  
+  echo $EX1b 
+  echo $EX2a  
+  echo $EX2b 
+  echo $EX3a 
+  echo $EX3b  
+  echo $EX4a  
+  echo $EX4b 
+  echo $EX5a  
+  echo $EX5b 
+  esac
+  done
+shift `expr $OPTIND - 1`
+
+if [ $# -ne 2 ] ; then
+  echo "Usage: teston [options] host package\n"
+  echo  "Options are:"
+  echo  "            -u username             # username on host (default = $USERNAME)"
+  echo  "            -R                      # rsh and 'rsh cp' rather than $SSH and $SCP"
+  echo  "            -b                      # assume .tar.bz2 rather than $EXTENSION"
+  echo  "            -t                      # assume .tgz extention rather than $EXTENSION"
+  echo  "            -z                      # assume .zip extention rather than $EXTENSION"
+  echo  "            -Z                      # assume .ZIP extention rather than $EXTENSION"
+  echo  "            -c option_to_configure  # e.g --with-foo"
+  echo  "            -M name_of_make         # e.g. gmake (default = $MAKE)"
+  echo  "            -m option_to_make       # e.g. install (default $MAKE_OPTIONS)"
+  echo  "            -B                      # run make in background. "
+  echo  "            -N                      # Redirect output of make to /dev/null"
+  echo  "            -T                      # Use a unique tmp directory on remote host"
+  echo  "            -r                      # Removes files afterwards"
+  echo  "            -n                      # Redirect output of configure to /dev/null"
+  echo $EX1a  
+  echo $EX1b 
+  echo $EX2a  
+  echo $EX2b 
+  echo $EX3a 
+  echo $EX3b  
+  echo $EX4a  
+  echo $EX4b 
+  echo $EX5a  
+  echo $EX5b 
+  exit 4
+fi   
+
+REMOTE_HOST=`echo $* | awk '{print $1}'`
+VER=`echo $* | awk '{print $2}'`
+
+# Check the file needed to be sent does acutally exist. 
+if test ! -f $VER$EXTENSION ; then
+  echo $VER$EXTENSION can not be opened for reading
+  exit 3
+fi
+
+DATE=`date`
+echo $TIME
+LOCAL_HOST=`hostname` > /dev/null
+
+# Find the home directory of the user on the remote host.
+REMOTE_HOME=`$SSH $USERNAME@$REMOTE_HOST pwd`
+
+# Create a file 'remote_test.$REMOTE_HOST' on the local machine, which we want
+# executed on the remote host, not on the local machine. 
+echo "#! /bin/sh" | tee > remote-test.$TMP_NAME$REMOTE_HOST.out > remote-test.$TMP_NAME$REMOTE_HOST
+echo "# Script created on $LOCAL_HOST at $DATE using 'teston' " >> remote-test.$TMP_NAME$REMOTE_HOST
+echo "# to run on the remote host $REMOTE_HOST " >> remote-test.$TMP_NAME$REMOTE_HOST
+echo PATH=\$PATH:/usr/local/bin >> remote-test.$TMP_NAME$REMOTE_HOST
+echo "Output from the script created on $LOCAL_HOST at $DATE using 'teston' " >> remote-test.$TMP_NAME$REMOTE_HOST.out
+echo cd $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR >> remote-test.$TMP_NAME$REMOTE_HOST
+
+# the exact method of decompressing the file depends on the file extension. 
+if [ "x$EXTENSION" = "x.tar.gz" ] ; then
+  echo gzip -d $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar.gz >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo tar xf $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo rm $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+elif [ "x$EXTENSION" = "x.tgz" ] ; then
+  echo  gzip -d $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tgz >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo  tar xf $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo rm $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+elif [ "x$EXTENSION" = "x.tar.bz2" ] ; then
+  echo  $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar.bz2 >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo  tar xf $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo rm $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+elif [ "x$EXTENSION" = "x.tar.Z" ] ; then
+  echo gzip -d $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar.Z  >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo  tar xf $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo rm $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+elif [ "x$EXTENSION" = "x.zip" ]  ; then
+  echo unzip $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.zip >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo tar xf $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+elif [ "x$EXTENSION" = "x.ZIP" ]  ; then
+  echo unzip $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.ZIP >> remote-test.$TMP_NAME$REMOTE_HOST
+  echo tar xf $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+elif [ "x$EXTENSION" = "x.tar" ] ; then
+  echo tar xf $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER.tar >> remote-test.$TMP_NAME$REMOTE_HOST
+else
+  echo "unknown extension $EXTENSION"
+  exit 1
+fi
+
+REMOTE_HOST=`echo $* | awk '{print $1}'`
+VER=`echo $* | awk '{print $2}'`
+if test ! -f $VER$EXTENSION ; then
+  echo $VER$EXTENSION can not be opened for reading
+  exit 3
+fi
+
+DATE=`date`
+# The rest of the script to go to the remote machine. 
+echo mkdir $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER-build >> remote-test.$TMP_NAME$REMOTE_HOST
+echo cd $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER-build >> remote-test.$TMP_NAME$REMOTE_HOST
+echo $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER/configure $CONFIG_OPTIONS $CONFIGURE_OUTPUT >> remote-test.$TMP_NAME$REMOTE_HOST
+echo $MAKE $MAKE_OPTIONS $MAKE_OUTPUT >> remote-test.$TMP_NAME$REMOTE_HOST
+if [ "x$DELETE_FILES_AFTER_USE" = "xyes" ] ; then 
+  rm -r $REMOTE_HOME/$REMOTE_HOST/$TMP_DIR$VER >> remote-test.$TMP_NAME$REMOTE_HOST
+fi 
+
+# The script is now created on the local machine, so make it executable
+chmod 755 remote-test.$TMP_NAME$REMOTE_HOST
+
+# Remove any direcotory on the remove machine that might have files
+# in so messing up our build. If we want to build more than once on the
+# remote machine, the -T option should be given to create a 
+# directory on the remote machine that is unique. The method used 
+# here does not guarantee uniqness, but it should be okay. 
+
+$SSH $USERNAME@$REMOTE_HOST rm -fR $REMOTE_HOST/$TMP_DIR 2> /dev/null
+
+# Make direcotries on the remote machine. #
+
+$SSH $USERNAME@$REMOTE_HOST mkdir $REMOTE_HOST 2> /dev/null
+$SSH $USERNAME@$REMOTE_HOST mkdir $REMOTE_HOST/$TMP_DIR 2> /dev/null
+
+# Copy via scp/scp2 the script file in addition to the package
+# (somename.tar.gz or somename.tgz etc) to the remote machine.
+
+$SCP -p $VER$EXTENSION remote-test.$TMP_NAME$REMOTE_HOST $USERNAME@$REMOTE_HOST:$REMOTE_HOST/$TMP_DIR
+# Put a copy of the remote script locally for debugging. 
+cat remote-test.$TMP_NAME$REMOTE_HOST >> remote-test.$TMP_NAME$REMOTE_HOST.out
+
+# Execute the script on the distant machine.
+$SSH -f $USERNAME@$REMOTE_HOST $REMOTE_HOST/$TMP_DIR/remote-test.$TMP_NAME$REMOTE_HOST | tee -a remote-test.$TMP_NAME$REMOTE_HOST.out &
+
+# Clean up the local file after ourselves. 
+if [ DELETE_FILES_AFTER_USE = "yes" ] ; then 
+  rm remote-test.$TMP_NAME$REMOTE_HOST
+fi
diff --git a/tests/10a-create-lots-of-examples-check-last-one.test b/tests/10a-create-lots-of-examples-check-last-one.test
new file mode 100755 (executable)
index 0000000..e942b39
--- /dev/null
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+Zodd=`$top_builddir/src/non_gui/create_bmp_for_stripline_coupler -v 1.0 1.0 0.02 1 $top_builddir/tests/coupler8.bmp | tail -4 | head -1 | awk '{print $2}'`
+Zeven=`$top_builddir/src/non_gui/create_bmp_for_stripline_coupler -v 1.0 1.0 0.02 1 $top_builddir/tests/coupler8.bmp | tail -4 | head -1 | awk '{print $4}'`
+Zo=`$top_builddir/src/non_gui/create_bmp_for_stripline_coupler -v 1.0 1.0 0.02 1 $top_builddir/tests/coupler8.bmp | tail -4 | head -1 | awk '{print $6}'`
+rm $top_builddir/tests/coupler8.bmp
+
+if [ $Zodd = 40.395419 ] && [ $Zeven = 76.541465 ]  && [ $Zo = 55.605076 ] ; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
+
diff --git a/tests/10b-create-lots-of-examples-check-last-one.test b/tests/10b-create-lots-of-examples-check-last-one.test
new file mode 100755 (executable)
index 0000000..c5b194d
--- /dev/null
@@ -0,0 +1,51 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as create_bmp_for_symmetrical_stripline, 
+# create_bmp_for_create_bmp_for_rect_in_rect, create_bmp_for_rect_cen_in_rect, create_bmp_for_circ_in_circ, create_bmp_for_circ_in_rect, 
+# create_bmp_for_stripline_coupler etc.
+
+# The checksum of the bitmap generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the GNU program 'sum'. Using my own version avoids the need for the user to 
+# have the GNU textutils installed and avoids the possibility that they have
+# 'textutils' installed but have another version of 'sum' (such as the one 
+# supplied by Sun with Solaris, which generates a different checksum. 
+
+# atlc is then run, generating a lot of files, including those with the 
+# extension .bmp, .txt and .bin. The checksum of the .bmp's and part of
+# the .txt file are checked. The .bin's are not, since they will be
+# dependent on the whether the machine is Big Endian (like Suns) or
+# Little Endian like PCs. It will also be too dependent on rounding
+# difference caused by the different FPUs in the different machines. 
+
+# Any failure to generate the correct checksums are noted. 
+
+# Any failure in an Xa-$top_builddir. where X is an integer will cause
+# Xb, Xc, Xd $top_builddir.etc to fail. Any pass of Xa, but faiure of Xb will cause
+# all the Xc, Xd $top_builddir. to fail. If both Xa and Xb pass, then hopefully Xc,
+# Xd etc will. However, Xd, Xe etc does not rely on the correct functioning of 
+# Xc. The Xc, Xd, $top_builddir. only need Xa and Xb to pass, so Xc, Xd etc are
+# independent of each other. 
+
+# I would add that these checksums have been checked using the GNU
+# textutils on about 15 different computers, from PCs, to Suns to Dec etc.
+# So they are okay and I would suggest any failures is a problem. 
+# The only reason I can think of a failure is that there is a difference
+# in the outout of 'mymd5sum' to the GNU utilites one, but that is
+# unlikely. So if any problems occur, check the checksum with the GNU
+# 'sum' and see what that gives. If any failures do occur, please let me
+# know. email drkirkby@ntlworld.com and/or davek@medphys.ucl.ac.uk 
+
+
+Zodd=`$top_builddir/src/no*/create_bmp_for_stripline_coupler -v 1.0 1.0 1.0 1.0 $top_builddir/tmp/coupler1.bmp | tail -1 | awk '{print $2 }' `
+Zeven=`$top_builddir/src/no*/create_bmp_for_stripline_coupler -v 1.0 1.0 1.0 1.0 $top_builddir/tmp/coupler1.bmp | tail -1 | awk '{print $4 }' `
+Zo=`$top_builddir/src/no*/create_bmp_for_stripline_coupler -v 1.0 1.0 1.0 1.0 $top_builddir/tmp/coupler1.bmp | tail -1 | awk '{print $6 }' `
+rm -f $top_builddir/tmp/coupler1.bmp
+if [ $Zodd = 64.722695 ] && [ $Zeven = 65.969498 ] && [ $Zo = 65.343123 ] ; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
diff --git a/tests/11a-verify-checksum-of-supplied-test-coupler1.bmp.test b/tests/11a-verify-checksum-of-supplied-test-coupler1.bmp.test
new file mode 100755 (executable)
index 0000000..820396a
--- /dev/null
@@ -0,0 +1,14 @@
+#! /bin/sh
+# There should be a bitmap included in the distribution
+# The checksum of this will be checked.
+mkdir $top_builddir/tmp 2>/dev/null
+cp $top_srcdir/examples/test-coupler1.bmp $top_builddir/tmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.bmp `
+if [ $MD5SUM = dab33365f45d8d8b7e3544444ce833c4 ]; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else 
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
+
diff --git a/tests/11b-verify-checksum-of-created-test-coupler1.Ex.odd.bmp.test b/tests/11b-verify-checksum-of-created-test-coupler1.Ex.odd.bmp.test
new file mode 100755 (executable)
index 0000000..e81f208
--- /dev/null
@@ -0,0 +1,21 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay. 
+if [ "$mpirun" = "yes" ] ; then 
+  mpirun -np 2 $top_builddir/src/non_gui/atlc -S $top_builddir/tmp/test-coupler1.bmp  > /dev/null
+  rm $top_builddir/tmp/test-coupler1.Ex.odd.bmp
+else
+  $top_builddir/src/non_gui/atlc -S $top_builddir/tmp/test-coupler1.bmp  > /dev/null
+fi
+touch $top_builddir/tmp/test-coupler1.Ex.odd.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.Ex.odd.bmp`
+rm $top_builddir/tmp/test-coupler1.Ex.odd.bmp
+if [ $MD5SUM != 5309c7bfa4aeb3d2b8bfa211587e59fe ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/11c-verify-checksum-of-created-test-coupler1.Ey.odd.bmp.test b/tests/11c-verify-checksum-of-created-test-coupler1.Ey.odd.bmp.test
new file mode 100755 (executable)
index 0000000..2e18424
--- /dev/null
@@ -0,0 +1,15 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay. 
+touch $top_builddir/tmp/test-coupler1.Ey.odd.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.Ey.odd.bmp`
+rm $top_builddir/tmp/test-coupler1.Ey.odd.bmp
+if [ $MD5SUM != 4040ded470e4655081b0a8b3fe507913 ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/11d-verify-checksum-of-created-test-coupler1.E.odd.bmp.test b/tests/11d-verify-checksum-of-created-test-coupler1.E.odd.bmp.test
new file mode 100755 (executable)
index 0000000..b61532a
--- /dev/null
@@ -0,0 +1,14 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay.
+touch $top_builddir/tmp/test-coupler1.E.odd.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.E.odd.bmp`
+rm $top_builddir/tmp/test-coupler1.E.odd.bmp
+if [ $MD5SUM != cd1d28a06af48d4b7d4b6ba2436369d9 ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/11e-verify-checksum-of-created-test-coupler1.V.odd.bmp.test b/tests/11e-verify-checksum-of-created-test-coupler1.V.odd.bmp.test
new file mode 100755 (executable)
index 0000000..ea8c9ab
--- /dev/null
@@ -0,0 +1,16 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay. 
+
+touch $top_builddir/tmp/test-coupler1.V.odd.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.V.odd.bmp`
+rm $top_builddir/tmp/test-coupler1.V.odd.bmp
+if [ $MD5SUM != 5039cb92032f6ec654a4476896461e7a ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/11f-verify-checksum-of-created-test-coupler1.U.odd.bmp.test b/tests/11f-verify-checksum-of-created-test-coupler1.U.odd.bmp.test
new file mode 100755 (executable)
index 0000000..0bb78ed
--- /dev/null
@@ -0,0 +1,15 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay.
+touch $top_builddir/tmp/test-coupler1.U.odd.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.U.odd.bmp`
+rm $top_builddir/tmp/test-coupler1.U.odd.bmp
+if [ $MD5SUM != 54b0717d79906661309375844cbc9a36 ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/11g-verify-checksum-of-created-test-coupler1.Er.bmp.test b/tests/11g-verify-checksum-of-created-test-coupler1.Er.bmp.test
new file mode 100755 (executable)
index 0000000..9fc381a
--- /dev/null
@@ -0,0 +1,15 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay. 
+touch $top_builddir/tmp/test-coupler1.Er.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.Er.bmp`
+rm  $top_builddir/tmp/test-coupler1.Er.bmp
+if [ $MD5SUM != 1735b1c2d12fced4338f6f59ed85a1bc ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/11h-verify-checksum-of-created-test-coupler1.Ex.even.bmp.test b/tests/11h-verify-checksum-of-created-test-coupler1.Ex.even.bmp.test
new file mode 100755 (executable)
index 0000000..6f233a3
--- /dev/null
@@ -0,0 +1,15 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay. 
+touch $top_builddir/tmp/test-coupler1.Ex.even.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.Ex.even.bmp`
+rm $top_builddir/tmp/test-coupler1.Ex.even.bmp
+if [ $MD5SUM != 91e787e9bf465b187a5bc3f7c1c17138 ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/11i-verify-checksum-of-created-test-coupler1.Ey.even.bmp.test b/tests/11i-verify-checksum-of-created-test-coupler1.Ey.even.bmp.test
new file mode 100755 (executable)
index 0000000..a993cea
--- /dev/null
@@ -0,0 +1,15 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay
+touch $top_builddir/tmp/test-coupler1.Ey.even.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.Ey.even.bmp`
+if [ $MD5SUM != 8e885809765197a084628f0cc859a4a4 ]; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test-coupler1.Ey.even.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/11j-verify-checksum-of-created-test-coupler1.E.even.bmp.test b/tests/11j-verify-checksum-of-created-test-coupler1.E.even.bmp.test
new file mode 100755 (executable)
index 0000000..aa2262a
--- /dev/null
@@ -0,0 +1,15 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay.
+touch $top_builddir/tmp/test-coupler1.E.even.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.E.even.bmp`
+if [ $MD5SUM != a0a1c32b90dbdd081e5804963b0b30c2 ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  rm $top_builddir/tmp/test-coupler1.E.even.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/11k-verify-checksum-of-created-test-coupler1.U.even.bmp.test b/tests/11k-verify-checksum-of-created-test-coupler1.U.even.bmp.test
new file mode 100755 (executable)
index 0000000..c5a65f0
--- /dev/null
@@ -0,0 +1,16 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay. 
+
+touch $top_builddir/tmp/test-coupler1.U.even.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.U.even.bmp`
+if [ $MD5SUM != d2feed9da0e6d514b583482862e4f0c1 ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  rm $top_builddir/tmp/test-coupler1.U.even.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/11l-verify-checksum-of-created-test-coupler1.V.even.bmp.test b/tests/11l-verify-checksum-of-created-test-coupler1.V.even.bmp.test
new file mode 100755 (executable)
index 0000000..d5229ea
--- /dev/null
@@ -0,0 +1,17 @@
+#! /bin/sh
+# There should be a supplied bitmap file test-coupler1.bmp
+# We will generate all the bitmaps and check they 
+# are all okay. 
+touch $top_builddir/tmp/test-coupler1.V.even.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test-coupler1.V.even.bmp`
+rm -f $top_builddir/tmp/test-coupler1.V.even.bmp $top_builddir/tmp/test-coupler1.bmp
+
+if [ $MD5SUM != b9f22cb28c88629233e7f38642418670 ]; then
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+else 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/13a-check_rect_cen_in_rect.test b/tests/13a-check_rect_cen_in_rect.test
new file mode 100755 (executable)
index 0000000..1d29f72
--- /dev/null
@@ -0,0 +1,36 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_rect_cen_in_rect 268 100 100 50 4.8  $top_builddir/tmp/central.bmp  >/dev/null 2>/dev/null
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/central.bmp`
+rm $top_builddir/tmp/central.bmp
+if [ $MD5SUM != 48dc0ac8fc6092d7bee8cd2b00fa7da2 ]; then 
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
+
diff --git a/tests/13b-check_rect_cen_in_rect.test b/tests/13b-check_rect_cen_in_rect.test
new file mode 100755 (executable)
index 0000000..63fa5b4
--- /dev/null
@@ -0,0 +1,36 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_rect_cen_in_rect 200.3 100 93  57 1.0  $top_builddir/tmp/central.bmp  >/dev/null 2>/dev/null
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/central.bmp`
+rm $top_builddir/tmp/central.bmp
+if [ $MD5SUM != ceb7b80aba008c32d3af257943e8b0db ]; then 
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
+
diff --git a/tests/13c-check_rect_cen_in_rect.test b/tests/13c-check_rect_cen_in_rect.test
new file mode 100755 (executable)
index 0000000..1d29f72
--- /dev/null
@@ -0,0 +1,36 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_rect_cen_in_rect 268 100 100 50 4.8  $top_builddir/tmp/central.bmp  >/dev/null 2>/dev/null
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/central.bmp`
+rm $top_builddir/tmp/central.bmp
+if [ $MD5SUM != 48dc0ac8fc6092d7bee8cd2b00fa7da2 ]; then 
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
+
diff --git a/tests/13d-check_rect_cen_in_rect.test b/tests/13d-check_rect_cen_in_rect.test
new file mode 100755 (executable)
index 0000000..117afcd
--- /dev/null
@@ -0,0 +1,36 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_rect_cen_in_rect 267 150 140 50 1  $top_builddir/tmp/central.bmp  >/dev/null 2>/dev/null
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/central.bmp`
+rm $top_builddir/tmp/central.bmp
+if [ $MD5SUM != e9d0da5766743faaa772bf15ad383716 ]; then 
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
+
diff --git a/tests/14a-check-circ-in-rect.test b/tests/14a-check-circ-in-rect.test
new file mode 100755 (executable)
index 0000000..127f3b9
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_circ_in_rect 20 200 100 50 -4.98 10.2  $top_builddir/tmp/cir.bmp >/dev/null 2>/dev/null
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/cir.bmp`
+rm $top_builddir/tmp/cir.bmp
+if [ $MD5SUM != a081de7d22ef36046ea1db730b99856d ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/14b-check-circ-in-rect.test b/tests/14b-check-circ-in-rect.test
new file mode 100755 (executable)
index 0000000..4538241
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_circ_in_rect 20 180 100 50 -5 1  $top_builddir/tmp/cir.bmp >/dev/null 2>/dev/null
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/cir.bmp`
+rm $top_builddir/tmp/cir.bmp
+if [ $MD5SUM != 5b4cd5f44cea3671e3c569c26e88ad0f ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/14c-check-circ-in-rect.test b/tests/14c-check-circ-in-rect.test
new file mode 100755 (executable)
index 0000000..341c964
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_circ_in_rect 5  100 100 20 -5 4.8  $top_builddir/tmp/cir.bmp >/dev/null 2>/dev/null
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/cir.bmp`
+rm $top_builddir/tmp/cir.bmp
+if [ $MD5SUM != b18d3572c2e0b07bdc0c8ad26e704a1e ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/14d-check-circ-in-rect.test b/tests/14d-check-circ-in-rect.test
new file mode 100755 (executable)
index 0000000..df48031
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_circ_in_rect 40 100 100 5 -5 1  $top_builddir/tmp/cir.bmp >/dev/null 2>/dev/null
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/cir.bmp`
+rm $top_builddir/tmp/cir.bmp
+if [ $MD5SUM != b04a136919079fa8e238b09a8631fe5c ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
diff --git a/tests/1a-create_bmp_for_symmetrical_stripline.bmp.test b/tests/1a-create_bmp_for_symmetrical_stripline.bmp.test
new file mode 100755 (executable)
index 0000000..1af3116
--- /dev/null
@@ -0,0 +1,19 @@
+#! /bin/sh
+# If the user is building in a different directory to the 
+# source, we want to be able to install the examples, 
+# so copy those over. 
+
+echo "Testing started at" `date` "on" `hostname` >  $top_builddir/tests/tests.log
+mkdir $top_builddir/tmp 2>/dev/null >/dev/null
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 950 201 68 $top_builddir/tmp/test_sym_strip.bmp > /dev/null 2> /dev/null
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_sym_strip.bmp`
+if [ $MD5SUM = 74b72c91834147d14396cc25db7c9e14 ] ; then
+  echo "PASSED:" $0 >> tests.log 
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log 
+  exit 1
+fi
+exit 0
diff --git a/tests/1b-create_bmp_for_symmetrical_stripline.txt.test b/tests/1b-create_bmp_for_symmetrical_stripline.txt.test
new file mode 100755 (executable)
index 0000000..b6e8227
--- /dev/null
@@ -0,0 +1,19 @@
+# !/bin/sh
+# This test runs atlc, but if the package was configured with the --with-mpi
+# or --with-mpe options, then atlc should not be called directly, but via
+# the mpirun script, which is part of the MPICH distribution. 
+
+if [ -n "$mpirun_found" ] ; then
+  Zo=`mpirun -np 2 $top_builddir/src/non_gui/atlc $top_builddir/tmp/test_sym_strip.bmp | awk '{print $6}'` 2> /dev/null
+else
+  Zo=`$top_builddir/src/non_gui/atlc $top_builddir/tmp/test_sym_strip.bmp | awk '{print $6}'`
+fi
+
+# Check the impedance Zo which should be 122.43 Ohms
+if [ "x$Zo" = "x122.792" ] ; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 Zo=$Zo >> tests.log
+  exit 1
+fi
diff --git a/tests/1c-create_bmp_for_symmetrical_stripline.E.bmp.test b/tests/1c-create_bmp_for_symmetrical_stripline.E.bmp.test
new file mode 100755 (executable)
index 0000000..b955d03
--- /dev/null
@@ -0,0 +1,34 @@
+# !/bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+
+touch $top_builddir/tmp/test_sym_strip.E.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_sym_strip.E.bmp`
+if [ $MD5SUM = b97e0e31dcc8983e1b8cb4ac201e2961 ]; then
+  rm $top_builddir/tmp/test_sym_strip.E.bmp 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/1d-create_bmp_for_symmetrical_stripline.Er.bmp.test b/tests/1d-create_bmp_for_symmetrical_stripline.Er.bmp.test
new file mode 100755 (executable)
index 0000000..c6af59c
--- /dev/null
@@ -0,0 +1,33 @@
+# !/bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+
+touch $top_builddir/tmp/test_sym_strip.Er.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_sym_strip.Er.bmp`
+if [ $MD5SUM = 2071f27d998092ddf771debbdb70cee0 ]; then
+  rm $top_builddir/tmp/test_sym_strip.Er.bmp 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/1e-create_bmp_for_symmetrical_stripline.Ey.bmp.test b/tests/1e-create_bmp_for_symmetrical_stripline.Ey.bmp.test
new file mode 100755 (executable)
index 0000000..3aa9283
--- /dev/null
@@ -0,0 +1,35 @@
+# !/bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+
+touch $top_builddir/tmp/test_sym_strip.Ey.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_sym_strip.Ey.bmp`
+if [ $MD5SUM = d4a79fe413d1e5936c9f78e31662da0a ]; then
+  rm $top_builddir/tmp/test_sym_strip.Ey.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
diff --git a/tests/1f-create_bmp_for_symmetrical_stripline.Ex.bmp.test b/tests/1f-create_bmp_for_symmetrical_stripline.Ex.bmp.test
new file mode 100755 (executable)
index 0000000..79d7d38
--- /dev/null
@@ -0,0 +1,16 @@
+# !/bin/sh
+# It is pointless checking the checksum's on binary files as they will
+# differ on differnt Endian'ness and with different rounding errors on FP
+# units. Hence only the length is checked on the binary files
+
+touch $top_builddir/tmp/test_sym_strip.Ex.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_sym_strip.Ex.bmp`
+if [ $MD5SUM = 9c64551379b6ddc17b4d73c2c5c8f79e ]; then
+  rm $top_builddir/tmp/test_sym_strip.Ex.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/1g-create_bmp_for_symmetrical_stripline.U.bmp.test b/tests/1g-create_bmp_for_symmetrical_stripline.U.bmp.test
new file mode 100755 (executable)
index 0000000..1ecb405
--- /dev/null
@@ -0,0 +1,32 @@
+# !/bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# Due to rounding errors, some systems do generate a different checksum on 
+# one machines to another. Usually this is only a single pixel differing
+# by one gray level. In this case, the 3 consequive bytes 301041, 
+# 301042 and 301043 are 254 on a Cray Y-MP but 255 on a Sun. AS such, 
+# in this case, more than one checksum is acceptable. 
+
+touch $top_builddir/tmp/test_sym_strip.U.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_sym_strip.U.bmp`
+if [ $MD5SUM = 2f4d1ab071f103805e794a9b1cdba7ce ]  ; then
+  rm -f $top_builddir/tmp/test_sym_strip.U.bmp 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
diff --git a/tests/1h-create_bmp_for_symmetrical_stripline.V.bmp.test b/tests/1h-create_bmp_for_symmetrical_stripline.V.bmp.test
new file mode 100755 (executable)
index 0000000..4c63b93
--- /dev/null
@@ -0,0 +1,34 @@
+# !/bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+
+touch $top_builddir/tmp/test_sym_strip.V.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_sym_strip.V.bmp`
+if [ $MD5SUM = 1edc000e36a6438e73d7ac813b8cb9aa ]; then
+  rm $top_builddir/tmp/test_sym_strip.V.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/1i-create_bmp_for_symmetrical_stripline.E.bin.test b/tests/1i-create_bmp_for_symmetrical_stripline.E.bin.test
new file mode 100755 (executable)
index 0000000..b10a5f4
--- /dev/null
@@ -0,0 +1,17 @@
+#! /bin/sh
+# It is pointless checking the checksum's on binary files as they will
+# differ on differnt Endian'ness and with different rounding errors on FP
+# units. Hence only the length is checked on the binary files
+
+touch $top_builddir/tmp/test_sym_strip.E.bin
+
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/test_sym_strip.E.bin`
+
+if [ $LENGTH = 1603600 ]; then
+  rm -f $top_builddir/tmp/test_sym_strip.E.bin 
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/1j-create_bmp_for_symmetrical_stripline.Er.bin.test b/tests/1j-create_bmp_for_symmetrical_stripline.Er.bin.test
new file mode 100755 (executable)
index 0000000..df1c28d
--- /dev/null
@@ -0,0 +1,17 @@
+#! /bin/sh
+# It is pointless checking the checksum's on binary files as they will
+# differ on differnt Endian'ness and with different rounding errors on FP
+# units. Hence only the length is checked on the binary files
+
+touch $top_builddir/tmp/test_sym_strip.Er.bin
+
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/test_sym_strip.Er.bin`
+
+if [ $LENGTH = 1603600 ]; then
+  rm $top_builddir/tmp/test_sym_strip.Er.bin
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/1k-create_bmp_for_symmetrical_stripline.Ey.bin.test b/tests/1k-create_bmp_for_symmetrical_stripline.Ey.bin.test
new file mode 100755 (executable)
index 0000000..040fb0c
--- /dev/null
@@ -0,0 +1,14 @@
+#! /bin/sh
+# It is pointless checking the checksum's on binary files as they will
+# differ on differnt Endian'ness and with different rounding errors on FP
+# units. Hence only the length is checked on the binary files
+touch $top_builddir/tmp/test_sym_strip.Ey.bin
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/test_sym_strip.Ey.bin`
+if [ $LENGTH = 1603600 ]; then
+  rm $top_builddir/tmp/test_sym_strip.Ey.bin
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/1l-create_bmp_for_symmetrical_stripline.Ex.bin.test b/tests/1l-create_bmp_for_symmetrical_stripline.Ex.bin.test
new file mode 100755 (executable)
index 0000000..051cf0a
--- /dev/null
@@ -0,0 +1,14 @@
+#! /bin/sh
+# It is pointless checking the checksum's on binary files as they will
+# differ on differnt Endian'ness and with different rounding errors on FP
+# units. Hence only the length is checked on the binary files
+touch $top_builddir/tmp/test_sym_strip.Ex.bin
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/test_sym_strip.Ex.bin`
+if [ $LENGTH = 1603600 ]; then
+  rm $top_builddir/tmp/test_sym_strip.Ex.bin
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/1m-create_bmp_for_symmetrical_stripline.U.bin.test b/tests/1m-create_bmp_for_symmetrical_stripline.U.bin.test
new file mode 100755 (executable)
index 0000000..a0048ee
--- /dev/null
@@ -0,0 +1,16 @@
+#! /bin/sh
+# It is pointless checking the checksum's on binary files as they will
+# differ on differnt Endian'ness and with different rounding errors on FP
+# units. Hence only the length is checked on the binary files
+
+touch $top_builddir/tmp/test_sym_strip.U.bin
+
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/test_sym_strip.U.bin`
+if [ $LENGTH = 1603600 ]; then
+  rm $top_builddir/tmp/test_sym_strip.U.bin
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/1n-create_bmp_for_symmetrical_stripline.V.bin.test b/tests/1n-create_bmp_for_symmetrical_stripline.V.bin.test
new file mode 100755 (executable)
index 0000000..7bbe81f
--- /dev/null
@@ -0,0 +1,16 @@
+#! /bin/sh
+# It is pointless checking the checksum's on binary files as they will
+# differ on differnt Endian'ness and with different rounding errors on FP
+# units. Hence only the length is checked on the binary files
+
+touch $top_builddir/tmp/test_sym_strip.V.bin
+
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/test_sym_strip.V.bin`
+if [ $LENGTH = 1603600 ]; then
+  rm $top_builddir/tmp/test_sym_strip.V.bin  $top_builddir/tmp/test_sym_strip.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/2a-create_bmp_for_rect_in_rect.bmp.test b/tests/2a-create_bmp_for_rect_in_rect.bmp.test
new file mode 100755 (executable)
index 0000000..10097e1
--- /dev/null
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+
+$top_builddir/src/non_gui/create_bmp_for_rect_in_rect -b 4 500 100 20 240 20 460 50 40 1 4.8 $top_builddir/tmp/test_rect_in_rect.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_rect_in_rect.bmp`
+if [ $MD5SUM = c761645b57a08057064eb284a44859e9 ]; then
+  rm $top_builddir/tmp/test_rect_in_rect.bmp
+  echo "PASSED:" $0 >> tests.log 
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log 
+  exit 1
+fi
diff --git a/tests/2b-create_bmp_for_rect_in_rect.txt.test b/tests/2b-create_bmp_for_rect_in_rect.txt.test
new file mode 100755 (executable)
index 0000000..13099cd
--- /dev/null
@@ -0,0 +1,31 @@
+#! /bin/sh
+# Currenty (13th April 2003) this test only works when atlc is
+# configured as a single threaded or built with pthrads, but not
+# for the MPICH libraries, atlc gives a huge number of error messages. 
+
+if [ "$mpirun_found" = "yes" ] ; then
+  mpirun -np 2 $top_builddir/src/non_gui/atlc  -S $top_builddir/tmp/test_rect_in_rect.bmp > $top_builddir/tmp/test_rect_in_rect.txt
+else 
+  $top_builddir/src/non_gui/atlc  -S $top_builddir/tmp/test_rect_in_rect.bmp > $top_builddir/tmp/test_rect_in_rect.txt
+fi
+touch $top_builddir/tmp/test_rect_in_rect.txt
+
+# The capacitance should be 121.0 pF/m and is in column 9
+
+CAP=`cat $top_builddir/tmp/test_rect_in_rect.txt | awk '{print $9}'`
+Zo=`cat $top_builddir/tmp/test_rect_in_rect.txt | awk '{print $6}'`
+
+if [ -z "$CAP"  ] || [ -z "$Zo" ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1 
+fi
+
+
+if [ $CAP = 121.0 ] && [ $Zo = 44.61 ] ; then
+  rm -f $top_builddir/tmp/test_rect_in_rect.txt $top_builddir/tmp/test_rect_in_rect.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 $CAP $Zo >> tests.log
+  exit 1
+fi
diff --git a/tests/2c-create_bmp_for_rect_in_rect.E.bmp.test b/tests/2c-create_bmp_for_rect_in_rect.E.bmp.test
new file mode 100755 (executable)
index 0000000..529395c
--- /dev/null
@@ -0,0 +1,34 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+touch $top_builddir/tmp/test_rect_in_rect.E.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_rect_in_rect.E.bmp`
+if [ $MD5SUM = 49ce7df03fcd0ee4e0120269e136f506 ]; then
+  rm $top_builddir/tmp/test_rect_in_rect.E.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/2d-create_bmp_for_rect_in_rect.Er.bmp.test b/tests/2d-create_bmp_for_rect_in_rect.Er.bmp.test
new file mode 100755 (executable)
index 0000000..0b929fe
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+touch $top_builddir/tmp/test_rect_in_rect.Er.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_rect_in_rect.Er.bmp`
+if [ $MD5SUM = 83c85493d8cfc248b65b72fc6bb1935d ]; then
+  rm $top_builddir/tmp/test_rect_in_rect.Er.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/2e-create_bmp_for_rect_in_rect.Ey.bmp.test b/tests/2e-create_bmp_for_rect_in_rect.Ey.bmp.test
new file mode 100755 (executable)
index 0000000..2ecc527
--- /dev/null
@@ -0,0 +1,11 @@
+#! /bin/sh
+touch $top_builddir/tmp/test_rect_in_rect.Ey.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_rect_in_rect.Ey.bmp`
+if [ $MD5SUM = 9aef8ac66f608178f6e0f41194392f82 ]; then
+  rm $top_builddir/tmp/test_rect_in_rect.Ey.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
diff --git a/tests/2f-create_bmp_for_rect_in_rect.Ex.bmp.test b/tests/2f-create_bmp_for_rect_in_rect.Ex.bmp.test
new file mode 100755 (executable)
index 0000000..88b10f1
--- /dev/null
@@ -0,0 +1,34 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+touch $top_builddir/tmp/test_rect_in_rect.Ex.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_rect_in_rect.Ex.bmp`
+if [ $MD5SUM = 14d313cf645786f39b7d477772ddb0f9 ]; then
+  rm -f $top_builddir/tmp/test_rect_in_rect.Ex.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
diff --git a/tests/2g-create_bmp_for_rect_in_rect.U.bmp.test b/tests/2g-create_bmp_for_rect_in_rect.U.bmp.test
new file mode 100755 (executable)
index 0000000..5d4611f
--- /dev/null
@@ -0,0 +1,11 @@
+#! /bin/sh
+touch $top_builddir/tmp/test_rect_in_rect.U.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_rect_in_rect.U.bmp`
+if [ $MD5SUM = aca7e8a2e70b43469d61b1bef4474797 ]; then
+  rm $top_builddir/tmp/test_rect_in_rect.U.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
diff --git a/tests/2h-create_bmp_for_rect_in_rect.V.bmp.test b/tests/2h-create_bmp_for_rect_in_rect.V.bmp.test
new file mode 100755 (executable)
index 0000000..2c5bdad
--- /dev/null
@@ -0,0 +1,32 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+touch $top_builddir/tmp/test_rect_in_rect.V.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_rect_in_rect.V.bmp`
+if [ $MD5SUM = b2a39d973d22e88526bd780d383f6f88 ]; then
+  rm -f $top_builddir/tmp/test_rect_in_rect.V.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  exit 1
+fi
diff --git a/tests/3a-create_bmp_for_rect_cen_in_rect.bmp.test b/tests/3a-create_bmp_for_rect_cen_in_rect.bmp.test
new file mode 100755 (executable)
index 0000000..6e20b8e
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+
+$top_builddir/src/non_gui/create_bmp_for_rect_cen_in_rect -b 4 500 100 20 20 1 $top_builddir/tmp/test.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test.bmp`
+if [ $MD5SUM = a4545fdbafdb3150d8dc65eb8ca5e6ef ]; then
+  echo "PASSED:" $0 >> tests.log 
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log 
+  exit 1
+fi
diff --git a/tests/3b-create_bmp_for_rect_cen_in_rect.txt.test b/tests/3b-create_bmp_for_rect_cen_in_rect.txt.test
new file mode 100755 (executable)
index 0000000..5997a6b
--- /dev/null
@@ -0,0 +1,31 @@
+#! /bin/sh
+# Check that the inductance per metre calculated from
+# tests.bmp is the correct value.
+# .bin files are unchecked, so let removed them.
+rm -f test.*.bin
+
+if [ -n "$mpirun_found" ] ; then
+  mpirun -np 2 $top_builddir/src/non_gui/atlc -s -S $top_builddir/tmp/test.bmp > $top_builddir/tmp/test.txt 2> /dev/null
+else
+  $top_builddir/src/non_gui/atlc -s -S $top_builddir/tmp/test.bmp > $top_builddir/tmp/test.txt
+fi
+
+# Check the inductance per metre, which should be in column 12 and 
+# should be 340.8 nH/m
+
+Lo=`cat $top_builddir/tmp/test.txt | awk '{print $12}'`
+Zo=`cat $top_builddir/tmp/test.txt | awk '{print $6}'`
+
+if [ -z "$Lo" ] || [ -z "$Zo" ] ; then
+  exit 1
+fi
+
+if [ $Lo = 341.9 ] && [ $Zo = 102.506 ] ; then
+  rm $top_builddir/tmp/test.txt
+  rm $top_builddir/tmp/test.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
diff --git a/tests/4a-create_bmp_for_microstrip_coupler.test b/tests/4a-create_bmp_for_microstrip_coupler.test
new file mode 100755 (executable)
index 0000000..e00a920
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_microstrip_coupler  1.5 2.0 1 1.593 0.035 1 3.7 $top_builddir/tmp/microstrip_coupler.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/microstrip_coupler.bmp`
+rm $top_builddir/tmp/microstrip_coupler.bmp
+#rm microstrip_coupler.bmp
+if [ $MD5SUM = 3cbb4ffad5e447ae377c2a6982f163db ]; then
+  echo "PASSED:" $0 >> tests.log 
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log 
+  exit 1
+fi
diff --git a/tests/5a-check-s_and_-S_options_of_atlc-2conductor.test b/tests/5a-check-s_and_-S_options_of_atlc-2conductor.test
new file mode 100755 (executable)
index 0000000..fc16511
--- /dev/null
@@ -0,0 +1,100 @@
+#! /bin/sh
+# Check that the -s and -S options are indeed doing
+# what they are supposed to be doing. 
+# going to execute a pwd as soon as entering the test. 
+
+# Delete any files that may be left by mistake
+
+# There should now be no coax2* files, except $top_srcdir/examples/coax2.bmp
+rm -f $top_builddir/tmp/coax2.*
+cp $top_srcdir/examples/coax2.bmp $top_builddir/tmp
+
+# Check the -S and -s options together prevent all ( .bmp or .bin files ) being created. 
+if [ "$mpirun_found" = "yes" ] ; then
+  mpirun -np 2 $top_builddir/src/non_gui/atlc -s -S $top_builddir/tmp/coax2.bmp > /dev/null
+else
+  $top_builddir/src/non_gui/atlc -s -S $top_builddir/tmp/coax2.bmp > /dev/null
+fi
+
+if [ -f $top_builddir/tmp/coax2.Ex.bmp ]  || [ -f $top_builddir/tmp/coax2.Ey.bin ] || [ -f top_builddir/tmp/coax2.Er.bin ] ; then
+  echo "FAILED:" $0 >> tests.log 
+  exit 1
+fi  
+
+# Delete any files created. There should be none.
+
+
+# Check that -S suppresses the creation of .bin, but not .bmp's
+if [ "$mpirun_found" = "yes" ] ; then
+  npirun -np 2$top_builddir/src/non_gui/atlc -S $top_builddir/tmp/coax2.bmp > /dev/null
+else
+  $top_builddir/src/non_gui/atlc -S $top_builddir/tmp/coax2.bmp > /dev/null
+fi
+
+if [ -f $top_builddir/tmp/coax2.Ex.bin ]  || [ -f $top_builddir/tmp/coax2.Ey.bin ] || [ -f $top_builddir/tmp/coax2.Er.bin ] || [ ! -f  $top_builddir/tmp/coax2.Er.bmp ] ; then
+  echo "FAILED:" $0 >> tests.log 
+  exit 1
+fi
+
+rm  -f $top_builddir/tmp/coax2.Ex.bmp
+rm  -f $top_builddir/tmp/coax2.Ey.bmp
+rm  -f $top_builddir/tmp/coax2.E.bmp
+rm  -f $top_builddir/tmp/coax2.U.bmp
+rm  -f $top_builddir/tmp/coax2.V.bmp
+rm  -f $top_builddir/tmp/coax2.Er.bmp
+
+rm  -f $top_builddir/tmp/coax2.Ex.bin
+rm  -f $top_builddir/tmp/coax2.Ey.bin
+rm  -f $top_builddir/tmp/coax2.E.bin
+rm  -f $top_builddir/tmp/coax2.U.bin
+rm  -f $top_builddir/tmp/coax2.V.bin
+rm  -f $top_builddir/tmp/coax2.Er.bin
+
+# Check that no options creates.bmp's and  bin's
+
+# Check that -s suppresses the creation of .bmp's, but not .bin's
+if [ "$mpirun_found" = "yes" ] ; then
+  mpirun -np 2 $top_builddir/src/non_gui/atlc -s $top_builddir/tmp/coax2.bmp > /dev/null
+else
+  $top_builddir/src/non_gui/atlc -s $top_builddir/tmp/coax2.bmp > /dev/null
+fi
+
+if [ -f $top_builddir/tmp/coax2.Ex.bmp ]  || [ -f $top_builddir/tmp/coax2.Ey.bmp ] || [ ! -f $top_builddir/tmp/coax2.Er.bin ]  ; then
+  echo "FAILED:" $0 >> tests.log 
+  exit 1
+fi
+
+rm  -f $top_builddir/tmp/coax2.Ex.bmp
+rm  -f $top_builddir/tmp/coax2.Ey.bmp
+rm  -f $top_builddir/tmp/coax2.E.bmp
+rm  -f $top_builddir/tmp/coax2.U.bmp
+rm  -f $top_builddir/tmp/coax2.V.bmp
+rm  -f $top_builddir/tmp/coax2.Er.bmp
+
+rm  -f $top_builddir/tmp/coax2.Ex.bin
+rm  -f $top_builddir/tmp/coax2.Ey.bin
+rm  -f $top_builddir/tmp/coax2.E.bin
+rm  -f $top_builddir/tmp/coax2.U.bin
+rm  -f $top_builddir/tmp/coax2.V.bin
+rm  -f $top_builddir/tmp/coax2.Er.bin
+
+# Check that no options creates.bmp's and  bin's
+if [ "$mpirun_found" = "yes" ] ; then
+  $top_builddir/src/non_gui/atlc $top_builddir/tmp/coax2.bmp > /dev/null
+else
+  $top_builddir/src/non_gui/atlc $top_builddir/tmp/coax2.bmp > /dev/null
+fi
+
+if [ ! -f $top_builddir/tmp/coax2.Ex.bmp ]  || [ ! -f $top_builddir/tmp/coax2.Ey.bmp ] || [ ! -f $top_builddir/tmp/coax2.Er.bin ]  ; then
+  echo "FAILED:" $0 >> tests.log 
+  exit 1
+fi
+  rm   $top_builddir/tmp/coax2.Ex.bin $top_builddir/tmp/coax2.Ey.bin
+  rm   $top_builddir/tmp/coax2.E.bin $top_builddir/tmp/coax2.U.bin
+  rm   $top_builddir/tmp/coax2.V.bin $top_builddir/tmp/coax2.Er.bin
+  rm   $top_builddir/tmp/coax2.Ex.bmp $top_builddir/tmp/coax2.Ey.bmp
+  rm   $top_builddir/tmp/coax2.E.bmp $top_builddir/tmp/coax2.U.bmp
+  rm   $top_builddir/tmp/coax2.V.bmp $top_builddir/tmp/coax2.Er.bmp
+  rm -f  $top_builddir/tmp/coax2.bmp
+  echo "PASSED:" $0 >> tests.log 
+exit 0
diff --git a/tests/5b-check-s_and_-S_options_of_atlc-3conductor.test b/tests/5b-check-s_and_-S_options_of_atlc-3conductor.test
new file mode 100755 (executable)
index 0000000..771e42b
--- /dev/null
@@ -0,0 +1,133 @@
+#! /bin/sh
+
+# Delete any files that may be left
+rm -f $top_builddir/tmp/test-coupler2.E.even.bin $top_builddir/tmp/test-coupler2.E.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.E.odd.bin $top_builddir/tmp/test-coupler2.E.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.Er.bin $top_builddir/tmp/test-coupler2.Er.bmp
+rm -f $top_builddir/tmp/test-coupler2.Er.bmp $top_builddir/tmp/test-coupler2.Ex.even.bin
+rm -f $top_builddir/tmp/test-coupler2.Ex.even.bmp $top_builddir/tmp/test-coupler2.Ex.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.Ex.odd.bmp $top_builddir/tmp/test-coupler2.Ey.even.bin
+rm -f $top_builddir/tmp/test-coupler2.Ey.even.bmp $top_builddir/tmp/test-coupler2.Ey.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.Ey.odd.bmp $top_builddir/tmp/test-coupler2.U.even.bin
+rm -f $top_builddir/tmp/test-coupler2.U.even.bmp $top_builddir/tmp/test-coupler2.U.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.U.odd.bmp $top_builddir/tmp/test-coupler2.V.even.bin
+rm -f $top_builddir/tmp/test-coupler2.V.even.bmp $top_builddir/tmp/test-coupler2.V.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.V.odd.bmp $top_builddir/tmp/testcoupler2.V.odd.bmp.txt
+
+cp  $top_srcdir/examples/test-coupler2.bmp $top_builddir/tmp
+
+# Check that the -s and -S options are indeed doing
+# what they are supposed to be doing. 
+
+
+# Check the -S and -s options together allow no .bmp or .bin files
+if [ "$mpirun_found" = "yes" ] ; then
+  mpirun -np 2 $top_builddir/src/non_gui/atlc -s -S $top_builddir/tmp/test-coupler2.bmp > $top_builddir/tmp/test-coupler2.bmp.txt
+else
+  $top_builddir/src/non_gui/atlc -s -S $top_builddir/tmp/test-coupler2.bmp > $top_builddir/tmp/test-coupler2.bmp.txt
+fi
+
+if [ -f $top_builddir/tmp/test-coupler2.Ex.even.bmp ]  || [ -f $top_builddir/tmp/test-coupler2.Ey.odd.bin ] || [ -f $top_builddir/tmp/test-coupler2.Er.bin ] ; then
+  echo "FAILED-1:" $0 >> tests.log 
+  exit 1
+fi  
+
+# Delete any files created. There should be none.
+rm -f $top_builddir/tmp/test-coupler2.E.even.bin
+rm -f $top_builddir/tmp/test-coupler2.E.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.E.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.E.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.Er.bin
+rm -f $top_builddir/tmp/test-coupler2.Er.bmp
+rm -f $top_builddir/tmp/test-coupler2.Ex.even.bin
+rm -f $top_builddir/tmp/test-coupler2.Ex.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.Ex.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.Ex.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.Ey.even.bin
+rm -f $top_builddir/tmp/test-coupler2.Ey.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.Ey.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.Ey.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.U.even.bin
+rm -f $top_builddir/tmp/test-coupler2.U.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.U.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.U.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.V.even.bin
+rm -f $top_builddir/tmp/test-coupler2.V.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.V.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.V.odd.bmp
+
+# Check that -S suppresses the creation of .bin, but not .bmp's
+if [ "$mpirun_found" = "yes" ] ; then
+ mpirun -np 2 $top_builddir/src/non_gui/atlc -S $top_builddir/tmp/test-coupler2.bmp > $top_builddir/tmp/test-coupler2.bmp.txt
+else
+  $top_builddir/src/non_gui/atlc -S $top_builddir/tmp/test-coupler2.bmp > $top_builddir/tmp/test-coupler2.bmp.txt
+fi
+
+if [ -f $top_builddir/tmp/test-coupler2.Ex.odd.bin ]  || [ -f $top_builddir/tmp/test-coupler2.Ey.odd.bin ] || [ ! -f $top_builddir/tmp/test-coupler2.Er.bmp ] ; then
+  echo "FAILED-2:" $0 >> tests.log 
+  exit 1
+fi  
+
+rm -f $top_builddir/tmp/test-coupler2.E.even.bin
+rm -f $top_builddir/tmp/test-coupler2.E.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.E.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.E.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.Er.bin
+rm -f $top_builddir/tmp/test-coupler2.Er.bmp
+rm -f $top_builddir/tmp/test-coupler2.Ex.even.bin
+rm -f $top_builddir/tmp/test-coupler2.Ex.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.Ex.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.Ex.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.Ey.even.bin
+rm -f $top_builddir/tmp/test-coupler2.Ey.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.Ey.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.Ey.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.U.even.bin
+rm -f $top_builddir/tmp/test-coupler2.U.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.U.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.U.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.V.even.bin
+rm -f $top_builddir/tmp/test-coupler2.V.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.V.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.V.odd.bmp
+
+# Check that -s suppresses the creation of .bmp's, but not .bin's
+if [ "$mpirun_found" = "yes" ] ; then
+   mpirun -np 2 $top_builddir/src/non_gui/atlc -s $top_builddir/tmp/test-coupler2.bmp > $top_builddir/tmp/test-coupler2.bmp.txt
+else
+   $top_builddir/src/non_gui/atlc -s $top_builddir/tmp/test-coupler2.bmp > $top_builddir/tmp/test-coupler2.bmp.txt
+fi
+
+if [ -f $top_builddir/tmp/test-coupler2.Ex.even.bmp ]  || [ -f $top_builddir/tmp/test-coupler2.Ey.odd.bmp ] || [ ! -f $top_builddir/tmp/test-coupler2.Er.bin ]  ; then
+  echo "FAILED-3:" $0 >> tests.log 
+  exit 1
+fi
+
+# Check that no options creates both the .bmp's and .bin's
+if [ "$mpirun_found" = "yes" ] ; then
+  mpirun -np 2 $top_builddir/src/non_gui/atlc  $top_builddir/tmp/test-coupler2.bmp > /dev/null
+else
+  $top_builddir/src/non_gui/atlc  $top_builddir/tmp/test-coupler2.bmp > /dev/null
+fi
+
+if [ ! -f $top_builddir/tmp/test-coupler2.Ex.odd.bmp ]  || [ ! -f $top_builddir/tmp/test-coupler2.Ey.odd.bmp ] || [ ! -f $top_builddir/tmp/test-coupler2.Er.bin ]  ; then
+  echo "FAILED-2:" $0 >> tests.log 
+  exit 1
+fi
+echo "PASSED:" $0 >> tests.log 
+rm -f $top_builddir/tmp/test-coupler2.bmp $top_builddir/tmp/test-coupler2.bmp.txt
+rm -f $top_builddir/tmp/test-coupler2.Ex.odd.bmp $top_builddir/tmp/test-coupler2.Ey.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.E.odd.bmp $top_builddir/tmp/test-coupler2.U.odd.bmp
+rm -f $top_builddir/tmp/test-coupler2.V.odd.bmp 
+rm -f $top_builddir/tmp/test-coupler2.bmp $top_builddir/tmp/test-coupler2.bmp.txt
+rm -f $top_builddir/tmp/test-coupler2.Ex.even.bmp $top_builddir/tmp/test-coupler2.Ey.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.E.even.bmp $top_builddir/tmp/test-coupler2.U.even.bmp
+rm -f $top_builddir/tmp/test-coupler2.V.even.bmp $top_builddir/tmp/test-coupler2.V.even.bin  
+rm -f $top_builddir/tmp/test-coupler2.bin $top_builddir/tmp/test-coupler2.bin.txt
+rm -f $top_builddir/tmp/test-coupler2.Ex.odd.bin $top_builddir/tmp/test-coupler2.Ey.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.E.odd.bin $top_builddir/tmp/test-coupler2.U.odd.bin
+rm -f $top_builddir/tmp/test-coupler2.V.odd.bin $top_builddir/tmp/test-coupler2.V.even.bin  
+rm -f $top_builddir/tmp/test-coupler2.Ex.even.bin $top_builddir/tmp/test-coupler2.Ey.even.bin
+rm -f $top_builddir/tmp/test-coupler2.E.even.bin $top_builddir/tmp/test-coupler2.U.even.bin
+rm -f $top_builddir/tmp/test-coupler2.Er.bmp $top_builddir/tmp/test-coupler2.Er.bin
+exit 0
diff --git a/tests/5c-check_numeric_data_from_atlc-2conductor.test b/tests/5c-check_numeric_data_from_atlc-2conductor.test
new file mode 100755 (executable)
index 0000000..fd2a4d4
--- /dev/null
@@ -0,0 +1,25 @@
+#! /bin/sh
+# Check only that atlc can correctly calculate the impedance Zo given a valid bitmap
+# This does not require that any of the programs create_bmp_for* work. 
+
+# Delete any files that may be left by mistake
+
+# There should now be no coax2* files, except $top_srcdir/examples/coax2.bmp
+rm -f $top_builddir/tmp/coax2.*
+cp $top_srcdir/examples/coax2.bmp $top_builddir/tmp
+
+# Add the -S and -s options together to prevent all ( .bmp or .bin files ) being created. 
+if [ "$mpirun_found" = "yes" ] ; then
+  Zo=`mpirun -np 2 $top_builddir/src/non_gui/atlc -s -S $top_builddir/tmp/coax2.bmp | awk '{print $6}'`
+else
+  Zo=`$top_builddir/src/non_gui/atlc -s -S $top_builddir/tmp/coax2.bmp | awk '{print $6}'`
+fi
+
+if [ $Zo != 70.199 ] ; then
+  echo "FAILED:" $0 >> tests.log 
+  exit 1
+fi  
+
+rm -f  $top_builddir/tmp/coax2.bmp
+echo "PASSED:" $0 >> tests.log 
+exit 0
diff --git a/tests/6a-create_and_check_25ohm_201Pixel_high_symmetrical_stripline.test b/tests/6a-create_and_check_25ohm_201Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..bf59a60
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+# A bitmap is created of a symmetrical_stripline. By adding the -v option
+# to create_bmp_for_symmetrical_stripline the theoretical impedance
+# is computed. 
+# atlc is then called, and its estimate calculated, which will differ 
+# slightly from the theoretical data 
+
+# Create a bitmap and compute its theeoretical impedance. 
+ZoTheory=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 1512 201 668 $top_builddir/tmp/25ohm-201h.bmp | awk '{print $4}'`
+
+# Generate a checksum for the file created
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/25ohm-201h.bmp`
+
+# Now run atlc on this bitmap and check it close to that computed. 
+if [ "x$mpirun" = "xyes" ] ; then
+  Zoatlc=`mpirun -np 2 $top_builddir/src/non_gui/atlc -S $top_builddir/tmp/25ohm-201h.bmp | awk '{print $6}'`
+else
+  Zoatlc=`$top_builddir/src/non_gui/atlc -S $top_builddir/tmp/25ohm-201h.bmp | awk '{print $6}'`
+fi  
+
+# Generate a checksum for a file created by atlc. 
+EXMD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/25ohm-201h.Ex.bmp`
+
+if [ -z "$Zoatlc" ]  || [ -z "$ZoTheory" ] || [ -z "$MD5SUM" ] || [ -z "$EXMD5SUM" ] ; then  
+  exit 1
+fi
+
+# "Zo theory = " $ZoTheory "Zo altc= " $Zoatlc " cksum of bitmap" $MD5SUM "cksum of .Ex.bmp= " $EXMD5SUM
+
+
+if [ $ZoTheory = 25.017590  ] && [ $Zoatlc = 24.932 ] && [ $MD5SUM = 44e86f6bcec1a61db9564040ec93557c ] && [ $EXMD5SUM = 499efd42aa2610c23f6995071e060e69 ] ; then
+# Remvove the unwanted files. 
+  rm $top_builddir/tmp/25ohm-201h.Ex.bmp
+  rm $top_builddir/tmp/25ohm-201h.bmp
+  rm $top_builddir/tmp/25ohm-201h.Ey.bmp
+  rm $top_builddir/tmp/25ohm-201h.E.bmp
+  rm $top_builddir/tmp/25ohm-201h.V.bmp
+  rm $top_builddir/tmp/25ohm-201h.U.bmp
+  rm $top_builddir/tmp/25ohm-201h.Er.bmp
+
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6b-create_25ohm_401Pixel_high_symmetrical_stripline.test b/tests/6b-create_25ohm_401Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..2c91fd0
--- /dev/null
@@ -0,0 +1,19 @@
+#! /bin/sh
+# A bitmap is created of a symmetrical_stripline. By adding the -v option
+# to create_bmp_for_symmetrical_stripline the theoretical impedance
+# is computed. 
+# To save time, atlc is not called to give its estimate of Zo, like it was
+# in 6a-create_and_check_25ohm_201Pixel_high_symmetrical_stripline.test
+
+
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 2978 401 1334 $top_builddir/tmp/25ohm-401h.bmp  | awk '{print $4}'`
+if [ $Zo = 24.995678 ]; then
+  rm  $top_builddir/tmp/25ohm-401h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6c-create_25ohm_801Pixel_high_symmetrical_stripline.test b/tests/6c-create_25ohm_801Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..7ca3b1a
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+# A bitmap is created of a symmetrical_stripline. By adding the -v option
+# to create_bmp_for_symmetrical_stripline the theoretical impedance
+# is computed. 
+# To save time, atlc is not called to give its estimate of Zo, like it was
+# in 6a-create_and_check_25ohm_201Pixel_high_symmetrical_stripline.test
+
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 6000 801 2664 $top_builddir/tmp/25ohm-801h.bmp | awk '{print $4}'`
+if [ $Zo = 25.001256  ]; then
+  rm $top_builddir/tmp/25ohm-801h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6d-create_and_check_50ohm_201Pixel_high_symmetrical_stripline.test b/tests/6d-create_and_check_50ohm_201Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..23b2607
--- /dev/null
@@ -0,0 +1,54 @@
+#! /bin/sh
+# A bitmap is created of a symmetrical_stripline. By adding the -v option
+# to create_bmp_for_symmetrical_stripline the theoretical impedance
+# is computed. 
+# atlc is then called, and its eastimate calaculated, which will differ 
+# slightly from the theoretical data 
+
+#: ${ZoTheory='ksdkj'}
+#: ${Zoatlc='iofdklkljf'}
+
+if [ "x$mpirun_found" = "xyes" ]  ; then
+  ZoTheory=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 1134 201 290 $top_builddir/tmp/50ohm-201h.bmp | awk '{print $4}'`
+  Zoatlc=`mpirun -np 2 $top_builddir/src/non_gui/atlc -S $top_builddir/tmp/50ohm-201h.bmp | awk '{print $6}'`
+else
+  ZoTheory=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 1134 201 290 $top_builddir/tmp/50ohm-201h.bmp | awk '{print $4}'`
+  Zoatlc=`$top_builddir/src/non_gui/atlc -S $top_builddir/tmp/50ohm-201h.bmp | awk '{print $6}'`
+fi
+
+touch $top_builddir/tmp/50ohm-201h.bmp $top_builddir/tmp/50ohm-201h.Ex.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/50ohm-201h.bmp`
+EXMD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/50ohm-201h.Ex.bmp`
+
+#echo "Zoth=$ZoTheory Zoatlc=$Zoatlc md5=$MD5SUM exmd5=$EXMD5SUM"
+
+if test -z "$ZoTheory"  ;  then
+  exit 1
+fi
+
+if test -z "$Zoatlc"  ; then
+  exit 1
+fi
+
+if test -z "$MD5SUM"  ; then
+  exit 1
+fi
+
+if test -z "$EXMD5SUM"  ; then
+  exit 1
+fi
+
+if [ $ZoTheory = 49.989477  ] && [ $Zoatlc = 49.899 ] && [ $MD5SUM = dae5292fe04dfd64abe1ae4e926d7365 ] && [ $EXMD5SUM = 03bdcc0c9f6361f2630f77817b8684d9 ]; then
+  rm -f $top_builddir/tmp/50ohm-201h.bmp $top_builddir/tmp/50ohm-201h.Ex.bmp
+  rm -f $top_builddir/tmp/50ohm-201h.Ey.bmp $top_builddir/tmp/50ohm-201h.E.bmp
+  rm -f $top_builddir/tmp/50ohm-201h.U.bmp $top_builddir/tmp/50ohm-201h.V.bmp
+  rm -f $top_builddir/tmp/50ohm-201h.Er.bmp
+
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6e-create_50ohm_401Pixel_high_symmetrical_stripline.test b/tests/6e-create_50ohm_401Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..b7f4cb7
--- /dev/null
@@ -0,0 +1,19 @@
+#! /bin/sh
+# A bitmap is created of a symmetrical_stripline. By adding the -v option
+# to create_bmp_for_symmetrical_stripline the theoretical impedance
+# is computed. 
+# atlc is then called, and its estimate calaculated, which will differ 
+# slightly from the theoretical data 
+
+ZoTheory=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 2222 401 578 $top_builddir/tmp/50ohm-401h.bmp | awk '{print $4}'`
+#echo "Zo theory = " $ZoTheory "Zo altc= " $Zoatlc " cksum of bitmap" $MD5SUM "cksum of .Ex.bmp= " $EXMD5SUM
+if [ $ZoTheory = 50.026376  ]  ; then
+  rm $top_builddir/tmp/50ohm-401h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6f-create_50ohm_801Pixel_high_symmetrical_stripline.test b/tests/6f-create_50ohm_801Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..0b17e61
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 5000 801 1155 $top_builddir/tmp/50ohm-801h.bmp | awk '{print $4}'`
+if [ $Zo = 50.011737  ]; then
+  rm $top_builddir/tmp/50ohm-801h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6g-create_100ohm_201Pixel_high_symmetrical_stripline.test b/tests/6g-create_100ohm_201Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..ec681dc
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v  945 201 101 $top_builddir/tmp/100ohm-201h.bmp | awk '{print $4}'`
+if [ $Zo = 100.160858 ]; then
+  rm $top_builddir/tmp/100ohm-201h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6h-create_100ohm_401Pixel_high_symmetrical_stripline.test b/tests/6h-create_100ohm_401Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..24388e8
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v  1846 401 202 $top_builddir/tmp/100ohm-401h.bmp | awk '{print $4}'`
+if [ $Zo = 100.024637 ]; then
+  rm $top_builddir/tmp/100ohm-401h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6i-create_100ohm_801Pixel_high_symmetrical_stripline.test b/tests/6i-create_100ohm_801Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..0bd35dd
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v  3647 801 403 $top_builddir/tmp/100ohm-801h.bmp | awk '{print $4}'`
+if [ $Zo = 100.091938 ]; then
+  rm $top_builddir/tmp/100ohm-801h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6j-create_200ohm_201Pixel_high_symmetrical_stripline.test b/tests/6j-create_200ohm_201Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..ab580bb
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 862 201 18 $top_builddir/tmp/200ohm-201h.bmp | awk '{print $4}'`
+if [ $Zo = 200.818306 ]; then
+  rm $top_builddir/tmp/200ohm-201h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6k-create_200ohm_401Pixel_high_symmetrical_stripline.test b/tests/6k-create_200ohm_401Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..62badbe
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 1680 401 36 $top_builddir/tmp/200ohm-401h.bmp | awk '{print $4}'`
+if [ $Zo = 200.669461 ]; then
+  rm $top_builddir/tmp/200ohm-401h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6l-create_200ohm_801Pixel_high_symmetrical_stripline.test b/tests/6l-create_200ohm_801Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..d670236
--- /dev/null
@@ -0,0 +1,15 @@
+#! /bin/sh
+# This test has been disabled, since it uses more than 256 Mb of RAM
+# which is a bit excessive. 
+
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 3317 801 73 $top_builddir/tmp/200ohm-801h.bmp | awk '{print $4}'`
+if [ $Zo = 199.770642 ]; then
+  rm $top_builddir/tmp/200ohm-801h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/6m-create_400ohm_1551Pixel_high_symmetrical_stripline.test b/tests/6m-create_400ohm_1551Pixel_high_symmetrical_stripline.test
new file mode 100755 (executable)
index 0000000..0d896f6
--- /dev/null
@@ -0,0 +1,13 @@
+#! /bin/sh
+# Removed since this uses too much RAM
+Zo=`$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline -v 6449 1551 5 $top_builddir/tmp/400ohm-1551h.bmp | awk '{print $4}'`
+if [ $Zo = 400.038921 ]; then
+  rm $top_builddir/tmp/400ohm-1551h.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
+
diff --git a/tests/7a-create_bmp_for_stripline_coupler.bmp.test b/tests/7a-create_bmp_for_stripline_coupler.bmp.test
new file mode 100755 (executable)
index 0000000..10ca16d
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+$top_builddir/src/non_gui/create_bmp_for_stripline_coupler -vv -b 16 1 1 1 1.0 $top_builddir/tmp/test_stripline_coupler.bmp > $top_builddir/tmp/test_stripline_coupler.bmp.pre-atlc.txt
+rm $top_builddir/tmp/test_stripline_coupler.bmp.pre-atlc.txt
+
+touch $top_builddir/tmp/test_stripline_coupler.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.bmp`
+if [ $MD5SUM = 70e1fd121d8437cebd18916090f6b7d0 ]; then
+  echo "PASSED:" $0 >> tests.log 
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/7b-create_bmp_for_stripline_coupler.txt.test b/tests/7b-create_bmp_for_stripline_coupler.txt.test
new file mode 100755 (executable)
index 0000000..920486f
--- /dev/null
@@ -0,0 +1,45 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as create_bmp_for_symmetrical_stripline, 
+# create_bmp_for_create_bmp_for_rect_in_rect, 
+# create_bmp_for_rect_cen_in_rect, create_bmp_for_circ_in_circ, create_bmp_for_circ_in_rect, 
+# create_bmp_for_stripline_coupler etc.
+
+# The checksum of the bitmap generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the GNU program 'sum'. Using my own version avoids the need for the user to 
+# have the GNU textutils installed and avoids the possibility that they have
+# 'textutils' installed but have another version of 'sum' (such as the one 
+# supplied by Sun with Solaris, which generates a different checksum. 
+
+# atlc is then run, generating a lot of files, including those with the 
+# extension .bmp, .txt and .bin. The checksum of the .bmp's and part of
+# the .txt file are checked. The .bin's are not, since they will be
+# dependent on the whether the machine is Big Endian (like Suns) or
+# Little Endian like PCs. It will also be too dependent on rounding
+# difference caused by the different FPUs in the different machines. 
+
+# compute Zo of a bitmap, and compare it to what is the known value
+# of 63.70 Ohms.
+
+# Zo=90;
+
+# : ${Zo='90'}
+
+touch $top_builddir/tmp/test_stripline_coupler.bmp
+if [ "x$mpirun_found" = "xyes" ] ; then
+  mpirun -np 2 Zodd=`$top_builddir/src/non_gui/atlc -S $top_builddir/tmp/test_stripline_coupler.bmp | awk '{print $8}'` 2> /dev/null
+else
+  Zodd=`$top_builddir/src/non_gui/atlc -S $top_builddir/tmp/test_stripline_coupler.bmp | awk '{print $8}'`
+fi
+
+rm -f $top_builddir/tmp/test_stripline_coupler.bmp
+if [ "x$Zodd" = "x64.074" ] ; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
diff --git a/tests/7c-create_bmp_for_stripline_coupler.Ex.odd.bmp.test b/tests/7c-create_bmp_for_stripline_coupler.Ex.odd.bmp.test
new file mode 100755 (executable)
index 0000000..be0d030
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as create_bmp_for_symmetrical_stripline, 
+# create_bmp_for_create_bmp_for_rect_in_rect, create_bmp_for_rect_cen_in_rect, create_bmp_for_circ_in_circ, create_bmp_for_circ_in_rect, 
+# create_bmp_for_stripline_coupler etc.
+
+# The checksum of the bitmap generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the GNU program 'sum'. Using my own version avoids the need for the user to 
+# have the GNU textutils installed and avoids the possibility that they have
+# 'textutils' installed but have another version of 'sum' (such as the one 
+# supplied by Sun with Solaris, which generates a different checksum. 
+
+# atlc is then run, generating a lot of files, including those with the 
+# extension .bmp, .txt and .bin. The checksum of the .bmp's and part of
+# the .txt file are checked. The .bin's are not, since they will be
+# dependent on the whether the machine is Big Endian (like Suns) or
+# Little Endian like PCs. It will also be too dependent on rounding
+# difference caused by the different FPUs in the different machines. 
+
+# Any failure to generate the correct checksums are noted. 
+
+
+# Check the Ex.odd file created by running 7a
+touch $top_builddir/tmp/test_stripline_coupler.Ex.odd.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.Ex.odd.bmp`
+if [ $MD5SUM != 03f1e8bb5484b9052b4891ba14df0a2a ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test_stripline_coupler.Ex.odd.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7d-create_bmp_for_stripline_coupler.Ey.odd.bmp.test b/tests/7d-create_bmp_for_stripline_coupler.Ey.odd.bmp.test
new file mode 100755 (executable)
index 0000000..2d3c642
--- /dev/null
@@ -0,0 +1,35 @@
+# !/bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+touch $top_builddir/tmp/test_stripline_coupler.Ey.odd.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.Ey.odd.bmp`
+if [ $MD5SUM != 38b4f0899055306c920ef4b0fe816a0c ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test_stripline_coupler.Ey.odd.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7e-create_bmp_for_stripline_coupler.E.odd.bmp.test b/tests/7e-create_bmp_for_stripline_coupler.E.odd.bmp.test
new file mode 100755 (executable)
index 0000000..3796b85
--- /dev/null
@@ -0,0 +1,34 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+touch $top_builddir/tmp/test_stripline_coupler.E.odd.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.E.odd.bmp`
+if [ $MD5SUM != d7a7588a1a5daca0b5ec1d13ff270aa5 ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test_stripline_coupler.E.odd.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7f-create_bmp_for_stripline_coupler.V.odd.bmp.test b/tests/7f-create_bmp_for_stripline_coupler.V.odd.bmp.test
new file mode 100755 (executable)
index 0000000..2cb7fc6
--- /dev/null
@@ -0,0 +1,33 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+touch $top_builddir/tmp/test_stripline_coupler.V.odd.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.V.odd.bmp`
+if [ $MD5SUM != 078c89104e44cb6e1be0941eb8ff29ad ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm -f $top_builddir/tmp/test_stripline_coupler.V.odd.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7g-create_bmp_for_stripline_coupler.U.odd.bmp.test b/tests/7g-create_bmp_for_stripline_coupler.U.odd.bmp.test
new file mode 100755 (executable)
index 0000000..475746d
--- /dev/null
@@ -0,0 +1,52 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+# **************** NOTE ****************
+# This test  (7g-create_bmp_for_stripline_coupler.U.odd.bmp.test)
+# test seems sensitive to the machine it is run on
+# with a Sun UltraSPARC II chip in a Sun Ultra 80 giving different 
+# results from that in a Pentium II PC running Linux. Investigation
+# shows that on one system a pixel is white (255,255,255) and another
+# very nearly whilte (254,254,254). 
+
+# Hence this must mean that the 
+# result of energy is rounded either white or almost white, depending
+# on the system. As such, either checksum is found to be acceptable 
+# in this case, and only this case. 
+# On a Cray, two pixels differ from those on the Sun, so a third
+# checksum is acceptable. 
+# 9eda42b1552b9bd2673e67d441a7d53a checksum on Sun.
+# d7ec3c37b95d995ae4fff362c542f46f checksum on Linux PC
+# 09f68e1466d68bf8a03e1f90eff411bb checksum on Cray Y-MP
+
+touch $top_builddir/tmp/test_stripline_coupler.U.odd.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.U.odd.bmp`
+if [ $MD5SUM != 2f1fb3a1c993c7b4c9fbd3e03e353d02 ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test_stripline_coupler.U.odd.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7h-create_bmp_for_stripline_coupler.Er.bmp.test b/tests/7h-create_bmp_for_stripline_coupler.Er.bmp.test
new file mode 100755 (executable)
index 0000000..ba4821e
--- /dev/null
@@ -0,0 +1,32 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+touch  $top_builddir/tmp/test_stripline_coupler.Er.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.Er.bmp`
+if [ $MD5SUM != 6f55c39c0e38239372db0f95b7d5f952 ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test_stripline_coupler.Er.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7i-create_bmp_for_stripline_coupler.U.even.bmp.test b/tests/7i-create_bmp_for_stripline_coupler.U.even.bmp.test
new file mode 100755 (executable)
index 0000000..7c45f46
--- /dev/null
@@ -0,0 +1,34 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+touch $top_builddir/tmp/test_stripline_coupler.U.even.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.U.even.bmp`
+if [ $MD5SUM != 0da5b65338f658df5ebe30bbd56c74b4 ] ; then
+  echo "FAILED:" $MD5SUM $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test_stripline_coupler.U.even.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7j-create_bmp_for_stripline_coupler.Ex.even.bmp.test b/tests/7j-create_bmp_for_stripline_coupler.Ex.even.bmp.test
new file mode 100755 (executable)
index 0000000..9d8e93c
--- /dev/null
@@ -0,0 +1,33 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as create_bmp_for_symmetrical_stripline, 
+# create_bmp_for_create_bmp_for_rect_in_rect, create_bmp_for_rect_cen_in_rect, create_bmp_for_circ_in_circ, create_bmp_for_circ_in_rect, 
+# create_bmp_for_stripline_coupler etc.
+
+# The checksum of the bitmap generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the GNU program 'sum'. Using my own version avoids the need for the user to 
+# have the GNU textutils installed and avoids the possibility that they have
+# 'textutils' installed but have another version of 'sum' (such as the one 
+# supplied by Sun with Solaris, which generates a different checksum. 
+
+# atlc is then run, generating a lot of files, including those with the 
+# extension .bmp, .txt and .bin. The checksum of the .bmp's and part of
+# the .txt file are checked. The .bin's are not, since they will be
+# dependent on the whether the machine is Big Endian (like Suns) or
+# Little Endian like PCs. It will also be too dependent on rounding
+# difference caused by the different FPUs in the different machines. 
+
+# Any failure to generate the correct checksums are noted. 
+
+# Check the Ex.even file created by running 7a
+touch $top_builddir/tmp/test_stripline_coupler.Ex.even.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.Ex.even.bmp`
+if [ $MD5SUM != 4fc55cfc75d375864cd21a0c03df889f ] ; then
+  echo "FAILED:(checksum failure)" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test_stripline_coupler.Ex.even.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7k-create_bmp_for_stripline_coupler.Ey.even.bmp.test b/tests/7k-create_bmp_for_stripline_coupler.Ey.even.bmp.test
new file mode 100755 (executable)
index 0000000..9a014fd
--- /dev/null
@@ -0,0 +1,34 @@
+#! /bin/sh
+
+# This is one of a set of test that generate checksums after files are
+# created. Generally a bitmap if first produced by a program such as sym_strip, 
+# rect_in_rect, rect_cen_in_rect, circ_in_circ, circ_in_rect, 
+# generate_coupler_bitmap etc.
+
+# In a few cases, the checksum is performed on a file that is 
+# supplied with the package, rather than one that is 
+# generated. 
+
+# The checksum of the bitmaps generated is compared to what is known to be 
+# the correct checksum using a program 'mymd5sum' which is a cut-down version of
+# the normal md5 or md5sum command.  It does not print the filename 
+# to stdout, as the normal version does. 
+
+# I have tried to test these checksums on as many systems as possible and 
+# know all tests pass on all systems I have checked this on. Typically the
+# systems have been mainly Suns, but running various operating systems. 
+# such as Solaris 9, NetBSD, Solaris 2.5, Linux but also a PC running
+# rehat Linux and a Dec Alpha. Any failure probably indicates a 
+# program bug, so PLEASE PLEASE let me know about it!!
+# Dr. David Kirkby, drkirkby@ntlworld.com
+
+touch $top_builddir/tmp/test_stripline_coupler.Ey.even.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.Ey.even.bmp`
+if [ $MD5SUM != 62366b7cada3581cc2bd8f25a378a18a ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test_stripline_coupler.Ey.even.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7l-create_bmp_for_stripline_coupler.E.even.bmp.test b/tests/7l-create_bmp_for_stripline_coupler.E.even.bmp.test
new file mode 100755 (executable)
index 0000000..350296d
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+touch $top_builddir/tmp/test_stripline_coupler.E.even.bmp
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.E.even.bmp`
+if [ $MD5SUM != b2c0571b29ff7021e2d70ea8289b442f ] ; then
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/test_stripline_coupler.E.even.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
diff --git a/tests/7m-create_bmp_for_stripline_coupler.V.even.bmp.test b/tests/7m-create_bmp_for_stripline_coupler.V.even.bmp.test
new file mode 100755 (executable)
index 0000000..8ff8551
--- /dev/null
@@ -0,0 +1,13 @@
+#! /bin/sh
+#echo mpirun=$mpirun
+touch $top_builddir/tmp/test_stripline_coupler.V.even.bmp
+
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/test_stripline_coupler.V.even.bmp`
+if [ $MD5SUM != 23608dc6d4c5de3b589f1df4ce76a4af ] ; then
+    echo "FAILED:" $0 >> tests.log
+    exit 1
+else
+    rm -f $top_builddir/tmp/test_stripline_coupler.V.even.bmp
+    echo "PASSED:" $0 >> tests.log
+    exit 0
+fi
diff --git a/tests/7n-create_bmp_for_stripline_coupler.bmp.pre-atlc.txt.test b/tests/7n-create_bmp_for_stripline_coupler.bmp.pre-atlc.txt.test
new file mode 100755 (executable)
index 0000000..91ee990
--- /dev/null
@@ -0,0 +1,16 @@
+#! /bin/sh
+touch $top_builddir/tmp/test_stripline_coupler2.bmp
+
+Zodd=`$top_builddir/src/non_gui/create_bmp_for_stripline_coupler -vv -b 16 1 1 0.05 1.0 $top_builddir/tmp/test_stripline_coupler2.bmp | tail -4 | head -1 | awk '{print $2}'` 
+Zeven=`$top_builddir/src/non_gui/create_bmp_for_stripline_coupler -vv -b 16 1 1 0.05 1.0 $top_builddir/tmp/test_stripline_coupler2.bmp | tail -4 | head -1 | awk '{print $4}'` 
+Zo=`$top_builddir/src/non_gui/create_bmp_for_stripline_coupler -vv -b 16 1 1 0.05 1.0 $top_builddir/tmp/test_stripline_coupler2.bmp | tail -4 | head -1 | awk '{print $6}'` 
+
+if [ $Zodd = 45.839308 ] && [ $Zeven = 75.669832 ] && [ $Zo = 58.895269 ] ; then
+  rm -f $top_builddir/tmp/test_stripline_coupler2.bmp
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+fi
+
diff --git a/tests/8a-design_coupler.bmp.test b/tests/8a-design_coupler.bmp.test
new file mode 100755 (executable)
index 0000000..fa7b845
--- /dev/null
@@ -0,0 +1,24 @@
+#! /bin/sh
+# This is one of a set of test that generate checksums after files are
+# created, in this case the program design_coupler is run and its 
+# output compared to what is expected. Since design_coupler creates
+# a text file, the format of which is different between UNIX  (where
+# a carriage return is used at the end of a line) and Windoze, where both
+# a carriage return and a line feed are needed, the checksum of the file
+# will be different on the two systems. Hence any of two checksums are 
+# acceptable. 
+
+# The GNU scientific library is needed to use design_coupler, so if it's
+# not present, this test gets skipped. 
+
+$top_builddir/src/non_gui/design_coupler -d 20 144 146 > $top_builddir/tmp/results  2> /dev/null
+MD5SUM=`$top_builddir/tools/src/mymd5sum $top_builddir/tmp/results`
+# Accept eithe a DOS or UNIX based text file, so accept two checksums. 
+if [ $MD5SUM = f53d09bdc334c3f0508b4f44e789e216 ] || [ $MD5SUM = aebd9a6d1c1db548d39723edec454640 ] ; then
+  rm $top_builddir/tmp/results
+  echo "PASSED:" $0 >> tests.log 
+  exit 0
+else
+  echo "FAILED:" $0 >> tests.log 
+  exit 1
+fi
diff --git a/tests/9a-create-25-Ohm-201b.bmp.test b/tests/9a-create-25-Ohm-201b.bmp.test
new file mode 100755 (executable)
index 0000000..907b0fc
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# The following creates some of the example bitmaps and checks the 
+# file lengths are okay. Checking the checksums would be better, 
+# but I can't easily verify that will be right on a lot of machines
+# and it is tedious to do. 
+
+# The following are around 25 Ohm transmission lines. 
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline 800 201 668  $top_builddir/tmp/25-Ohm-201b.bmp  2> /dev/null
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/25-Ohm-201b.bmp`
+rm $top_builddir/tmp/25-Ohm-201b.bmp
+if [ $LENGTH = 506454 ]; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/9b-create-25-Ohm-401b.bmp.test b/tests/9b-create-25-Ohm-401b.bmp.test
new file mode 100755 (executable)
index 0000000..e16c8fb
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# The following creates some of the example bitmaps and checks the 
+# file lengths are okay. Checking the checksums would be better, 
+# but I can't easily verify that will be right on a lot of machines
+# and it is tedious to do. 
+
+# The following are around 25 Ohm transmission lines. 
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline 5000 401 1334 $top_builddir/tmp/25-Ohm-401b.bmp >/dev/null 2>/dev/null
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/25-Ohm-401b.bmp`
+rm $top_builddir/tmp/25-Ohm-401b.bmp
+if [ $LENGTH =  6165054 ]; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/9c-create-50-Ohm-201b.bmp.test b/tests/9c-create-50-Ohm-201b.bmp.test
new file mode 100755 (executable)
index 0000000..2c11630
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# The following creates some of the example bitmaps and checks the 
+# file lengths are okay. Checking the checksums would be better, 
+# but I can't easily verify that will be right on a lot of machines
+# and it is tedious to do. 
+
+# The following are around 25 Ohm transmission lines. 
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline 5000 201 290 $top_builddir/tmp/50-Ohm-201b.bmp >/dev/null 2>/dev/null
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/50-Ohm-201b.bmp`
+rm $top_builddir/tmp/50-Ohm-201b.bmp
+if [ $LENGTH =  3165054 ]; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/9d-create-50-Ohm-401b.bmp.test b/tests/9d-create-50-Ohm-401b.bmp.test
new file mode 100755 (executable)
index 0000000..83caf9c
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# The following creates some of the example bitmaps and checks the 
+# file lengths are okay. Checking the checksums would be better, 
+# but I can't easily verify that will be right on a lot of machines
+# and it is tedious to do. 
+
+# The following are around 25 Ohm transmission lines. 
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline 5000 401 578  $top_builddir/tmp/50-Ohm-401b.bmp >/dev/null 2>/dev/null
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/50-Ohm-401b.bmp`
+rm $top_builddir/tmp/50-Ohm-401b.bmp
+if [ $LENGTH =  6165054 ]; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/9e-create-100-Ohm-201b.bmp.test b/tests/9e-create-100-Ohm-201b.bmp.test
new file mode 100755 (executable)
index 0000000..8f9318b
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# The following creates some of the example bitmaps and checks the 
+# file lengths are okay. Checking the checksums would be better, 
+# but I can't easily verify that will be right on a lot of machines
+# and it is tedious to do. 
+
+# The following are around 25 Ohm transmission lines. 
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline 5000 201 101  $top_builddir/tmp/100-Ohm-201b.bmp >/dev/null 2>/dev/null
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/100-Ohm-201b.bmp`
+rm $top_builddir/tmp/100-Ohm-201b.bmp
+if [ $LENGTH =  3165054 ];   then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/9f-create-100-Ohm-401b.bmp.test b/tests/9f-create-100-Ohm-401b.bmp.test
new file mode 100755 (executable)
index 0000000..dc9a90d
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# The following creates some of the example bitmaps and checks the 
+# file lengths are okay. Checking the checksums would be better, 
+# but I can't easily verify that will be right on a lot of machines
+# and it is tedious to do. 
+
+# The following are around 25 Ohm transmission lines. 
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline 5000 401 202  $top_builddir/tmp/100-Ohm-401b.bmp >/dev/null 2>/dev/null
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/100-Ohm-401b.bmp`
+rm $top_builddir/tmp/100-Ohm-401b.bmp
+if [ $LENGTH =  6165054 ]; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/9g-create-200-Ohm-201b.bmp.test b/tests/9g-create-200-Ohm-201b.bmp.test
new file mode 100755 (executable)
index 0000000..201ef2c
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# The following creates some of the example bitmaps and checks the 
+# file lengths are okay. Checking the checksums would be better, 
+# but I can't easily verify that will be right on a lot of machines
+# and it is tedious to do. 
+
+# The following are around 25 Ohm transmission lines. 
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline 5000 201 18  $top_builddir/tmp/200-Ohm-201b.bmp >/dev/null 2>/dev/null
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/200-Ohm-201b.bmp`
+rm $top_builddir/tmp/200-Ohm-201b.bmp
+if [ $LENGTH =  3165054 ]; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/9h-create-200-Ohm-401b.bmp.test b/tests/9h-create-200-Ohm-401b.bmp.test
new file mode 100755 (executable)
index 0000000..10a27fd
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# The following creates some of the example bitmaps and checks the 
+# file lengths are okay. Checking the checksums would be better, 
+# but I can't easily verify that will be right on a lot of machines
+# and it is tedious to do. 
+
+# The following are around 25 Ohm transmission lines. 
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline  5000 401 36   $top_builddir/tmp/200-Ohm-401b.bmp >/dev/null 2>/dev/null
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/200-Ohm-401b.bmp`
+rm $top_builddir/tmp/200-Ohm-401b.bmp
+if [ $LENGTH =  6165054 ]; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
diff --git a/tests/9i-create-200-Ohm-801b.bmp.test b/tests/9i-create-200-Ohm-801b.bmp.test
new file mode 100755 (executable)
index 0000000..23a082a
--- /dev/null
@@ -0,0 +1,19 @@
+#! /bin/sh
+
+# The following creates some of the example bitmaps and checks the 
+# file lengths are okay. Checking the checksums would be better, 
+# but I can't easily verify that will be right on a lot of machines
+# and it is tedious to do. 
+
+# The following are around 25 Ohm transmission lines. 
+$top_builddir/src/non_gui/create_bmp_for_symmetrical_stripline  5000 801 73   $top_builddir/tmp/200-Ohm-801b.bmp >/dev/null 2>/dev/null
+LENGTH=`$top_builddir/tools/src/myfilelength $top_builddir/tmp/200-Ohm-801b.bmp`
+rm $top_builddir/tmp/200-Ohm-801b.bmp
+if [ $LENGTH =  12165054 ]; then
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+else
+  echo "FAILED:" $0  >> tests.log
+  exit 1
+fi
+#rm test.txt *.bmp *.bin
diff --git a/tests/MPI_16a_PI.c b/tests/MPI_16a_PI.c
new file mode 100644 (file)
index 0000000..dc13571
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef ENABLE_MPI
+#include <mpi.h>
+#endif
+
+#include <stdio.h>
+#include <math.h>
+
+#ifdef ENABLE_MPI
+double f(double);
+
+double f(double a)
+{
+    return (4.0 / (1.0 + a*a));
+}
+#endif
+
+int main(int argc,char *argv[])
+{
+#ifdef ENABLE_MPI
+    int done = 0, n, myid, numprocs, i;
+    double PI25DT = 3.141592653589793238462643;
+    double mypi, pi, h, sum, x;
+    double startwtime = 0.0, endwtime;
+    int  namelen;
+    char processor_name[MPI_MAX_PROCESSOR_NAME];
+
+    MPI_Init(&argc,&argv);
+    MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
+    MPI_Comm_rank(MPI_COMM_WORLD,&myid);
+    MPI_Get_processor_name(processor_name,&namelen);
+
+
+    n = 0;
+    while (!done)
+    {
+        if (myid == 0)
+        {
+/*
+            printf("Enter the number of intervals: (0 quits) ");
+            scanf("%d",&n);
+*/
+           if (n==0) n=10000; else n=0;
+
+           startwtime = MPI_Wtime();
+        }
+        MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);
+        if (n == 0)
+            done = 1;
+        else
+        {
+            h   = 1.0 / (double) n;
+            sum = 0.0;
+           /* A slightly better approach starts from large i and works back */
+            for (i = myid + 1; i <= n; i += numprocs)
+            {
+                x = h * ((double)i - 0.5);
+                sum += f(x);
+            }
+            mypi = h * sum;
+
+            MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+
+            if (myid == 0)
+           {
+                /* printf("pi is approximately %.16f, Error is %.16f\n",
+                       pi, fabs(pi - PI25DT)); */
+                if (fabs(pi - PI25DT) > 0.00000001 )
+               {
+                 MPI_Finalize();
+                 return 1;
+                }
+               endwtime = MPI_Wtime();
+               //printf("wall clock time = %f\n", endwtime-startwtime);               
+               fflush( stdout );
+           }
+        }
+    }
+    MPI_Finalize();
+    return 0;
+#endif
+    return 77;
+}
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644 (file)
index 0000000..b1a4114
--- /dev/null
@@ -0,0 +1,318 @@
+# This is tests/Makefile.am.
+# MPI_16a_PI computes the value of PI and uses distributed processing
+# to do it. This test it is not always executed. 
+AUTOMAKE_OPTIONS = gnits
+
+# check_PROGRAMS = MPI_16a_PI 
+
+check_PROGRAMS = \
+sysdata \
+benchmark \
+Test_threads_a \
+Test_threads_b
+
+#MPI_16a_PI_SOURCES = MPI_16a_PI.c 
+#MPI_16a_PI_LDADD = @MPILIBS@ @LIBS@
+
+benchmark_SOURCES = \
+benchmark.c \
+try_aix.c \
+try_bsd.c \
+try_hpux.c \
+try_irix.c \
+try_linux.c \
+try_portable.c \
+try_solaris.c \
+try_tru64.c \
+try_unicos.c \
+defs.h
+
+sysdata_SOURCES = \
+sysdata.c \
+try_aix.c \
+try_bsd.c \
+try_hpux.c \
+try_irix.c \
+try_linux.c \
+try_portable.c \
+try_solaris.c \
+try_tru64.c \
+try_unicos.c \
+defs.h
+
+Test_threads_a_SOURCES = Test_threads_a.c
+Test_threads_a_CPPFLAGS = @PTHREAD_CFLAGS@
+#Test_threads_a_LDADD = @PTHREAD_LIBS@ @LIBS@ @GSL_LIBS@ @MPILIBS@ 
+#Test_threads_a_LDADD = @PTHREAD_LIBS@ @LIBS@ @GSL_LIBS@ 
+Test_threads_a_LDADD = @PTHREAD_LIBS@ @LIBS@ 
+
+Test_threads_b_SOURCES = Test_threads_b.c
+Test_threads_b_CPPFLAGS = @PTHREAD_CFLAGS@
+#Test_threads_b_LDADD = @PTHREAD_LIBS@ @LIBS@ @GSL_LIBS@ @MPILIBS@ 
+#Test_threads_b_LDADD = @PTHREAD_LIBS@ @LIBS@ @GSL_LIBS@ 
+Test_threads_b_LDADD = @PTHREAD_LIBS@ @LIBS@ 
+
+TESTS_ENVIRONMENT = \
+top_builddir=$(top_builddir) \
+top_srcdir=$(top_srcdir) \
+built_with_posix_threads=$(built_with_posix_threads) \
+no_gsl=$(no_gsl) 
+
+
+TESTS =  \
+Test_threads_a \
+Test_threads_b \
+find-zero-length.test \
+1a-create_bmp_for_symmetrical_stripline.bmp.test \
+1b-create_bmp_for_symmetrical_stripline.txt.test \
+1c-create_bmp_for_symmetrical_stripline.E.bmp.test \
+1d-create_bmp_for_symmetrical_stripline.Er.bmp.test \
+1e-create_bmp_for_symmetrical_stripline.Ey.bmp.test \
+1f-create_bmp_for_symmetrical_stripline.Ex.bmp.test \
+1g-create_bmp_for_symmetrical_stripline.U.bmp.test \
+1h-create_bmp_for_symmetrical_stripline.V.bmp.test \
+1i-create_bmp_for_symmetrical_stripline.E.bin.test \
+1j-create_bmp_for_symmetrical_stripline.Er.bin.test \
+1k-create_bmp_for_symmetrical_stripline.Ey.bin.test \
+1l-create_bmp_for_symmetrical_stripline.Ex.bin.test \
+1m-create_bmp_for_symmetrical_stripline.U.bin.test \
+1n-create_bmp_for_symmetrical_stripline.V.bin.test \
+2a-create_bmp_for_rect_in_rect.bmp.test \
+3a-create_bmp_for_rect_cen_in_rect.bmp.test \
+3b-create_bmp_for_rect_cen_in_rect.txt.test \
+4a-create_bmp_for_microstrip_coupler.test \
+5a-check-s_and_-S_options_of_atlc-2conductor.test \
+5b-check-s_and_-S_options_of_atlc-3conductor.test \
+5c-check_numeric_data_from_atlc-2conductor.test \
+6a-create_and_check_25ohm_201Pixel_high_symmetrical_stripline.test \
+6b-create_25ohm_401Pixel_high_symmetrical_stripline.test \
+6c-create_25ohm_801Pixel_high_symmetrical_stripline.test \
+6d-create_and_check_50ohm_201Pixel_high_symmetrical_stripline.test \
+6e-create_50ohm_401Pixel_high_symmetrical_stripline.test \
+6f-create_50ohm_801Pixel_high_symmetrical_stripline.test \
+6g-create_100ohm_201Pixel_high_symmetrical_stripline.test \
+6h-create_100ohm_401Pixel_high_symmetrical_stripline.test \
+6i-create_100ohm_801Pixel_high_symmetrical_stripline.test \
+6j-create_200ohm_201Pixel_high_symmetrical_stripline.test \
+6k-create_200ohm_401Pixel_high_symmetrical_stripline.test \
+6l-create_200ohm_801Pixel_high_symmetrical_stripline.test \
+7a-create_bmp_for_stripline_coupler.bmp.test \
+7b-create_bmp_for_stripline_coupler.txt.test \
+7c-create_bmp_for_stripline_coupler.Ex.odd.bmp.test \
+7d-create_bmp_for_stripline_coupler.Ey.odd.bmp.test \
+7e-create_bmp_for_stripline_coupler.E.odd.bmp.test \
+7f-create_bmp_for_stripline_coupler.V.odd.bmp.test \
+7g-create_bmp_for_stripline_coupler.U.odd.bmp.test \
+7h-create_bmp_for_stripline_coupler.Er.bmp.test \
+7i-create_bmp_for_stripline_coupler.U.even.bmp.test \
+7j-create_bmp_for_stripline_coupler.Ex.even.bmp.test \
+7k-create_bmp_for_stripline_coupler.Ey.even.bmp.test \
+7l-create_bmp_for_stripline_coupler.E.even.bmp.test \
+7m-create_bmp_for_stripline_coupler.V.even.bmp.test \
+7n-create_bmp_for_stripline_coupler.bmp.pre-atlc.txt.test \
+8a-design_coupler.bmp.test \
+9a-create-25-Ohm-201b.bmp.test \
+9b-create-25-Ohm-401b.bmp.test \
+9c-create-50-Ohm-201b.bmp.test \
+9d-create-50-Ohm-401b.bmp.test \
+9e-create-100-Ohm-201b.bmp.test \
+9f-create-100-Ohm-401b.bmp.test \
+9g-create-200-Ohm-201b.bmp.test \
+9h-create-200-Ohm-401b.bmp.test \
+9i-create-200-Ohm-801b.bmp.test \
+10a-create-lots-of-examples-check-last-one.test \
+10b-create-lots-of-examples-check-last-one.test \
+11a-verify-checksum-of-supplied-test-coupler1.bmp.test \
+11b-verify-checksum-of-created-test-coupler1.Ex.odd.bmp.test \
+11c-verify-checksum-of-created-test-coupler1.Ey.odd.bmp.test \
+11d-verify-checksum-of-created-test-coupler1.E.odd.bmp.test \
+11e-verify-checksum-of-created-test-coupler1.V.odd.bmp.test \
+11f-verify-checksum-of-created-test-coupler1.U.odd.bmp.test \
+11g-verify-checksum-of-created-test-coupler1.Er.bmp.test \
+11h-verify-checksum-of-created-test-coupler1.Ex.even.bmp.test \
+11i-verify-checksum-of-created-test-coupler1.Ey.even.bmp.test \
+11j-verify-checksum-of-created-test-coupler1.E.even.bmp.test \
+11k-verify-checksum-of-created-test-coupler1.U.even.bmp.test \
+11l-verify-checksum-of-created-test-coupler1.V.even.bmp.test \
+13a-check_rect_cen_in_rect.test \
+13b-check_rect_cen_in_rect.test \
+13c-check_rect_cen_in_rect.test \
+13d-check_rect_cen_in_rect.test \
+14a-check-circ-in-rect.test \
+14b-check-circ-in-rect.test \
+14c-check-circ-in-rect.test \
+14d-check-circ-in-rect.test  \
+benchmark.test 
+
+#MPI_16a_PI 
+
+EXTRA_DIST = \
+benchmark.test \
+Test_threads_a.c \
+Test_threads_b.c \
+find-zero-length.test \
+MPI_16a_PI.c      \
+10a-create-lots-of-examples-check-last-one.test \
+10b-create-lots-of-examples-check-last-one.test \
+11a-verify-checksum-of-supplied-test-coupler1.bmp.test \
+11b-verify-checksum-of-created-test-coupler1.Ex.odd.bmp.test \
+11c-verify-checksum-of-created-test-coupler1.Ey.odd.bmp.test \
+11d-verify-checksum-of-created-test-coupler1.E.odd.bmp.test \
+11e-verify-checksum-of-created-test-coupler1.V.odd.bmp.test \
+11f-verify-checksum-of-created-test-coupler1.U.odd.bmp.test \
+11g-verify-checksum-of-created-test-coupler1.Er.bmp.test \
+11h-verify-checksum-of-created-test-coupler1.Ex.even.bmp.test \
+11i-verify-checksum-of-created-test-coupler1.Ey.even.bmp.test \
+11j-verify-checksum-of-created-test-coupler1.E.even.bmp.test \
+11k-verify-checksum-of-created-test-coupler1.U.even.bmp.test \
+11l-verify-checksum-of-created-test-coupler1.V.even.bmp.test \
+13a-check_rect_cen_in_rect.test \
+13b-check_rect_cen_in_rect.test \
+13c-check_rect_cen_in_rect.test \
+13d-check_rect_cen_in_rect.test \
+14a-check-circ-in-rect.test \
+14b-check-circ-in-rect.test \
+14c-check-circ-in-rect.test \
+14d-check-circ-in-rect.test \
+WARNING--The-next-test+benchmark-takes-a-long-while.test \
+1a-create_bmp_for_symmetrical_stripline.bmp.test \
+1b-create_bmp_for_symmetrical_stripline.txt.test \
+1c-create_bmp_for_symmetrical_stripline.E.bmp.test \
+1d-create_bmp_for_symmetrical_stripline.Er.bmp.test \
+1e-create_bmp_for_symmetrical_stripline.Ey.bmp.test \
+1f-create_bmp_for_symmetrical_stripline.Ex.bmp.test \
+1g-create_bmp_for_symmetrical_stripline.U.bmp.test \
+1h-create_bmp_for_symmetrical_stripline.V.bmp.test \
+1i-create_bmp_for_symmetrical_stripline.E.bin.test \
+1j-create_bmp_for_symmetrical_stripline.Er.bin.test \
+1k-create_bmp_for_symmetrical_stripline.Ey.bin.test \
+1l-create_bmp_for_symmetrical_stripline.Ex.bin.test \
+1m-create_bmp_for_symmetrical_stripline.U.bin.test \
+1n-create_bmp_for_symmetrical_stripline.V.bin.test \
+2a-create_bmp_for_rect_in_rect.bmp.test \
+2b-create_bmp_for_rect_in_rect.txt.test \
+2c-create_bmp_for_rect_in_rect.E.bmp.test \
+2d-create_bmp_for_rect_in_rect.Er.bmp.test \
+2e-create_bmp_for_rect_in_rect.Ey.bmp.test \
+2f-create_bmp_for_rect_in_rect.Ex.bmp.test \
+2g-create_bmp_for_rect_in_rect.U.bmp.test \
+2h-create_bmp_for_rect_in_rect.V.bmp.test \
+3a-create_bmp_for_rect_cen_in_rect.bmp.test \
+3b-create_bmp_for_rect_cen_in_rect.txt.test \
+4a-create_bmp_for_microstrip_coupler.test \
+5a-check-s_and_-S_options_of_atlc-2conductor.test \
+5b-check-s_and_-S_options_of_atlc-3conductor.test \
+5c-check_numeric_data_from_atlc-2conductor.test \
+6a-create_and_check_25ohm_201Pixel_high_symmetrical_stripline.test \
+6b-create_25ohm_401Pixel_high_symmetrical_stripline.test \
+6c-create_25ohm_801Pixel_high_symmetrical_stripline.test \
+6d-create_and_check_50ohm_201Pixel_high_symmetrical_stripline.test \
+6e-create_50ohm_401Pixel_high_symmetrical_stripline.test \
+6f-create_50ohm_801Pixel_high_symmetrical_stripline.test \
+6g-create_100ohm_201Pixel_high_symmetrical_stripline.test \
+6h-create_100ohm_401Pixel_high_symmetrical_stripline.test \
+6i-create_100ohm_801Pixel_high_symmetrical_stripline.test \
+6j-create_200ohm_201Pixel_high_symmetrical_stripline.test \
+6k-create_200ohm_401Pixel_high_symmetrical_stripline.test \
+6l-create_200ohm_801Pixel_high_symmetrical_stripline.test \
+6m-create_400ohm_1551Pixel_high_symmetrical_stripline.test \
+7a-create_bmp_for_stripline_coupler.bmp.test \
+7b-create_bmp_for_stripline_coupler.txt.test \
+7c-create_bmp_for_stripline_coupler.Ex.odd.bmp.test \
+7d-create_bmp_for_stripline_coupler.Ey.odd.bmp.test \
+7e-create_bmp_for_stripline_coupler.E.odd.bmp.test \
+7f-create_bmp_for_stripline_coupler.V.odd.bmp.test \
+7g-create_bmp_for_stripline_coupler.U.odd.bmp.test \
+7h-create_bmp_for_stripline_coupler.Er.bmp.test \
+7i-create_bmp_for_stripline_coupler.U.even.bmp.test \
+7j-create_bmp_for_stripline_coupler.Ex.even.bmp.test \
+7k-create_bmp_for_stripline_coupler.Ey.even.bmp.test \
+7l-create_bmp_for_stripline_coupler.E.even.bmp.test \
+7m-create_bmp_for_stripline_coupler.V.even.bmp.test \
+7n-create_bmp_for_stripline_coupler.bmp.pre-atlc.txt.test \
+8a-design_coupler.bmp.test \
+9a-create-25-Ohm-201b.bmp.test \
+9b-create-25-Ohm-401b.bmp.test \
+9c-create-50-Ohm-201b.bmp.test \
+9d-create-50-Ohm-401b.bmp.test \
+9e-create-100-Ohm-201b.bmp.test \
+9f-create-100-Ohm-401b.bmp.test \
+9g-create-200-Ohm-201b.bmp.test \
+9h-create-200-Ohm-401b.bmp.test \
+9i-create-200-Ohm-801b.bmp.test 
+
+CLEANFILES = \
+test.E.bin \
+test.E.bmp \
+test.Er.bin \
+test.Er.bmp \
+test.Ex.bin \
+test.Ex.bmp \
+test.Ey.bin \
+test.Ey.bmp \
+test.U.bin \
+test.U.bmp \
+test.V.bin \
+test.V.bmp \
+test.bmp \
+test.bmp.txt \
+test2.txt \
+test_rect_in_rect.E.bin \
+test_rect_in_rect.E.bmp \
+test_rect_in_rect.Er.bin \
+test_rect_in_rect.Er.bmp \
+test_rect_in_rect.Ex.bin \
+test_rect_in_rect.Ex.bmp \
+test_rect_in_rect.Ey.bin \
+test_rect_in_rect.Ey.bmp \
+test_rect_in_rect.U.bin \
+test_rect_in_rect.U.bmp \
+test_rect_in_rect.V.bin \
+test_rect_in_rect.V.bmp \
+test_rect_in_rect.bmp \
+test_rect_in_rect.txt \
+test_stripline_coupler.E.even.bin \
+test_stripline_coupler.E.even.bmp \
+test_stripline_coupler.E.odd.bin \
+test_stripline_coupler.E.odd.bmp \
+test_stripline_coupler.Er.bin \
+test_stripline_coupler.Er.bmp \
+test_stripline_coupler.Ex.even.bin \
+test_stripline_coupler.Ex.even.bmp \
+test_stripline_coupler.Ex.odd.bin \
+test_stripline_coupler.Ex.odd.bmp \
+test_stripline_coupler.Ey.even.bin \
+test_stripline_coupler.Ey.even.bmp \
+test_stripline_coupler.Ey.odd.bin \
+test_stripline_coupler.Ey.odd.bmp \
+test_stripline_coupler.U.even.bin \
+test_stripline_coupler.U.even.bmp \
+test_stripline_coupler.U.odd.bin \
+test_stripline_coupler.U.odd.bmp \
+test_stripline_coupler.V.even.bin \
+test_stripline_coupler.V.even.bmp \
+test_stripline_coupler.V.odd.bin \
+test_stripline_coupler.V.odd.bmp \
+test_stripline_coupler.bmp \
+test_stripline_coupler.bmp.pre-atlc.txt \
+test_stripline_coupler.bmp.txt \
+test_stripline_coupler.txt \
+test_sym_strip.E.bin \
+test_sym_strip.E.bmp \
+test_sym_strip.Er.bin \
+test_sym_strip.Er.bmp \
+test_sym_strip.Ex.bin \
+test_sym_strip.Ex.bmp \
+test_sym_strip.Ey.bin \
+test_sym_strip.Ey.bmp \
+test_sym_strip.U.bin \
+test_sym_strip.U.bmp \
+test_sym_strip.V.bin \
+test_sym_strip.V.bmp \
+test_sym_strip.bmp \
+test_sym_strip.txt \
+test-coupler2.bmp.txt \
+microstrip_coupler.bmp \
+undefined_permittivities.bmp 
+
+DISTCLEANFILES = tests.log test.txt benchmark.foo.html tests.html benchmark.foo.dat
diff --git a/tests/Makefile.in b/tests/Makefile.in
new file mode 100644 (file)
index 0000000..44390f5
--- /dev/null
@@ -0,0 +1,863 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+# This is tests/Makefile.am.
+# MPI_16a_PI computes the value of PI and uses distributed processing
+# to do it. This test it is not always executed. 
+AUTOMAKE_OPTIONS = gnits
+
+
+# check_PROGRAMS = MPI_16a_PI 
+check_PROGRAMS = \
+sysdata \
+benchmark \
+Test_threads_a \
+Test_threads_b
+
+
+
+#MPI_16a_PI_SOURCES = MPI_16a_PI.c 
+#MPI_16a_PI_LDADD = @MPILIBS@ @LIBS@
+benchmark_SOURCES = \
+benchmark.c \
+try_aix.c \
+try_bsd.c \
+try_hpux.c \
+try_irix.c \
+try_linux.c \
+try_portable.c \
+try_solaris.c \
+try_tru64.c \
+try_unicos.c \
+defs.h
+
+
+sysdata_SOURCES = \
+sysdata.c \
+try_aix.c \
+try_bsd.c \
+try_hpux.c \
+try_irix.c \
+try_linux.c \
+try_portable.c \
+try_solaris.c \
+try_tru64.c \
+try_unicos.c \
+defs.h
+
+
+Test_threads_a_SOURCES = Test_threads_a.c
+Test_threads_a_CPPFLAGS = @PTHREAD_CFLAGS@
+#Test_threads_a_LDADD = @PTHREAD_LIBS@ @LIBS@ @GSL_LIBS@ @MPILIBS@ 
+#Test_threads_a_LDADD = @PTHREAD_LIBS@ @LIBS@ @GSL_LIBS@ 
+Test_threads_a_LDADD = @PTHREAD_LIBS@ @LIBS@ 
+
+Test_threads_b_SOURCES = Test_threads_b.c
+Test_threads_b_CPPFLAGS = @PTHREAD_CFLAGS@
+#Test_threads_b_LDADD = @PTHREAD_LIBS@ @LIBS@ @GSL_LIBS@ @MPILIBS@ 
+#Test_threads_b_LDADD = @PTHREAD_LIBS@ @LIBS@ @GSL_LIBS@ 
+Test_threads_b_LDADD = @PTHREAD_LIBS@ @LIBS@ 
+
+TESTS_ENVIRONMENT = \
+top_builddir=$(top_builddir) \
+top_srcdir=$(top_srcdir) \
+built_with_posix_threads=$(built_with_posix_threads) \
+no_gsl=$(no_gsl) 
+
+
+TESTS = \
+Test_threads_a \
+Test_threads_b \
+find-zero-length.test \
+1a-create_bmp_for_symmetrical_stripline.bmp.test \
+1b-create_bmp_for_symmetrical_stripline.txt.test \
+1c-create_bmp_for_symmetrical_stripline.E.bmp.test \
+1d-create_bmp_for_symmetrical_stripline.Er.bmp.test \
+1e-create_bmp_for_symmetrical_stripline.Ey.bmp.test \
+1f-create_bmp_for_symmetrical_stripline.Ex.bmp.test \
+1g-create_bmp_for_symmetrical_stripline.U.bmp.test \
+1h-create_bmp_for_symmetrical_stripline.V.bmp.test \
+1i-create_bmp_for_symmetrical_stripline.E.bin.test \
+1j-create_bmp_for_symmetrical_stripline.Er.bin.test \
+1k-create_bmp_for_symmetrical_stripline.Ey.bin.test \
+1l-create_bmp_for_symmetrical_stripline.Ex.bin.test \
+1m-create_bmp_for_symmetrical_stripline.U.bin.test \
+1n-create_bmp_for_symmetrical_stripline.V.bin.test \
+2a-create_bmp_for_rect_in_rect.bmp.test \
+3a-create_bmp_for_rect_cen_in_rect.bmp.test \
+3b-create_bmp_for_rect_cen_in_rect.txt.test \
+4a-create_bmp_for_microstrip_coupler.test \
+5a-check-s_and_-S_options_of_atlc-2conductor.test \
+5b-check-s_and_-S_options_of_atlc-3conductor.test \
+5c-check_numeric_data_from_atlc-2conductor.test \
+6a-create_and_check_25ohm_201Pixel_high_symmetrical_stripline.test \
+6b-create_25ohm_401Pixel_high_symmetrical_stripline.test \
+6c-create_25ohm_801Pixel_high_symmetrical_stripline.test \
+6d-create_and_check_50ohm_201Pixel_high_symmetrical_stripline.test \
+6e-create_50ohm_401Pixel_high_symmetrical_stripline.test \
+6f-create_50ohm_801Pixel_high_symmetrical_stripline.test \
+6g-create_100ohm_201Pixel_high_symmetrical_stripline.test \
+6h-create_100ohm_401Pixel_high_symmetrical_stripline.test \
+6i-create_100ohm_801Pixel_high_symmetrical_stripline.test \
+6j-create_200ohm_201Pixel_high_symmetrical_stripline.test \
+6k-create_200ohm_401Pixel_high_symmetrical_stripline.test \
+6l-create_200ohm_801Pixel_high_symmetrical_stripline.test \
+7a-create_bmp_for_stripline_coupler.bmp.test \
+7b-create_bmp_for_stripline_coupler.txt.test \
+7c-create_bmp_for_stripline_coupler.Ex.odd.bmp.test \
+7d-create_bmp_for_stripline_coupler.Ey.odd.bmp.test \
+7e-create_bmp_for_stripline_coupler.E.odd.bmp.test \
+7f-create_bmp_for_stripline_coupler.V.odd.bmp.test \
+7g-create_bmp_for_stripline_coupler.U.odd.bmp.test \
+7h-create_bmp_for_stripline_coupler.Er.bmp.test \
+7i-create_bmp_for_stripline_coupler.U.even.bmp.test \
+7j-create_bmp_for_stripline_coupler.Ex.even.bmp.test \
+7k-create_bmp_for_stripline_coupler.Ey.even.bmp.test \
+7l-create_bmp_for_stripline_coupler.E.even.bmp.test \
+7m-create_bmp_for_stripline_coupler.V.even.bmp.test \
+7n-create_bmp_for_stripline_coupler.bmp.pre-atlc.txt.test \
+8a-design_coupler.bmp.test \
+9a-create-25-Ohm-201b.bmp.test \
+9b-create-25-Ohm-401b.bmp.test \
+9c-create-50-Ohm-201b.bmp.test \
+9d-create-50-Ohm-401b.bmp.test \
+9e-create-100-Ohm-201b.bmp.test \
+9f-create-100-Ohm-401b.bmp.test \
+9g-create-200-Ohm-201b.bmp.test \
+9h-create-200-Ohm-401b.bmp.test \
+9i-create-200-Ohm-801b.bmp.test \
+10a-create-lots-of-examples-check-last-one.test \
+10b-create-lots-of-examples-check-last-one.test \
+11a-verify-checksum-of-supplied-test-coupler1.bmp.test \
+11b-verify-checksum-of-created-test-coupler1.Ex.odd.bmp.test \
+11c-verify-checksum-of-created-test-coupler1.Ey.odd.bmp.test \
+11d-verify-checksum-of-created-test-coupler1.E.odd.bmp.test \
+11e-verify-checksum-of-created-test-coupler1.V.odd.bmp.test \
+11f-verify-checksum-of-created-test-coupler1.U.odd.bmp.test \
+11g-verify-checksum-of-created-test-coupler1.Er.bmp.test \
+11h-verify-checksum-of-created-test-coupler1.Ex.even.bmp.test \
+11i-verify-checksum-of-created-test-coupler1.Ey.even.bmp.test \
+11j-verify-checksum-of-created-test-coupler1.E.even.bmp.test \
+11k-verify-checksum-of-created-test-coupler1.U.even.bmp.test \
+11l-verify-checksum-of-created-test-coupler1.V.even.bmp.test \
+13a-check_rect_cen_in_rect.test \
+13b-check_rect_cen_in_rect.test \
+13c-check_rect_cen_in_rect.test \
+13d-check_rect_cen_in_rect.test \
+14a-check-circ-in-rect.test \
+14b-check-circ-in-rect.test \
+14c-check-circ-in-rect.test \
+14d-check-circ-in-rect.test  \
+benchmark.test 
+
+
+
+#MPI_16a_PI 
+EXTRA_DIST = \
+benchmark.test \
+Test_threads_a.c \
+Test_threads_b.c \
+find-zero-length.test \
+MPI_16a_PI.c      \
+10a-create-lots-of-examples-check-last-one.test \
+10b-create-lots-of-examples-check-last-one.test \
+11a-verify-checksum-of-supplied-test-coupler1.bmp.test \
+11b-verify-checksum-of-created-test-coupler1.Ex.odd.bmp.test \
+11c-verify-checksum-of-created-test-coupler1.Ey.odd.bmp.test \
+11d-verify-checksum-of-created-test-coupler1.E.odd.bmp.test \
+11e-verify-checksum-of-created-test-coupler1.V.odd.bmp.test \
+11f-verify-checksum-of-created-test-coupler1.U.odd.bmp.test \
+11g-verify-checksum-of-created-test-coupler1.Er.bmp.test \
+11h-verify-checksum-of-created-test-coupler1.Ex.even.bmp.test \
+11i-verify-checksum-of-created-test-coupler1.Ey.even.bmp.test \
+11j-verify-checksum-of-created-test-coupler1.E.even.bmp.test \
+11k-verify-checksum-of-created-test-coupler1.U.even.bmp.test \
+11l-verify-checksum-of-created-test-coupler1.V.even.bmp.test \
+13a-check_rect_cen_in_rect.test \
+13b-check_rect_cen_in_rect.test \
+13c-check_rect_cen_in_rect.test \
+13d-check_rect_cen_in_rect.test \
+14a-check-circ-in-rect.test \
+14b-check-circ-in-rect.test \
+14c-check-circ-in-rect.test \
+14d-check-circ-in-rect.test \
+WARNING--The-next-test+benchmark-takes-a-long-while.test \
+1a-create_bmp_for_symmetrical_stripline.bmp.test \
+1b-create_bmp_for_symmetrical_stripline.txt.test \
+1c-create_bmp_for_symmetrical_stripline.E.bmp.test \
+1d-create_bmp_for_symmetrical_stripline.Er.bmp.test \
+1e-create_bmp_for_symmetrical_stripline.Ey.bmp.test \
+1f-create_bmp_for_symmetrical_stripline.Ex.bmp.test \
+1g-create_bmp_for_symmetrical_stripline.U.bmp.test \
+1h-create_bmp_for_symmetrical_stripline.V.bmp.test \
+1i-create_bmp_for_symmetrical_stripline.E.bin.test \
+1j-create_bmp_for_symmetrical_stripline.Er.bin.test \
+1k-create_bmp_for_symmetrical_stripline.Ey.bin.test \
+1l-create_bmp_for_symmetrical_stripline.Ex.bin.test \
+1m-create_bmp_for_symmetrical_stripline.U.bin.test \
+1n-create_bmp_for_symmetrical_stripline.V.bin.test \
+2a-create_bmp_for_rect_in_rect.bmp.test \
+2b-create_bmp_for_rect_in_rect.txt.test \
+2c-create_bmp_for_rect_in_rect.E.bmp.test \
+2d-create_bmp_for_rect_in_rect.Er.bmp.test \
+2e-create_bmp_for_rect_in_rect.Ey.bmp.test \
+2f-create_bmp_for_rect_in_rect.Ex.bmp.test \
+2g-create_bmp_for_rect_in_rect.U.bmp.test \
+2h-create_bmp_for_rect_in_rect.V.bmp.test \
+3a-create_bmp_for_rect_cen_in_rect.bmp.test \
+3b-create_bmp_for_rect_cen_in_rect.txt.test \
+4a-create_bmp_for_microstrip_coupler.test \
+5a-check-s_and_-S_options_of_atlc-2conductor.test \
+5b-check-s_and_-S_options_of_atlc-3conductor.test \
+5c-check_numeric_data_from_atlc-2conductor.test \
+6a-create_and_check_25ohm_201Pixel_high_symmetrical_stripline.test \
+6b-create_25ohm_401Pixel_high_symmetrical_stripline.test \
+6c-create_25ohm_801Pixel_high_symmetrical_stripline.test \
+6d-create_and_check_50ohm_201Pixel_high_symmetrical_stripline.test \
+6e-create_50ohm_401Pixel_high_symmetrical_stripline.test \
+6f-create_50ohm_801Pixel_high_symmetrical_stripline.test \
+6g-create_100ohm_201Pixel_high_symmetrical_stripline.test \
+6h-create_100ohm_401Pixel_high_symmetrical_stripline.test \
+6i-create_100ohm_801Pixel_high_symmetrical_stripline.test \
+6j-create_200ohm_201Pixel_high_symmetrical_stripline.test \
+6k-create_200ohm_401Pixel_high_symmetrical_stripline.test \
+6l-create_200ohm_801Pixel_high_symmetrical_stripline.test \
+6m-create_400ohm_1551Pixel_high_symmetrical_stripline.test \
+7a-create_bmp_for_stripline_coupler.bmp.test \
+7b-create_bmp_for_stripline_coupler.txt.test \
+7c-create_bmp_for_stripline_coupler.Ex.odd.bmp.test \
+7d-create_bmp_for_stripline_coupler.Ey.odd.bmp.test \
+7e-create_bmp_for_stripline_coupler.E.odd.bmp.test \
+7f-create_bmp_for_stripline_coupler.V.odd.bmp.test \
+7g-create_bmp_for_stripline_coupler.U.odd.bmp.test \
+7h-create_bmp_for_stripline_coupler.Er.bmp.test \
+7i-create_bmp_for_stripline_coupler.U.even.bmp.test \
+7j-create_bmp_for_stripline_coupler.Ex.even.bmp.test \
+7k-create_bmp_for_stripline_coupler.Ey.even.bmp.test \
+7l-create_bmp_for_stripline_coupler.E.even.bmp.test \
+7m-create_bmp_for_stripline_coupler.V.even.bmp.test \
+7n-create_bmp_for_stripline_coupler.bmp.pre-atlc.txt.test \
+8a-design_coupler.bmp.test \
+9a-create-25-Ohm-201b.bmp.test \
+9b-create-25-Ohm-401b.bmp.test \
+9c-create-50-Ohm-201b.bmp.test \
+9d-create-50-Ohm-401b.bmp.test \
+9e-create-100-Ohm-201b.bmp.test \
+9f-create-100-Ohm-401b.bmp.test \
+9g-create-200-Ohm-201b.bmp.test \
+9h-create-200-Ohm-401b.bmp.test \
+9i-create-200-Ohm-801b.bmp.test 
+
+
+CLEANFILES = \
+test.E.bin \
+test.E.bmp \
+test.Er.bin \
+test.Er.bmp \
+test.Ex.bin \
+test.Ex.bmp \
+test.Ey.bin \
+test.Ey.bmp \
+test.U.bin \
+test.U.bmp \
+test.V.bin \
+test.V.bmp \
+test.bmp \
+test.bmp.txt \
+test2.txt \
+test_rect_in_rect.E.bin \
+test_rect_in_rect.E.bmp \
+test_rect_in_rect.Er.bin \
+test_rect_in_rect.Er.bmp \
+test_rect_in_rect.Ex.bin \
+test_rect_in_rect.Ex.bmp \
+test_rect_in_rect.Ey.bin \
+test_rect_in_rect.Ey.bmp \
+test_rect_in_rect.U.bin \
+test_rect_in_rect.U.bmp \
+test_rect_in_rect.V.bin \
+test_rect_in_rect.V.bmp \
+test_rect_in_rect.bmp \
+test_rect_in_rect.txt \
+test_stripline_coupler.E.even.bin \
+test_stripline_coupler.E.even.bmp \
+test_stripline_coupler.E.odd.bin \
+test_stripline_coupler.E.odd.bmp \
+test_stripline_coupler.Er.bin \
+test_stripline_coupler.Er.bmp \
+test_stripline_coupler.Ex.even.bin \
+test_stripline_coupler.Ex.even.bmp \
+test_stripline_coupler.Ex.odd.bin \
+test_stripline_coupler.Ex.odd.bmp \
+test_stripline_coupler.Ey.even.bin \
+test_stripline_coupler.Ey.even.bmp \
+test_stripline_coupler.Ey.odd.bin \
+test_stripline_coupler.Ey.odd.bmp \
+test_stripline_coupler.U.even.bin \
+test_stripline_coupler.U.even.bmp \
+test_stripline_coupler.U.odd.bin \
+test_stripline_coupler.U.odd.bmp \
+test_stripline_coupler.V.even.bin \
+test_stripline_coupler.V.even.bmp \
+test_stripline_coupler.V.odd.bin \
+test_stripline_coupler.V.odd.bmp \
+test_stripline_coupler.bmp \
+test_stripline_coupler.bmp.pre-atlc.txt \
+test_stripline_coupler.bmp.txt \
+test_stripline_coupler.txt \
+test_sym_strip.E.bin \
+test_sym_strip.E.bmp \
+test_sym_strip.Er.bin \
+test_sym_strip.Er.bmp \
+test_sym_strip.Ex.bin \
+test_sym_strip.Ex.bmp \
+test_sym_strip.Ey.bin \
+test_sym_strip.Ey.bmp \
+test_sym_strip.U.bin \
+test_sym_strip.U.bmp \
+test_sym_strip.V.bin \
+test_sym_strip.V.bmp \
+test_sym_strip.bmp \
+test_sym_strip.txt \
+test-coupler2.bmp.txt \
+microstrip_coupler.bmp \
+undefined_permittivities.bmp 
+
+
+DISTCLEANFILES = tests.log test.txt benchmark.foo.html tests.html benchmark.foo.dat
+subdir = tests
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+check_PROGRAMS = sysdata$(EXEEXT) benchmark$(EXEEXT) \
+       Test_threads_a$(EXEEXT) Test_threads_b$(EXEEXT)
+am_Test_threads_a_OBJECTS = Test_threads_a-Test_threads_a.$(OBJEXT)
+Test_threads_a_OBJECTS = $(am_Test_threads_a_OBJECTS)
+Test_threads_a_DEPENDENCIES =
+Test_threads_a_LDFLAGS =
+am_Test_threads_b_OBJECTS = Test_threads_b-Test_threads_b.$(OBJEXT)
+Test_threads_b_OBJECTS = $(am_Test_threads_b_OBJECTS)
+Test_threads_b_DEPENDENCIES =
+Test_threads_b_LDFLAGS =
+am_benchmark_OBJECTS = benchmark.$(OBJEXT) try_aix.$(OBJEXT) \
+       try_bsd.$(OBJEXT) try_hpux.$(OBJEXT) try_irix.$(OBJEXT) \
+       try_linux.$(OBJEXT) try_portable.$(OBJEXT) \
+       try_solaris.$(OBJEXT) try_tru64.$(OBJEXT) try_unicos.$(OBJEXT)
+benchmark_OBJECTS = $(am_benchmark_OBJECTS)
+benchmark_LDADD = $(LDADD)
+benchmark_DEPENDENCIES =
+benchmark_LDFLAGS =
+am_sysdata_OBJECTS = sysdata.$(OBJEXT) try_aix.$(OBJEXT) \
+       try_bsd.$(OBJEXT) try_hpux.$(OBJEXT) try_irix.$(OBJEXT) \
+       try_linux.$(OBJEXT) try_portable.$(OBJEXT) \
+       try_solaris.$(OBJEXT) try_tru64.$(OBJEXT) try_unicos.$(OBJEXT)
+sysdata_OBJECTS = $(am_sysdata_OBJECTS)
+sysdata_LDADD = $(LDADD)
+sysdata_DEPENDENCIES =
+sysdata_LDFLAGS =
+
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/Test_threads_a-Test_threads_a.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/Test_threads_b-Test_threads_b.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/benchmark.Po ./$(DEPDIR)/sysdata.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/try_aix.Po ./$(DEPDIR)/try_bsd.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/try_hpux.Po ./$(DEPDIR)/try_irix.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/try_linux.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/try_portable.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/try_solaris.Po ./$(DEPDIR)/try_tru64.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/try_unicos.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(Test_threads_a_SOURCES) $(Test_threads_b_SOURCES) \
+       $(benchmark_SOURCES) $(sysdata_SOURCES)
+DIST_COMMON = README Makefile.am Makefile.in
+SOURCES = $(Test_threads_a_SOURCES) $(Test_threads_b_SOURCES) $(benchmark_SOURCES) $(sysdata_SOURCES)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnits  tests/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+
+clean-checkPROGRAMS:
+       -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
+Test_threads_a-Test_threads_a.$(OBJEXT): Test_threads_a.c
+Test_threads_a$(EXEEXT): $(Test_threads_a_OBJECTS) $(Test_threads_a_DEPENDENCIES) 
+       @rm -f Test_threads_a$(EXEEXT)
+       $(LINK) $(Test_threads_a_LDFLAGS) $(Test_threads_a_OBJECTS) $(Test_threads_a_LDADD) $(LIBS)
+Test_threads_b-Test_threads_b.$(OBJEXT): Test_threads_b.c
+Test_threads_b$(EXEEXT): $(Test_threads_b_OBJECTS) $(Test_threads_b_DEPENDENCIES) 
+       @rm -f Test_threads_b$(EXEEXT)
+       $(LINK) $(Test_threads_b_LDFLAGS) $(Test_threads_b_OBJECTS) $(Test_threads_b_LDADD) $(LIBS)
+benchmark$(EXEEXT): $(benchmark_OBJECTS) $(benchmark_DEPENDENCIES) 
+       @rm -f benchmark$(EXEEXT)
+       $(LINK) $(benchmark_LDFLAGS) $(benchmark_OBJECTS) $(benchmark_LDADD) $(LIBS)
+sysdata$(EXEEXT): $(sysdata_OBJECTS) $(sysdata_DEPENDENCIES) 
+       @rm -f sysdata$(EXEEXT)
+       $(LINK) $(sysdata_LDFLAGS) $(sysdata_OBJECTS) $(sysdata_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Test_threads_a-Test_threads_a.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Test_threads_b-Test_threads_b.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sysdata.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/try_aix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/try_bsd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/try_hpux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/try_irix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/try_linux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/try_portable.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/try_solaris.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/try_tru64.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/try_unicos.Po@am__quote@
+
+distclean-depend:
+       -rm -rf ./$(DEPDIR)
+
+.c.o:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@     -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@     -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`
+
+Test_threads_a-Test_threads_a.o: Test_threads_a.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_threads_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Test_threads_a-Test_threads_a.o -MD -MP -MF "$(DEPDIR)/Test_threads_a-Test_threads_a.Tpo" \
+@am__fastdepCC_TRUE@     -c -o Test_threads_a-Test_threads_a.o `test -f 'Test_threads_a.c' || echo '$(srcdir)/'`Test_threads_a.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/Test_threads_a-Test_threads_a.Tpo" "$(DEPDIR)/Test_threads_a-Test_threads_a.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/Test_threads_a-Test_threads_a.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='Test_threads_a.c' object='Test_threads_a-Test_threads_a.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/Test_threads_a-Test_threads_a.Po' tmpdepfile='$(DEPDIR)/Test_threads_a-Test_threads_a.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_threads_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Test_threads_a-Test_threads_a.o `test -f 'Test_threads_a.c' || echo '$(srcdir)/'`Test_threads_a.c
+
+Test_threads_a-Test_threads_a.obj: Test_threads_a.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_threads_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Test_threads_a-Test_threads_a.obj -MD -MP -MF "$(DEPDIR)/Test_threads_a-Test_threads_a.Tpo" \
+@am__fastdepCC_TRUE@     -c -o Test_threads_a-Test_threads_a.obj `if test -f 'Test_threads_a.c'; then $(CYGPATH_W) 'Test_threads_a.c'; else $(CYGPATH_W) '$(srcdir)/Test_threads_a.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/Test_threads_a-Test_threads_a.Tpo" "$(DEPDIR)/Test_threads_a-Test_threads_a.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/Test_threads_a-Test_threads_a.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='Test_threads_a.c' object='Test_threads_a-Test_threads_a.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/Test_threads_a-Test_threads_a.Po' tmpdepfile='$(DEPDIR)/Test_threads_a-Test_threads_a.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_threads_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Test_threads_a-Test_threads_a.obj `if test -f 'Test_threads_a.c'; then $(CYGPATH_W) 'Test_threads_a.c'; else $(CYGPATH_W) '$(srcdir)/Test_threads_a.c'`
+
+Test_threads_b-Test_threads_b.o: Test_threads_b.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_threads_b_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Test_threads_b-Test_threads_b.o -MD -MP -MF "$(DEPDIR)/Test_threads_b-Test_threads_b.Tpo" \
+@am__fastdepCC_TRUE@     -c -o Test_threads_b-Test_threads_b.o `test -f 'Test_threads_b.c' || echo '$(srcdir)/'`Test_threads_b.c; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/Test_threads_b-Test_threads_b.Tpo" "$(DEPDIR)/Test_threads_b-Test_threads_b.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/Test_threads_b-Test_threads_b.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='Test_threads_b.c' object='Test_threads_b-Test_threads_b.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/Test_threads_b-Test_threads_b.Po' tmpdepfile='$(DEPDIR)/Test_threads_b-Test_threads_b.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_threads_b_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Test_threads_b-Test_threads_b.o `test -f 'Test_threads_b.c' || echo '$(srcdir)/'`Test_threads_b.c
+
+Test_threads_b-Test_threads_b.obj: Test_threads_b.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_threads_b_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT Test_threads_b-Test_threads_b.obj -MD -MP -MF "$(DEPDIR)/Test_threads_b-Test_threads_b.Tpo" \
+@am__fastdepCC_TRUE@     -c -o Test_threads_b-Test_threads_b.obj `if test -f 'Test_threads_b.c'; then $(CYGPATH_W) 'Test_threads_b.c'; else $(CYGPATH_W) '$(srcdir)/Test_threads_b.c'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/Test_threads_b-Test_threads_b.Tpo" "$(DEPDIR)/Test_threads_b-Test_threads_b.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/Test_threads_b-Test_threads_b.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='Test_threads_b.c' object='Test_threads_b-Test_threads_b.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/Test_threads_b-Test_threads_b.Po' tmpdepfile='$(DEPDIR)/Test_threads_b-Test_threads_b.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(Test_threads_b_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o Test_threads_b-Test_threads_b.obj `if test -f 'Test_threads_b.c'; then $(CYGPATH_W) 'Test_threads_b.c'; else $(CYGPATH_W) '$(srcdir)/Test_threads_b.c'`
+uninstall-info-am:
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
+
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+       @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+       srcdir=$(srcdir); export srcdir; \
+       list='$(TESTS)'; \
+       if test -n "$$list"; then \
+         for tst in $$list; do \
+           if test -f ./$$tst; then dir=./; \
+           elif test -f $$tst; then dir=; \
+           else dir="$(srcdir)/"; fi; \
+           if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+             all=`expr $$all + 1`; \
+             case " $(XFAIL_TESTS) " in \
+             *" $$tst "*) \
+               xpass=`expr $$xpass + 1`; \
+               failed=`expr $$failed + 1`; \
+               echo "XPASS: $$tst"; \
+             ;; \
+             *) \
+               echo "PASS: $$tst"; \
+             ;; \
+             esac; \
+           elif test $$? -ne 77; then \
+             all=`expr $$all + 1`; \
+             case " $(XFAIL_TESTS) " in \
+             *" $$tst "*) \
+               xfail=`expr $$xfail + 1`; \
+               echo "XFAIL: $$tst"; \
+             ;; \
+             *) \
+               failed=`expr $$failed + 1`; \
+               echo "FAIL: $$tst"; \
+             ;; \
+             esac; \
+           else \
+             skip=`expr $$skip + 1`; \
+             echo "SKIP: $$tst"; \
+           fi; \
+         done; \
+         if test "$$failed" -eq 0; then \
+           if test "$$xfail" -eq 0; then \
+             banner="All $$all tests passed"; \
+           else \
+             banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+           fi; \
+         else \
+           if test "$$xpass" -eq 0; then \
+             banner="$$failed of $$all tests failed"; \
+           else \
+             banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+           fi; \
+         fi; \
+         dashes="$$banner"; \
+         skipped=""; \
+         if test "$$skip" -ne 0; then \
+           skipped="($$skip tests were not run)"; \
+           test `echo "$$skipped" | wc -c` -gt `echo "$$banner" | wc -c` && \
+             dashes="$$skipped"; \
+         fi; \
+         report=""; \
+         if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+           report="Please report to $(PACKAGE_BUGREPORT)"; \
+           test `echo "$$report" | wc -c` -gt `echo "$$banner" | wc -c` && \
+             dashes="$$report"; \
+         fi; \
+         dashes=`echo "$$dashes" | sed s/./=/g`; \
+         echo "$$dashes"; \
+         echo "$$banner"; \
+         test -n "$$skipped" && echo "$$skipped"; \
+         test -n "$$report" && echo "$$report"; \
+         echo "$$dashes"; \
+         test "$$failed" -eq 0; \
+       else :; fi
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+       $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+       $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile
+
+installdirs:
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-compile distclean-depend \
+       distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+       clean-checkPROGRAMS clean-generic ctags distclean \
+       distclean-compile distclean-depend distclean-generic \
+       distclean-tags distdir dvi dvi-am info info-am install \
+       install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+       tags uninstall uninstall-am uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/README b/tests/README
new file mode 100644 (file)
index 0000000..5069f3a
--- /dev/null
@@ -0,0 +1,23 @@
+This is a set of tests that check the integrety of the atlc
+package. Tests are performed in various ways.
+
+1) The checksums of some supplied files are checked. 
+2) The checksums of some bitmap files generated by programs
+in 'atlc' are compared to those expected. 
+3) The length of some binary files is checked - no checksums
+are tested for binary files, as it would be pointless. 
+4) The results from some calculations with atlc are compared
+to those expected. 
+
+The checksum of the files checked is compared to what is known to be 
+the correct checksum using a program 'mymd5sum' which is an md5 checksum
+program. I decided to distribute this, since it's not on all systems and
+when it is it is known as different names. The output format differs too
+
+6m-create_400ohm_1551Pixel_high_symmetrical_stripline.test is included
+but is not run, as it take too much ram and will fail on systems with
+
+Dr. David Kirkby,
+email drkirkby@ntlworld.com and/or davek@medphys.ucl.ac.uk 
+18/01/03
+
diff --git a/tests/Test_threads_a.c b/tests/Test_threads_a.c
new file mode 100644 (file)
index 0000000..b8c1152
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDIO_H
+#include <stdlib.h>
+#endif
+
+#ifdef ENABLE_POSIX_THREADS
+#include <pthread.h>
+
+void *increment_a(void *arg);
+void *increment_b(void *arg);
+int  finalise(int, int);
+
+int r1 = 0, r2 = 0, r3 = 0;
+
+pthread_mutex_t r3_mutex;
+
+#endif /* ifdef ENABLE_POSIX_THREADS */
+
+int main()
+{
+#ifdef ENABLE_POSIX_THREADS
+  pthread_t       thread1, thread2;
+  int counter=0, i;
+
+  pthread_mutex_init(&r3_mutex, NULL);
+
+  r3 = 4;
+
+  for(i=1; i<10000; ++i)
+  {
+     if( pthread_create(&thread1, NULL, increment_a, (void *) &r1) != 0)
+     {
+        perror("Thread 1 not created properly");
+        exit(1);
+      }
+
+     if( pthread_create(&thread2, NULL, increment_b, (void *) &r2) != 0)
+     {
+        perror("Thread 2 not created properly");
+        exit(1);
+      }
+  
+     if(pthread_join(thread1, NULL) != 0)
+     {
+       perror("Thread 1 did not join properly");
+       exit (1);
+     }
+     if(pthread_join(thread2, NULL) != 0)
+     {
+       perror("Thread 2 did not join properly");
+       exit (1);
+     }
+
+     counter+=finalise(r1, r2);
+   }
+   if (counter == 399960000)
+     return 0;
+   else
+     return 1;
+#else
+     return 77;
+#endif
+}
+
+#ifdef ENABLE_POSIX_THREADS
+void *increment_a(void *arg)
+{
+  int  i,x;
+  int *pnum_times=(int *) arg;
+  if( pthread_mutex_lock(&r3_mutex) != 0)
+  {
+    perror("pthread_mutex_lock failed");
+    exit(1);
+  }
+  if (r3 > 3) {
+       x = r3;
+        r3--;
+  } else {
+        x = 1;
+  }
+  if( pthread_mutex_unlock(&r3_mutex) != 0)
+  {
+    perror("pthread_mutex_unlock failed");
+    exit(1);
+  }
+  for (i = 0;  i < 4; i++) {
+    (*pnum_times)++;
+  }
+  return (NULL);
+}
+
+void *increment_b(void *arg)
+{
+  int i,x;
+  int *pnum_times=(int *) arg;
+
+  if( pthread_mutex_lock(&r3_mutex) != 0)
+  {
+    perror("pthread_mutex_lock failed");
+    exit(1);
+  }
+  if (r3 > 3) {
+        x = r3;
+        r3--; 
+  } else {
+        x = 1;
+  }
+  if(pthread_mutex_unlock(&r3_mutex) != 0)
+  {
+    perror("pthread_mutex_unlock failed");
+    exit(1);
+  }
+  for (i = 0;  i < 4; i++) {
+    (*pnum_times)++;
+  }
+  return (NULL);
+}
+
+int  finalise(int one_times, int another_times)
+{
+  int total;
+
+  total = one_times + another_times;
+  return(total);
+}
+#endif
diff --git a/tests/Test_threads_b.c b/tests/Test_threads_b.c
new file mode 100644 (file)
index 0000000..b88d142
--- /dev/null
@@ -0,0 +1,182 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+
+/* This test program starts by puttting 10 into a 100x1000 array
+then incrments it by 5 and decrements it by 2, one thousand 
+times. The incrment and decrement operations are prevented from
+operlapping by a mutex variable. */
+
+/* If we #define DISABLE_MUTEX, there is no locking
+on the array and so any thread can overwrite at any time
+so we would expect jibberish output */
+
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDIO_H
+#include <stdlib.h>
+#endif
+
+#ifdef ENABLE_POSIX_THREADS
+#include <pthread.h>
+
+void *increment(void *y);
+void *decrement(void *z);
+
+int  check_array();
+
+int r1 = 0, r2 = 0;
+
+pthread_mutex_t array_mutex;
+
+int array[1000][1000];
+
+#endif /* ifdef ENABLE_POSIX_THREADS */
+
+int main()
+{
+#ifdef ENABLE_POSIX_THREADS
+  pthread_t       thread1, thread2;
+  int i, j, ret;
+  /* Put 10 in each array element */
+  for(i=0; i<1000; ++i)
+    for(j=0; j<1000; ++j)
+      array[i][j]=10;
+
+  pthread_mutex_init(&array_mutex, NULL);
+#ifdef ENABLE_POSIX_THREADS
+#ifdef HAVE_PTHREAD_SETCONCURRENCY     
+  pthread_setconcurrency(6);
+#endif 
+#endif 
+  for(i=1; i<=100; ++i)
+  {
+     if( pthread_create(&thread1, NULL, increment, (void *) &r1) != 0)
+     {
+        perror("Thread 1 not created properly");
+        exit(1);
+      }
+
+     if( pthread_create(&thread2, NULL, decrement, (void *) &r2) != 0)
+     {
+        perror("Thread 2 not created properly");
+        exit(1);
+      }
+  
+     if(pthread_join(thread1, NULL) != 0)
+     {
+       perror("Thread 1 did not join properly");
+       exit (1);
+     }
+     if(pthread_join(thread2, NULL) != 0)
+     {
+       perror("Thread 2 did not join properly");
+       exit (1);
+     }
+   }
+   ret=check_array(); /* Returns 0 or 1 */
+   return(ret); 
+#else
+     return 77;
+#endif
+  exit(0);
+}
+
+#ifdef ENABLE_POSIX_THREADS
+void *increment(void *pnum_times)
+{
+  int i, j;
+  if( pthread_mutex_lock(&array_mutex) != 0)
+  {
+    perror("pthread_mutex_lock failed");
+    exit(1);
+  }
+  /* Increment each value in the array by 5, so 
+  we can check the values later. */
+  for(i=0; i<1000; ++i)
+    for(j=0; j<1000; ++j)
+      array[i][j]+=5;
+  if( pthread_mutex_unlock(&array_mutex) != 0)
+  {
+    perror("pthread_mutex_unlock failed");
+    exit(1);
+  }
+  return(0);
+
+}
+
+void *decrement(void *pnum_times)
+{
+  int i,j;
+
+
+#ifndef DISABLE_MUTEX 
+  if( pthread_mutex_lock(&array_mutex) != 0)
+  {
+    perror("pthread_mutex_lock failed");
+    exit(1);
+  }
+#endif
+
+  /* Decrement each value in the array by 2, so 
+  we can check the values later. */
+  for(i=0; i<1000; ++i)
+    for(j=0; j<1000; ++j)
+      array[i][j]-=2;
+
+#ifndef DISABLE_MUTEX 
+  if(pthread_mutex_unlock(&array_mutex) != 0)
+  {
+    perror("pthread_mutex_unlock failed");
+    exit(1);
+  }
+#endif
+  return 0;
+}
+
+int check_array()
+{
+  int i,j;
+  for(i=0; i<1000; ++i)
+  {
+    for(j=0; j<1000; ++j)
+    {
+      /* Numers start at 10, but get incremented by 
+      5 by 2, which is 3 . Loop runs 2000 times,
+      so resuls should be 2000*(5-2) + 10 = 6010 */
+
+      if (array[i][j] != 310)
+      {
+       fprintf(stderr,"array[%d][%d]=%d\n",i,j,array[i][j]);
+       return(1);
+      }
+    }
+  }
+  return(0);
+}
+#endif
diff --git a/tests/WARNING--The-next-test+benchmark-takes-a-long-while.test b/tests/WARNING--The-next-test+benchmark-takes-a-long-while.test
new file mode 100755 (executable)
index 0000000..a3c4c48
--- /dev/null
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+exit 0
diff --git a/tests/benchmark.c b/tests/benchmark.c
new file mode 100644 (file)
index 0000000..cd9ab34
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+/* Times two commands entered on the command line, to make
+sure the second takes less time than the first. */
+
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif  
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif  
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h> /* sleep on Solaris needs this */
+#endif
+
+#include "defs.h"
+
+
+int main(int argc, char **argv)
+{
+  time_t start1, finished1;
+  struct computer_data data;
+
+  char *str;
+  FILE *fp;
+
+#ifdef ENABLE_POSIX_THREADS
+  time_t start2, finished2;
+  strcpy((char *) data.eff,"unknown");
+#else
+  strcpy((char *) data.eff,"N/A");
+#endif /* ENABLE_POSIX_THREADS */
+
+  strcpy((char *) data.mhz,"unknown");
+  strcpy((char *) data.cpu_type,"unknown");
+  strcpy((char *) data.fpu_type,"unknown");
+  strcpy((char *) data.max_cpus,"unknown");
+  strcpy((char *) data.cpus,"unknown");
+  strcpy((char *) data.memory,"unknown");
+  strcpy((char *) data.sysname,"unknown");
+  strcpy((char *) data.nodename,"unknown");
+  strcpy((char *) data.release,"unknown");
+  strcpy((char *) data.version,"unknown");
+  strcpy((char *) data.machine,"unknown");
+  strcpy((char *) data.hw_provider,"unknown");
+  strcpy((char *) data.hw_platform,"unknown");
+  strcpy((char *) data.speedup,"N/A    ");
+  strcpy((char *) data.t2,"N/A    ");
+  strcpy((char *) data.L1data,"unknown");
+  strcpy((char *) data.L1instruction,"unknown");
+  strcpy((char *) data.L2,"unknown");
+
+/* Trying to get information about the hardware is likely to break
+on some platforms, as it is very platform specific. If the option 
+--disble-hardware-info is given, the software will not try to obtain
+such information. 
+
+The information is useful, for benchmarking purposes and to 
+obtain the efficiency of a multi-processor machine if the number
+of CPUs can be found. */
+
+#ifdef TRY_TO_GET_HARDWARE_INFO 
+  try_portable(&data);  /* Use uname, which is platform independant */
+
+  try_aix(&data);      /* Try to find if the system is AIX and if so get data */
+  try_bsd(&data); 
+  try_hpux(&data);
+  try_irix(&data);
+  try_linux(&data); 
+  try_solaris(&data);
+  try_tru64(&data); 
+  try_unicos(&data); 
+#endif
+
+
+/* Whatever happens (single-threaded or multi-theraded, we will check that all the 
+files (the executable atlc and bitmap are both present). */
+  if(argc !=3 )
+  {
+    fprintf(stderr,"Usage: path_to_atlc path_to_bitmap\n");
+    exit(1);
+  }
+  if( (str=malloc(2000)) == NULL) 
+  {
+    fprintf(stderr,"Memory allocation failure in benchmark.c\n");
+    exit(1);
+  }
+  if ((fp=fopen(argv[1],"rb")) == NULL)
+  {
+    fprintf(stderr,"Can't open the binary file %s for reading\n",argv[1]);
+    exit(2);
+  }
+  if ((fp=fopen(argv[2],"rb")) == NULL)
+  {
+    fprintf(stderr,"Can't open the bitmap %s for reading\n",argv[2]);
+    exit(3);
+  }
+/* Assuming we have not exited due to a lack of suitable files present, 
+run the benchmark at least once - but possibly twice if code is   
+multi-threaded */
+
+  sprintf(str,"%s -s -S -t0 %s > /dev/null 2> /dev/null \n", argv[1], argv[2]);
+  time(&start1);
+  pclose(popen(str, "w"));
+  time(&finished1);
+  sprintf(data.t1,"%d",(int) (finished1-start1));
+
+/* If the code is multi-threaded, run the benchmark for a second time. We can
+always calculate a speedup in these circumstances */
+
+#ifdef ENABLE_POSIX_THREADS
+  sprintf(str,"%s -s -S %s > /dev/null\n", argv[1], argv[2]);
+  time(&start2);
+  pclose(popen(str, "w"));
+  time(&finished2);
+  sprintf(data.t2,"%d",(int) (finished2-start2));
+  sprintf(data.speedup,"%.3f\n",atof(data.t1)/atof(data.t2)); /* other N/A */
+
+  /* Whether or not we can calculate the efficency depends on whether we have managed
+  to obtain the number of processors present in the system. If the number of procesors
+  found is zero (i.e. we have been unable to determine them, due to a lack of
+  processor_information, or that not working properly, then we can't compute the efficiency,
+  so will leave it at the default value of "unknown". */
+
+  if(atoi(data.cpus) != 0)
+    sprintf(data.eff,"%.3f",atof(data.speedup)/atoi(data.cpus)); /* otherwise unknown */
+#endif
+  printf("0 %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",data.t1, data.t2, data.speedup, data.cpus, data.mhz, data.eff, data.cpu_type,data.fpu_type,data.max_cpus,data.memory,data.sysname,data.nodename,data.release,data.version,data.machine,data.hw_provider, data.hw_platform, data.L1data, data.L1instruction, data.L2);
+  return(0);
+}
+
+
diff --git a/tests/benchmark.test b/tests/benchmark.test
new file mode 100755 (executable)
index 0000000..05f7f00
--- /dev/null
@@ -0,0 +1,96 @@
+#! /bin/sh
+# This test checks that a multi-threaded vesion of 
+# atlc runs faster than a single threaded one. 
+# and reports by how much so. 
+
+if [ "x$mpirun_found" = "xyes" ] ; then
+  return 77
+else
+  cp $top_srcdir/examples/25ohm-401h.bmp $top_builddir/tmp
+  ret=`$top_builddir/tests/benchmark $top_builddir/src/non_gui/atlc $top_builddir/tmp/25ohm-401h.bmp `
+  rm -f $top_builddir/tmp/25ohm-401h.bmp
+
+#  cp $top_srcdir/examples/twin-wire3.bmp $top_builddir/tmp
+#  ret=`$top_builddir/tests/benchmark $top_builddir/src/non_gui/atlc $top_builddir/tmp/twin-wire3.bmp `
+#  rm -f $top_builddir/tmp/twin-wire3.bmp
+
+  exitcode=`echo $ret | awk '{print $1}'`
+  t1=`echo $ret | awk '{print $2}'`
+  t2=`echo $ret | awk '{print $3}'`
+  speedup=`echo $ret | awk '{print $4}'`
+  N_cpus=`echo $ret | awk '{print $5}'`
+  mhz=`echo $ret | awk '{print $6}'`
+  efficiency=`echo $ret | awk '{print $7}'`
+  cpu_type=`echo $ret | awk '{print $8}'`
+  fpu_type=`echo $ret | awk '{print $9}'`
+  supported_cpus=`echo $ret | awk '{print $10}'`
+  ram=`echo $ret | awk '{print $11}'`
+  sysname=`echo $ret | awk '{print $12}'`
+  nodename=`echo $ret | awk '{print $13}'`
+  release=`echo $ret | awk '{print $14}'`
+  version=`echo $ret | awk '{print $15}'`
+  machine=`echo $ret | awk '{print $16}'`
+  hw_provider=`echo $ret | awk '{print $17}'`
+  hw_platform=`echo $ret | awk '{print $18}'`
+  L1data=`echo $ret | awk '{print $19}'`
+  L1instruction=`echo $ret | awk '{print $20}'`
+  L2=`echo $ret | awk '{print $21}'`
+  echo " "
+  echo "                  BENCHMARK DATA"
+  echo "                  BENCHMARK DATA" >> tests.log
+  echo "                  <STRONG><div align="center">BENCHMARK DATA</div></STRONG> <BR>" > tests.html
+
+  echo "Hardware data working reasonably well on AIX, HP-UX, Solaris, Tru64,"
+  echo "Hardware data working reasonably well on AIX, HP-UX, Solaris, Tru64," >> tests.log
+  echo "Hardware data working reasonably well on AIX, HP-UX, Solaris, Tru64, <BR>" >> tests.html
+
+  echo "IRIX and UNICOS, but not too well on Linux and poorly on *BSD" 
+  echo "IRIX and UNICOS, but not too well on Linux and poorly on *BSD" >> tests.log
+  echo "IRIX and UNICOS, but not too well on Linux and poorly on *BSD <BR>" >> tests.html
+
+  echo "Any help to write code to gather data on other OS's would be appreciated" 
+  echo "Any help to write code to gather data on other OS's would be appreciated" >> tests.log
+  echo "Any help to write code to gather data on other OS's would be appreciated<BR><BR>" >> tests.html
+
+  echo " "
+  echo " " >> tests.log
+  echo "<BR>" >> tests.html
+
+  echo "Hardware provider is $hw_provider. Hardware platform is $hw_platform."
+  echo "Hardware provider is $hw_provider. Hardware platform is $hw_platform." >> tests.log
+  echo "Hardware provider is $hw_provider. Hardware platform is $hw_platform.<BR>" >> tests.html
+
+  echo "Machine: $machine. Sysname: $sysname. Release: $release. Nodename: $nodename."
+  echo "Machine: $machine. Sysname: $sysname. Release: $release. Nodename: $nodename." >> tests.log
+  echo "Machine: $machine. Sysname: $sysname. Release: $release. Nodename: $nodename.<BR>" >> tests.html
+
+  echo "Number of CPUs supported by system is $supported_cpus. Number of CPUs online is  $N_cpus."
+  echo "Number of CPUs supported by system is $supported_cpus. Number of CPUs online is  $N_cpus." >> tests.log
+  echo "Number of CPUs supported by system is $supported_cpus. Number of CPUs online is  $N_cpus.<BR>" >> tests.html
+
+  echo "CPU_type is $cpu_type. FPU_type is $fpu_type. Speed of CPU(s) is $mhz MHz."
+  echo "CPU_type is $cpu_type. FPU_type is $fpu_type. Speed of CPU(s) is $mhz MHz." >> tests.log
+  echo "CPU_type is $cpu_type. FPU_type is $fpu_type. Speed of CPU(s) is $mhz MHz.<BR>" >> tests.html
+
+  echo "RAM is $ram MB (On Linux+BSD systems, the memory is a little larger than this.)"
+  echo "RAM is $ram MB. (On Linux+BSD systems, the memory is a little larger than this)" >> tests.log
+  echo "RAM is $ram MB. (On Linux+BSD systems, the memory is a little larger than this)<BR>" >> tests.html
+
+  echo "L1 data cache is $L1data kB; L1 instruction cache is $L1instruction kB; L2 cache is $L2 kB"
+  echo "L1 data cache is $L1data kB; L1 instruction cache is $L1instruction kB; L2 cache is $L2 kB" >> tests.log
+  echo "L1 data cache is $L1data kB; L1 instruction cache is $L1instruction kB; L2 cache is $L2 kB<BR>" >> tests.html
+
+  if [ "x$built_with_posix_threads" = "xyes" ] ; then
+    echo "Run times: T_sequential is $t1 s. T_parallel is $t2 s."
+    echo "Run times: T_sequential is $t1 s. T_parallel is $t2 s." >> tests.log
+    echo "Run times: T_sequential is $t1 s. T_parallel is $t2 s.<BR>" >> tests.html
+
+    echo "Speedup=T_sequential/T_parallel is $speedup. Efficiency=Speedup/N_cpus is $efficiency"
+    echo "Speedup=T_sequential/T_parallel is $speedup. Efficiency=Speedup/N_cpus is $efficiency" >> tests.log
+    echo "Speedup=T_sequential/T_parallel is $speedup. Efficiency=Speedup/N_cpus is $efficiency<BR>" >> tests.html
+  else
+    echo "Run times: T_sequential is $t1 s. Not configured for parallel operation."
+    echo "Run times: T_sequential is $t1 s. Not configured for parallel operation." >> tests.log
+    echo "Run times: T_sequential is $t1 s. Not configured for parallel operation.<BR>" >> tests.html
+  fi 
+fi
diff --git a/tests/defs.h b/tests/defs.h
new file mode 100644 (file)
index 0000000..70d8b90
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+
+
+#define MAX_SIZE        40 
+#define SLEEPTIME       80
+
+#define PROBABLY_AIX       1         /* As used on IBM's                 */
+#define PROBABLY_FREEBSD   2         /* Runs on a number of systems      */
+#define PROBABLY_HPUX      3         /* As used on HP's                  */
+#define PROBABLY_IRIX      4         /* As used on SGI's                 */
+#define PROBABLY_LINUX     5         /* Run on a number of systems       */
+#define PROBABLY_NETBSD    6         /* Runs on a HUGE range of systems  */
+#define PROBABLY_OPENBSD   7         /* Runs on a number of systems      */
+#define PROBABLY_SOLARIS   8         /* Runs on Suns and PCs             */
+#define PROBABLY_TRU64     9         /* Runs on Decs, Compaqs and HPs    */
+#define PROBABLY_UNICOS   10         /* Runs on Cray supercomputers      */
+#define PROBABLY_BSD      11
+
+typedef struct computer_data{
+char mhz[MAX_SIZE];                  /* Speed in MHz. Note its a string */
+char cpus[MAX_SIZE];                 /* Number of CPUs running          */
+char max_cpus[MAX_SIZE];             /* Maximum number of CPUs support by system */
+char sysname[MAX_SIZE];              /* System name - got by uname */
+char nodename[MAX_SIZE];             /* nodename - got via uname            */
+char release[MAX_SIZE];              /* Got via uname, but often wrong      */
+char version[MAX_SIZE];              /* Version of the OS. Sometimes wrong. */
+char machine[MAX_SIZE];              /* Machine name                        */
+char cpu_type[MAX_SIZE*3];           /* The CPU type                        */
+char fpu_type[MAX_SIZE*3];           /* The FPU type                        */
+char memory[MAX_SIZE];               /* The memory in Mb                    */ 
+char hw_provider[MAX_SIZE];          /* The hardware provider - Sun, IBM etc */
+char hw_platform[MAX_SIZE];          /* The hardware platform - eg sun4u    */
+char t1[MAX_SIZE];                   /* Time in s to run benchmark single threaded */
+char t2[MAX_SIZE];                   /* Time in s to run benchmark multi threaded */
+char speedup[MAX_SIZE];              /* t1/t2 */
+char eff[MAX_SIZE];                  /* The efficiency - t1/(t2*cpus)     */
+char L1data[MAX_SIZE];               /* Size of level 1 data cache in kb  */
+char L1instruction[MAX_SIZE];        /* Size of level 1 instuction cache in kb */
+char L2[MAX_SIZE];                   /* Size of L2 cache                  */ 
+}a;
+
+/* The following functions try to fill in the structure above. Note the first
+try_portable(), will use uname to get what information it can in a portable
+manner. Any information it can't obtain it will replace with 'unknown'. The
+fuctions below it then attempt to fill in the data for aix, solaris etc, having
+verified the system is indeed a and AIX, Solaris or whatever machine. Note
+that the fuctions that exist for obtaining data on Linux boxes is very
+sparten and I could do with some help in improving the information 
+gathered there. */
+
+int try_portable(struct computer_data *data); /* Gather data using 'uname' */
+
+int try_aix(struct computer_data *data); /* Gather data on IBM's AIX machines */
+int try_bsd(struct computer_data *data); /* Gather data on BSD AIX machines */
+int try_irix(struct computer_data *data); /*Gather data on SGI's IRIX machines*/
+int try_hpux(struct computer_data *data); /* Gather data on HP HP-UX machines */
+int try_linux(struct computer_data *data);  /* THIS NEEDS IMPROVING !!!! */
+int try_solaris(struct computer_data *data); /* Get data under Sun's Solaris */
+int try_tru64(struct computer_data *data); /*Get data on systems with Tru64 */
+int try_unicos(struct computer_data *data); /* Get data on Cray systems */
diff --git a/tests/find-zero-length.test b/tests/find-zero-length.test
new file mode 100755 (executable)
index 0000000..e734b33
--- /dev/null
@@ -0,0 +1,34 @@
+#! /bin/sh
+# Dr. David Kirkby. 
+
+# This test checks for the existance of a file in the source 
+# tree with a length of zero bytes. This is considered an
+# error, as no such file should exist. 
+
+# Use find to search for a file of zero bytes, putting
+# any such files in $top_builddir/tmp/atlc-zero-bytes
+
+mkdir $top_builddir/tmp 2> /dev/null
+rm -f $top_builddir/tmp/atlc-zero-bytes
+
+# since tmp/atlc-zero-bytes will be found, that must be ignored.
+find $top_srcdir -size 0c | grep -v tmp/atlc-zero-bytes > $top_builddir/tmp/atlc-zero-bytes 
+
+# The file $top_builddir/tmp/atlc-zero-bytes contains a list of all the 
+# files which are zero bytes. Hopefully there are none, in
+# which case $top_builddir/tmp/atlc-zero-bytes will itself be zero bytes
+# long. We check for that and if not fail the test. If it fails,
+# the list of zero byte files are in $top_builddir/tmp/atlc-zero-bytes
+# If the test passes, the empty file $top_builddir/tmp/atlc-zero-bytes
+# passes. 
+
+if [ -s $top_builddir/tmp/atlc-zero-bytes  ]; then 
+  echo "FAILED:" $0 >> tests.log
+  exit 1
+else
+  rm $top_builddir/tmp/atlc-zero-bytes
+  echo "PASSED:" $0 >> tests.log
+  exit 0
+fi
+
+
diff --git a/tests/sysdata.c b/tests/sysdata.c
new file mode 100644 (file)
index 0000000..191defb
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif  
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif  
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h> 
+#endif
+
+#include "defs.h"
+
+
+int main()
+{
+  struct computer_data data;
+
+  strcpy((char *) data.mhz,"unknown");
+  strcpy((char *) data.cpu_type,"unknown");
+  strcpy((char *) data.fpu_type,"unknown");
+  strcpy((char *) data.max_cpus,"unknown");
+  strcpy((char *) data.cpus,"unknown");
+  strcpy((char *) data.memory,"unknown");
+  strcpy((char *) data.sysname,"unknown");
+  strcpy((char *) data.nodename,"unknown");
+  strcpy((char *) data.release,"unknown");
+  strcpy((char *) data.version,"unknown");
+  strcpy((char *) data.machine,"unknown");
+  strcpy((char *) data.hw_provider,"unknown");
+  strcpy((char *) data.hw_platform,"unknown");
+  strcpy((char *) data.L1data,"unknown");
+  strcpy((char *) data.L1instruction,"unknown");
+  strcpy((char *) data.L2,"unknown");
+
+#ifdef TRY_TO_GET_HARDWARE_INFO 
+  try_portable(&data);
+  try_aix(&data); 
+  try_bsd(&data); 
+  try_hpux(&data);
+  try_irix(&data);
+  try_linux(&data); 
+  try_solaris(&data);
+  try_tru64(&data); 
+  try_unicos(&data); 
+#endif
+  printf("Hardware provider:    %s\n", data.hw_provider);
+  printf("Hardware platform:    %s\n",data.hw_platform);
+  printf("Machine:              %s\n",data.machine);
+  printf("Sysname:              %s\n",data.sysname);
+  printf("Release:              %s\n",data.release);
+  printf("Version:              %s\n",data.version);
+  printf("Nodename:             %s\n",data.nodename);
+  printf("#CPUs supported:      %s\n",data.max_cpus);
+  printf("#CPUs online:         %s\n",data.cpus);
+  printf("CPU type:             %s\n",data.cpu_type);
+  printf("FPU type:             %s\n",data.fpu_type);
+  printf("Speed:                %s MHz\n",data.mhz);
+  printf("RAM:                  %s Mb\n",data.memory);
+  printf("L1 data cache         %s kb\n",data.L1data);
+  printf("L1 instruction cache: %s kb\n",data.L1instruction);
+  printf("L2 cache:             %s kb\n",data.L2);
+  return(0);
+}
+
diff --git a/tests/try_aix.c b/tests/try_aix.c
new file mode 100644 (file)
index 0000000..4e04923
--- /dev/null
@@ -0,0 +1,205 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+/* Try to get data. This will work only on an IBM running AIX */
+
+#include "config.h"
+
+#include "defs.h"
+#define BYTES_PER_MB  1048576
+
+#ifdef HAVE_AIXFONT_H
+#ifdef HAVE_UNISTD_H
+#ifdef HAVE_STRING_H
+#ifdef HAVE_STDLIB_H
+#ifdef HAVE_STDIO_H  
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+#endif
+#endif
+#endif
+#endif
+#endif
+
+int try_aix(struct computer_data *data)
+{
+#ifdef HAVE_AIXFONT_H
+#ifdef HAVE_UNISTD_H
+#ifdef HAVE_STRING_H
+#ifdef HAVE_STDLIB_H
+#ifdef HAVE_STDIO_H  
+  long ram_in_kb;
+  char *model;
+  model=malloc(12);
+  strcpy(data->hw_provider,"IBM");
+  strncpy(model,data->machine,10);
+  model+=8;
+  if(strcmp(model,"02") == 0)
+  {
+    strcpy(data->hw_platform,"7015-930");
+    strcpy(data->mhz,"25");
+    strcpy(data->cpu_type,"Power");
+    strcpy(data->max_cpus,"1");
+  }
+  if(strcmp(model,"10") == 0)
+  {
+    strcpy(data->hw_platform,"7015-930_or_7016-730");
+    strcpy(data->mhz,"25");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"11") == 0)
+  {
+    strcpy(data->hw_platform,"7013-540");
+    strcpy(data->mhz,"30");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"14") == 0)
+  {
+    strcpy(data->hw_platform,"7013-540");
+    strcpy(data->mhz,"30");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"18") == 0)
+  {
+    strcpy(data->hw_platform,"7013-53H");
+    strcpy(data->mhz,"33");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"1C") == 0)
+  {
+    strcpy(data->hw_platform,"7013-550");
+    strcpy(data->mhz,"41.6");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"20") == 0)
+  {
+    strcpy(data->hw_platform,"7015-930");
+    strcpy(data->mhz,"25");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"2E") == 0)
+  {
+    strcpy(data->hw_platform,"7015-950");
+    strcpy(data->mhz,"41");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"30") == 0)
+  {
+    strcpy(data->hw_platform,"7013-520");
+    strcpy(data->mhz,"20");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"31") == 0)
+  {
+    strcpy(data->hw_platform,"7012-320");
+    strcpy(data->mhz,"20");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"34") == 0)
+  {
+    strcpy(data->hw_platform,"7013-52H");
+    strcpy(data->mhz,"25");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"35") == 0)
+  {
+    strcpy(data->hw_platform,"7012-32H");
+    strcpy(data->mhz,"25");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"37") == 0)
+  {
+    strcpy(data->hw_platform,"7012-340");
+    strcpy(data->mhz,"33");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"38") == 0)
+  {
+    strcpy(data->hw_platform,"7012-350");
+    strcpy(data->mhz,"41");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"41") == 0)
+  {
+    strcpy(data->hw_platform,"7011-220");
+    strcpy(data->mhz,"33");
+    strcpy(data->cpu_type,"RSC");
+  }
+  if(strcmp(model,"43") == 0)
+  {
+    strcpy(data->hw_platform,"7008-M20_or_7008-M2A");
+    strcpy(data->mhz,"33");
+    strcpy(data->cpu_type,"Power");
+  }
+  if(strcmp(model,"46") == 0)
+  {
+    strcpy(data->hw_platform,"7011-250");
+    strcpy(data->mhz,"66");
+    strcpy(data->cpu_type,"PowerPC");
+  }
+  if(strcmp(model,"47") == 0)
+  {
+    strcpy(data->hw_platform,"7011-230");
+    strcpy(data->mhz,"45");
+    strcpy(data->cpu_type,"RSC");
+  }
+  if(strcmp(model,"48") == 0)
+  {
+    strcpy(data->hw_platform,"7009-C10");
+    strcpy(data->mhz,"80");
+    strcpy(data->cpu_type,"PowerPC");
+  }
+  if(strcmp(model,"57") == 0)
+  {
+    strcpy(data->hw_platform,"9076-SP2_Thin_or_9076-SP2_Thin");
+    strcpy(data->mhz,"67");
+    strcpy(data->cpu_type,"Power2");
+  }
+  if(strcmp(model,"58") == 0)
+  {
+    strcpy(data->hw_platform,"7012-380_or_7030-3AT");
+    strcpy(data->mhz,"59");
+    strcpy(data->cpu_type,"Power2");
+  }
+  if(strcmp(model,"59") == 0)
+  {
+    strcpy(data->hw_platform,"9076-SP2_Thin_w-L2");
+    strcpy(data->mhz,"67");
+    strcpy(data->cpu_type,"Power2");
+  }
+
+#ifdef _SC_AIX_REALMEM
+  sprintf(data->memory,"%ld",sysconf(_SC_AIX_REALMEM)/1024);
+#endif
+
+  return(PROBABLY_AIX);
+#endif
+#endif
+#endif
+#endif
+#endif
+  return(-1);
+}
diff --git a/tests/try_bsd.c b/tests/try_bsd.c
new file mode 100644 (file)
index 0000000..321ba91
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+/* Try to get data. This will work only on a IRIX machine. */
+
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#ifdef HAVE_STDLIB_H
+#ifdef HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_SYSCTL_H
+#ifdef HAVE_SYSCTL
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* On BSD 3.2 for SPARC, NGROUPS don't seem to be defined, but
+it is on other systems. To be safe, the relavant header files
+will only be included if NGROUPS is not defined */
+
+#ifndef NGROUPS
+
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+
+#ifdef HAVE_SYS_SYSLIMITS_H
+#include <sys/syslimits.h>
+#endif
+
+#endif /* End of ifndef NGROUPS */
+
+#include <sys/types.h>
+#include <sys/sysctl.h>
+
+#endif
+#endif
+#endif
+#endif
+#endif
+
+#include "defs.h"
+
+int try_bsd(struct computer_data *data)
+{
+#ifdef HAVE_STDIO_H
+#ifdef HAVE_STDLIB_H
+#ifdef HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_SYSCTL_H
+#ifdef HAVE_SYSCTL
+#ifdef CTL_HW 
+
+  int cpus, ram, mib[2], ret;
+  size_t len;
+
+  /* Obtain the maximum number of CPUs supported on the BSD system */
+
+  /* Obtain the number of CPUs online on the BSD system */
+
+#ifdef HW_NCPU
+  mib[0]=CTL_HW;
+  mib[1]=HW_NCPU;
+  len=sizeof(cpus);
+  ret=sysctl(mib, 2, &cpus, &len, NULL, 0);
+  if (cpus>= 1 && ret==0)
+    sprintf(data->cpus,"%d ",  cpus);
+#endif
+
+  /* Obtain the CPU speed in MHz - as a double */
+
+  /* Obtain the of CPU and FPU on the ???? box */
+
+  /* Obtain the RAM, cache etc on the BSD system. */
+
+#ifdef HW_PHYSMEM
+  mib[0]=CTL_HW;
+  mib[1]=HW_PHYSMEM;
+  ret=sysctl(mib, 2, &ram , &len, NULL, 0);
+  if( ram > 0 && ret ==0 )
+    sprintf(data->memory,"%d", ram/(1024*1024));
+#endif
+
+
+  /* Obtain the manufacturer */
+
+  /* sprintf(data->hw_provider,"SGI"); */
+  return(PROBABLY_BSD);
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+  return(-1);
+}
diff --git a/tests/try_hpux.c b/tests/try_hpux.c
new file mode 100644 (file)
index 0000000..a760d8c
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+/* Try to get data. This will work only on a HP-UX machine. */
+
+#include "config.h"
+
+
+#ifdef HAVE_SYS_PARAM_H   /* This looks for header files that should be  */
+#ifdef HAVE_SYS_PSTAT_H   /* present on HP-UX. If they are all present */
+#ifdef HAVE_STDIO_H       /* it does ***not** necessarily mean it's HP-UX */
+#ifdef HAVE_STDLIB_H      /* but it will define some variables that we */
+#ifdef HAVE_SYS_TYPES_H   /* later check for, to confirm it's HP-UX */
+#ifdef HAVE_STRING_H
+#ifdef HAVE_UNISTD_H 
+#ifdef HAVE_SYS_UTSNAME_H
+
+#include <sys/param.h>    /* Include the header files */
+#include <sys/pstat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/unistd.h>
+#include <sys/utsname.h>
+
+extern long _CPU_REVISION;
+extern long _FPU_MODEL;
+
+#endif
+#endif
+#endif
+#endif
+#endif  
+#endif
+#endif
+#endif  /* End of including header files likely to be on HP-UX system */
+
+#define BYTES_PER_MB  1048576
+
+#include "defs.h"
+int try_hpux(struct computer_data *data)
+{
+
+#ifdef HAVE_SYS_PARAM_H 
+#ifdef HAVE_SYS_PSTAT_H
+#ifdef HAVE_STDIO_H
+#ifdef HAVE_STDLIB_H
+#ifdef HAVE_SYS_TYPES_H
+#ifdef HAVE_STRING_H
+#ifdef HAVE_UNISTD_H 
+#ifdef HAVE_SYS_UTSNAME_H
+
+
+#ifdef HAVE_PSTAT_GETDYNAMIC /* Check for some HP-UX specific bits now */
+#ifdef HAVE_PSTAT_GETPROCESSOR
+#ifdef HAVE_PSTAT
+
+  long max_CPUs=0, CPUs_online=0;
+  double clock_speed_in_Hz, ram, scclktick;
+
+  struct pst_dynamic dynamic_hpux;
+  struct pst_static  static_hpux;
+  struct pst_processor psp;
+
+  /* Obtain the maximum number of CPUs supported on the HP-UX system */
+
+  pstat_getdynamic(&dynamic_hpux,(size_t) sizeof(dynamic_hpux),1,0);
+  max_CPUs=(long) dynamic_hpux.psd_max_proc_cnt;
+  if(max_CPUs >=1 )
+    sprintf(data->max_cpus,"%ld",max_CPUs);
+
+  /* Obtain the number of CPUs online on the HP-UXs system */
+  CPUs_online=(long) dynamic_hpux.psd_proc_cnt; ;
+  if( CPUs_online >= 1 )
+    sprintf(data->cpus,"%ld",CPUs_online);
+
+  /* Obtain the of CPU and FPU on the HP-UX box */
+  
+  sprintf(data->cpu_type,"%ld",_CPU_REVISION);
+  sprintf(data->fpu_type,"%ld",_FPU_MODEL);
+
+  /* Obtain the RAM on the HP-UX system */
+
+  pstat_getstatic(&static_hpux,(size_t) sizeof(static_hpux),1,0);
+  ram=(double) static_hpux.physical_memory;
+  ram*=(double) static_hpux.page_size;
+  ram=ram/(double) BYTES_PER_MB;
+  sprintf(data->memory,"%ld",(long) (0.5+ram));
+
+
+  /* Obtain the processor speed */
+  pstat_getprocessor(&psp, sizeof(psp), 1, 0);
+  scclktick=(double) sysconf(_SC_CLK_TCK);
+  clock_speed_in_Hz = ((double) psp.psp_iticksperclktick) * scclktick;
+  if(clock_speed_in_Hz > 1)
+    sprintf(data->mhz,"%.1f",clock_speed_in_Hz/1000000);
+  return(0);
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+  return(1);
+}
diff --git a/tests/try_irix.c b/tests/try_irix.c
new file mode 100644 (file)
index 0000000..2db8d74
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+/* Try to get data. This will work only on a IRIX machine. */
+#include "config.h"
+
+#ifdef HAVE_UNISTD_H 
+#ifdef HAVE_STDIO_H
+#ifdef HAVE_STDLIB_H
+#ifdef HAVE_SYS_VID_H
+#ifdef HAVE_INVENT_H 
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <invent.h>
+#include <sys/types.h>
+
+#endif
+#endif
+#endif
+#endif
+#endif
+
+#include "defs.h"
+
+int try_irix(struct computer_data *data)
+
+{
+#ifdef HAVE_UNISTD_H 
+#ifdef HAVE_STDIO_H
+#ifdef HAVE_STDLIB_H
+#ifdef HAVE_SYS_VID_H
+#ifdef HAVE_INVENT_H
+
+  long CPUs_online;
+  inventory_t *invp;
+
+  /* Obtain the maximum number of CPUs supported on the IRIX system */
+
+  /* Obtain the number of CPUs online on the IRIX system */
+#ifdef _SC_NPROC_ONLN
+  CPUs_online=0;
+  CPUs_online=(long) sysconf(_SC_NPROC_ONLN);
+  if( CPUs_online >= 1 )
+    sprintf(data->cpus,"%ld ",CPUs_online);
+#endif
+
+
+
+  /* Obtain the of CPU and FPU on the IRIX box */
+  setinvent(); /* Always call before starting to call getinvt() */
+
+  while ( (invp = getinvent()) ) {
+    if ( (invp->inv_class == INV_PROCESSOR) && (invp->inv_type == INV_CPUBOARD))  
+      sprintf(data->mhz,"%d",(int) invp->inv_controller);
+    if ( (invp->inv_class == INV_PROCESSOR) && (invp->inv_type == INV_CPUCHIP))
+      sprintf(data->cpu_type,"%d",invp->inv_state);
+    if ( (invp->inv_class == INV_PROCESSOR) && (invp->inv_type == INV_FPUCHIP) && invp->inv_state)
+      sprintf(data->fpu_type,"%d",invp->inv_state);
+  }
+  /* Obtain the RAM, cache etc on the IRIX system. */
+
+  setinvent(); /* Always call before starting to call getinvt() */
+  while ((invp = getinvent()))
+  {
+    if (invp->inv_class == INV_MEMORY && (invp->inv_type == INV_MAIN_MB))
+      sprintf(data->memory,"%d", invp->inv_state);
+    if (invp->inv_class == INV_MEMORY && (invp->inv_type == INV_DCACHE))
+      sprintf(data->L1data,"%d", invp->inv_state/1024);
+    if (invp->inv_class == INV_MEMORY && (invp->inv_type == INV_ICACHE))
+      sprintf(data->L1instruction,"%d", invp->inv_state/1024);
+    if (invp->inv_class == INV_MEMORY && (invp->inv_type == INV_SIDCACHE))
+      sprintf(data->L2,"%d", invp->inv_state/1024);
+    if (invp->inv_class == INV_MEMORY && (invp->inv_type == INV_SIDCACHE))
+      sprintf(data->L2,"%d", invp->inv_state/1024);
+  }
+
+
+  /* Obtain the manufacturer */
+  sprintf(data->hw_provider,"SGI");
+
+  return(PROBABLY_IRIX);
+#endif
+#endif
+#endif
+#endif
+#endif
+  return(-1);
+}
diff --git a/tests/try_linux.c b/tests/try_linux.c
new file mode 100644 (file)
index 0000000..dd9ea5b
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+/* Try to get data. This will work only on a Linux machine. */
+
+#include "config.h"
+
+#ifdef HAVE_STDIO_H         /* it does ***not** necessarily mean it's Linux */
+#ifdef HAVE_STDLIB_H        /* but it will define some variables that we      */
+#ifdef HAVE_SYS_TYPES_H     /* later check for, to confirm it's Linux       */
+#ifdef HAVE_SYS_UTSNAME_H   /* later check for, to confirm it's Linux       */
+#ifdef HAVE_UNISTD_H 
+#ifdef HAVE_STRING_H
+#ifdef HAVE_SYS_SYSINFO_H
+#ifdef HAVE_LINUX_IP_H      /* I don't want to include this, but it is proof 
+                              that the system is Linux */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/utsname.h>
+#include <unistd.h>
+#include <string.h>
+#include <sys/sysinfo.h>
+
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+
+
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif  /* End of including header files likely to be on Linux system */
+
+#include "defs.h"
+#define BYTES_PER_MB  1048576
+
+int try_linux(struct computer_data *data)
+{
+#ifdef HAVE_STDIO_H         /* it does ***not** necessarily mean it's Linux */
+#ifdef HAVE_STDLIB_H        /* but it will define some variables that we      */
+#ifdef HAVE_SYS_TYPES_H     /* later check for, to confirm it's Linux       */
+#ifdef HAVE_SYS_UTSNAME_H   /* later check for, to confirm it's Linux       */
+#ifdef HAVE_UNISTD_H 
+#ifdef HAVE_STRING_H
+#ifdef HAVE_SYS_SYSINFO_H
+#ifdef HAVE_LINUX_IP_H      /* I don't want to include this, but it is proof 
+                              that the system is Linux */
+
+  /* Obtain the maximum number of CPUs supported on the Linux system */
+
+  /* Obtain the number of CPUs online on the Linux system */
+
+#ifdef _SC_NPROCESSORS_CONF
+  if( sysconf(_SC_NPROCESSORS_CONF) >= 1)
+    sprintf(data->cpus,"%d", sysconf( _SC_NPROCESSORS_CONF));
+#endif
+
+  /* Obtain the of CPU and FPU on the Linux box */
+
+  /* Obtain the RAM on the Linux system if possible. Currently this is 
+  done in try_portable.c, but is not 100% accurate on Linux */
+
+  /* Obtain operating system informaton */
+
+  /* Obtain the manufacturer - I don't think this will be too possible,
+   but it might be, but clearly some boxes are going to be generic. */
+
+  /* Obtain the Platform */
+
+  return(PROBABLY_LINUX);
+
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+  return(-1);
+}
diff --git a/tests/try_portable.c b/tests/try_portable.c
new file mode 100644 (file)
index 0000000..e18dc76
--- /dev/null
@@ -0,0 +1,190 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+/* Try to get data. This should work on just about any 
+system going. However, the amount of data collected 
+is not very much, so other C files, that try to 
+get more information are about. */
+
+#include "config.h"
+
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif  
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_SYS_UTSNAME_H
+#include <sys/utsname.h>
+#endif
+
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include "defs.h"
+
+extern int errno;
+#define BYTES_PER_MB  1048576
+
+int try_portable(struct computer_data *data)
+{
+
+/* Check for both uname and sysconf. Any UNIX system should 
+have both, but since someone has done a Windows port, I  
+will start by assming neither sysconf or uname exist */
+
+#ifdef _SC_PHYS_PAGES
+#ifdef _SC_PAGESIZE
+#ifdef HAVE_SYSCONF  /* Most UNIX systems have it */
+  double ram;
+#endif
+#endif
+#endif
+
+#ifdef HAVE_UNAME /* Most if not all UNIX system have it */
+  int ret, i, string_length;
+  struct utsname operating_system;
+
+  ret=uname(&operating_system);
+  if (ret == -1)
+  {
+#ifdef HAVE_ERRNO_H
+    fprintf(stderr,"failure in call to uname in try_portable.c errno=%d\n", errno);
+#else
+    fprintf(stderr,"failure in call to uname in try_portable.c\n");
+#endif /* #ifdef HAVE_ERRNO_H */
+    return(ret);
+  }
+  else  /* the call to uname succeesed */
+  {
+    /* There is a distint posibility that some data in the operating
+    system structure will have spaces in it. This will screw things
+    up, since benchmark.test is expect a fixed number of arguments.
+    Hence to avoid this, any spaces are replaced by underscores */
+
+    strcpy(data->sysname,operating_system.sysname);
+    string_length=strlen(data->sysname);
+    for(i=0;i<string_length; ++i)
+    {
+      if (data->sysname[i] == ' ')
+        data->sysname[i]='_';
+    }
+
+    /* nodename should be safe, but I'll take no chances */
+    strcpy(data->nodename,operating_system.nodename);
+    string_length=strlen(data->nodename);
+    for(i=0;i<string_length; ++i)
+    {
+      if (data->nodename[i] == ' ')
+        data->nodename[i]='_';
+    }
+
+    /* not so with release */
+    strcpy(data->release,operating_system.release);
+    string_length=strlen(data->release);
+    for(i=0;i<string_length; ++i)
+    {
+      if (data->release[i] == ' ')
+        data->release[i]='_';
+    }
+
+    /* or version */
+    strcpy(data->version,operating_system.version);
+    string_length=strlen(data->version);
+    for(i=0;i<string_length; ++i)
+    {
+      if (data->version[i] == ' ')
+        data->version[i]='_';
+    }
+
+    strcpy(data->machine,operating_system.machine);
+    string_length=strlen(data->machine);
+    for(i=0;i<string_length; ++i)
+    {
+      if (data->machine[i] == ' ')
+        data->machine[i]='_';
+    }
+  } /* end of code executed if uname() passed */
+#endif /* End of #ifdef HAVE_UNAME */
+
+/* Try to get the number of processors online. This seems to be 
+at least semi portable, as its used by both AIX and Solaris.
+*/
+
+#ifdef HAVE_SYSCONF  /* many systems seem to have sysconf(), 
+which takes an integer argument and returns a long. The 
+arugment detemines what gets returned. */
+
+#ifdef _SC_NPROCESSORS_ONLN  /* Get the CPUs online */
+    if(sysconf(_SC_NPROCESSORS_ONLN) >= 1)
+      sprintf(data->cpus,"%ld",sysconf(_SC_NPROCESSORS_ONLN));
+#endif
+
+  /* Obtain the RAM. This is a bit of a hack using doubles for 
+  this, but longs overflow and long long is not strictly 
+  in the ANSI standard. */
+
+#ifdef _SC_PHYS_PAGES
+#ifdef _SC_PAGESIZE
+
+/* This might look a bit of a hack to use a double to compute
+memory size in Mb, when any machine now will have an
+integer multiple of Mb. However, the problem is that the
+way to do this (multiplying the size of a memory page in 
+bytes by the number of memory pages), produce the ram in bytes.
+That will likely overflow a long on a 32-bit machine. So a 
+double is used, divided by the number of  bytes per Mb, then
+printed as a long. 
+
+I hope that makes some sense */
+
+  if ((long) sysconf(_SC_PHYS_PAGES) > 0L)
+  {
+    if ((long) sysconf(_SC_PAGESIZE) > 0L)
+    {
+      ram=(double) sysconf(_SC_PAGESIZE);
+      ram*= (double) sysconf(_SC_PHYS_PAGES);
+      {
+        ram=ram/BYTES_PER_MB;
+        sprintf(data->memory,"%ld",(long) (ram+0.05));
+      }
+    }
+  }
+#endif /* End of HAVE__SC_PHYS_PAGES */
+#endif  /* End of  HAVE__SC_PHYS_PAGES */
+#endif /* End of #ifdef HAVE_SYSCONF */
+  return(0);
+}
diff --git a/tests/try_solaris.c b/tests/try_solaris.c
new file mode 100644 (file)
index 0000000..d48ba22
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+/* Try to get data. This will work only on a Solaris machine. */
+
+#include "config.h"
+
+#ifdef HAVE_SYS_PARAM_H     /* This looks for header files that should be     */
+#ifdef HAVE_SYS_PROCESSOR_H /* present on Solaris. If they are all present    */
+#ifdef HAVE_STDIO_H         /* it does ***not** necessarily mean it's Solaris */
+#ifdef HAVE_STDLIB_H        /* but it will define some variables that we      */
+#ifdef HAVE_SYS_TYPES_H     /* later check for, to confirm it's Solaris       */
+#ifdef HAVE_STRING_H
+#ifdef HAVE_SYS_UNISTD_H
+#ifdef HAVE_UNISTD_H 
+#ifdef HAVE_SYS_UTSNAME_H
+#ifdef HAVE_SYS_SYSTEMINFO_H
+
+#include <sys/param.h>    /* Include the header files */
+#include <sys/processor.h>    /* Include the header files */
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/unistd.h>
+#include <sys/utsname.h>
+#include <sys/systeminfo.h>
+
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif  
+#endif
+#endif  /* End of including header files likely to be on Solaris system */
+
+#include "defs.h"
+
+int try_solaris(struct computer_data *data)
+
+{
+#ifdef HAVE_SYS_SYSTEMINFO_H
+#ifdef HAVE_SYS_PARAM_H     
+#ifdef HAVE_SYS_PROCESSOR_H 
+#ifdef HAVE_STDIO_H         
+#ifdef HAVE_STDLIB_H       
+#ifdef HAVE_SYS_TYPES_H   
+#ifdef HAVE_STRING_H
+#ifdef HAVE_SYS_UNISTD_H
+#ifdef HAVE_UNISTD_H 
+#ifdef HAVE_SYS_UTSNAME_H
+#ifdef HAVE_SYSCONF
+
+#ifdef _SC_AVPHYS_PAGES   
+
+  int clock_speed_in_MHz;
+#ifdef HAVE_PROCESSOR_INFO
+  processor_info_t infop;
+#endif
+
+#ifdef _SC_NPROCESSORS_MAX
+  long max_CPUs=0;
+
+  /* Obtain the maximum number of CPUs supported on the Solaris system */
+  max_CPUs=0;
+  max_CPUs=(long) sysconf(_SC_NPROCESSORS_MAX);
+  if(max_CPUs >=1 )
+    sprintf(data->max_cpus,"%ld",max_CPUs);
+#endif
+
+#ifdef HAVE_PROCESSOR_INFO
+  /* Obtain the of CPU and FPU on the Solaris box */
+  if( processor_info((processorid_t) 0, &infop) == 0)
+  {
+    strcpy(data->cpu_type,infop.pi_processor_type);
+    strcpy(data->fpu_type,infop.pi_fputypes);
+    clock_speed_in_MHz=(int) infop.pi_clock;
+    if(clock_speed_in_MHz > 1)
+      sprintf(data->mhz,"%d",clock_speed_in_MHz);
+  }
+#endif
+
+  /* Obtain the Platform */
+#ifdef SI_PLATFORM
+  sysinfo(SI_PLATFORM,data->hw_platform,MAX_SIZE);
+#endif
+
+  /* Obtain the manufacturer */
+#ifdef SI_HW_PROVIDER
+  sysinfo(SI_HW_PROVIDER,data->hw_provider,MAX_SIZE);
+#endif
+
+  return(PROBABLY_SOLARIS);
+
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#else  
+  return(-1);
+#endif
+}
diff --git a/tests/try_tru64.c b/tests/try_tru64.c
new file mode 100644 (file)
index 0000000..93f60b5
--- /dev/null
@@ -0,0 +1,146 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+/* Try to get data. This will work only on a Tru64 machine. */
+
+#include "config.h"
+
+#ifdef HAVE_GETSYSINFO
+#ifdef HAVE_STDIO_H     
+#ifdef HAVE_MACHINE_HAL_SYSINFO_H
+#ifdef HAVE_CPU_GET_NUM
+#ifdef HAVE_CPUCOUNTSET
+#ifdef HAVE_CPUSETCREATE
+
+
+#include <stdio.h>
+#include <sys/sysinfo.h>
+#include <machine/hal_sysinfo.h>
+#include <machine/cpuconf.h>
+#include <cpuset.h>
+#include <string.h>
+
+extern int errno;
+/* #endif */
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif  /* End of things likely to be on Tru64 system */
+
+#include "defs.h"
+#define BYTES_PER_MB  1048576
+
+
+
+int try_tru64(struct computer_data *data)
+{
+#ifdef HAVE_GETSYSINFO
+#ifdef HAVE_STDIO_H     
+#ifdef HAVE_MACHINE_HAL_SYSINFO_H
+#ifdef HAVE_CPU_GET_NUM
+#ifdef HAVE_CPUCOUNTSET
+#ifdef HAVE_CPUSETCREATE
+
+  char hw[100];
+  char *procid;
+  int     status, int_buff, start;
+  size_t string_length, i;
+  struct cpu_state cpu_state_buffer;
+  struct cpu_info cpu_info_buffer;
+  long  long_buf;
+
+  /* Obtain the maximum number of CPUs supported on the system 
+  as well as the number currently on-line.*/
+
+#if defined(GSI_CPU_STATE)
+  bzero(&cpu_state_buffer, sizeof(cpu_state_buffer));
+  cpusetcreate(&cpu_state_buffer.cs_running);
+
+  if (getsysinfo(GSI_CPU_STATE,(caddr_t)&cpu_state_buffer,sizeof(cpu_state_buffer),0,0)!=32323223)
+  {
+    sprintf(data->max_cpus,"%d",cpu_state_buffer.cs_cpu_slots);
+    sprintf(data->cpus,"%d",cpucountset(cpu_state_buffer.cs_running));
+  }
+#endif
+
+  /* Obtain the of speed and type of the CPUs on the Tru64 box */
+
+#if defined(GSI_CPU_INFO)
+  if (getsysinfo(GSI_CPU_INFO,(caddr_t)&cpu_info_buffer,sizeof(cpu_info_buffer),0,0)>=1)
+    sprintf(data->mhz,"%d",cpu_info_buffer.mhz);
+#endif
+
+
+#if defined(GSI_PROC_TYPE)
+  if (getsysinfo(GSI_PROC_TYPE,(caddr_t)&long_buf,sizeof(long_buf),0,0)>=1)
+  {
+    CPU_TYPE_TO_TEXT(long_buf,procid);
+    /* Since the benchmark.test is expecting one string for each answer/result,
+    it would screw things up if the output consisted of several words seppararated
+    by spaces. To avoid this, any space is replace with an underscore */
+    string_length=strlen(procid);
+    for(i=0;i<string_length; ++i)
+    {
+      if (procid[i] != ' ')
+        data->cpu_type[i]=procid[i];
+      else
+        data->cpu_type[i]='_';
+    }
+  } 
+#endif
+
+  /* Obtain the RAM on the Tru64 system */
+#if defined(GSI_PHYSMEM)
+  if (getsysinfo(GSI_PHYSMEM,(caddr_t)&int_buff,sizeof(int_buff),0,0)>=1)
+    sprintf(data->memory,"%d\n", int_buff/1024);
+#endif
+
+#if defined(GSI_PLATFORM_NAME)
+  if (getsysinfo(GSI_PLATFORM_NAME,(caddr_t)hw,sizeof(hw),0,0)>=1)
+  {
+    string_length=strlen(hw);
+    /* Since the benchmark.test is expecting one string for each answer/result,
+    it would screw things up if the output consisted of several words seppararated
+    by spaces. To avoid this, any space is replace with an underscore */
+    for(i=0;i<string_length; ++i)
+    {
+      if (hw[i] != ' ')
+        data->hw_platform[i]=hw[i];
+      else
+        data->hw_platform[i]='_';
+    }
+  }
+  // sprintf(data->hw_platform,"%s", hw); 
+#endif
+  return(PROBABLY_TRU64);
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif  /* End of things likely to be on Tru64 system */
+  return(-1);
+}
diff --git a/tests/try_unicos.c b/tests/try_unicos.c
new file mode 100644 (file)
index 0000000..3cc44ba
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+#include "config.h"
+
+#include "defs.h"
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+int try_unicos(struct computer_data *data)
+{
+#ifdef _SC_CRAY_NCPU
+  static char *mftype[] = {"?", "?", "?", "X-MP", "?", \
+  "Y-MP", "2","C90???","C90_or_Y16","T4_or_T16_or_T32"};
+
+  long CPUs_online=0, cpu_cycle_time_in_ps;
+  double clock_speed_in_MHz;
+  double ram;
+
+  /* Obtain the maximum number of CPUs supported on the UNICOS system */
+
+  /* Obtain the number of CPUs online on the UNICOS system */
+  CPUs_online=0;
+  CPUs_online=sysconf(_SC_CRAY_NCPU);
+  if( CPUs_online >= 1 )
+    sprintf(data->cpus,"%ld",CPUs_online);
+
+
+  /* Obtain the speed of the Cray machine. */
+#ifdef _SC_CRAY_CPCYCLE
+  if((cpu_cycle_time_in_ps=sysconf(_SC_CRAY_CPCYCLE)) > 0)
+  {
+      sprintf(data->mhz,"%.1f",1e6/cpu_cycle_time_in_ps);
+  }
+#endif
+
+  /* Obtain the RAM on the UNICOS system */
+
+
+  /* Obtain the manufacturer */
+  strcpy(data->hw_provider,"Cray");
+
+  /* Obtain the Platform */
+#ifdef _SC_CRAY_MFTYPE
+  if (sysconf(_SC_CRAY_MFTYPE) <= 9L)
+    strcpy(data->hw_platform,mftype[sysconf(_SC_CRAY_MFTYPE)] );
+#endif
+
+  return(PROBABLY_UNICOS);
+#endif
+  return(-1);
+}
diff --git a/tools/Makefile.am b/tools/Makefile.am
new file mode 100644 (file)
index 0000000..280dec2
--- /dev/null
@@ -0,0 +1,5 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS = src
+bin_PROGRAM = stoptests remoterun 
+EXTRA_DIST= stoptests remoterun 
diff --git a/tools/Makefile.in b/tools/Makefile.in
new file mode 100644 (file)
index 0000000..0f2f514
--- /dev/null
@@ -0,0 +1,401 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+SUBDIRS = src
+bin_PROGRAM = stoptests remoterun 
+EXTRA_DIST = stoptests remoterun 
+subdir = tools
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+       ps-recursive install-info-recursive uninstall-info-recursive \
+       all-recursive install-data-recursive install-exec-recursive \
+       installdirs-recursive install-recursive uninstall-recursive \
+       check-recursive installcheck-recursive
+DIST_COMMON = README Makefile.am Makefile.in
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  tools/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $$MAKEFLAGS; amf=$$2; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
+
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d $(distdir)/$$subdir \
+           || mkdir $(distdir)/$$subdir \
+           || exit 1; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$(top_distdir)" \
+               distdir=../$(distdir)/$$subdir \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+       clean-generic clean-recursive ctags ctags-recursive distclean \
+       distclean-generic distclean-recursive distclean-tags distdir \
+       dvi dvi-am dvi-recursive info info-am info-recursive install \
+       install-am install-data install-data-am install-data-recursive \
+       install-exec install-exec-am install-exec-recursive \
+       install-info install-info-am install-info-recursive install-man \
+       install-recursive install-strip installcheck installcheck-am \
+       installdirs installdirs-am installdirs-recursive \
+       maintainer-clean maintainer-clean-generic \
+       maintainer-clean-recursive mostlyclean mostlyclean-generic \
+       mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
+       ps-recursive tags tags-recursive uninstall uninstall-am \
+       uninstall-info-am uninstall-info-recursive uninstall-recursive
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tools/README b/tools/README
new file mode 100644 (file)
index 0000000..c2bea1a
--- /dev/null
@@ -0,0 +1,39 @@
+Here are a couple of tools that I use. Both are very quickly put
+together to solve a job in an easy and portable way. 
+
+1) 'teston'. This allows one to quickly run a configure/make on a remote
+machine. It copies via scp the files to a remote computer and then
+executes them there, sending the results back to the local machine. 
+
+This was developed for testing purposes
+
+Usage: teston [options] remote_host package
+
+It does *NOT* work on the local host, for reasons I can't understand.
+The 'configure' script goes all wrong. I've no idea why, and the
+'autoconf' and 'automake' mailing lists could not answer it either. If
+you know whey, let me know. 
+
+2) 'runremote' is a script that calls 'teston' (see above) to run
+an application on a large number of machines in parallel. It must makes
+lots of calls to 'teston'. 
+
+Usage: runremote package
+
+The program 'runremote' is expected to be hacked for each system. 
+It is designed for testing here, but the hostnames are hardcoded, so it
+will certainly need hacking if you want to use it. 
+
+
+3) 'mymd5sum'. 
+md5 is a well known, good checksum generator. Not all systems have
+it, those that do call it different names (md5, md5sum) and output the
+data in sligtly different formats. The program 'mymd5sum' computes
+and MD5 checksum, reporting only on the checksum, not the filename
+as most other implementations do.
+
+4) Program 'filelength' reports the length of a file in bytes. I was not
+sure if ls -l was portable, so this one is.
+
+Dr. David Kirkby, 20th Aprol 2003
+
diff --git a/tools/remoterun b/tools/remoterun
new file mode 100644 (file)
index 0000000..89e8c5c
--- /dev/null
@@ -0,0 +1,32 @@
+#! /bin/sh
+teston -T -m check tiger $1
+teston -T -m check woodpecker  $1
+teston -T -m check dove  $1
+teston -T -m check crow  $1
+teston -T -m check blackbird   $1
+teston -T -m check bluetit    $1
+
+sleep 400
+
+teston -T -m check -c '--with-threads' tiger $1
+teston -T -m check -c '--with-threads' woodpecker $1
+teston -T -m check -c '--with-threads' dove  $1
+teston -T -m check -c '--with-threads' crow  $1
+teston -T -m check -c '--with-threads' blackbird  $1
+teston -T -m check -c '--with-threads' bluetit   $1
+
+sleep 400
+teston -T -m check -c '--with-mpi' tiger $1
+teston -T -m check -c '--with-mpi' woodpecker $1
+teston -T -m check -c '--with-mpi' dove  $1
+teston -T -m check -c '--with-mpi' crow  $1
+teston -T -m check -c '--with-mpi' blackbird  $1
+teston -T -m check -c '--with-mpi' bluetit    $1
+
+sleep 400
+teston -T -m check -c '--with-mpe' tiger $1
+teston -T -m check -c '--with-mpe' woodpecker $1
+teston -T -m check -c '--with-mpe' dove  $1
+teston -T -m check -c '--with-mpe' crow  $1
+teston -T -m check -c '--with-mpe' blackbird  $1
+teston -T -m check -c '--with-mpe' bluetit    $1
diff --git a/tools/src/Makefile.am b/tools/src/Makefile.am
new file mode 100644 (file)
index 0000000..e915980
--- /dev/null
@@ -0,0 +1,9 @@
+## Process this file with automake to produce Makefile.in
+
+bin_PROGRAMS = mymd5sum myfilelength locatediff dualcoax coax
+myfilelength_SOURCES = myfilelength.c 
+locatediff_SOURCES = locatediff.c
+mymd5sum_SOURCES = mymd5sum.c md5.h
+dualcoax_SOURCES = dualcoax.c
+coax_SOURCES = coax.c get_options.c usage_coax.c
+EXTRA_DIST = md5.h 
diff --git a/tools/src/Makefile.in b/tools/src/Makefile.in
new file mode 100644 (file)
index 0000000..cd7b52f
--- /dev/null
@@ -0,0 +1,442 @@
+# Makefile.in generated by automake 1.7 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POW_LIB = @POW_LIB@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+built_with_posix_threads = @built_with_posix_threads@
+compiled_with_cflags = @compiled_with_cflags@
+compiled_with_compiler = @compiled_with_compiler@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+bin_PROGRAMS = mymd5sum myfilelength locatediff dualcoax coax
+myfilelength_SOURCES = myfilelength.c 
+locatediff_SOURCES = locatediff.c
+mymd5sum_SOURCES = mymd5sum.c md5.h
+dualcoax_SOURCES = dualcoax.c
+coax_SOURCES = coax.c get_options.c usage_coax.c
+EXTRA_DIST = md5.h 
+subdir = tools/src
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = mymd5sum$(EXEEXT) myfilelength$(EXEEXT) \
+       locatediff$(EXEEXT) dualcoax$(EXEEXT) coax$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
+
+am_coax_OBJECTS = coax.$(OBJEXT) get_options.$(OBJEXT) \
+       usage_coax.$(OBJEXT)
+coax_OBJECTS = $(am_coax_OBJECTS)
+coax_LDADD = $(LDADD)
+coax_DEPENDENCIES =
+coax_LDFLAGS =
+am_dualcoax_OBJECTS = dualcoax.$(OBJEXT)
+dualcoax_OBJECTS = $(am_dualcoax_OBJECTS)
+dualcoax_LDADD = $(LDADD)
+dualcoax_DEPENDENCIES =
+dualcoax_LDFLAGS =
+am_locatediff_OBJECTS = locatediff.$(OBJEXT)
+locatediff_OBJECTS = $(am_locatediff_OBJECTS)
+locatediff_LDADD = $(LDADD)
+locatediff_DEPENDENCIES =
+locatediff_LDFLAGS =
+am_myfilelength_OBJECTS = myfilelength.$(OBJEXT)
+myfilelength_OBJECTS = $(am_myfilelength_OBJECTS)
+myfilelength_LDADD = $(LDADD)
+myfilelength_DEPENDENCIES =
+myfilelength_LDFLAGS =
+am_mymd5sum_OBJECTS = mymd5sum.$(OBJEXT)
+mymd5sum_OBJECTS = $(am_mymd5sum_OBJECTS)
+mymd5sum_LDADD = $(LDADD)
+mymd5sum_DEPENDENCIES =
+mymd5sum_LDFLAGS =
+
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/coax.Po ./$(DEPDIR)/dualcoax.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/get_options.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/locatediff.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/myfilelength.Po ./$(DEPDIR)/mymd5sum.Po \
+@AMDEP_TRUE@   ./$(DEPDIR)/usage_coax.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(coax_SOURCES) $(dualcoax_SOURCES) $(locatediff_SOURCES) \
+       $(myfilelength_SOURCES) $(mymd5sum_SOURCES)
+DIST_COMMON = README Makefile.am Makefile.in
+SOURCES = $(coax_SOURCES) $(dualcoax_SOURCES) $(locatediff_SOURCES) $(myfilelength_SOURCES) $(mymd5sum_SOURCES)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  tools/src/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(bindir)
+       @list='$(bin_PROGRAMS)'; for p in $$list; do \
+         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+         if test -f $$p \
+         ; then \
+           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \
+         else :; fi; \
+       done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; for p in $$list; do \
+         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+         echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+         rm -f $(DESTDIR)$(bindir)/$$f; \
+       done
+
+clean-binPROGRAMS:
+       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+coax$(EXEEXT): $(coax_OBJECTS) $(coax_DEPENDENCIES) 
+       @rm -f coax$(EXEEXT)
+       $(LINK) $(coax_LDFLAGS) $(coax_OBJECTS) $(coax_LDADD) $(LIBS)
+dualcoax$(EXEEXT): $(dualcoax_OBJECTS) $(dualcoax_DEPENDENCIES) 
+       @rm -f dualcoax$(EXEEXT)
+       $(LINK) $(dualcoax_LDFLAGS) $(dualcoax_OBJECTS) $(dualcoax_LDADD) $(LIBS)
+locatediff$(EXEEXT): $(locatediff_OBJECTS) $(locatediff_DEPENDENCIES) 
+       @rm -f locatediff$(EXEEXT)
+       $(LINK) $(locatediff_LDFLAGS) $(locatediff_OBJECTS) $(locatediff_LDADD) $(LIBS)
+myfilelength$(EXEEXT): $(myfilelength_OBJECTS) $(myfilelength_DEPENDENCIES) 
+       @rm -f myfilelength$(EXEEXT)
+       $(LINK) $(myfilelength_LDFLAGS) $(myfilelength_OBJECTS) $(myfilelength_LDADD) $(LIBS)
+mymd5sum$(EXEEXT): $(mymd5sum_OBJECTS) $(mymd5sum_DEPENDENCIES) 
+       @rm -f mymd5sum$(EXEEXT)
+       $(LINK) $(mymd5sum_LDFLAGS) $(mymd5sum_OBJECTS) $(mymd5sum_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coax.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dualcoax.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get_options.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/locatediff.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/myfilelength.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mymd5sum.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage_coax.Po@am__quote@
+
+distclean-depend:
+       -rm -rf ./$(DEPDIR)
+
+.c.o:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@     -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+
+.c.obj:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCC_TRUE@     -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`; \
+@am__fastdepCC_TRUE@   then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCC_TRUE@   else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCC_TRUE@   fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`
+uninstall-info-am:
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
+
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkinstalldirs) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+
+installdirs:
+       $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-compile distclean-depend \
+       distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic ctags distclean distclean-compile \
+       distclean-depend distclean-generic distclean-tags distdir dvi \
+       dvi-am info info-am install install-am install-binPROGRAMS \
+       install-data install-data-am install-exec install-exec-am \
+       install-info install-info-am install-man install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-binPROGRAMS uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tools/src/README b/tools/src/README
new file mode 100644 (file)
index 0000000..f5630f9
--- /dev/null
@@ -0,0 +1,21 @@
+A collection of useful programs.
+
+*mymd5sum*
+Prints just the md5sum of a file - nothing fancy
+It can't read from stdin, don't print length etc. Just
+the md5 checksum.
+
+*myfilelength*
+Prints the file length of its one argument in bytes.
+
+*locatediff*
+Shows the differneces between two binary files. Useful
+if a bitmap shows differing results on two differnt
+macines. This makes it possible to see if its an odd
+pixel, or a major problem. 
+
+*coax* computers the impedance of a coaxial or 
+ecentric coaxial structure. 
+
+*dualcoax* computes the impedance of a coaxial line
+with two concentric dielectrics. 
diff --git a/tools/src/coax.c b/tools/src/coax.c
new file mode 100644 (file)
index 0000000..a9ec168
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+
+/* coax finds the properties of a standard coaxial cable - useful as a test for atlc */
+
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#define MU_0 4*M_PI*1e-7
+#define EPSILON_0 8.854187817e-12 /* Data taken from NPL */
+
+
+#ifndef PI
+#define PI 3.141592653589793238462643383279502884197169399375105
+#endif
+
+extern int my_optind; 
+extern char *my_optarg;
+
+int get_options(int argc, char **argv, const char *opts);
+void usage_coax();
+
+
+int main (int argc, char **argv)
+{
+  double d, D, er, zo, x;
+  double offset=0.0;
+  int q;
+
+
+  while((q=get_options(argc,argv,"O:")) != -1)
+  switch (q) {
+   case 'O':
+     offset=atof(my_optarg);
+   break;
+   case '?':
+    usage_coax();
+   break;
+  }
+  if(argc-my_optind != 3)
+    usage_coax();
+  d=atof(argv[my_optind]);
+  D=atof(argv[my_optind+1]);
+  er=atof(argv[my_optind+2]);
+  if ( d  >=  D){
+    fprintf(stderr,"Sorry, the diameter of the inner conductor (d) must be\n");
+    fprintf(stderr,"less than the inner diameter of the outer conductor (D)\n");
+    exit(1);
+  }
+  if (er < 1.0 ){
+    fprintf(stderr,"Sorry, the permittivity of the dielectric Er must be >=1");
+    exit(1);
+  }
+  if(D/2.0 <= d/2 + offset){
+    fprintf(stderr,"The offset between the inner and outer conductors is too large; the\n");
+    fprintf(stderr,"inner and outer conductors will touch!!\n");
+    exit(1);
+  }
+
+  x=(double) (d*d+D*D-4*offset*offset)/(2*D*d);
+  zo=(1/(2*PI))*sqrt(MU_0)*log(x+sqrt(x*x-1))/sqrt(EPSILON_0*er);
+  printf("Zo = %16f Ohms\n", zo);
+  return(0);
+
+}
diff --git a/tools/src/dualcoax.c b/tools/src/dualcoax.c
new file mode 100644 (file)
index 0000000..56643c8
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+
+/* dualcoax attempts to find the properties of a coaxial cable with two
+concentric dielectrics between the inner and outer conductors, and so
+can be used as a useful test for atlc */
+
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#define MU_0 4*M_PI*1e-7
+#define EPSILON_0 8.854187817e-12 /* Data taken from NPL */
+
+
+int main (int argc, char **argv)
+{
+  double velocity, velocity_factor, r0, r1, r2, er1, er2, c, l, zo;
+
+  if (argc != 6)
+  {
+    fprintf(stderr,"Find properties of a coaxial cable with two different concentric dielectrics.\n\n");
+    fprintf(stderr,"Usage: dualcoax D1 D2 D3 Er1 Er2\n");
+    fprintf(stderr,"dualcoax %s: arguments are:\n",PACKAGE_VERSION);
+    fprintf(stderr,"       D1 is the diameter of the inner conductor\n"); 
+    fprintf(stderr,"       D2 is the outer diameter of the inner dielectic\n"); 
+    fprintf(stderr,"       D3 is the inner diameter of the outer conductor\n"); 
+    fprintf(stderr,"       Er1 is the permittivity of the inner dielectric\n"); 
+    fprintf(stderr,"       Er2 is the permittivity of the outer dielectric\n"); 
+    exit(1);
+  }
+  r0=atof(argv[1])/2.0;
+  r1=atof(argv[2])/2.0;
+  r2=atof(argv[3])/2.0;
+  er1=atof(argv[4]);
+  er2=atof(argv[5]);
+  if ( r0 >= r1){
+    fprintf(stderr,"Sorry, the diameter of the inner conductor (d0) must be\n");
+    fprintf(stderr,"less than the outer diameter of the inner dielectic (d1)\n");
+    exit(1);
+  }
+  if ( r1 >= r2){
+    fprintf(stderr,"Sorry, the diameter of the inner dielectric (d1) must be\n");
+    fprintf(stderr,"less than the inner diameter of the outer conductor (d2)\n");
+    exit(1);
+  }
+  if (er1 < 1.0 ){
+    fprintf(stderr,"Sorry, the permittivity of the inner dielectric Er1 must be >=1");
+    exit(1);
+  }
+  if (er2 < 1.0 ){
+    fprintf(stderr,"Sorry, the permittivity of the outer dielectric Er2 must be >=1");
+    exit(1);
+  }
+  c=2*M_PI*er1*er2*EPSILON_0/(er1*log(r2/r1)+er2*log(r1/r0));
+  l=MU_0*log(r2/r0)/(2*M_PI);
+  zo=sqrt(l/c);
+  velocity_factor=(er1*er2*log(r2/r1))/(er1*log(r2/r1)+er2*log(r1/r0));
+  velocity=1.0/(velocity_factor*sqrt(MU_0 * EPSILON_0));
+  printf("Zo = %8.3f Ohms C= %8.3f pF/m L= %8.3f nH/m v= %g m/s v_f= %8.3f\n", zo,c*1e12,l*1e9, velocity, velocity_factor);
+  return(0);
+
+}
diff --git a/tools/src/get_options.c b/tools/src/get_options.c
new file mode 100644 (file)
index 0000000..7c03e46
--- /dev/null
@@ -0,0 +1,143 @@
+/* atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+
+/*
+ * Here's something you've all been waiting for:  the AT&T public domain
+ * source for getopt(3).  It is the code which was given out at the 1985
+ * UNIFORUM conference in Dallas.  I obtained it by electronic mail
+ * directly from AT&T.  The people there assure me that it is indeed
+ * in the public domain.
+ * 
+ * There is no manual page.  That is because the one they gave out at
+ * UNIFORUM was slightly different from the current System V Release 2
+ * manual page.  The difference apparently involved a note about the
+ * famous rules 5 and 6, recommending using white space between an option
+ * and its first argument, and not grouping options that have arguments.
+ * Getopt itself is currently lenient about both of these things White
+ * space is allowed, but not mandatory, and the last option in a group can
+ * have an argument.  That particular package_version of the man page evidently
+ * has no official existence, and my source at AT&T did not send a copy.
+ * The current SVR2 man page reflects the actual behavor of this getopt.
+ * However, I am not about to post a copy of anything licensed by AT&T.
+ */
+
+#include "config.h"
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+/*LINTLIBRARY*/
+#ifndef NULL
+#define NULL    0
+#endif
+#define EOF     (-1)
+
+
+int     my_opterr = 1;
+int     my_optind = 1;
+int     my_optopt;
+char    *my_optarg;
+
+void ERR(const char *s, char c, char **argv)  
+{
+       if(my_opterr)
+       {
+               char errbuf[2];
+               errbuf[0] = c;
+               errbuf[1] = '\n';
+               /* (void) write(2, argv[0], (unsigned)strlen(argv[0]));
+               (void) write(2, s, (unsigned)strlen(s));
+               (void) write(2, errbuf, 2); */
+               (void) fwrite(argv[0], (unsigned)strlen(argv[0]),1,stderr);
+               (void) fwrite(s, (unsigned)strlen(s),1,stderr);
+               (void) fwrite(errbuf, 2, 1,stderr); 
+       }
+}
+
+char *index2(const char *str, char c)
+{
+       char *ret;
+       ret=strchr((char *) str,c);
+       return(ret);
+}
+
+
+int get_options(int argc, char **argv, const char *opts)
+{
+       static int sp = 1;
+       /* register int c;
+        register char *cp; */
+        int c;
+        char tmp;
+       char *cp;
+        cp=&tmp;
+
+       if(sp == 1)
+       {
+               if(my_optind >= argc ||
+                  argv[my_optind][0] != '-' || argv[my_optind][1] == '\0')
+                       return(EOF);
+               else if(strcmp(argv[my_optind], "--") == 0) {
+                       my_optind++;
+                       return(EOF);
+               }
+        }
+       my_optopt = c = argv[my_optind][sp];
+       if(c == ':' || (cp=index2((char *) opts, c)) == NULL) {
+               ERR(": illegal option -- ", c,argv);
+               if(argv[my_optind][++sp] == '\0') {
+                       my_optind++;
+                       sp = 1;
+               }
+               return('?');
+       }
+       if(*++cp == ':') {
+               if(argv[my_optind][sp+1] != '\0')
+                       my_optarg = &argv[my_optind++][sp+1];
+               else if(++my_optind >= argc) {
+                       ERR(": option requires an argument -- ", c,argv);
+                       sp = 1;
+                       return('?');
+               } else
+                       my_optarg = argv[my_optind++];
+               sp = 1;
+       } else {
+               if(argv[my_optind][++sp] == '\0') {
+                       sp = 1;
+                       my_optind++;
+               }
+               my_optarg = NULL;
+       }
+       return(c);
+}
diff --git a/tools/src/locatediff.c b/tools/src/locatediff.c
new file mode 100644 (file)
index 0000000..6bb9d0d
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+int main (int argc, char **argv)
+{
+  FILE *fp1, *fp2;
+  unsigned char *mem1, *mem2;
+  long length1, length2, i;
+
+  if (argc != 3)
+  {
+    fprintf(stderr,"Usage file1 file2 - finds the difference between them\n");
+    exit(1);
+  }
+  if( (fp1=fopen(argv[1],"rb")) == NULL)
+  {
+    fprintf(stderr,"Unable to open %s\n", argv[1]);
+    exit(1);
+  }
+  if( (fp2=fopen(argv[2],"rb")) == NULL)
+  {
+    fprintf(stderr,"Unable to open %s\n", argv[2]);
+    exit(1);
+  }
+  if( fseek(fp1,0,SEEK_END) == -1) 
+  {
+    fprintf(stderr,"fseek failure on fp1 in locatediff.c\n");
+    exit(1);
+  }
+  if( fseek(fp2,0,SEEK_END) == -1) 
+  {
+    fprintf(stderr,"fseek failure on fp2 in locatediff.c\n");
+    exit(1);
+  }
+  if ((length1=ftell(fp1)) == -1)
+  {
+    fprintf(stderr,"Unable to determine file pointer position with ftelll on fp1\n");
+    exit(1);
+  }
+  if ((length2=ftell(fp2)) == -1)
+  {
+    fprintf(stderr,"Unable to determine file pointer position with ftelll on fp2\n");
+    exit(1);
+  }
+  if(length1 != length2)
+  {
+    fprintf(stderr,"file1 and file2 are not of the same length\n");
+    exit(2);
+  }
+  mem1=(unsigned char *) malloc((size_t)length1);
+  if(mem1 == NULL)
+  {
+    fprintf(stderr,"Failed to allocate memory in locatediff #mem1\n");
+    exit(1);
+  }
+  mem2=(unsigned char *) malloc((size_t)length2);
+  if(mem2 == NULL)
+  {
+    fprintf(stderr,"Failed to allocate memory in locatediff #mem2\n");
+    exit(1);
+  }
+  fseek(fp1,0,SEEK_SET);
+  fseek(fp2,0,SEEK_SET);
+  fread((void *) mem1,1,(size_t)length1, fp1);
+  fread((void *) mem2,1,(size_t)length2, fp2);
+  for(i=0; i<length1; ++i)
+  {
+    if(mem1[i] != mem2[i])
+      printf("At offset= %ld file1 = %d file2 = %d difference=%d\n",i,(int) mem1[i],(int) mem2[i],(int) (mem1[i]-mem2[i]));
+  }
+  return(0);
+}
diff --git a/tools/src/md5.h b/tools/src/md5.h
new file mode 100644 (file)
index 0000000..1efceb8
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef _MD5_H
+#define _MD5_H
+
+#define uint8  unsigned char
+#define uint32 unsigned long int
+
+struct md5_context
+{
+    uint32 total[2];
+    uint32 state[4];
+    uint8 buffer[64];
+};
+
+void md5_starts( struct md5_context *ctx );
+void md5_update( struct md5_context *ctx, uint8 *input, uint32 length );
+void md5_finish( struct md5_context *ctx, uint8 digest[16] );
+
+#endif /* md5.h */
+
diff --git a/tools/src/myfilelength.c b/tools/src/myfilelength.c
new file mode 100644 (file)
index 0000000..49caf89
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "../../src/non_gui/exit_codes.h"
+#include "../../src/non_gui/definitions.h"
+
+int main(int argc, char **argv)
+{
+  FILE *fp;
+  int length;
+
+  if(argc!=2)
+  {
+    printf("-1\n"); /* Length is considered -1 */
+    exit(1);
+  }
+  if ( (fp=fopen(argv[1],"rb")) == NULL)
+  {
+    printf("-1\n"); /* Length is considered -1 */
+    exit(1);
+  }
+  fseek(fp,0,SEEK_END);
+  length=ftell(fp);
+  printf("%d\n",length);
+  return(OKAY); 
+}
diff --git a/tools/src/mymd5sum.c b/tools/src/mymd5sum.c
new file mode 100644 (file)
index 0000000..908af66
--- /dev/null
@@ -0,0 +1,346 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby@ntlworld.com 
+
+*/
+
+#include "config.h"
+/*
+ * RFC 1321 compliant MD5 implementation,
+ * by Christophe Devine <devine@cr0.net>;
+ * this program is licensed under the GPL.
+ */
+
+#include <string.h>
+#include "md5.h"
+
+#define TEST
+#define GET_UINT32(n,b,i)         \
+{   \
+    (n) = (uint32) ((uint8 *) b)[(i)]       \
+      | (((uint32) ((uint8 *) b)[(i)+1]) <<  8)       \
+      | (((uint32) ((uint8 *) b)[(i)+2]) << 16)       \
+      | (((uint32) ((uint8 *) b)[(i)+3]) << 24);      \
+}
+
+#define PUT_UINT32(n,b,i)         \
+{   \
+    (((uint8 *) b)[(i)]  ) = (uint8) (((n)      ) & 0xFF);      \
+    (((uint8 *) b)[(i)+1]) = (uint8) (((n) >>  8) & 0xFF);      \
+    (((uint8 *) b)[(i)+2]) = (uint8) (((n) >> 16) & 0xFF);      \
+    (((uint8 *) b)[(i)+3]) = (uint8) (((n) >> 24) & 0xFF);      \
+}
+
+void md5_starts( struct md5_context *ctx )
+{
+    ctx->total[0] = 0;
+    ctx->total[1] = 0;
+    ctx->state[0] = 0x67452301;
+    ctx->state[1] = 0xEFCDAB89;
+    ctx->state[2] = 0x98BADCFE;
+    ctx->state[3] = 0x10325476;
+}
+
+void md5_process( struct md5_context *ctx, uint8 data[64] )
+{
+    uint32 A, B, C, D, X[16];
+
+    GET_UINT32( X[0],  data,  0 );
+    GET_UINT32( X[1],  data,  4 );
+    GET_UINT32( X[2],  data,  8 );
+    GET_UINT32( X[3],  data, 12 );
+    GET_UINT32( X[4],  data, 16 );
+    GET_UINT32( X[5],  data, 20 );
+    GET_UINT32( X[6],  data, 24 );
+    GET_UINT32( X[7],  data, 28 );
+    GET_UINT32( X[8],  data, 32 );
+    GET_UINT32( X[9],  data, 36 );
+    GET_UINT32( X[10], data, 40 );
+    GET_UINT32( X[11], data, 44 );
+    GET_UINT32( X[12], data, 48 );
+    GET_UINT32( X[13], data, 52 );
+    GET_UINT32( X[14], data, 56 );
+    GET_UINT32( X[15], data, 60 );
+
+#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))
+
+#define P(a,b,c,d,k,s,t)  \
+{     \
+    a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \
+}
+
+    A = ctx->state[0];
+    B = ctx->state[1];
+    C = ctx->state[2];
+    D = ctx->state[3];
+
+#define F(x,y,z) (z ^ (x & (y ^ z)))
+
+    P( A, B, C, D,  0,  7, 0xD76AA478 );
+    P( D, A, B, C,  1, 12, 0xE8C7B756 );
+    P( C, D, A, B,  2, 17, 0x242070DB );
+    P( B, C, D, A,  3, 22, 0xC1BDCEEE );
+    P( A, B, C, D,  4,  7, 0xF57C0FAF );
+    P( D, A, B, C,  5, 12, 0x4787C62A );
+    P( C, D, A, B,  6, 17, 0xA8304613 );
+    P( B, C, D, A,  7, 22, 0xFD469501 );
+    P( A, B, C, D,  8,  7, 0x698098D8 );
+    P( D, A, B, C,  9, 12, 0x8B44F7AF );
+    P( C, D, A, B, 10, 17, 0xFFFF5BB1 );
+    P( B, C, D, A, 11, 22, 0x895CD7BE );
+    P( A, B, C, D, 12,  7, 0x6B901122 );
+    P( D, A, B, C, 13, 12, 0xFD987193 );
+    P( C, D, A, B, 14, 17, 0xA679438E );
+    P( B, C, D, A, 15, 22, 0x49B40821 );
+
+#undef F
+
+#define F(x,y,z) (y ^ (z & (x ^ y)))
+
+    P( A, B, C, D,  1,  5, 0xF61E2562 );
+    P( D, A, B, C,  6,  9, 0xC040B340 );
+    P( C, D, A, B, 11, 14, 0x265E5A51 );
+    P( B, C, D, A,  0, 20, 0xE9B6C7AA );
+    P( A, B, C, D,  5,  5, 0xD62F105D );
+    P( D, A, B, C, 10,  9, 0x02441453 );
+    P( C, D, A, B, 15, 14, 0xD8A1E681 );
+    P( B, C, D, A,  4, 20, 0xE7D3FBC8 );
+    P( A, B, C, D,  9,  5, 0x21E1CDE6 );
+    P( D, A, B, C, 14,  9, 0xC33707D6 );
+    P( C, D, A, B,  3, 14, 0xF4D50D87 );
+    P( B, C, D, A,  8, 20, 0x455A14ED );
+    P( A, B, C, D, 13,  5, 0xA9E3E905 );
+    P( D, A, B, C,  2,  9, 0xFCEFA3F8 );
+    P( C, D, A, B,  7, 14, 0x676F02D9 );
+    P( B, C, D, A, 12, 20, 0x8D2A4C8A );
+
+#undef F
+    
+#define F(x,y,z) (x ^ y ^ z)
+
+    P( A, B, C, D,  5,  4, 0xFFFA3942 );
+    P( D, A, B, C,  8, 11, 0x8771F681 );
+    P( C, D, A, B, 11, 16, 0x6D9D6122 );
+    P( B, C, D, A, 14, 23, 0xFDE5380C );
+    P( A, B, C, D,  1,  4, 0xA4BEEA44 );
+    P( D, A, B, C,  4, 11, 0x4BDECFA9 );
+    P( C, D, A, B,  7, 16, 0xF6BB4B60 );
+    P( B, C, D, A, 10, 23, 0xBEBFBC70 );
+    P( A, B, C, D, 13,  4, 0x289B7EC6 );
+    P( D, A, B, C,  0, 11, 0xEAA127FA );
+    P( C, D, A, B,  3, 16, 0xD4EF3085 );
+    P( B, C, D, A,  6, 23, 0x04881D05 );
+    P( A, B, C, D,  9,  4, 0xD9D4D039 );
+    P( D, A, B, C, 12, 11, 0xE6DB99E5 );
+    P( C, D, A, B, 15, 16, 0x1FA27CF8 );
+    P( B, C, D, A,  2, 23, 0xC4AC5665 );
+
+#undef F
+
+#define F(x,y,z) (y ^ (x | ~z))
+
+    P( A, B, C, D,  0,  6, 0xF4292244 );
+    P( D, A, B, C,  7, 10, 0x432AFF97 );
+    P( C, D, A, B, 14, 15, 0xAB9423A7 );
+    P( B, C, D, A,  5, 21, 0xFC93A039 );
+    P( A, B, C, D, 12,  6, 0x655B59C3 );
+    P( D, A, B, C,  3, 10, 0x8F0CCC92 );
+    P( C, D, A, B, 10, 15, 0xFFEFF47D );
+    P( B, C, D, A,  1, 21, 0x85845DD1 );
+    P( A, B, C, D,  8,  6, 0x6FA87E4F );
+    P( D, A, B, C, 15, 10, 0xFE2CE6E0 );
+    P( C, D, A, B,  6, 15, 0xA3014314 );
+    P( B, C, D, A, 13, 21, 0x4E0811A1 );
+    P( A, B, C, D,  4,  6, 0xF7537E82 );
+    P( D, A, B, C, 11, 10, 0xBD3AF235 );
+    P( C, D, A, B,  2, 15, 0x2AD7D2BB );
+    P( B, C, D, A,  9, 21, 0xEB86D391 );
+
+#undef F
+
+    ctx->state[0] += A;
+    ctx->state[1] += B;
+    ctx->state[2] += C;
+    ctx->state[3] += D;
+}
+
+void md5_update( struct md5_context *ctx, uint8 *input, uint32 length )
+{
+    uint32 left, fill;
+
+    if( ! length ) return;
+
+    left = ( ctx->total[0] >> 3 ) & 0x3F;
+    fill = 64 - left;
+
+    ctx->total[0] += length <<  3;
+    ctx->total[1] += length >> 29;
+
+    ctx->total[0] &= 0xFFFFFFFF;
+    ctx->total[1] += ctx->total[0] < length << 3;
+
+    if( left && length >= fill )
+    {
+        memcpy( (void *) (ctx->buffer + left), (void *) input, fill );
+        md5_process( ctx, ctx->buffer );
+        length -= fill;
+        input  += fill;
+        left = 0;
+    }
+
+    while( length >= 64 )
+    {
+        md5_process( ctx, input );
+        length -= 64;
+        input  += 64;
+    }
+
+    if( length )
+    {
+        memcpy( (void *) (ctx->buffer + left), (void *) input, length );
+    }
+}
+
+static uint8 md5_padding[64] =
+{
+ 0x80, 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, 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
+};
+
+void md5_finish( struct md5_context *ctx, uint8 digest[16] )
+{
+    uint32 last, padn;
+    uint8 msglen[8];
+
+    PUT_UINT32( ctx->total[0], msglen, 0 );
+    PUT_UINT32( ctx->total[1], msglen, 4 );
+
+    last = ( ctx->total[0] >> 3 ) & 0x3F;
+    padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last );
+
+    md5_update( ctx, md5_padding, padn );
+    md5_update( ctx, msglen, 8 );
+
+    PUT_UINT32( ctx->state[0], digest,  0 );
+    PUT_UINT32( ctx->state[1], digest,  4 );
+    PUT_UINT32( ctx->state[2], digest,  8 );
+    PUT_UINT32( ctx->state[3], digest, 12 );
+}
+
+#ifdef TEST
+
+#include <stdio.h>
+
+/*
+ * those are the standard RFC 1321 test vectors
+ */
+
+static char *msg[] =
+{
+    "",
+    "a",
+    "abc",
+    "message digest",
+    "abcdefghijklmnopqrstuvwxyz",
+    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+    "12345678901234567890123456789012345678901234567890123456789012" \
+        "345678901234567890"
+};
+
+static char *val[] =
+{
+    "d41d8cd98f00b204e9800998ecf8427e",
+    "0cc175b9c0f1b6a831c399e269772661",
+    "900150983cd24fb0d6963f7d28e17f72",
+    "f96b697d7cb7938d525a2f31aaf161d0",
+    "c3fcd3d76192e4007dfb496cca67e13b",
+    "d174ab98d277d9f5a5611c2c9f419d9f",
+    "57edf4a22be3c955ac49da2e2107b67a"
+};
+
+int main( int argc, char *argv[] )
+{
+    FILE *f;
+    int i, j;
+    char output[33];
+    struct md5_context ctx;
+    unsigned char md5sum[16], buffer[1000];
+
+    if( argc < 2 )
+    {
+        for( i = 0; i < 7; i++ )
+        {
+  md5_starts( &ctx );
+  md5_update( &ctx, (uint8 *) msg[i], strlen( msg[i] ) );
+  md5_finish( &ctx, md5sum );
+
+  for( j = 0; j < 16; j++ )
+  {
+      sprintf( output + j * 2, "%02x", md5sum[j] );
+  }
+
+  printf( "test %d ", i + 1 );
+
+  if( ! memcmp( output, val[i], 32 ) )
+  {
+      printf( "passed\n" );
+  }
+  else
+  {
+      printf( "failed\n" );
+      return( 1 );
+  }
+        }
+    }
+    else
+    {
+        if( ! ( f = fopen( argv[1], "rb" ) ) )
+        {
+  perror( "fopen" );
+  return( 1 );
+        }
+
+        md5_starts( &ctx );
+
+        while( ( i = fread( buffer, 1, sizeof( buffer ), f ) ) > 0 )
+        {
+  md5_update( &ctx, buffer, i );
+        }
+
+        md5_finish( &ctx, md5sum );
+
+        for( j = 0; j < 16; j++ )
+        {
+  printf( "%02x", md5sum[j] );
+        }
+
+        /* printf( "  %s\n", argv[1] ); */
+        printf( "\n");
+    }
+
+    return( 0 );
+}
+
+#endif
+
diff --git a/tools/src/usage_coax.c b/tools/src/usage_coax.c
new file mode 100644 (file)
index 0000000..5080e52
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+atlc - arbitrary transmission line calculator, for the analysis of
+transmission lines are directional couplers. 
+
+Copyright (C) 2002. Dr. David Kirkby, PhD (G8WRB).
+
+This program is 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 package_version 2
+of the License, or (at your option) any later package_version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+USA.
+
+Dr. David Kirkby, e-mail drkirkby at ntlworld.com 
+
+*/
+
+#include "config.h"
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+void usage_coax(){
+    fprintf(stderr,"coax version %s. Find properties of a coaxial cable\n\n",PACKAGE_VERSION);
+
+    fprintf(stderr,"Usage: coax [-O offset] d  D Er\n");
+    fprintf(stderr,"coax %s: arguments are:\n",PACKAGE_VERSION);
+    fprintf(stderr,"       'd'       is the diameter of the inner conductor\n"); 
+    fprintf(stderr,"       'D'       is the internal diameter of the outer conductor\n"); 
+    fprintf(stderr,"       'Er'      is the permittivity of the dielectric\n"); 
+    fprintf(stderr,"       'offset'  (if supplied as an option) is the offset between the\n"); 
+    fprintf(stderr,"                 centres of the conductors in an eccentric coaxial structure.\n"); 
+    exit(1);
+}
diff --git a/tools/stoptests b/tools/stoptests
new file mode 100644 (file)
index 0000000..64e4a72
--- /dev/null
@@ -0,0 +1,375 @@
+#!/bin/sh 
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler
+pkill -9 atlc ; pkill -9 create_bmp_for_symmetrical_stripline ; pkill -9 create_bmp_for_stripline_coupler ; pkill -9 create_bmp_for_rect_in_circ ; pkill -9 create_bmp_for_circ_in_rect ;  pkill -9 create_bmp_for_rect_cen_in_rect ;  pkill -9 create_bmp_for_circ_in_circ ; pkill -9 design_coupler