% PostScript Reference Manual @book{plrm, title={PostScript Language Reference}, author={Adobe Systems Incorporated}, edition={3rd}, publisher="Addison-Wesley Publishing Company", year={1985 - 1999} } % PDF Reference Manual v1.7 @book{pdfref17, title={PDF Reference}, author={Adobe Systems Incorporated}, edition={6th}, publisher={Adobe Systems Incorporated}, year={2006} } @misc{texdraft, title={Preliminary preliminary description of {\TeX}}, author={Knuth, Donald}, year={1977}, howpublished={\url{http://www.saildart.org/TEXDR.AFT[1,DEK]1}}, urldate={2014-05-20}, note={Retrieved 2014-05-20} } @article{fuchs1982theformat, title={The Format of {\TeX}'s {DVI} files}, author={Fuchs, David}, year={1982}, journal={TUGBoat}, volume={3}, number={2}, howpublished={\url{http://www.tug.org/TUGboat/Articles/tb03-2/tb06software.pdf}} } % HTML 2 spec @article{html2rfc, title={Hypertext Markup Language -- 2.0}, author={Berners-Lee, Tim and Connolly, Daniel}, year={1995}, journal={Internet RFC 1866} } % CSS 2 spec @misc{css2spec, title={Cascading Style Sheets, Level 2, {CSS2} Specification}, author={Bos, Bert and Wium Lie, Håkon and Lilley, Chris and Jacobs Ian}, date={1998}, howpublished={\url{http://www.w3.org/TR/1998/REC-CSS2-19980512/}} note={Retrieved 2014-05-22} } @misc{ghostscript, title={GhostScript, an interpreter for the PostScript language and PDF}, author={Artifex Software}, year={1988}, howpublished={\url{http://www.ghostscript.com/}} note={Retrieved 2014-05-21} } %%%%%%%%%%%%%%%%%%%%%%%% % Basic Rendering Theory %%%%%%%%%%%%%%%%%%%%%%%% %Porter-Duff compositing. % Keith Packard has a really nice PDF version of this. @inproceedings{porter1984compositing, title={Compositing digital images}, author={Porter, Thomas and Duff, Tom}, booktitle={ACM SIGGRAPH Computer Graphics}, volume={18}, number={3}, pages={253--259}, year={1984}, organization={ACM} } %Bresenham's Line Drawing Algorithm % See Michael Abrash's Graphics Programming Black Book for a % much better guide to implementing this (at least on the 486) @article{bresenham1965algorithm, title={Algorithm for computer control of a digital plotter}, author={Bresenham, Jack E}, journal={IBM Systems journal}, volume={4}, number={1}, pages={25--30}, year={1965}, publisher={IBM Corp.} } % Basically my favourite thing on triangle rasterization. % There are older ones, but this one makes sense. @misc{giesen2013triangle, title={Triangle rasterization in practice}, author={Giesen, Fabien}, year={2013}, journal={The ryg blog}, type={Blog}, number={February 8}, howpublished={\url{http://fgiesen.wordpress.com/2013/02/08/triangle-rasterization-in-practice/}} note={Retrieved 2014-05-16} } % A paper on polygon rasterization. Probably should find a nice textbook on % this. @article{pineda1988parallel, title={A parallel algorthim for polygon rasterization}, author={Pineda, Juan}, journal={ACM Computer Graphics}, year={1988}, volume={22}, number={4}, pages={17--20}, publisher={ACM} } % Bézier curves and friends. @phdthesis{catmull1974asubdivision, author = {Catmull, Edwin Earl}, title = {A Subdivision Algorithm for Computer Display of Curved Surfaces.}, year = {1974}, note = {AAI7504786}, publisher = {The University of Utah}, } %%%%%%%%%%%%%%%%%%%%%%% % Floating-pt Precision %%%%%%%%%%%%%%%%%%%%%%% Goldberg:1991:CSK:103162.103163, @article{goldberg1991whatevery, author = {Goldberg, David}, title = {What Every Computer Scientist Should Know About Floating-point Arithmetic}, journal = {ACM Comput. Surv.}, issue_date = {March 1991}, volume = {23}, number = {1}, month = mar, year = {1991}, issn = {0360-0300}, pages = {5--48}, numpages = {44}, url = {http://doi.acm.org/10.1145/103162.103163}, doi = {10.1145/103162.103163}, acmid = {103163}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {NaN, denormalized number, exception, floating-point, floating-point standard, gradual underflow, guard digit, overflow, relative error, rounding error, rounding mode, ulp, underflow}, } @misc{arb_gpu_shader_fp64, title={{ARB\_gpu\_shader\_fp64}}, author={Brown, Pat and Lichtenbelt, Barthold and Licea-Kane, Bill and Merry, Bruce and Dodd, Chris and Werness, Eric and Sellers, Graham and Roth, Greg and Bolz, Jeff and Haemel, Nick and Boudier, Pierre and Daniell, Piers}, year={2010}, journal={OpenGL Extension}, publisher={Kronos Group}, howpublished={\url{http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt}}, note={Retrieved 2014-05-20} } @misc{nv_half_float, title={{NV\_half\_float}}, author={Brown, Pat}, year={2002}, journal={OpenGL Extension}, publisher={NVIDIA Corporation}, howpublished={\url{http://www.opengl.org/registry/specs/NV/half_float.txt}}, note={Retrieved 2014-05-20} } @inproceedings{emmart2010high, title={High precision integer multiplication with a graphics processing unit}, author={Emmart, Niall and Weems, Charles}, booktitle={2010 IEEE International Symposium on Parallel \& Distributed Processing, Workshops and Phd Forum (IPDPSW)}, pages={1--6}, year={2010}, organization={IEEE} } @article{ieee754std1985, journal={{ANSI}/{IEEE} Std 754-1985}, title={{IEEE} Standard for Binary Floating-Point Arithmetic}, year={1985}, } @article{ieee754std2008, journal={{IEEE} Std 754-2008}, title={{IEEE} Standard for Floating-Point Arithmetic}, year={2008}, month={Aug}, pages={1-70}, } %%%%%%%%%%%%%%%%%%%%%%%% % GPU-y Stuff %%%%%%%%%%%%%%%%%%%%%%%% % OpenGL 4.4 (core profile) spec. % The latest OpenGL spec. % See: http://www.opengl.org/registry/doc/glspec44.core.pdf @book{openglspec, title={The {OpenGL}\textregistered Graphics System: A Specification}, author={Segal, Mark and Akely, Kurt and Leech, Jon}, year={2014}, publisher={The Kronos Group, Inc}, url={http://www.opengl.org/registry/doc/glspec44.core.pdf} } % The valve paper on using signed distance fields, scaling them and then alpha testing % them to have a smooth, defined boundary for "vector"-like effects. % Also talks of using several channels in the image and running boolean operations on them % to create sharp corners, etc. @inproceedings{green2007improved, title={Improved alpha-tested magnification for vector textures and special effects}, author={Green, Chris}, booktitle={{ACM} {SIGGRAPH} 2007 courses}, pages={9--18}, year={2007}, organization={ACM} } % A fast approximation to the signed distance field calculation for pixel grids @article{leymarie1992fast, title={Fast raster scan distance propagation on the discrete rectangular lattice}, author={Leymarie, F and Levine, Martin D}, journal={CVGIP: Image Understanding}, volume={55}, number={1}, pages={84--94}, year={1992}, publisher={Elsevier} } % Good overview of SDFs and the use of quad/octrees to better encode fine detail. @inproceedings{frisken2000adaptively, title={Adaptively sampled distance fields: a general representation of shape for computer graphics}, author={Frisken, Sarah F and Perry, Ronald N and Rockwood, Alyn P and Jones, Thouis R}, booktitle={Proceedings of the 27th annual conference on Computer graphics and interactive techniques}, pages={249--254}, year={2000}, organization={ACM Press/Addison-Wesley Publishing Co.} } % Split texture into a grid/quadtree, have each element represented by a set of cubic equations, combined CSG style. % Need to read this further to understand some of the nuance, though I expect GLyphy does this better? @techreport{ray2005vector, title={Vector texture maps on the {GPU}}, author={Ray, Nicolas and Cavin, Xavier and L{\'e}vy, Bruno}, year={2005}, institution={Technical Report ALICE-TR-05-003} } % GLyphy: https://github.com/behdad/slippy/tree/master/glyphy % Can I get these slides into a readable format, and is it formal enough? % The caricatures of the Intel OpenGL driver team are good, if nothing else. % Cairo rendering library. Basically implements the rendering bits of postscript in C, % the basis for many Linux vector graphics programs. @inproceedings{worth2003xr, title={Xr: Cross-device rendering for vector graphics}, author={Worth, Carl and Packard, Keith}, booktitle={Linux Symposium}, pages={480}, year={2003} } % Glitz cairo opengl backend. @inproceedings{nilsson2004glitz, title={Glitz: Hardware Accelerated Image Compositing Using {O}pen{GL}.}, author={Nilsson, Peter and Reveman, David}, booktitle={USENIX Annual Technical Conference, FREENIX Track}, pages={29--40}, year={2004} } % Basically an earlier but more detailed version of the below. @article{loop2005resolution, title={Resolution independent curve rendering using programmable graphics hardware}, author={Loop, Charles and Blinn, Jim}, journal={ACM Transactions on Graphics (TOG)}, volume={24}, number={3}, pages={1000--1009}, year={2005}, publisher={ACM} } % GPU Gems 3 article about using textures for the edges of smooth curves. % http://http.developer.nvidia.com/GPUGems3/gpugems3_ch25.html @article{loop2007rendering, title={Rendering vector art on the GPU}, author={Loop, Charles and Blinn, Jim}, journal={{GPU} gems}, volume={3}, pages={543--562}, year={2007} } % The article introducing the NV_path_rendering opengl extension % (nVidia-specific) which uses a "stencil-then-cover" technique to render % real vector graphics (not an approximation) on the GPU. % See Zach Rusin's blog post comparing it to Qt's SVG renderer. % http://zrusin.blogspot.com.au/2011/09/nv-path-rendering.html @article{kilgard2012gpu, title={{GPU}-accelerated path rendering}, author={Kilgard, Mark J and Bolz, Jeff}, journal={{ACM} Transactions on Graphics (TOG)}, volume={31}, number={6}, pages={172}, year={2012}, publisher={ACM} } % An extension to the above, detailing the use of the extension, rather than the way it is implemented. @article{kilgard300programming, title={Programming with {NV} path rendering: An Annex to the {SIGGRAPH} paper {GPU}-accelerated Path Rendering}, author={Kilgard, Mark J}, journal={heart}, volume={300}, pages={300} } % GL_NV_blend_equation_advanced OpenGL extension % https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt % TODO: How to reference this?? % Bascially supports all PDF, SVG blend modes and then some. % Pretty much only nVidia support this, but the specification % includes the equations for everything, which is nice. % OpenVG is an opengl-ish API for vector graphics. % More based around SVG than postscript, but not bad. @article{rice2008openvg, title={{OpenVG} Specification, version 1.1}, author={Rice, Daniel and Simpson, RJ}, journal={Khronos Group}, year={2008} } % Implementing OpenVG using OpenGL ES 1. Pretty high-level overview. % Basically boiled down to "we tesselated to get curves, and then used textures for fill" @inproceedings{oh2007implementation, title={Implementation of {OpenVG} 1.0 using {OpenGL} {ES}}, author={Oh, Aekyung and Sung, Hyunchan and Lee, Hwanyong and Kim, Kujin and Baek, Nakhoon}, booktitle={Proceedings of the 9th international conference on Human computer interaction with mobile devices and services}, pages={326--328}, year={2007}, organization={ACM} } % Implementing the OpenVG paint modes using GLES2 shaders. % This is all pretty simple stuff. @inproceedings{robart2009openvg, title={{OpenVG} paint subsystem over {OpenGL} {ES} shaders}, author={Robart, Mathieu}, booktitle={Consumer Electronics, 2009. ICCE'09. Digest of Technical Papers International Conference on}, pages={1--2}, year={2009}, organization={IEEE} } @article{blinn1992trip, title={A Trip Down the Graphics Pipeline: Grandpa, What Does “Viewport” Mean?}, author={Blinn, James}, journal={Computer Graphics and Applications, IEEE}, month={Jan}, volume={12}, number={1}, pages={83--87}, year={1992} } @ARTICLE{blinn1991trip, author={Blinn, James}, journal={Computer Graphics and Applications, IEEE}, title={A Trip Down the Graphics Pipeline: Line Clipping}, year={1991}, month={Jan}, volume={11}, number={1}, pages={98-105}, keywords={computer graphics;Z clipping;clipping function;computer graphics;global clipping;homogeneous clipping;line clipping;transform-clip-draw pipeline;Application software;Arithmetic;Assembly;Computer graphics;Displays;Education;Hardware;Pipelines;Standards publication}, doi={10.1109/38.67707}, ISSN={0272-1716}, } %%%%%%%%%%%%%%%%% % Quadtrees %%%%%%%%%%%%%%%%% @article{finkel1974quad, title={Quad trees a data structure for retrieval on composite keys}, author={Finkel, Raphael A. and Bentley, Jon Louis}, journal={Acta informatica}, volume={4}, number={1}, pages={1--9}, year={1974}, publisher={Springer} } %BSP trees @inproceedings{fuchs1980onvisible, author = {Fuchs, Henry and Kedem, Zvi M. and Naylor, Bruce F.}, title = {On Visible Surface Generation by a Priori Tree Structures}, booktitle = {Proceedings of the 7th Annual Conference on Computer Graphics and Interactive Techniques}, series = {SIGGRAPH '80}, year = {1980}, isbn = {0-89791-021-4}, location = {Seattle, Washington, USA}, pages = {124--133}, numpages = {10}, url = {http://doi.acm.org/10.1145/800250.807481}, doi = {10.1145/800250.807481}, acmid = {807481}, publisher = {ACM}, address = {New York, NY, USA}, } % KD-tree paper @article{bentley1975multidimensional, author = {Bentley, Jon Louis}, title = {Multidimensional Binary Search Trees Used for Associative Searching}, journal = {Commun. ACM}, issue_date = {Sept. 1975}, volume = {18}, number = {9}, month = sep, year = {1975}, issn = {0001-0782}, pages = {509--517}, numpages = {9}, url = {http://doi.acm.org/10.1145/361002.361007}, doi = {10.1145/361002.361007}, acmid = {361007}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {associative retrieval, attribute, binary search trees, binary tree insertion, information retrieval system, intersection queries, key, nearest neighbor queries, partial match queries}, } % Basic overview of PDF and how it is awesome. % This doesn't seem like a major revelation for 2002 @article{cheng2002portable, Abstract = {Focuses on the portable document format (PDF) as a universal document exchange technology. Features of PDF; PDF software; Description of how to create a PDF file.}, Author = {Wan-Lee Cheng, Michael A.}, ISSN = {10716084}, Journal = {Journal of Technology Studies}, Keywords = {PDF (Computer file format), FILE organization (Computer science), ELECTRONIC data processing}, Number = {1}, Pages = {59 - 63}, Title = {Portable Document Format ({PDF}) -- Finally, a Universal Document Exchange Technology.}, Volume = {28}, URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=11512377&site=ehost-live}, Year = {2002}, } % Overview of different formats % Talks about JavaScript being the future % Best title so far @article{hayes2012pixels, Abstract = {The article discusses digital methods for producing and reproducing scientific illustrations for online publication. Topics covered include the benefits of digital techniques for publishing such as three-dimensional graphics, the contribution to the visual quality of artwork using the computer language PostScript, and the Internet as a source for innovation in graphics like Scalable Vector Graphics (SVG). Also mentioned is the JavaScript library D3, an open-source software project, which can create and modify elements.}, Author = {Hayes, Brian}, ISSN = {00030996}, Journal = {American Scientist}, Keywords = {ELECTRONIC publishing, SCIENCE publishing, GRAPHIC methods -- Software, POSTSCRIPT (Computer program language), JAVASCRIPT (Computer program language), CHARTS, diagrams, etc., DESIGN & construction}, Number = {2}, Pages = {106 - 111}, Title = {Pixels or Perish.}, Volume = {100}, URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=71853141&site=ehost-live}, Year = {2012}, } % Embedding 3D models / graphs in PDFs % Actually works (in Adobe Reader) @article{barnes2013embedding, Abstract = {With the latest release of the S2PLOT graphics library, embedding interactive, 3-dimensional (3-d) scientific figures in Adobe Portable Document Format (PDF) files is simple, and can be accomplished without commercial software. In this paper, we motivate the need for embedding 3-d figures in scholarly articles. We explain how 3-d figures can be created using the S2PLOT graphics library, exported to Product Representation Compact (PRC) format, and included as fully interactive, 3-d figures in PDF files using the movie15 LaTeX package. We present new examples of 3-d PDF figures, explain how they have been made, validate them, and comment on their advantages over traditional, static 2-dimensional (2-d) figures. With the judicious use of 3-d rather than 2-d figures, scientists can now publish, share and archive more useful, flexible and faithful representations of their study outcomes. The article you are reading does not have embedded 3-d figures. The full paper, with embedded 3-d figure}, Author = {Barnes, David G. and Vidiassov, Michail and Ruthensteiner, Bernhard and Fluke, Christopher J. and Quayle, Michelle R. and McHenry, Colin R.}, ISSN = {19326203}, Journal = {PLoS ONE}, Keywords = {PDF (Computer file format), EMBEDDINGS (Mathematics), COMPUTER software, THREE-dimensional imaging, LATEX (Computer software), COMPUTER graphics, Research Article}, Number = {9}, Pages = {1 - 15}, Title = {Embedding and Publishing Interactive, 3-Dimensional, Scientific Figures in Portable Document Format (PDF) Files.}, Volume = {8}, URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=90530375&site=ehost-live}, Year = {2013}, } %Goldberg:1992:DFD:151333.151373 % Looks useful... although it does have FORTRAN in it @article{goldberg1992thedesign, author = {Goldberg, David}, title = {The Design of Floating-point Data Types}, journal = {ACM Lett. Program. Lang. Syst.}, issue_date = {June 1992}, volume = {1}, number = {2}, month = jun, year = {1992}, issn = {1057-4514}, pages = {138--151}, numpages = {14}, url = {http://doi.acm.org/10.1145/151333.151373}, doi = {10.1145/151333.151373}, acmid = {151373}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {Ada, FORTRAN 90, Modula-3, backward error analysis, error analysis, exceptions, floating point, floating-point standard, guard digit, precision, rounding, ulp}, } % It seems wierd using our last names... @misc{proposalGow, title = "Infinite-precision Document Formats (Project Proposal)", author = "David Gow", year = "2014", howpublished = "\url{http://davidgow.net/stuff/ProjectProposal.pdf}" } % Note the different title @misc{proposalMoore, title = "Infinite Precision Document Formats (Project Proposal)", author = "Sam Moore", year = "2014", howpublished = "\url{http://szmoore.net/ipdf/documents/ProjectProposalSam.pdf}" } % The Fractal Nature of Bezier Curves % No date? @article{goldman_thefractal, title = "The Fractal Nature of Bezier Curves", author = "Ron Goldman", publisher = "Department of Computer Science, Rice University", address = "6100 Main Street, Houstan, Texas", note = "The de Casteljau subdivision algorithm is used to show that Bezier curves are also attractors (ie: fractals). A new rendering algorithm is derived for Bezier curves." } % Talks about security of PDF, probably not useful, @article{sami2009alook, Abstract = {Abstract: Portable Document Format (PDF) developed by Adobe Systems Inc. is a flexible and popular document distribution and delivery file format, and it is supported within various operating systems and devices. This article provides insight for some of the security issues within the format itself as well as an outlook of the vulnerabilities found from various versions of Adobe‘s own PDF viewer implementation. [Copyright &y& Elsevier]}, Author = {Rautiainen, Sami}, ISSN = {13634127}, Journal = {Information Security Technical Report}, Keywords = {PDF (Computer file format), FILE organization (Computer science), SYSTEMS software, COMPUTER files}, Number = {1}, Pages = {30 - 33}, Title = {A look at Portable Document Format vulnerabilities.}, Volume = {14}, URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=40637035&site=ehost-live}, Year = {2009}, } % Interesting but not related to the project @article{bergen2012automatic, Abstract = {Vector graphics are popular in illustration and graphic design. Images are composed of discrete geometric shapes, such as circles, squares, and lines. The generation of vector images by evolutionary computation techniques, however, has been given little attention. JNetic is an implementation of a comprehensive evolutionary vector graphics tool. Vector primitives available range from simple geometric shapes (circles, polygons) to spline-based paint strokes. JNetic supports automatic and user-guided evolution, chromosome editing, and high-detail masks. Automatic evolution involves measuring the pixel-by-pixel colour distance between a candidate and target image. Masks can be painted over areas of the target image, which help reproduce the high-detail features within those areas. By creative selection of primitives and colour schemes, stylized interpretations of target images are produced. The system has been successfully used by the authors as a creative tool. [ABSTRACT FROM AUTHOR]}, Author = {Bergen, Steven and Ross, Brian}, ISSN = {01782789}, Journal = {Visual Computer}, Keywords = {GRAPHIC arts, GENETIC algorithms, GRAPHIC design, GRAPHIC designers, VISUAL communication, RESEARCH, Evolutionary art, Genetic algorithm, Vector graphics}, Number = {1}, Pages = {35 - 45}, Title = {Automatic and interactive evolution of vector graphics images with genetic algorithms.}, Volume = {28}, URL = {http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=70129435&site=ehost-live}, Year = {2012}, } % Similar to goldman1992, also old, need to find newer references @INPROCEEDINGS{priest1991algorithms, author={Priest, D.M.}, booktitle={Computer Arithmetic, 1991. Proceedings., 10th IEEE Symposium on}, title={Algorithms for arbitrary precision floating point arithmetic}, year={1991}, month={Jun}, pages={132-143}, keywords={digital arithmetic;number theory;coordinates;floating point arithmetic;intersection point;line intersection;line segment;Algorithm design and analysis;Costs;Error analysis;Floating-point arithmetic;Hardware;High performance computing;Libraries;Mathematics;Packaging;Roundoff errors}, doi={10.1109/ARITH.1991.145549},} @article{goldbern1967twentyseven, author = {Goldberg, I. Bennett}, title = {27 Bits Are Not Enough for 8-digit Accuracy}, journal = {Commun. ACM}, issue_date = {Feb. 1967}, volume = {10}, number = {2}, month = feb, year = {1967}, issn = {0001-0782}, pages = {105--106}, numpages = {2}, url = {http://doi.acm.org/10.1145/363067.363112}, doi = {10.1145/363067.363112}, acmid = {363112}, publisher = {ACM}, address = {New York, NY, USA}, } % Boost multiprecision library @misc{boost_multiprecision, author = {John Maddock and Christopher Kormanyos}, title = {Boost Multiprecision Library}, howpublished = {\url{http://www.boost.org/doc/libs/1_53_0/libs/multiprecision/doc/html/boost_multiprecision/}} } @misc{java_bigint, author = {Oracle Corporation}, title = {java.math.{BigInteger}}, booktitle = {Java Platform 6 {SE}}, urldate = {19-05-2014}, howpublished = {\url{http://docs.oracle.com/javase/6/docs/api/java/math/BigInteger.html}}, note={Retrieved 2014-05-19} } @misc{java_bigdecimal, author = {Oracle Corporation}, title = {java.math.{BigDecimal}}, booktitle = {Java Platform 7 {SE}}, howpublished = {\url{http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html}}, urldate = {19-05-2014}, note={Retrieved 2014-05-19} } % A CMOS Floating Point Unit @MISC{kelley1997acmos, author = {Michael J. Kelley and Matthew A. Postiff and Advisor Richard and B. Brown}, title = {A CMOS Floating Point Unit}, year = {1997} } @misc{filiatreault2003simply, author = {Raymond Filiatreault}, title = "Simply FPU", year = 2003, howpublished = {\url{http://www.website.masmforum.com/tutorials/fptute/index.html}} } @article{bishop2008floating, author = {David Bishop}, year = 2008, howpublished = {\url{http://www.vhdl.org/fphdl/Float_ug.pdf}}, title = {Floating Point Package User's Guide}, note = {Technical Report}, journal = {EDA Industry Working Groups} } @article{dieter2007lowcost, author = {Dieter, William R. and Kaveti, Akil and Dietz, Henry G.}, title = {Low-Cost Microarchitectural Support for Improved Floating-Point Accuracy}, journal = {IEEE Comput. Archit. Lett.}, issue_date = {January 2007}, volume = {6}, number = {1}, month = jan, year = {2007}, issn = {1556-6056}, pages = {13--16}, numpages = {4}, url = {http://dx.doi.org/10.1109/L-CA.2007.1}, doi = {10.1109/L-CA.2007.1}, acmid = {1271937}, publisher = {IEEE Computer Society}, address = {Washington, DC, USA}, keywords = {B Hardware, B.2 Arithmetic and Logic Structures, B.2.4 High-Speed Arithmetic, B.2.4.b Cost/performance, C Computer Systems Organization, C.0 General, C.0.b Hardware/software interfaces, C.1 Processor Architectures, C.1.5 Micro-architecture implementation considerations, G Mathematics of Computing, G.1 Numerical Analysis, G.1.0 General, G.1.0.e Multiple precision arithmetic, I Computing Methodologies, I.3 Computer Graphics, I.3.1 Hardware Architecture, I.3.1.a Graphics processors}, } @misc{jop, author = "jop-devel", title = "Java Optimized Processor", howpublished = "\url{https://github.com/jop-devel/jop}" } @inproceedings{kadric2013accurate, title={Accurate Parallel Floating-Point Accumulation}, author={Kadric, Edin and Gurniak, Paul and DeHon, Andr{\'e}}, booktitle={Computer Arithmetic (ARITH), 2013 21st IEEE Symposium on}, pages={153--162}, year={2013}, organization={IEEE} } %ghdl, the least shitty of the open source vhdl tools @misc{ghdl, title = "GHDL Guide", author = "Tristan Gingold", year = "2007", howpublished = "\url{http://ghdl.free.fr/ghdl/}" } % Look into as an alternative to using text files for FPU simulation? @misc{tang2000using, title = "Using Binary Files in VHDL Test Benches", author = "Stephen Tang", year = "2000", howpublished = "\url{http://www.ece.ualberta.ca/~elliott/ee552/studentAppNotes/2000_w/vhdl/BinaryFileTestbenching/binary.html}", note = "Application Notes (webpage)" } % On the design of IEEE floating point adders % Has algorithms! @INPROCEEDINGS{seidel2001onthe, author={Seidel, P.-M. and Even, G.}, booktitle={Computer Arithmetic, 2001. Proceedings. 15th IEEE Symposium on}, title={On the design of fast IEEE floating-point adders}, year={2001}, month={}, pages={184-194}, keywords={adders;circuit optimisation;floating point arithmetic;logic design;IEEE rounding modes;IEEE standard;addition;approximate counting;borrow-save representation;clock periods;complement subtraction;compound adders;double precision;fast IEEE floating-point adder design;fast circuits;latches;latency;leading zeros;logic levels;normalized numbers;normalized rounded sum/difference;optimization techniques;rounding algorithm;sign-magnitude computation;subtraction;Adders;Algorithm design and analysis;Circuits;Clocks;Delay;Design optimization;Latches;Logic design;Partitioning algorithms;Pipelines}, doi={10.1109/ARITH.2001.930118}, ISSN={1063-6889},} @article{demmel1996basic, title = "Basic Issues in Floating Point Arithmetic and Error Analysis", author = "Jim Demmel", journal = "U.C. Berkeley CS267", note = "Lecture Notes", howpublished = "\url{http://www.cs.berkeley.edu/~demmel/cs267/lecture21/lecture21.html}", year = 1996 } @misc{grfpu_dasia, title = "GRFPU - High Performance IEEE- 7 5 4 Floating- Point Unit", author = "Edvin Catovic", howpublished = "\url{http://www.gaisler.com/doc/grfpu_dasia.pdf}" } % The best quote ever. @misc{beebe2011round32, title = "Re: round32 ( round64 ( X ) ) ?= round32 ( X )", note = "IEEE 754 Working Group Mail Archives", author = "Nelson H. F. Beebe", howpublished = "\url{http://grouper.ieee.org/groups/754/email/msg04169.html}" } % Biography of Charles Babbage because WHY NOT? % I suspect this year is wrong?75 @ARTICLE{dodge_babbage, author={Dodge, N. S.}, journal={Annals of the History of Computing, IEEE}, title={Charles Babbage}, year={2000}, month={Oct}, volume={22}, number={4}, pages={22-43}, keywords={Accuracy;Art;Autobiographies;Biographies;Blood;Calculus;Educational institutions;History;Writing}, doi={10.1109/MAHC.2000.887988}, ISSN={1058-6180},} @article{nature1871babbage, author = "Unknown Author", journal = "Nature", title = "Charles Babbage", year = 1871, volume = 5, number = 106, pages = "28-29" } %IEEE 754 Really should have put this in earlier @ARTICLE{ieee2008-754, journal={IEEE Std 754-2008}, title={IEEE Standard for Floating-Point Arithmetic}, year={2008}, month={Aug}, pages={1-70}, keywords={IEEE standards;floating point arithmetic;programming;IEEE standard;arithmetic formats;computer programming;decimal floating-point arithmetic;754-2008;NaN;arithmetic;binary;computer;decimal;exponent;floating-point;format;interchange;number;rounding;significand;subnormal}, doi={10.1109/IEEESTD.2008.4610935},} @article{dekker1971afloating, year={1971}, issn={0029-599X}, journal={Numerische Mathematik}, volume={18}, number={3}, doi={10.1007/BF01397083}, title={A floating-point technique for extending the available precision}, url={http://dx.doi.org/10.1007/BF01397083}, publisher={Springer-Verlag}, author={Dekker, T.J.}, pages={224-242}, language={English} } @String{pub-BIRKHAUSER-BOSTON = "Birkh{\"a}user Boston Inc."} @String{pub-BIRKHAUSER-BOSTON:adr = "Cambridge, MA, USA"} @Book{HFP, author = "Jean-Michel Muller and Nicolas Brisebarre and Florent de Dinechin and Claude-Pierre Jeannerod and Vincent Lef{\`e}vre and Guillaume Melquiond and Nathalie Revol and Damien Stehl{\'e} and Serge Torres", title = "Handbook of Floating-Point Arithmetic", publisher = pub-BIRKHAUSER-BOSTON, address = pub-BIRKHAUSER-BOSTON:adr, pages = "xxiii + 572", year = "2010", DOI = "http://dx.doi.org/10.1007/978-0-8176-4704-9", ISBN = "0-8176-4704-X", ISBN-13 = "978-0-8176-4704-9", LCCN = "QA76.9.C62 H36 2010", bibdate = "Thu Jan 27 16:18:58 2011", price = "US\$90 (est.)", acknowledgement = ack-nhfb, } @article{svg2011-1.1, year = 2011, month = "August", journal = "W3C Recommendation", title = "Scalable Vector Graphics (SVG) 1.1 (Second Edition)", author = "Erik Dahlst{\'o}m and Patric Dengler and Anthony Grasso and Chris Lilley and Cameron McCormack and Doug Schepers and Jonathon Watt and Jon Ferraiolo and Fujisawa Jun and Dean Jackson", howpublished = "\url{http://www.w3.org/TR/SVG/}", note = "Retrieved 2014-05-23", } @article{xml2008-1.0, year = 2008, month = "November", journal = "W3C Recommendation", title = "Extensible Markup Language (XML) 1.0 (Fifth Edition)", author = "W3C", editor = "Tim Bray and Jean Paoli and C Sperberg-McQueen and Eve Maler and Francois Yergeau", howpublished = "\url{http://www.w3.org/TR/xml/}" } @article{html2014-draft, year = 2014, month = "April", journal = "W3C Candidate Recommendation", title = "HTML5 - Developer View - A Vocabulary and associated APIs for HTML and XHTML", author = "W3C", editor = "Robin Berjon and Steve Faulkner and Travis Leithead and Erika Navara and Edward O'Connor and Silvia Pfeiffer and Ian Hickson", howpublished = "\url{http://www.w3.org/TR/html/}" } @article{css2011-level2, year = 2011, month = "June", journal = "W3CRecommendation", title = "Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification", author = "W3C", editor = "Bert Bos, Tantex Celik, Ian Hickson, Hakon WiumLie", howpublished = "\url{http://www.w3.org/TR/CSS21/}" } @article{kapoulkine2014pugixml, year = "2014", author = "Arseny Kapoulkine", title = "pugixml --- Light-weight, simple and fast XML parser for C++ with XPath support", howpublished="http://pugixml.org", } @article{pugixmlDOM, year = "2014", author = "Arseny Kapoulkine", title = "Document Object Model", journal = "pugixml 1.4 manual", howpublished = "http://pugixml.googlecode.com/svn/tags/latest/docs/manual/dom.html" } % Rendering vector graphics on vector display devices (historical) %Brassel:1979:ASR:965103.807434, @article{brassel1979analgorithm, author = {Brassel, Kurt E. and Fegeas, Robin}, title = {An Algorithm for Shading of Regions on Vector Display Devices}, journal = {SIGGRAPH Comput. Graph.}, issue_date = {August 1979}, volume = {13}, number = {2}, month = aug, year = {1979}, issn = {0097-8930}, pages = {126--133}, numpages = {8}, url = {http://doi.acm.org.ezproxy.library.uwa.edu.au/10.1145/965103.807434}, doi = {10.1145/965103.807434}, acmid = {807434}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {Cartography, Computer graphics, Line-drawing processing, Polygons, Shading, Software, Spatial information}, } %Lane:1983:AFR:357323.357326, @article{lane1983analgorithm, author = {Lane, J. M. and M. Rarick, R. and}, title = {An Algorithm for Filling Regions on Graphics Display Devices}, journal = {ACM Trans. Graph.}, issue_date = {July 1983}, volume = {2}, number = {3}, month = jul, year = {1983}, issn = {0730-0301}, pages = {192--196}, numpages = {5}, url = {http://doi.acm.org.ezproxy.library.uwa.edu.au/10.1145/357323.357326}, doi = {10.1145/357323.357326}, acmid = {357326}, publisher = {ACM}, address = {New York, NY, USA}, } @article{hillesland2004paranoia, author = "Karl E Hillesland and Anselmo Lastra", title = "GPU Floating-Point Paranoia", journal = "Proceedings of GP 2004", year = 2004, url = "\url{http://www.cs.unc.edu/~ibr/projects/paranoia/}" } %Fousse:2007:MMB:1236463.1236468, @article{fousse2007mpfr, author = {Fousse, Laurent and Hanrot, Guillaume and Lef\`{e}vre, Vincent and P{\'e}lissier, Patrick and Zimmermann, Paul}, title = {MPFR: A Multiple-precision Binary Floating-point Library with Correct Rounding}, journal = {ACM Trans. Math. Softw.}, issue_date = {June 2007}, volume = {33}, number = {2}, month = jun, year = {2007}, issn = {0098-3500}, articleno = {13}, url = {http://doi.acm.org.ezproxy.library.uwa.edu.au/10.1145/1236463.1236468}, doi = {10.1145/1236463.1236468}, acmid = {1236468}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {IEEE 754 standard, Multiple-precision arithmetic, correct rounding, elementary function, floating-point arithmetic, portable software}, } @misc{kahan1996ieee754, author = "W Kahan", title = "Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic", howpublished = "\url{http://http.cs.berkeley.edu/~wkahan/ieee754status/ieee754.ps} accessed April 2014", year = 1996, month = May } @misc{kahan2007wrong, author = "W Kahan", title = "Why is Floating-Point Computation so Hard to Debug when it Goes Wrong?", howpublished = "\url{http://www.cs.berkeley.edu/~wkahan/WrongR.pdf} accessed April 2014", year = 2007, month = March } @misc{kahanweb, author = "W Kahan", title = "Prof W Kahan's Webpages", howpublished = "\url{http://www.cs.berkeley.edu/~wkahan/} accessed April 2014" } @book{computergraphics2, author = "Donald Hearn and M Pauline Baker", title = "Computer Graphics", edition = 2, year = 1997, publisher = "Prentice Hall, Inc", address = "Upper Saddle River, New Jersey 07458, USA" } @ARTICLE{bresenham1996pixel, author={Bresenham, J.}, journal={Computer Graphics and Applications, IEEE}, title={Pixel-processing fundamentals}, year={1996}, month={Jan}, volume={16}, number={1}, pages={74-82}, keywords={approximation theory;computer graphics;computer driven raster displays;edge drawing algorithms;explicit reference model;integer arithmetic algorithm;line drawing algorithms;line rastering;objective function;pixel processing fundamentals;pixel space basics;pixel-processing fundamentals;raster approximation;systematic rules;unintentionally fuzzy assumptions;Approximation algorithms;Cities and towns;Color;Computer displays;Layout;Lifting equipment;Painting;Tutorial;Visual effects;Yarn}, doi={10.1109/38.481626}, ISSN={0272-1716},} % It's a series of blog posts, don't judge me % Also don't look at the rest of the blog, it's strange... @misc{elias2000graphics, title = "Graphics", author = "Hugo Elias", howpublished = {\url{http://freespace.virgin.net/hugo.elias/graphics/x\_main.htm} accessed May 2014}, abstract = "This page explains how to draw graphics onto (mostly) Raster display systems. A very small amount could possibly be relevant to vector displays, but who uses those any more?" } @article{wu1991anefficient, author = {Wu, Xiaolin}, title = {An Efficient Antialiasing Technique}, journal = {SIGGRAPH Comput. Graph.}, issue_date = {July 1991}, volume = {25}, number = {4}, month = jul, year = {1991}, issn = {0097-8930}, pages = {143--152}, numpages = {10}, url = {http://doi.acm.org.ezproxy.library.uwa.edu.au/10.1145/127719.122734}, doi = {10.1145/127719.122734}, acmid = {122734}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {antialiasing, convolution, curve digitization, digital geometry}, } @article{w3c2010svghtmlprimer, year = 2010, month = "September", journal = "WC3 Primer (Editor's Draft)", title = "An SVG Primer for Today's Browsers", author = "W3C", editor = "David Dailey", howpublished = "\url{http://www.w3.org/Graphics/SVG/IG/resources/svgprimer.html}" } % Koch snowflake in French no I didn't read it so sue me it is just here to give Koch credit @article{koch1904surune, year = 1904, author = "H Von Koch", title = "Sur une courbe continue sans tangente, obtenue par une construction géométrique élémentaire." , journal = "Archiv för Matemat., Astron. och Fys.", pages = "681-702"} @article{js_3d_pdf, year = 2007, author = "Adobe Systems Incorporated", edition = 2, month = "April", journal = "Adobe Acrobat Reader SDK" } % Holy mackerel, a paper on precision in document formats! @article{beebe2007extending, author={Beebe, Nelson}, title={Extending {\TeX} and {METAFONT} With Floating-Point Arithmetic}, year={2007}, journal={{TUGboat}}, volume={28}, number={3}, } @book{de1986shape, title={Shape mathematics and CAD}, author={De Casteljau, Paul de Faget}, year={1986}, publisher={IET} } @book{foley1996computer, title={Computer Graphics: Principles and Practice}, author={Foley, J.D.}, isbn={9780201848403}, lccn={lc95013631}, chapter={Representing Curves and Surfaces} series={Addison-Wesley systems programming series}, url={http://books.google.com.au/books?id=-4ngT05gmAQC}, year={1996}, publisher={Addison-Wesley} } @book{zerbst2004game, title={{3D} Game Engine Programming}, author={Zerbst, Stefan and Düvel, Oliver}, publisher={Premier Press}, chapter={Scene Management}, isbn={1592003516} year={2004} } @book{knuth1983metafont, author = "Donald Knuth", year = 1983, title = "The {METAFONT} Book", publisher = "Addison-Wesley", edition = 2 } @book{knuth1984texbook, author = "Donald Knuth", year = 1983, title = "The {\TeX} Book", publisher = "Addison-Wesley", edition = 2 } %Bezier:1986:PVP:988594.988595, @article{bezier1986apersonal, author = {B{\'e}zier, Pierre E.}, title = {A Personal View of Progress in Computer Aided Design}, journal = {SIGGRAPH Comput. Graph.}, issue_date = {July 1986}, volume = {20}, number = {3}, month = jul, year = {1986}, issn = {0097-8930}, pages = {154--159}, numpages = {6}, url = {http://doi.acm.org.ezproxy.library.uwa.edu.au/10.1145/988594.988595}, doi = {10.1145/988594.988595}, acmid = {988595}, publisher = {ACM}, address = {New York, NY, USA}, } % ECMAscript (Javascript) (sorry David I had to do it) @book{ecma-262, title = "ECMAScript Language Specification", year = 2011, month = "June", edition = "5.1", publisher = {\url{http://www.ecma-international.org} accessed 2014-05-22}, author = "ECMA International" } @ARTICLE{randell1982fromanalytical, author={Randell, B.}, journal={Annals of the History of Computing}, title={From Analytical Engine to Electronic Digital Computer: The Contributions of Ludgate, Torres, and Bush}, year={1982}, month={Oct}, volume={4}, number={4}, pages={327-341}, keywords={Calculators;Character recognition;Engine cylinders;Engineering drawings;Hardware;History;Information analysis;Information processing;Permission;Time sharing computer systems}, doi={10.1109/MAHC.1982.10042}, ISSN={0164-1239},}