Some sort of vague ipython analysis
authorSam Moore <matches@ucc.asn.au>
Wed, 17 Sep 2014 11:47:33 +0000 (19:47 +0800)
committerSam Moore <matches@ucc.asn.au>
Wed, 17 Sep 2014 11:47:33 +0000 (19:47 +0800)
Should probably be split into .py files and just use ipython to do the plots.
Should probably see if we can get Jenkins to run things... oh what am I saying.

13 files changed:
.gitignore
src/Makefile
src/main.cpp
src/main.h
src/screen.cpp
src/screen.h
src/view.cpp
src/view.h
tools/analysis.ipynb [new file with mode: 0644]
tools/bmpdiff [new symlink]
tools/fonts [new symlink]
tools/progressbar.py [new file with mode: 0644]
tools/svg-tests [new symlink]

index f415fe2..7f6e4df 100644 (file)
@@ -14,5 +14,8 @@ bin/ipdf
 data/*
 src/moc_controlpanel.cpp
 src/tests/*
+tools/*
+!tools/*.ipynb
+!tools/*.py
 !src/tests/*.cpp
 !src/tests/*.h
index 03cf3aa..30fa7a9 100644 (file)
@@ -41,7 +41,7 @@ DEF = -DREALTYPE=$(REALTYPE)
 ## Only link with things we care about
 
 ifeq ($(QUADTREE),enabled)
-       OBJ := $(OBJ) quadtree.o
+       OBJ := $(OBJ)
 else
        DEF := $(DEF) -DQUADTREE_DISABLED
 endif
index a2693d1..4175f95 100644 (file)
@@ -49,15 +49,12 @@ int main(int argc, char ** argv)
        int max_frames = -1;
        bool hide_control_panel;
        bool lazy_rendering = true;
+       bool window_visible = true;
+       bool gpu_transform = true;
+       bool gpu_rendering = true;
        
 
        
-       Screen scr;
-       View view(doc,scr, {0,0,1,1});
-       
-       if (!lazy_rendering)
-               view.SetLazyRendering(false);
-       
        int i = 0;
        while (++i < argc)
        {
@@ -105,11 +102,11 @@ int main(int argc, char ** argv)
                                        Fatal("Expected \"gpu\" or \"cpu\" after -r switch");
                                if (strcmp(argv[i], "gpu") == 0)
                                {
-                                       view.SetGPURendering(true);
+                                       gpu_rendering = true;
                                }
                                else if (strcmp(argv[i], "cpu") == 0)
                                {
-                                       view.SetGPURendering(false);
+                                       gpu_rendering = false;
                                }
                                else
                                {
@@ -124,11 +121,11 @@ int main(int argc, char ** argv)
                                        Fatal("Expected \"gpu\" or \"cpu\" after -T switch");
                                if (strcmp(argv[i], "gpu") == 0)
                                {
-                                       view.SetGPUTransform(true);
+                                       gpu_transform = true;
                                }
                                else if (strcmp(argv[i], "cpu") == 0)
                                {
-                                       view.SetGPUTransform(false);
+                                       gpu_transform = false;
                                }
                                else
                                {
@@ -139,7 +136,7 @@ int main(int argc, char ** argv)
                        
                        
                        case 'l':
-                               view.SetLazyRendering(!view.UsingLazyRendering());
+                               lazy_rendering = !lazy_rendering;
                                break;
                        
                        case 'f':
@@ -153,11 +150,21 @@ int main(int argc, char ** argv)
                                hide_control_panel = true;
                                break;
                                        
+                       case 'Q':
+                               hide_control_panel = true;
+                               window_visible = !window_visible;
+                               break;
                }       
        }
 
        Rect bounds(b[0],b[1],b[2],b[3]);
-       view.SetBounds(bounds);
+       Screen scr(window_visible);
+       View view(doc,scr, bounds);
+       
+       view.SetLazyRendering(lazy_rendering);
+       view.SetGPURendering(gpu_rendering);
+       view.SetGPUTransform(gpu_transform);
+
        if (input_filename != NULL)
        {
                
@@ -184,16 +191,15 @@ int main(int argc, char ** argv)
                        Error("Couldn't create ControlPanel thread: %s", SDL_GetError());
                }
        }
-       #endif //CONTROLPANEL_DISABLED
+       #else //CONTROLPANEL_DISABLED
+               Debug("No control panel, hide_control_panel is %d", hide_control_panel);
+       #endif 
 
        if (mode == LOOP)
                MainLoop(doc, scr, view, max_frames);
-       else if (mode == OUTPUT_TO_BMP) //TODO: Remove this shit
+       else if (mode == OUTPUT_TO_BMP)
        {
-               if (view.UsingGPURendering())
-                       OverlayBMP(doc, output_bmp, output_bmp, bounds, c);
-               else
-                       view.SaveCPUBMP(output_bmp);
+               view.SaveBMP(output_bmp);
        }
                
        #ifndef CONTROLPANEL_DISABLED
index 9929d69..43b8c51 100644 (file)
@@ -123,6 +123,7 @@ inline void MainLoop(Document & doc, Screen & scr, View & view, int max_frames =
                        data_points++;
                }
                scr.DebugFontPrintF("Rendered frame %lu\n", (uint64_t)frames);
+               scr.DebugFontPrintF("Lazy Rendering = %d\n", view.UsingLazyRendering());
                scr.DebugFontPrintF("[CPU] Render took %lf ms (%lf FPS) (total %lf s, avg FPS %lf)\n", cpu_frame*1e3, 1.0/cpu_frame, total_cpu_time,frames/total_cpu_time);
                scr.DebugFontPrintF("[GPU] Render took %lf ms (%lf FPS) (total %lf s, avg FPS %lf)\n", gpu_frame*1e3, 1.0/gpu_frame, total_gpu_time, frames/total_gpu_time);
                scr.DebugFontPrintF("[REALTIME] Render+Present+Cruft took %lf ms (%lf FPS) (total %lf s, avg FPS %lf)\n", real_frame*1e3, 1.0/real_frame, total_real_time,frames/total_real_time);
index a32b1e2..7054fc7 100644 (file)
@@ -24,12 +24,16 @@ static void opengl_debug_callback(GLenum source, GLenum type, GLuint id, GLenum
 }
 
 
-Screen::Screen()
+Screen::Screen(bool visible)
 {
 
        SDL_Init(SDL_INIT_VIDEO);
+       uint32_t flags = SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE;
+       if (!visible)
+               flags |= SDL_WINDOW_HIDDEN;
+       
        m_window = SDL_CreateWindow("IPDF", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
-                       800, 600, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);
+                       800, 600, flags);
 
        if (!m_window)
        {
index aed042d..e24bc3f 100644 (file)
@@ -18,7 +18,7 @@ namespace IPDF
        class Screen
        {
        public:
-               Screen();
+               Screen(bool visible = true);
                ~Screen();
 
                // 'Pumps' the system event queue.
index 47d28c1..4e03136 100644 (file)
@@ -22,7 +22,7 @@ View::View(Document & document, Screen & screen, const Rect & bounds, const Colo
                m_render_dirty(true), m_document(document), m_screen(screen), m_cached_display(), m_bounds(bounds), m_colour(colour), m_bounds_ubo(), 
                m_objbounds_vbo(), m_object_renderers(NUMBER_OF_OBJECT_TYPES), m_cpu_rendering_pixels(NULL),
                m_perform_shading(USE_SHADING), m_show_bezier_bounds(false), m_show_bezier_type(false),
-               m_show_fill_points(false), m_show_fill_bounds(false)
+               m_show_fill_points(false), m_show_fill_bounds(false), m_lazy_rendering(true)
 {
        Debug("View Created - Bounds => {%s}", m_bounds.Str().c_str());
 
@@ -507,3 +507,12 @@ void View::SaveCPUBMP(const char * filename)
        ObjectRenderer::SaveBMP({m_cpu_rendering_pixels, 800, 600}, filename);
        SetGPURendering(prev);
 }
+
+void View::SaveGPUBMP(const char * filename)
+{
+       bool prev = UsingGPURendering();
+       SetGPURendering(true);
+       Render(800,600);
+       m_screen.ScreenShot(filename);
+       SetGPURendering(prev);  
+}
index e6b4dbb..9044306 100644 (file)
@@ -62,7 +62,10 @@ namespace IPDF
                        void SetLazyRendering(bool state = true) {m_lazy_rendering = state;}
                        bool UsingLazyRendering() const {return m_lazy_rendering;}
                        
+                       void SaveBMP(const char * filename) {if (UsingGPURendering()) SaveGPUBMP(filename); else SaveCPUBMP(filename);}
+                       
                        void SaveCPUBMP(const char * filename);
+                       void SaveGPUBMP(const char * filename);
 
                private:
                        struct GPUObjBounds
diff --git a/tools/analysis.ipynb b/tools/analysis.ipynb
new file mode 100644 (file)
index 0000000..dd7c259
--- /dev/null
@@ -0,0 +1,542 @@
+{
+ "metadata": {
+  "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+  {
+   "cells": [
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "import sys\n",
+      "import os\n",
+      "import time\n",
+      "import subprocess\n",
+      "from progressbar import * # From ipython github site\n",
+      "from IPython.core.display import Image\n",
+      "from IPython.display import display, clear_output"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 106
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "options = {\n",
+      "    \"real_names\" : [\"single\", \"double\", \"long\", \"virtual\", \"Rational_GMPint\", \"Rational_Arbint\", \"mpfrc++\", \"iRRAM\", \"ParanoidNumber\"],\n",
+      "    \"ipdf_src\" : \"../src/\",\n",
+      "    \"ipdf_bin\" : \"../bin/ipdf\",\n",
+      "    \"local_bin\" : \"./\",\n",
+      "    \"ignore\" : [\"virtual\", \"Rational_Arbint\", \"mpfrc++\", \"iRRAM\", \"ParanoidNumber\"],\n",
+      "    \"test\" : [\"single\", \"single-qtree\"]\n",
+      "}"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 56
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# Compile programs"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "def build(real_type, quadtree=False, controlpanel=False):\n",
+      "    global options\n",
+      "    real_name = \"\"\n",
+      "    if (type(real_type) == str):\n",
+      "        quadtree = \"enabled\" if (real_type.split(\"-\")[-1] == \"qtree\") else quadtree\n",
+      "        real_type = real_type.split(\"-\")[0]\n",
+      "        real_name = real_type\n",
+      "        real_type = options[\"real_names\"].index(real_type)\n",
+      "    else:\n",
+      "        real_name = options[\"real_names\"][real_type]\n",
+      "        \n",
+      "    quadtree = \"enabled\" if quadtree else \"disabled\"\n",
+      "    controlpanel = \"enabled\" if controlpanel else \"disabled\"\n",
+      "    if (os.system(\"make -C %s clean\" % options[\"ipdf_src\"]) != 0):\n",
+      "        raise Exception(\"Make clean failed.\")\n",
+      "    if (os.system(\"make -C %s REALTYPE=%d QUADTREE=%s CONTROLPANEL=%s\" % (options[\"ipdf_src\"], real_type, quadtree, controlpanel)) != 0):\n",
+      "        raise Exception(\"Make failed.\")\n",
+      "        \n",
+      "    q = \"-qtree\" if quadtree == \"enabled\" else \"\"\n",
+      "    os.rename(options[\"ipdf_bin\"], options[\"local_bin\"]+real_name+q)"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 57
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "p = ProgressBar(len(options[\"test\"]))\n",
+      "p.animate(0)\n",
+      "for (i,b) in enumerate(options[\"test\"]): #options[\"real_names\"]:\n",
+      "    if b in options[\"ignore\"]:\n",
+      "        continue\n",
+      "    try:\n",
+      "        build(b, False, False)\n",
+      "        #display(\"Built %s\" % b)\n",
+      "    except:\n",
+      "        display(\"Failed to build %s\" % b)\n",
+      "    p.animate(i+1)\n"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "\r",
+        "[                  0%                  ]"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[*****************50%                  ]  1 of 2 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[****************100%******************]  2 of 2 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "\n"
+       ]
+      }
+     ],
+     "prompt_number": 74
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "## Time to render frames\n",
+      "\n",
+      "Compare CPU and GPU frame rates for test image and fixed bounds"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "def time_vs_frames(exec_name, bounds = [0.,0.,1.,1.], min_frames=0, \\\n",
+      "                    max_frames=100, step=10,test_image=\"svg-tests/rabbit_simple.svg\"):\n",
+      "    binname = options[\"local_bin\"]+exec_name\n",
+      "    data = []\n",
+      "    p = ProgressBar(sum(xrange(min_frames, max_frames, step)))\n",
+      "    p.animate(0)\n",
+      "    i = 0\n",
+      "    for frames in xrange(min_frames, max_frames+step, step):\n",
+      "        pt = [frames]\n",
+      "        # -l means to turn off lazy rendering\n",
+      "        # -Q means don't show the window\n",
+      "        cmd = binname + \" -l -Q -b %s %s %s %s -f %d %s\" % tuple(map(str, bounds) + [frames, test_image])\n",
+      "        \n",
+      "        # Everything on GPU\n",
+      "        start = time.time()\n",
+      "        os.system(cmd + \" -r gpu -T gpu\")\n",
+      "        end = time.time()\n",
+      "        pt += [(end - start)]\n",
+      "                \n",
+      "        # Everything on CPU\n",
+      "        start = time.time()\n",
+      "        os.system(cmd + \" -r cpu -T cpu\")\n",
+      "        end = time.time()\n",
+      "        pt += [(end - start)]\n",
+      "        \n",
+      "        data += [pt]\n",
+      "        i += frames\n",
+      "        p.animate(i)\n",
+      "        \n",
+      "    return asarray(data)"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 69
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "tf = time_vs_frames(\"single\")"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "\r",
+        "[                  0%                  ]"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[                  0%                  ]  1 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[                  0%                  ]  1 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[*                 2%                  ]  11 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[***               7%                  ]  31 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[*****            14%                  ]  61 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[********         22%                  ]  101 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[*************    34%                  ]  151 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[*****************47%                  ]  211 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[*****************62%****              ]  281 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[*****************80%**********        ]  361 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[****************100%******************]  451 of 450 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "\n"
+       ]
+      }
+     ],
+     "prompt_number": 79
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "def plot_time_vs_frames(tf):\n",
+      "    figure(figsize=(9,7))\n",
+      "    plot(tf[:,0], tf[:,1], 'o-')\n",
+      "    yscale('linear')\n",
+      "    xscale('linear')\n",
+      "    plot(tf[:,0], tf[:,2], 'o-')\n",
+      "    legend([\"GPU\", \"CPU\"])\n",
+      "    xlabel(\"Frames\")\n",
+      "    ylabel(\"Time To Render\")\n",
+      "    title(\"Quick, to the TARDIS of Infinite Precision!\")"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 91
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "plot_time_vs_frames(tf)"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "metadata": {},
+       "output_type": "display_data",
+       "png": "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\n97UTAABcv3YRXK61keLXX5vVbdetk0aPltaulYYPt363ZQAA0DbtohJJcxspGoa5fHnSJCkhwZxk\nm5srvfWWNGIEoQUAADuy/YjLvmP7lFWapXWT1kmSLl2S3nxTevllcwPB+fOlN94wdzoGAAD2Zus6\nLoZh6K51d+nB6Ac1rucsvfqq9Pe/S3FxZmBJSqK6LQAAnubH1HGx9Z/19KJ0lXx7Sjv+52ENHixV\nVJibH77/PiX5AQBoj2x5q+jyZWnLW7WafeBp+e9PVXyKr/73ValHD6tbBgAAXMk2wSU5eZGmTRur\nkpKRevVVqdvwNxUc568vdk6kui0AAF7CNnNcJEM+Ps9o9OhkLX1xmP5rd7jW37ted/a50+rmAQCA\nNvCaOS6GsUS+vh9oz+VVig6IJrQAAOBlbHeT5eLly9e9kSIAALA3W424SNKJ2z5p80aKAACgfbDV\niEufyMd0ps8hPTfqTaubAgAALGCb4JKcvFgdUr7R4LDZV91IEQAAtF+2WVVU+G2hhq8drsJ5hY32\nJAIAAPbiFauKmttIEQAAeBfbBJd3V72rsAthVjcDAABYyDbBpeoXVVq4eqG2fbDN6qYAAACL2Ca4\nSNLR2KNasXGF1c0AAAAWsVVwkaTva7+3ugkAAMAitgsuN3S4weomAAAAi9gquITmhurRBx61uhkA\nAMAi9ilA902yHp33qO5JusfqpgAAAIvYpgCdDZoJAABawSsK0AEAABBcAACAbRBcAACAbRBcAACA\nbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBc\nAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACA\nbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbRBcAACAbbg8uKSnpysiIkL9+/fXiy++2OTr\nb7zxhoYMGaLo6GgNHz5cBw8edHWTAACATbk0uDgcDs2bN0/p6enKz8/Xxo0bVVBQ0Oic2267TR9/\n/LEOHjyoxYsXa/bs2a5sEpxg165dVjcBP0CfeBb6w/PQJ+2HS4NLdna2wsLC1LdvX/n5+WnKlCna\nunVro3MSExPVvXt3SdKwYcN07NgxVzYJTsAvAM9Dn3gW+sPz0Cfth0uDS1lZmYKDg+ueBwUFqays\n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\nrREOAAAAAElFTkSuQmCC\n",
+       "text": [
+        "<matplotlib.figure.Figure at 0x7f94c1219290>"
+       ]
+      }
+     ],
+     "prompt_number": 90
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "## Precision of rendering\n",
+      "\n",
+      "Compare images"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "def rgb2gray(rgb):\n",
+      "    return np.dot(rgb[...,:3], [0.299/256., 0.587/256., 0.144/256.])"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 190
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "def bmpdiff(img1, img2):\n",
+      "    p = subprocess.Popen(\"./bmpdiff %s %s\" % (img1, img2), bufsize=0, stdin=subprocess.PIPE, \\\n",
+      "                         stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)\n",
+      "    out = p.stdout.readlines()\n",
+      "    if len(out) != 1:\n",
+      "        raise Exception(\"bmpdiff %s %s failed: %s \" % (img1, img2, str(map(lambda e : e.strip(\"\\n\"),p.stderr.readlines()))))\n",
+      "    return map(float, out[0].strip(\" \\r\\n\").split(\"\\t\"))"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 191
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "def precision_vs_zoom(exec_name, xy, start_dims, end_dims, steps, test_image=\"svg-tests/rabbit_simple.svg\"):\n",
+      "    binname = options[\"local_bin\"]+exec_name\n",
+      "    data = []\n",
+      "    bounds = [xy[0], xy[1], start_dims[0], start_dims[1]]\n",
+      "    dw = float(end_dims[0] - start_dims[0])/float(steps)\n",
+      "    dh = float(end_dims[1] - start_dims[1])/float(steps)\n",
+      "    p = ProgressBar(steps)\n",
+      "    p.animate(0)\n",
+      "    for i in xrange(steps+1):\n",
+      "        cmd = binname + \" -l -b %s %s %s %s %s\" % tuple(map(str, bounds) + [test_image])\n",
+      "        \n",
+      "        # Don't show the windows\n",
+      "        os.system(cmd + \" -Q -r gpu -T gpu -o gpu%d.bmp\" % i)\n",
+      "        os.system(cmd + \" -Q -r cpu -T cpu -o cpu%d.bmp\" % i)\n",
+      "        \n",
+      "        pt = [i]\n",
+      "        pt += bounds\n",
+      "        pt += [bmpdiff(\"gpu\"+str(i)+\".bmp\", \"gpu\"+str(max(i-1,0))+\".bmp\")[3]]\n",
+      "        pt += [bmpdiff(\"gpu\"+str(i)+\".bmp\", \"gpu0.bmp\")[3]]\n",
+      "        pt += [bmpdiff(\"cpu\"+str(i)+\".bmp\", \"cpu\"+str(max(i-1,0))+\".bmp\")[3]]\n",
+      "        pt += [bmpdiff(\"cpu\"+str(i)+\".bmp\", \"cpu0.bmp\")[3]]\n",
+      "        pt += [bmpdiff(\"cpu\"+str(i)+\".bmp\", \"gpu\"+str(i)+\".bmp\")[3]]\n",
+      "        # [step, x, y, w, h, gpu_delta, gpu_total_delta, cpu_delta, cpu_total_delta, gpu_vs_cpu\n",
+      "        data += [pt]\n",
+      "        bounds[2] += dw\n",
+      "        bounds[3] += dh\n",
+      "\n",
+      "        p.animate(i)\n",
+      "        \n",
+      "    start = rgb2gray(imread(\"cpu0.bmp\"))\n",
+      "    end = rgb2gray(imread(\"cpu\"+str(steps)+\".bmp\"))\n",
+      "    imsave(\"compare.png\",asarray(list(start.T)+list(end.T)).T)\n",
+      "    return asarray(data)"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "\n"
+       ]
+      }
+     ],
+     "prompt_number": 227
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "pz = precision_vs_zoom(\"single\", [0.5,0.5],[1e-5,1e-5],[1e-6,1e-6], 2)"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "\r",
+        "[                  0%                  ]"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[*****************50%                  ]  1 of 2 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[*****************50%                  ]  1 of 2 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        " \r",
+        "[****************100%******************]  2 of 2 complete"
+       ]
+      },
+      {
+       "output_type": "stream",
+       "stream": "stdout",
+       "text": [
+        "\n"
+       ]
+      }
+     ],
+     "prompt_number": 228
+    },
+    {
+     "cell_type": "markdown",
+     "metadata": {},
+     "source": [
+      "# Matplotlib's image display is terrible so we must resort to this sort of horror\n",
+      "\n",
+      "## I can't seem to stop it from being these colours\n",
+      "\n",
+      "<img src=\"compare.png\" width=\"80%\"/>"
+     ]
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "def plot_precision_vs_zoom(pz):\n",
+      "    figure(figsize=(9,7))\n",
+      "    plot(pz[:,3], pz[:,6], 'o-')\n",
+      "    yscale('log')\n",
+      "    xscale('log')\n",
+      "    plot(pz[:,3], pz[:,8], 'o-')\n",
+      "    legend([\"GPU\", \"CPU\"])\n",
+      "    xlabel(\"Width\")\n",
+      "    ylabel(\"Average distance to closest pixel in original\")\n",
+      "    title(\"Arr Captain We Be Sinking Into The Sea of Precision\")"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [],
+     "prompt_number": 80
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [
+      "plot_precision_vs_zoom(pz)"
+     ],
+     "language": "python",
+     "metadata": {},
+     "outputs": [
+      {
+       "metadata": {},
+       "output_type": "display_data",
+       "png": "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\nxNChQ0scu2/fPuHi4iLOnTtX7noSExOFlZWV2LVrl1AoFGL58uXCxMRE/PTTTyrjX7BggRg5cmSx\ndvr06SOeP38uHjx4IBwcHMT+/fuFEEKsX79e+Pr6Fjt/1KhRol+/fiI9PV3ExMSIpk2bltpWaW0K\n8fLv3oQJE0R2dra4cuWKMDMzE7dv3xZCCPH999+LTp06ifj4eJGbmyvef/99MWzYMJX1b968Wdja\n2oqvv/5a+Rm9qqzv9969e+LQoUMiNzdXJCYmCj8/PzFjxgyV7SQlJQlra2uxefNmoVAoxLZt24SN\njY1ITk4WQggRHBws5s+fX+rnEBwcLD777DMhhBBpaWli2LBhws/PTwghRLdu3UTDhg3FzZs3hUKh\nEKmpqcLZ2VmsX79eKBQKcenSJWFvby9u3rwphBBi0qRJonv37uLRo0dCoVCI06dPi5ycHOXnqlAo\nRHp6urCyslL+PX3y5Im4ceOGEEKIdevWKb9bddfVrVs30bhxY3H37l2RlZUl/P39xezZs0u9TjIc\nTGioQk6cOCFkMpl48eKFEEKI1q1bi++++075fnBwsBgzZkyxc9zc3MS6detKrXPRokXCx8enXHFM\nnz5dfPjhh0KIlzeVO3fuKN//9NNPxbvvviuEUH0j+qt+/fqJ5cuXCyFUJzRbtmwpVvfEiRNV1pOV\nlSVkMpm4cuWK+O2335Tt+vj4KMvc3d2FEEJMnDixxI2jWbNm4tixYyrrlkgkwsrKSlhbWwsjIyPR\nokULER8fL4Qo/J+8mZmZyMrKUh6/detW0b1791LjXLJkifDy8hImJiaicePGYt++fcXaKkpEgoOD\nxXvvvad8b+/evaJ58+bFjl2yZIlo2LCh8kZT3no2bNggOnfuXOxcFxeXciU0p06dUr4ePHiw+PLL\nL4UQxW96QgiRn58vTE1Nxa1bt5Rla9asEf7+/irbKq1NIV7+3Sv6HoQQokOHDmLHjh1CCCGaN28u\nDh8+rHzv0aNHwsTERCgUCpVtbNmyRfTo0UOYm5sLOzs7sXTpUiFE+b/fXbt2ibZt26p8b+PGjaJj\nx47Fyjp16iTWr18vhCiesKgyZswYIZPJhLW1tahXr554++23lb8c+Pv7F0uyt2/fLrp27Vrs/AkT\nJojPP/9cKBQKUatWLXH16tUSbfw1obG2tha//vqryMzMLHbcq9+tuuvy9/cXixcvVr63atUq8eab\n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\n",
+       "text": [
+        "<matplotlib.figure.Figure at 0x7f94c12d8bd0>"
+       ]
+      }
+     ],
+     "prompt_number": 81
+    },
+    {
+     "cell_type": "code",
+     "collapsed": false,
+     "input": [],
+     "language": "python",
+     "metadata": {},
+     "outputs": []
+    }
+   ],
+   "metadata": {}
+  }
+ ]
+}
\ No newline at end of file
diff --git a/tools/bmpdiff b/tools/bmpdiff
new file mode 120000 (symlink)
index 0000000..c44af13
--- /dev/null
@@ -0,0 +1 @@
+../src/tests/bmpdiff
\ No newline at end of file
diff --git a/tools/fonts b/tools/fonts
new file mode 120000 (symlink)
index 0000000..032431f
--- /dev/null
@@ -0,0 +1 @@
+../src/fonts/
\ No newline at end of file
diff --git a/tools/progressbar.py b/tools/progressbar.py
new file mode 100644 (file)
index 0000000..dd38b42
--- /dev/null
@@ -0,0 +1,42 @@
+# From #http://nbviewer.ipython.org/github/ipython/ipython/blob/3607712653c66d63e0d7f13f073bde8c0f209ba8/docs/examples/notebooks/Animations_and_Progress.ipynb
+
+import sys, time
+try:
+    from IPython.display import clear_output
+    have_ipython = True
+except ImportError:
+    have_ipython = False
+
+class ProgressBar:
+    def __init__(self, iterations):
+        self.iterations = iterations
+        self.prog_bar = '[]'
+        self.fill_char = '*'
+        self.width = 40
+        self.__update_amount(0)
+        if have_ipython:
+            self.animate = self.animate_ipython
+        else:
+            self.animate = self.animate_noipython
+
+    def animate_ipython(self, iter):
+        print '\r', self,
+        sys.stdout.flush()
+        self.update_iteration(iter + 1)
+
+    def update_iteration(self, elapsed_iter):
+        self.__update_amount((elapsed_iter / float(self.iterations)) * 100.0)
+        self.prog_bar += '  %d of %s complete' % (elapsed_iter, self.iterations)
+
+    def __update_amount(self, new_amount):
+        percent_done = int(round((new_amount / 100.0) * 100.0))
+        all_full = self.width - 2
+        num_hashes = int(round((percent_done / 100.0) * all_full))
+        self.prog_bar = '[' + self.fill_char * num_hashes + ' ' * (all_full - num_hashes) + ']'
+        pct_place = (len(self.prog_bar) // 2) - len(str(percent_done))
+        pct_string = '%d%%' % percent_done
+        self.prog_bar = self.prog_bar[0:pct_place] + \
+            (pct_string + self.prog_bar[pct_place + len(pct_string):])
+
+    def __str__(self):
+        return str(self.prog_bar)
diff --git a/tools/svg-tests b/tools/svg-tests
new file mode 120000 (symlink)
index 0000000..7ad2cb0
--- /dev/null
@@ -0,0 +1 @@
+../src/svg-tests/
\ No newline at end of file

UCC git Repository :: git.ucc.asn.au