Automatic commit of irc logs
[ipdf/documents.git] / irc / #ipdf.log
index e88900a..dfd8ea9 100644 (file)
 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...

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