From: C R Onjob Date: Thu, 9 Oct 2014 17:00:02 +0000 (+0800) Subject: Automatic commit of irc logs X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=5b2bdd1356a0ed7efdc554bc0dcd8fc81a28a276;p=ipdf%2Fdocuments.git Automatic commit of irc logs You have many friends and very few living enemies. --- diff --git a/irc/#ipdf.log b/irc/#ipdf.log index 55ee202..27b31ed 100644 --- a/irc/#ipdf.log +++ b/irc/#ipdf.log @@ -6357,3 +6357,167 @@ 23:07 < Pommers> Probably. Whena re you presenting? 23:10 < sulix> I'm just disappointed that your presentation isn't "CONFIDENTIAL" like some of th others on the list. 23:17 < Pommers> Nice presentation +--- Day changed Thu Oct 09 2014 +09:22 <@matches> I'm kind of worried that my live demo takes about 10 minutes to run +09:23 <@matches> Also there are so many things that don't work +09:23 <@matches> Like actually loading an SVG with arbitrary precision +09:24 <@matches> The bottleneck in the live demo seems to be the shear number of objects in it though +09:24 <@matches> Maybe I just need fewer turtles +09:25 <@matches> Also is Rowan in Perth +09:25 <@matches> I think he might be supposed to mark it +09:26 <@matches> Although they listed Tim and not Rowan on the supervisors list +09:26 <@matches> :S( +10:43 < sulix> Rowan is here. +10:50 <@matches> Excellent +10:50 <@matches> "Record yourself presenting as practice" they said "It will make you feel more confident" they said +10:51 <@matches> They never mentioned that it will make you realise just how stupid your voice sounds, just how boring you are at presenting, and just how many things you don't have time to cover +10:51 <@matches> Well that last one I guess they did mention +10:51 <@matches> They didn't mention the crushing despair... +10:59 * sulix is in desperate need for a suitably punny title for his seminar. +11:17 <@matches> I didn't use a pun +11:17 <@matches> I used a very mundane title +11:17 <@matches> Which is probably why I am on last... +11:17 <@matches> Whoops I'm not supposed to give Pommers hints as to when it is, or he might show up +11:22 <@matches> I make such a leap in my presentation +11:22 <@matches> I go from "Look this PDF viewer has a zoom limit of 800%" to "The standards specify IEEE-754 floats" +11:22 <@matches> Quietly ignoring that you really should be able to go further than 800% with IEEE-754 floats +11:22 < sulix> Sounds good! +11:23 <@matches> I guess if someone calls me out I have the backup "Look, I can zoom further but then X crashes" +11:23 <@matches> "What a shame, looks like I can't do the rest of the presentation!" +11:23 <@matches> Also +11:23 <@matches> Where am I supposed to mention the collaborative aspect +11:24 < sulix> Just point at me and go: "the bugs are all his fault". +11:24 <@matches> Currently it is in "References" +11:24 <@matches> - David did things +11:24 <@matches> - Go see David talk about Quadtrees +11:25 < sulix> - He used a goto, get the pitchforks. +11:27 <@matches> "So I'm going to do some live demos now" +11:27 <@matches> "And as you can see, if I zoom in +11:27 <@matches> "Oh fuck SIGFPE" +11:29 <@matches> Also, if you have any time to set up some of the performance tests that would be kind of awesome +11:29 <@matches> Since we both need them, but I appear to need them sooner :P +11:30 <@matches> I guess I can leave them out and just have the spots in the draft where I want them to go, but I'm getting exponentially nervous about them +11:30 <@matches> We can compile with MPFR C++ mpreal now +11:30 <@matches> You can set the precision, but it appears to be fixed +11:30 < sulix> Oooh... +11:31 < sulix> Is it faster that gmprat? +11:31 <@matches> I don't know yet +11:31 <@matches> That's one of the performance tests I want to do +11:32 <@matches> I think mpreal with a fancy algorithm for how you increase precision *might* beat GMP rat +11:32 < sulix> So do I. +11:32 <@matches> The problem is, if you use a fixed precision then you can always choose some view bounds for which things aren't rendered correctly +11:32 <@matches> Also I do not have time to implement a fancy algorithm for how you increase precision... +11:33 <@matches> I feel like I have achieved half of the project +11:33 <@matches> Rather than the whole thing +11:33 <@matches> :S +11:34 <@matches> I do suspect that if you just go "I will use a 1000 bits" for mpreal, then for ranges where you don't need that precision you're wasting a lot of time +11:36 < sulix> You can't do "I'll use n*zoom bits" or something? +11:37 <@matches> I think I would be better off analysing the implementation that works rather than implementing the implementation that might work better... +11:37 <@matches> I guess there's still some time *after* the presentation +11:44 <@matches> sulix: People are getting lunch at the tav because it's Pommer's birthday, you should come +11:45 <@matches> I went in the tav once and didn't die +11:45 <@matches> (Not counting the quiz night, at which I'm pretty sure I did die) +11:45 < sulix> I guess I could eat some lunch. +18:32 <@matches> I have pushed the horrible python/debugscript combo +18:32 <@matches> Featuring totally inconsistent naming conventions in the python scripts +18:36 <@matches> I do recommend you learn how to use python for horrible hacky scripts like this because it is about to save my life +18:38 <@matches> Maybe you can write one that demonstrates the flaw by zooming in on an intersection :P +18:39 <@matches> Hmm +18:39 <@matches> I wonder if the use of "cin" and "stdout" for input to the DebugScript and output from the DebugScript does anything wierd +18:40 <@matches> Conshmistency +18:40 * matches goes into super draft mode +--- Log closed Thu Oct 09 18:40:43 2014 +--- Log opened Thu Oct 09 18:41:03 2014 +18:41 -!- matches [matches@motsugo.ucc.gu.uwa.edu.au] has joined #ipdf +18:41 -!- Irssi: #ipdf: Total of 3 nicks [0 ops, 0 halfops, 0 voices, 3 normal] +18:41 -!- Irssi: Join to #ipdf was synced in 0 secs +18:41 < matches> (You might say something important that I overlooked I guess?) +19:47 < sulix> Okay, so the grid is totally breaking the quadtree. +19:47 < sulix> Because it has lines that coincide _exactly_ with the edge of the quadtree. +19:48 < sulix> So the quadtree doesn't know what nodes to put them in. +19:48 < sulix> Will there be two copies of them? Will there be none? +19:48 < sulix> (Also you broke debugscript reading from a file, but I've fixed it and will push shortly) +19:49 < sulix> (The power of iostreams!) +20:00 < sulix> Okay, so not solving both the x and y cubics for vertical/horizontal lines didn't help. +20:00 < sulix> (On the bright side, it doesn't seem to have broken anything too significant) +20:19 < sulix> Interesting things from Knuth. +20:20 < sulix> - "The origins of floating-point notation can be traced back to Babylonian mathematicians ~1800 BC" (who used bas 60, but didn't explicitly state the exponent) +20:30 < sulix> - Bigints have O(N) addition/subtraction, multiplication/division O(N^2) +20:32 < sulix> - Knuth writes the idea of "positional number systems" as (...a_3 a_2 a_1 a_0 . a_{-1} a_{-2} ...)_b = ... + a_3 b^3 + a_2 b^2 + a_1 b^1 + a_0 + a_{-1} b^{-1} + a_{-2} b^{-2} +... +20:32 < sulix> i.e. neatly using "..." to avoid ever writing infinity. +20:33 < sulix> He also uses the term "radix point" to mean decimal/binary/whatever point. +20:33 < sulix> (and then gives about four pages of history of ancient civilisations counting) +20:35 < sulix> There is then some discussion of negative and complex bases and the different ways of representing negatives. +20:45 < sulix> - The "ulp" is a unit of floating-point error equal to one unit in the last place of the fraction (mantissa) part of a float. +20:45 < sulix> Floating point operations are correct to within half an ulp. +20:46 < sulix> The associative law for multiplication is holds within about 2 ulps. +20:47 < sulix> (Provided no exponent overflow or underflow occurs) +20:47 < matches> Cool +20:47 < matches> Well, I've got a graph showing that mpfr reals with 6 bits of precision are (somewhat unsurprisingly) worse than either doubles or singles +20:47 < matches> Also FPS +20:47 < matches> FPS goes all over the place with everything +20:48 < sulix> ulps are only valid for normalized floats. +20:48 < sulix> Yeah, FPS is a totally terrible unit. +20:49 < matches> SPF might be better +20:49 < sulix> You should try for ms/frame, but even that will probably be a bit broken. +20:50 < matches> FPS is in the code now, it can change later +20:50 < matches> "This wobbly line is slightly lower than this one, indicating WORSE" +20:50 < matches> Ok, what other performance tests did I need +20:51 < matches> Oh yeah, ones that actually alter the view with things in it, as opposed to ones that import an svg at a fixed scale +20:53 < matches> Man explaining how all these tests are actually valid will be a pain +22:34 < matches> I am too tired to work out how to skip the tests that are essentially pointless for various transformation settings +22:35 < matches> I guess they'll just be in the figures as straight lines thus proving my point +22:35 < matches> (Or confusing the figure) +22:35 < matches> The fact that there is a graph should be good enough for a draft +22:36 < matches> Yes, they are straight lines, thus proving my point +22:36 < matches> (Actually they just make the figure confusing) +22:38 < matches> I think what I've actually invented is just a very convoluted way to demonstrate things that everyone has known since Knuth +22:39 < matches> And less of a useful SVG viewer +22:40 < matches> Either that or an epileptic siezure machine +22:41 < matches> So many flashes +22:42 < matches> Hmm it looks like the grid cumulated error is really not as noticable with the grid +22:42 < matches> s/grid// +22:42 < matches> s//grid/ +22:42 < matches> skdfjhasdf +22:50 * matches prepares the "hairy fox" hypothesis +22:58 < sulix> No relation to the hairy ball theorem? http://en.wikipedia.org/wiki/Hairy_ball_theorem +23:07 < matches> That is... an unfortunate name +23:08 < matches> Oh, it turns out to produce the hairy fox you need to do a lot of cumulative transforms (dur) +23:08 < matches> Not just two really big transforms +23:08 < matches> So the ulp thing is useful +23:08 < matches> For understanding the rounding errors for small widths +23:10 < matches> The subtraction of x - v_x gives you up to 1 ulp and then the division by 1e-6 increases it to 1e6 ulp and if 1 ulp \approx 5e-5 or more, suddenly it is half your view width +23:10 < matches> Increasing the exponent of (v_x, v_y) will double the ulp +23:10 < matches> So for the same width you get half the precision +23:20 < matches> Hairy fox syndrome appears to work best if you use pxzoom +23:20 < matches> I won't question it... +23:41 < matches> Yeah you have to try really hard to get the hairy fox +23:42 < matches> My greatest fear is that someone will realise to achieve these "errors" by using the mouse (which is what it simulates) it would take you several days of determined scrolling +23:42 < matches> Wow it makes interesting patterns in the grid though +23:43 < matches> It affects both the position and the dimensions of the lines so your grid gradually disappears +23:55 < sulix> pxzoom will have more error because it randomly calls expf() on its input, so you've got some dodgy approximation of 'e' messing things up. +--- Day changed Fri Oct 10 2014 +00:16 < matches> Well that would have been nice to know before I ran a 20 minute test +00:16 < matches> I thought it was equivelant to using the mouse +00:17 < matches> Oh well +00:17 < matches> The test still proves the point +00:17 < matches> Even though there's the dodgy approximation of e going on +00:17 < matches> GMP rationals give a very small error +00:17 < matches> Cumulative transforms give a very large error +00:17 < matches> Direct transforms give an increasing error and also have the issue with precision +00:18 < matches> I should probably distinguish between error and precision a bit more +00:18 < matches> We want precision and we don't want error +00:19 < matches> So the GMP rationals applied to Path bounds pass both tests +00:19 < matches> Whereas the other two approaches pass one test and fail the other +00:19 < matches> Or fail both +00:19 < matches> s/two/three/however many I had I lost count +00:45 < matches> New draft is pushed +00:45 < matches> Enjoy the graphs +00:46 < matches> Try not to have too much fun questioning the validity of the results, they are all that's keeping me going +00:46 < matches> I wish path-rat gave no error +00:46 < Pommers> When do you need iPDF working on windows/ +00:47 < matches> It's not really a priority +00:48 < matches> I'll probably try and get it working after the final report is due +00:48 < matches> I will link to it anyway see +00:49 < matches> The odds of anyone actually following the link are slim +00:49 < matches> If it doesn't work I'll tell people to run it in wine