Merge branch 'master' of git.ucc.asn.au:ipdf/documents
[ipdf/documents.git] / irc / #ipdf.log
index b3caf87..c28fd7f 100644 (file)
 21:32 <@matches> Minutes now have less "~*" in them
 21:32 <@matches> Wrong channel
 21:32 <@matches> Very wrong channel
+--- Day changed Mon Apr 21 2014
+12:32 <@matches> Literature Review O'Clock
+12:36 < sulix> I have just returned from my Easter holiday and have some horrible code for you to scream at while I have lunch. :P
+12:43 <@matches> Uh oh
+12:44 <@matches> stb_truetype ?
+12:44 <@matches> DejaVuSansMono.ttf ?!
+12:44 <@matches> Is this going to render a font...
+12:45 <@matches> Woah
+12:47 <@matches> Looks good
+12:48 <@matches> I think I will avoid looking at stb_truetype too closely...
+12:48 <@matches> Too late
+12:48 <@matches> Why are all the implementations in the .h file
+12:48 <@matches> And the .cpp file just has some defines...
+12:48 <@matches> shudder
+12:53 <@matches> I particularly like #define STBTT_assert(...) do {} while(0)
+12:53 < sulix> That's a standard way of doing that. SDL_assert does the same thing.
+12:54 < sulix> It lets you put a semicolon after it or use it in an if() statement without braces, etc, without things breaking horribly.
+12:56 <@matches> But... your assert doesn't actually assert anything?
+12:56 < sulix> That's because you generally only want it enabled in debug builds.
+12:56 <@matches> I guess
+12:57 < sulix> So typically you'd have it as do {} while(0) in release builds, and something like a function call in debug builds.
+12:57 <@matches> So what is this "more code" going to do :P
+12:57 < sulix> Slightly more modern opengl.
+12:58 <@matches> Yeah, that would be a good idea
+12:58 < sulix> In particular, uploading the content of a document to a VBO, and just re-rendering from that when needed.
+12:58 <@matches> Cool
+12:58 < sulix> Jumps from 9 fps -> 37 fps with 1024^2 objects.
+12:59 < sulix> I've been without internet, though, so it's pretty broken in many ways, still.
+12:59 < sulix> Like outline rects don't work.
+12:59 < sulix> And it still uses a bunch of OpenGL 1.0 stuff.
+12:59 < sulix> And for some reason the glPrimitiveRestartIndex() function isn't working.
+13:00 < sulix> Also I need to write shaders at some point, which will be work.
+13:00 <@matches> I just found the best comment in an IEEE email list
+13:00 <@matches> We should totally use it
+13:01 <@matches> "It is too late now to repair the mistakes of the past that are present in millions of installed systems, but it is good to know that careful research before designing hardware can be helpful"
+13:01 < sulix> Oh man, that's basically the thesis in one sentance.
+13:02 <@matches> Dibs!
+13:02 <@matches> Although I doubt anyone will care if we both quote it
+13:03 < sulix> One thing I did discover reading my OpenGL book is that I think we can get OpenGL to use doubles with some shader hackery.
+13:03 <@matches> :O
+13:03 < sulix> Then again, the book was (partly) written by (one of) the authors of fglrx, so take it with the requisite salt.
+13:04 <@matches> Ah, so how many goats were required?
+13:05 < sulix> Just the two, I think.
+13:06 <@matches> This email message seems sort of vaguely relevant? It's the "infamous double rounding problem"
+13:06 < sulix> I take it that you worked out how to swap between CPU and GPU transforms with right-click.
+13:07 <@matches> I read it in the commit message
+13:08 < sulix> I was quite happy with how much nicer things ran with CPU transforms and doubles.
+13:08 <@matches> I think I can see a difference zooming in far enough
+13:08 <@matches> Yeah that's a huge difference
+13:08 <@matches> I had a tester that was going to automatically make images of the difference when you zoomed in really far
+13:09 <@matches> But there were issues with the screen shot / bmp rendering
+13:09 <@matches> Probably the bmp rendering
+13:09 < sulix> .bmp files suck.
+13:10 <@matches> They are nice and simple though?
+13:10 <@matches> At least, the SDL API is nice and simple
+13:10 < sulix> That's more a triumph of SDL than of the .bmp file format.
+13:10 <@matches> After looking through gm6 files with a hex editor to try and extract sprites...
+13:11 <@matches> Well we could always just fwrite the pixel buffer and fread it back
+13:11 <@matches> If you want no one to be able to use our files without compiling our program :P
+13:12 < sulix> I'm personally a fan of LodePNG, but I'm too lazy to hack it in at the moment: http://lodev.org/lodepng/
+13:13 < sulix> I'm probably going to get around to fixing all of the warnings in stb_truetype one day.
+13:13 <@matches> Haha
+13:13 <@matches> What about implementing an Oct-tree?
+13:14 <@matches> So .bmp is just a header and then the raw pixel data? What's disgusting about that? No compression?
+13:16 <@matches> Wait png is also just a header and then an IDAT section
+13:17 <@matches> Oh well you can put lodepng in if you want I guess
+13:17 <@matches> As long as I can open the images in eom
+13:18 <@matches> Ah so PNG is compressed. I missed that
+13:19 <@matches> Meh
+13:19 <@matches> Oh and alpha channel
+13:19 <@matches> Yeah
+13:19 <@matches> I remember that now
+13:20 <@matches> xpaint is the least shitty of the shitty sprite editors in debian, but it only stores RGB because it was designed around bmp and I guess they just hacked on exporting to other formats later
+13:21 <@matches> If you open things with alpha it gets really confused
+13:23 < sulix> You can put alpha in .bmp files, but then they sometimes crash KDE.
+13:26 <@matches> We can just run all our bmp files through image magick
+13:26 <@matches> convert a.bmp a.png
+13:26 <@matches> Done
+13:27 <@matches> Hmm, maybe if I opened the data from the gm6 files as png they would work, I was assuming they were bmps -_-
+13:27 <@matches> Actually gif
+13:27 <@matches> Probably
+13:28 <@matches> Since it has "Save as gif"
+13:28 <@matches> But that is not relevant to this project
+13:33 < sulix> Damn, just discovered that the opengl feature I was using for rectangle outlines is not supported by my laptop's hardware.
+13:34 < sulix> (This explains one of the bugs I've been seeing, but sadly only one)
+13:47 < sulix> Okay, remaining code pushed.
+13:47 < sulix> I am sorry.
+13:53 <@matches> I'm messing around trying to do something evil so I'll merge later
+13:53 <@matches> But you don't seem to call ToggleGPUTransform when there is a right click
+13:54 <@matches> Oh wait, I need to make clean
+13:54 <@matches> Cool
+13:54 <@matches> (So much for our Makefile magically tracking the header files :S)
+13:58 < sulix> It does it for every header file except ones included by main.cpp because of the weird main.cpp swapping stuff.
+13:59 <@matches> That main swapping stuff is amazing
+13:59 <@matches> It is worth it
+13:59 <@matches> Except main.cpp ends up eventually including all the header files
+14:00 <@matches> I think there is an alternative Makefile that just has every single header file in the current directory as a dependency for each .o file
+14:01 <@matches> But I'm normally used to running make clean anyway
+14:22 <@matches> Eh I was going to make a video of the difference between GPU and CPU coord transforms but it's not that great
+14:23 <@matches> Whatever you have done does not look happy
+14:24 < sulix> It takes like 5 minutes to DebugDumpObjects with a million objects, but it works okay* after that.
+14:24 <@matches> Yeah ok
+14:24 < sulix> *well, sort-of.
+14:25 < sulix> If you just want to show off the precision, getting rid of most of those objects is probably the right thing to do.
+14:25 <@matches> Interesting things happen when you zoom out really far
+14:25 <@matches> Do we care about that
+14:25 < sulix> I'm going to go with "no".
+14:26 <@matches> Ah, but the rectangles are not all the same size
+14:26 < sulix> This is a product of rounding to the nearest pixel. They'd be fine with antialiasing.
+14:29 <@matches> I have pushed a single line contribution
+14:29 <@matches> I decided not to bother with all the changes I made to make the video prettier
+14:29 <@matches> Since I can't actually capture my desktop properly anyway
+14:30 <@matches> I suppose I could make it render bmps and ffmpeg them all but that is way too much effort
+14:31 <@matches> So
+14:31 <@matches> Literature Reviews
+14:31 <@matches> They are a thing
+14:38 <@matches> I probably should not reference an email thread
+14:53 <@matches> In other news, I think this jvm FPU doesn't actually implement sqrt
+14:57 <@matches> It always gives 0x0 on sqrt ops
+14:57 <@matches> I certainly hope there isn't a jvm somewhere that just doesn't do square roots
+14:58 <@matches> They probably hacked it into some other part of their project instead of putting it in the FPU
+16:08 <@matches> So fprintf style formatting isn't very clever when it comes to floats vs doubles vs long doubles
+16:11 <@matches> Eg: %lf will work for either floats or doubles and %f will work for either floats or doubles (by truncating) but %llf is the only thing that works for long doubles and it only works for long doubles
+16:12 <@matches> s/truncating/casting whatever
+16:52 <@matches> We can compile with long double
+16:52 <@matches> I suspect this may break things but whatever
+16:52 <@matches> Running calculatepi on motsugo to see how much difference it actually makes...
+17:08 <@matches> Charles Babbage seems like an interesting fellow
+17:09 <@matches> "e sought to prove the
+17:09 <@matches> reality of the devil by drawing with his blood a
+17:09 <@matches> circle on the floor and repeating the Lord’s prayer
+17:09 <@matches> backward"
+17:09 <@matches> The things one does for science
+17:44 <@matches> Reading about Charles Babbage counts as Literature Review...
+17:44 <@matches> Actually I'm trying to find a paper written *by* him
+17:44 <@matches> Since apparently he came up with Floating Point representations
+22:11 <@matches> Found an actual paper talking about floating points on GPUs
+22:12 <@matches> It says they don't conform to IEEE and also the manufacturers don't like to tell people what they do do
+22:12 <@matches> So they wrote a version of Paranoia, which was a test program for computers in the 1980s before IEEE, to work out the characteristics of flops on various GPUs
+22:13 <@matches> This is probably of interest
+22:14 <@matches> So far one of the best papers I have on algorithms in software is actually one talking about implementing those algorithms in hardware instead
+22:15 <@matches> I also have a random obituary to Charles Babbage just because
+22:16 <@matches> Unfortunately UWA directs me to some useless website that just tells me the citation details and doesn't give me a download for any of Babbage's papers
+22:17 <@matches> He has some books but they are mostly about economics
+22:18 <@matches> Would have been nice if he'd written something that says "I have invented floating point" but I guess not
+22:18 <@matches> That's only really of historical interest but it'd be nice
+--- Day changed Tue Apr 22 2014
+01:17 <@matches> Urgh looking at the git diff
+01:17 <@matches> I really have not accomplished much
+01:30 <@matches> Oooh, motsugo finally got to a number of intervals where long double is better than double
+11:56 < sulix> So it turns out that I've broken the open-source GL drivers.
+11:56 < sulix> They don't support one of the features ("primitive restart") we need when in compatibility mode.
+11:56 < sulix> So I guess now I've got to rewrite everything to use OpenGL 3.
+14:47 <@matches> ?
+14:48 <@matches> I should probably look more carefully at what the OpenGL stuff is doing nowdays
+14:49 <@matches> Downgrading to OpenGL 3 sounds drastic
+14:50 <@matches> Wait 3 is the OK one, 4 is the new one
+14:50 <@matches> 1 is the ancient one
+14:52 <@matches> I see pointer arithmetic...
+14:53 <@matches> banana would be furious
+14:53 <@matches> should be using std::super_ptr_unsegfaultable_arith
+14:53 <@matches> (I am not a fan of the smart pointers)
+14:55 <@matches> *indexData = 0xFFFFFFFF; // Primitive restart.
+14:55 <@matches> I do not know what is going on here :S
+14:58 <@matches> Ahh I get it now
+14:58 <@matches> Reading commit messages turns out to be useful
+15:04 <@matches> git blame for view.cpp reveals that I still own the opening braces on some things
+15:05 <@matches> That's about it :P
+15:06 <@matches> I'm going to keep looking at rounding errors and maybe have a better thing than calculating pi
+15:06 <@matches> As a bench mark
+15:07 <@matches> I might look at Paranoia
+15:07 <@matches> Although it was originally in BASIC
+15:07 <@matches> And ~7000 lines
+15:07 <@matches> With almost no whitespace characters
+15:07 <@matches> And totally no indents
+15:08 <@matches> I sometimes get the feeling people used to be smarter than we are now...
+15:08 <@matches> Then I remember that those people are ultimately responsible for the tools we use now
+15:15 < sulix> Speaking of tools we use now, I think I've just got the debug font code to not only randomly corrupt a varible, but also cause valgrind to crash.
+15:18 < sulix> Okay, we need to fix that makefile at some point.
+15:38 <@matches> make clean?
+15:41 <@matches> It's not actually swapping out main.cpp
+15:41 <@matches> It just doesn't have main.o in the link objects and has main in the $(BIN) target and the testers in the tests/% target
+15:42 <@matches> I guess that is swapping out main but MAIN is not being changed
+15:42 <@matches> derp
+15:45 <@matches> I think I fixed it?
+15:45 < sulix> Ah. Well, you've got a merge conflict to look forward to.
+15:45 <@matches> Not if I just NEVER COMMIT IT
+15:46 <@matches> I'm going to call your fix being right and mine being a horrible hack
+15:46 <@matches> Ok I pullsd some changes to graphics stuff, is that it or is there more?
+15:46 < sulix> I haven't fixed it, I've just gone and bu(gg|ff)ered up the font stuff.
+15:47 <@matches> So it's not meant to render unless something changes? But the debug font stuff is changing so it needs to keep rendering?
+15:48 <@matches> I see a lot of "Flushing Debug Font arrays"
+15:48 < sulix> The debug font stuff is separate from the whole view system.
+15:48 <@matches> That makes sense
+15:48 < sulix> It's just trying to fill up a buffer of quads with individual characters in it and then draws them when the buffer gets full.
+15:49 < sulix> One more step on the path of getting rid of all of the OpenGL 1.1 stuff.
+15:50 <@matches> Haha
+15:50 <@matches> git stash seems to think I modified graphicsbuffer.h and screen.h
+15:51 <@matches> git diff seems to think everything is identical
+15:51 <@matches> I'm just going to git reset the things I didn't actually change...
+15:52 < sulix> I do that far too often.
+15:52 <@matches> Oh there is a comment "//test" for testing the Makefile
+15:53 <@matches> And a comment "This isn't the Screen class?" where you copy/pasted the screen class description for the GraphicsBuffer class
+15:53 <@matches> I don't think they need to be preserved
+15:54 < sulix> Yeah, I should have got rid of that screen class bit by now.
+15:55 <@matches> Have a 2 line commit
+15:55 < sulix> The best kind.
+15:55 <@matches> I really need to cut back on the new line creep
+15:56 <@matches> It's like I can't add a line by itself without putting in extra whitespace 
+15:57 <@matches> Uh oh we've ran out of coffee here
+15:58 <@matches> I'm slightly scared by how much the graphics code has increased since I last actually understood how it worked...
+15:59 <@matches> Can you change those *vertexData to *(vertexData++) or is that considered even uglier
+16:03 < sulix> I thought of that, but given how much pointer arithmetic debugging I was going to do, I wanted it to be really obvious when the pointer was being incremented.
+16:03 < sulix> The plan is to have a nice AppendFloat() function or similar that will do this eventually.
+16:05 < sulix> Hmm: "Buffer usage warning: Analysis of buffer object 2 (bound to GL_ARRAY_BUFFER_ARB) usage indicates that the GPU is the primary producer and consumer of data for this buffer object. The usage hint supplied with this buffer object, GL_STATIC_DRAW, is inconsistent with this usage pattern. Try using GL_STREAM_COPY_ARB, GL_STATIC_COPY_ARB or GL_DYNAMIC_COPY_ARB instead.
+16:06 < sulix> Thanks nVidia.
+16:06 < sulix> Now if only we were using OpenGL 4.4 which got rid of buffer usage hints entirely.
+16:29 <@matches> Also I think you forgot the naming scheme :P
+16:30 <@matches> vertex_data
+16:31 <@matches> I will go back to pretending to be doing a literature review
+16:32 <@matches> Instead I will probably plot some graphs
+16:48 <@matches> So
+16:48 <@matches> If you look up "Handbook of Floating Point Arithmetic" on google (which lots of things like to reference these days)
+16:48 <@matches> You can download the entire thing
+16:48 <@matches> I was prepared to pay like $20 for it on amazon
+16:49 <@matches> Oh amazon doesn't sell actual books anymore though does it?
+16:49 <@matches> No they do have it
+16:50 <@matches> For $100...
+16:50 <@matches> I think I'll just stick with my free pdf thanks
+16:55 <@matches> "Handbook" being 579 pages...
+17:04 <@matches> I think if a textbook is citing blog posts we can probably get away with it
+17:05 <@matches> Oh my god I love this textbook
+17:05 < sulix> I was watching a conference talk last night when the presenter just said: "this technique is described on this guys blog. Here's a link."
+17:05 <@matches> "Table 1.1 gives the results obtained by compiling Program 1.1 and running on a Pentium4, using the GNU Compiler Collection and the Linux system"
+17:06 <@matches> [Complete C code for Program 1.1 follows]
+17:06 <@matches> None of this "Pseudo code" crap
+17:07 < sulix> Clearly we should get an extra 10% for every line of pointer arithmetic in our theses.
+17:07 <@matches> There'
+17:07 <@matches> s a problem here
+17:07 <@matches> How do I not make the entire literature review just paraphrased from this one text book
+17:08 <@matches> Mr Gullible and the Chaotic Bank Society!
+17:08 <@matches> It has stories!
+17:08 <@matches> Parents should read this textbook to their children
+17:09 < sulix> I'm pretty certain I know someone with a data structures and algorithms picture book...
+17:09 <@matches> That reminds me of a children's book I wrote about multithreading
+17:10 <@matches> I should probably scan it one day
+17:10 < sulix> Did it begin "Once upa timeon...
+17:10 <@matches> I think it did actually
+17:10 <@matches> Once upon a time there was a process who had a lot of work to do...
+17:11 <@matches> "I should probably scan it one day" - Why not TODAY!
+17:11  * matches goes searching
+17:16 <@matches> It is no where to be found
+17:16 <@matches> I distinctly remember going to throw it out and deciding not to, but not where it actually went
+17:27 <@matches> So maybe compiling a bunch of HFPA's examples using our Real type is a good way to make benchmarks
+17:27 <@matches> I don't know
+17:27 <@matches> My part of the project seems to move further and further away from the document formats thing
+17:27 <@matches> Maybe I'll try and compile the GPU Paranoia
+17:28 <@matches> Hah
+17:34 <@matches> It seems like whatever Mathematica does is what we should do
+17:35 <@matches> I wonder if wolfram is open about how Mathematica actually works
+17:35 <@matches> I don't think they are
+17:35 <@matches> The CQM lecturer for physics found a bug in Mathematica's number representation once that she showed us
+17:35 <@matches> Apparently she reported it years ago and it's still there
+17:36 <@matches> This segued nicely into why we should learn fortran
+--- Day changed Wed Apr 23 2014
+14:00 <@matches> IEEE's float encoding is inconvenient
+14:01 <@matches> The mantissa is like, reversed
+14:01 <@matches> b_{23-i} * 2^{-i}
+14:19 <@matches> And the implicit extra 1 except when it isn't is a pain in the ass as well
+14:19 <@matches> It's like
+14:19 <@matches> I can't just copy the right bits I have to think
+14:19 <@matches> What is this
+14:19 <@matches> Mental effort
+14:19 <@matches> Blargh
+14:20 <@matches> I should have just stuck with the 8 bit floats with their 2 sign bits
+14:20 <@matches> The hydra float
+15:17 <@matches> Wow you get really different representations with an IEEE encoding of the bits
+15:17 <@matches> ...
+15:17 <@matches> I think I liked just treating the two parts as integers in the order they were stored better
+15:18 <@matches> I have to call pow(3) and a floating point division for every '1' in the mantissa to get it to agree with IEEE
+15:19 <@matches> Unless I'm missing some obvious trick
+15:20 <@matches> But in IEEE the mantissa is not an integer
+15:37 <@matches> Ooookkk
+15:38 <@matches> You're precision doesn't disappear as fast when you do it that way
+15:38 <@matches> Your
+15:38 <@matches> Whatever
+--- Day changed Thu Apr 24 2014
+14:40 -!- You're now known as notmatches
+14:40 -!- You're now known as matches
+14:41 <@matches> Ok, less spammy channel time
+14:41 -!- mode/#ipdf [+b m:matches!*@*] by matches
+14:41 <@matches> Spam
+14:41 <@matches> Dammit
+14:42 -!- mode/#ipdf [-o matches] by matches
+14:42 < matches> Spam
+14:43 < matches> Yay
+14:43 < matches> ... this will all appear in the next git commit won't it -_-
+14:52 -!- You're now known as notmatches
+14:52 -!- You're now known as matches
+--- Day changed Sat Apr 26 2014
+00:45 -!- mode/#ipdf [+o matches] by OperServ
+00:46 <@matches> Incoming "at least it is self consistent in its wrongness" floating point conversion
+00:48 -!- mode/#ipdf [-o matches] by matches
+00:48 < matches> Still can't talk
+00:48 < matches> Excellent
+--- Day changed Sun Apr 27 2014
+17:10 < sulix> I finally got ipdf working on my laptop again by porting everything to OpenGL 3.1.
+17:10 < sulix> I'm so sorry about how ugly the code now is, by the way.
+18:04 -!- mode/#ipdf [+o matches] by OperServ
+18:04 -!- Pommers [[email protected]] has joined #ipdf
+18:05 < Pommers> You know what a really good feature for a PDF reader would be? The ability to have it completely borderless without menus, so you just see the page!
+18:05 -!- Pommers [[email protected]] has left #ipdf []
+18:06 <@matches> Wat
+18:06 <@matches> Well we've got that
+18:06 <@matches> We just can't read pdfs
+18:07 <@matches> Did you get much done not going to the cleanup?
+18:07 <@matches> I managed to transfer some dust from one location to another location, and then the wind blew it back in my face
+18:08 <@matches> Then I looked at Frames' proposal and despaired at how much it is actually complete and has words in it
+18:08 <@matches> I think he's onto something with his plan of actually writing things
+18:14 -!- matches changed the topic of #ipdf to: ipdf the pdf doesn't stand for pdf
+18:14 -!- matches changed the topic of #ipdf to: ipdf the pdf doesn't stand for pdf but the df stands for df
+18:14 -!- matches changed the topic of #ipdf to: Sort of
+18:15 <@matches> I need a script to auto mute me...
+18:15 < sulix> I spent basically all of today on that one commit.
+18:15 -!- mode/#ipdf [-o matches] by matches
+18:15 -!- mode/#ipdf [+o matches] by OperServ
+18:15 < sulix> Whether or not that was more useful than the cleanup remains to be seen.
+18:16 <@matches> I should look at it I guess :P
+18:16 < sulix> It compiles*
+18:16 < sulix> *but has lots of warnings.
+18:16 <@matches> It can't be worse than my tester that converts floats to floats
+18:17 < sulix> I'm pretty certain it can be and is worse.
+18:17 <@matches> However I've realised I kind of actually do need to be able to do that
+18:17 <@matches> Woah 3k+ lines
+18:17 <@matches> * 4k+ lines
+18:18 < sulix> Most of it was autogenerated, but still...
+18:18  * matches weeps for OpenGL 1
+18:18 < sulix> You don't realise how much you miss it until it's gone...
+18:19 <@matches> So what does all this stuff actually do
+18:19 <@matches> Because I could see rectangles and things just fine without it
+18:19 < sulix> Exactly the same thing as before but it works on my laptop now.
+18:19 <@matches> I see a shader program, that's obviously good
+18:20 <@matches> Actually I see code for a shader but no shader yet
+18:20 < sulix> The shaders are all #defines, I'm afraid.
+18:22 <@matches> What was wrong with your laptop?
+18:23 < sulix> It doesn't support the OpenGL compatibility mode, so --- as I was using the OpenGL 3.1 feature of "primitive restart", I had to code the entire thing in OpenGL 3.1
+18:23 < sulix> On the bright side, this paves the way for doing things like getting the GPU to use doubles.
+18:26 <@matches> Ooh
+18:27 < sulix> (also halves)
+18:27 < sulix> (halfs?)
+18:27 <@matches> Do GPUs use IEEE floats? I had a reference that seemed to be complaining they didn't
+18:27 <@matches> Although it was circa 2007
+18:28 < sulix> I don't think that there's a requirement that they internally use them, but they do read and write them.
+18:28 < sulix> A bit like how x86 processors use(d) 80 bit reals internally and rounded when reading/writing to memory.
+18:28 <@matches> Do halves have a different mantissa encoding
+18:29 <@matches> The examples given on wikipedia seem wrong
+18:30 < sulix> I think this is the canonical description: http://www.opengl.org/registry/specs/NV/half_float.txt
+18:33 <@matches> That would be before IEEE specified half (binary16) but its the same summation for the mantissa anyway
+18:33 <@matches> binary16 is (briefly) in the 2008 revised 754
+18:34 <@matches> So I think wikipedia is giving a wrong example, but I'm not confident enough to go and change wikipedia
+18:35 <@matches> Also I just realised my conversion of the mantissa to a Real is horrible
+18:35 <@matches> Oh well, it can get fixed later
+18:36 <@matches> Hopefully I can finish my fluid mechanics assignment quick enough to actually work on my progress report / proposal / thing
+18:36 <@matches> (Hah)
+18:36 -!- mode/#ipdf [-o matches] by matches
+18:37 < sulix> Yeah, I'm going to see how much Lit review I can write for tomorrow. :/
+--- Day changed Mon Apr 28 2014
+22:06 -!- mode/#ipdf [+o matches] by OperServ
+22:10 <@matches> Must find motivation to work on Lit Review at 10pm...
+--- Day changed Tue Apr 29 2014
+10:06 <@matches> Must find motivation to work on Lit Review at 10am...
+--- Day changed Wed Apr 30 2014
+13:04 <@matches> I wanted to rasterise a vector image so I could compare them at the same scale ("These look the same!") and zoomed ("This one looks crappier!)
+13:04 <@matches> But because vector graphics editor/viewers don't use pixels as units but they do when they export to a bitmap, it's difficult to actually get them to look the same
+13:04 <@matches> Before scaling
+13:05 <@matches> I guess a screenshot tool might be the best way
+13:06 <@matches> I don't know if I need to do this really
+13:07 <@matches> I guess Mechanical and Chemical engineers marking this will probably benefit from having an example
+13:07 <@matches> Doesn't everyone know the difference between vector and raster graphics
+13:07 <@matches> Where was that paper that had tux vector and rasterised
+13:10 <@matches> Ah, worth2003xr.pdf
+13:11 <@matches> If it's in a paper I guess it can go in a Lit Review
+13:11 <@matches> At least until I have something better
+13:15 <@matches> Kind of ironic that the image I am using was actually scanned first as a bitmap and then converted to vector using Trace Bitmap
+13:57 <@matches> Ah, it's actually impossible to get it to be exactly the same, because even taking a screenshot on my own screen it will then be different depending on the display of whoever reads the digital pdf
+13:57 <@matches> Oh well
+13:58 <@matches> I suppose "It looks shittier" will have to suffice without trying to make them look exactly the same before scaling
+13:59 <@matches> I have spent WAY too long making this example
+13:59 <@matches> I could have just gone "See \cite{worth2003xr.pdf}"
+16:00 <@matches> So it might be worth talking about dpi in pdf viewers and how it SUCKS
+20:17 -!- mode/#ipdf [-o matches] by matches
+21:14 -!- mode/#ipdf [+o matches] by OperServ
+21:46 <@matches> I have perpetrated XML on the codebase
+21:47 <@matches> I have grand visions of our code supporting SVGs
+21:47 <@matches> I also have grand visions of actually doing a Literature Review
+21:50  * sulix git pull's with some trepidation.
+21:52 < sulix> Never heard of pugixml before but it looks okay.
+21:55 <@matches> The W3C XML specification is pretty terrifying
+21:56 <@matches> I will feel more like I've satisfied the "Document Formats" part of the Literature Review if I say some things about it
+21:57 <@matches> Well SVG in particular
+21:57 <@matches> SVG defines a "minimum" precision of IEEE binary32 
+21:58 <@matches> But there's a specification for "High Quality" viewers that have to use binary64
+21:58 <@matches> That's probably the only real thing relevant directly to our problem
+--- Day changed Thu May 01 2014
+01:23 <@matches> It's May 1st
+01:23 <@matches> This means we can no longer say "The Literature Review is due Next Month"
+01:23 <@matches> IT'S DUE THIS MONTH
+01:23  * matches freaks out
+01:23 <@matches> ... but after sleep
+01:25 <@matches> Page 12 of my Literature Review by the way
+01:25 <@matches> Is the only page I like
+16:34 <@matches> The C version of paranoia compiled for me
+16:34 <@matches> Not terribly exciting (I have an IEEE 754 compatible processor! Amazing)
+22:17 <@matches> W Kahan's website is a very interesting if slightly difficult read
+22:24 <@matches> He appears to have written this 80 page pdf in a day
+22:27 <@matches> It kind of reads like one of those religious propaganda pamphlets
+22:27 <@matches> "Java is the Work of Satan"
+22:27 <@matches> "Kernighan-Ritcie C floating-point semantics are the light"
+22:28 <@matches> But every so often he has a graph or example that makes him seem less crazy
+22:34 <@matches> "And now Java forbits you to mention or use extra-precise long double arithmetic, though IEEE Standard 754 recommends its use and over 95% of computers on desktops have it built into their hardware. You paid for it, but Java denies you its benefits."
+22:34 <@matches> Java has long double now right?
+22:34 <@matches> Although that JOP I was looking at was just 32 bit
+22:36 <@matches> Ah, java.lang.math.BigDecimal
+22:37 <@matches> "But be careful with division, because it will throw exceptions if it's like 1/3, then it will be Non-terminating decimal expansion."
+22:37 <@matches> That sounds horrifying
+22:40 -!- mode/#ipdf [-o matches] by matches
+--- Day changed Sat May 03 2014
+22:01 < sulix> My crazy idea to you would be to research p-adic number representations.
+22:01 < sulix> It's been a while, but they were mentioned a couple of times in pure maths units and seemed interesting/crazy and I can't remember much about them.
+22:28 -!- mode/#ipdf [+o matches] by OperServ
+22:29 <@matches> I will look at them, the "just use a float but with more bits until you run out of memory" doesn't seem a very well thought out approach
+22:29 <@matches> Maybe someone actually cares enough to research better ways
+22:29 <@matches> I mean, something's wrong with an idea when you can write "1/3" and have a runtime exception (re: Java BigNumber)
+22:30 <@matches> I plan to write some nasty things about Java based on Kahan's rants so as to gloss over the fact that it has BigNumber built into it and forstall the inevitable "Why didn't you use Java!"
+22:31 < sulix> I think we want to truncate to whatever the most accurate you can see at the given zoom level.
+22:31 <@matches> Yeah
+22:32 <@matches> It annoys me that XML and HTML specs don't have a PDF version
+22:32 < sulix> I've been printing to pdf for some of those things.
+22:33 <@matches> None of the links to different sections would work though
+22:35 <@matches> Specifications are thrilling
+22:35 <@matches> "How to read this specification"
+22:35 <@matches> "This specification should be read like all other specifications"
+22:35 <@matches> Oh wait
+22:35 <@matches> It actually gets better
+22:35 <@matches> Is that...
+22:35 <@matches> Humour!
+22:36 <@matches> I thought that wasn't allowed!
+22:36 <@matches> "First it should be read cover-to-cover, multiple times. Then, it should be read backwards at least once. Then it should be read by picking random sections from the contents list and following all the cross references"
+22:37 <@matches> As much as I love the idea of reading 626 pages of specification backwards...

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