/* -*-ePiX-*- */ #include "epix.h" using namespace ePiX; const double dx(0.25); double row0(-1.25), bot(-0.5), row1(0), row2(1), sep(1.75), row3(2.25); int main() { picture(P(0,-1.5), P(36,2.5), "6 x 0.75in"); begin(); arrow_inset(0.25); line(P(0, sep), P(xmax(), sep)); line(P(0, sep+0.05), P(xmax(), sep+0.05)); line(P(xmax()-1, bot), P(xmax()-1, ymax())); line(P(xmax(), bot), P(xmax(), ymax())); for (int i=6; i <= 21; ++i) line(P(i, bot), P(i, ymax())); font_size("footnotesize"); label(P(0,row1), P( 2,0), "Floating nos.", r); label(P(0,row2), P( 2,0), "Integers", r); label(P(6,row3), P(-2,0), "Columns.", l); for (int i=1; i <= 15; ++i) { std::ostringstream buf; buf << i; label(P(i+5.5, row3), buf.str()); if (i <= 5) label(P(i+5.5, row2), "x"); else if (i <= 13) label(P(i+3.5, row1), "x"); else label(P(i+5.5, row1), "x"); } label(P(6.5), "$±$"); label(P(7.5), "$0$"); label(P(8.5), P(0,-2), "$.$"); label(P(18.5), "$±$"); label(P(xmax()-0.5, row3), "$72$"); base(White(), 2.5); line(P(11+dx,row2), P(xmax()-dx,row2)); line(P(21+dx,row1), P(xmax()-dx,row1)); base(Neutral(), 0); aarrow(P(11+dx,row2), P(xmax()-dx,row2), 0.5); aarrow(P(21+dx,row1), P(xmax()-dx,row1), 0.5); masklabel(P(0.5*(xmax()+11), row2), "any Hollerith character"); masklabel(P(0.5*(xmax()+21), row1), "any Hollerith character"); label(P(19.5, row0), "$\\underbrace{\\rule{0.5in}{0pt}}_{\\text{exponent}}$"); label(P(13, row0), "$\\underbrace{\\rule{1.333in}{0pt}}_{\\text{fractional part}}$"); tikz_format(); end(); }