egg changed the topic of #principia to: Logs: https://esper.irclog.whitequark.org/principia | <scott_manley> anyone that doubts the wisdom of retrograde bop needs to get the hell out | https://xkcd.com/323/ | <egg> calculating the influence of lamont on Pluto is a bit silly…
<_whitenotifier> [Principia] eggrobin synchronize pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
egg|anbo|egg_ has joined #principia
egg|anbo|egg has quit [Ping timeout: 198 seconds]
<_whitenotifier> [Principia] eggrobin synchronize pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
egg|anbo|egg has joined #principia
egg|anbo|egg__ has joined #principia
egg|anbo|egg___ has joined #principia
egg|anbo|egg has quit [Ping timeout: 204 seconds]
egg|anbo|egg_ has quit [Ping timeout: 198 seconds]
egg|anbo|egg has joined #principia
egg|anbo|egg___ has quit [Ping timeout: 189 seconds]
egg|anbo|egg has quit [Remote host closed the connection]
<queqiao-> ⟨S​ocialistComrade⟩ yeah i dont plan to use it now, i cant get to orbit in RO yet XD just lemme know if it is really buggy
<queqiao-> ⟨l​amont⟩ slows your computer down a lot, tons of bugs, i'd avoid it
egg|anbo|egg has joined #principia
egg|anbo|egg has quit [Remote host closed the connection]
egg|anbo|egg has joined #principia
<queqiao-> ⟨e​gg⟩ you are talking about KSP, right? :-p
egg|anbo|egg has quit [Remote host closed the connection]
egg|anbo|egg has joined #principia
egg|anbo|egg has quit [Remote host closed the connection]
egg|anbo|egg has joined #principia
<queqiao-> ⟨r​ocketman⟩ I wonder what buzz aldrin would think of KSP with principia
<queqiao-> ⟨r​ocketman⟩ wasn't his thesis on orbital rendezvous?
<queqiao-> ⟨S​umguy⟩ Yes
<queqiao-> ⟨S​umguy⟩ He’d probably get stuck on installation, sadly
egg|anbo|egg has quit [Remote host closed the connection]
<queqiao-> ⟨D​amien⟩ went to the moon, also doesn't know why gamedata/gamedata is a bad thing
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ Aside from that potential problem, I doubt he would dislike it.
<queqiao-> ⟨S​umguy⟩ He went to the moon with slide rules.
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ They had computers... less powerful than a smart watch.
<queqiao-> ⟨Q​uadrupole⟩ Apollo program used patched conics iirc
<queqiao-> ⟨S​umguy⟩ Essentially with a TI-85
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ Yes, but I doubt the Aldrin Cycler math did.
<queqiao-> ⟨S​umguy⟩ Fair, but just remember that he’s 91.
<queqiao-> ⟨S​umguy⟩ Also #offtopic
egg|anbo|egg has joined #principia
egg|anbo|egg has quit [Remote host closed the connection]
<queqiao-> ⟨l​amont⟩ @egg so looking at https://en.wikipedia.org/wiki/Leapfrog_integration#4th_order_Yoshida_integrator and your integrators/methods.hpp, it looks like your a's end with zero and would correspond to the d's that the wiki page uses, and your b's would that pages c's?
<queqiao-> ⟨e​gg⟩ as a general caveat I do not recommend the Wikipedia articles when you get into the weeds of this subject (and many others), they tend to be at best poorly written and have inconsistent notation, very often they also have things that are directly contrary to common conventions or flat-out wrong.
<queqiao-> ⟨e​gg⟩ and see the 吉田 paper for details on what 吉田 does.
<queqiao-> ⟨e​gg⟩ (lines 54 through 57 should probably use bibliographic codes)
<_whitenotifier> [Principia] eggrobin synchronize pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
<queqiao-> ⟨l​amont⟩ yeah my problem is that i can read this:
<queqiao-> ⟨l​amont⟩ while i can't at all read that
<queqiao-> ⟨l​amont⟩ (not yet anyway)
<queqiao-> ⟨l​amont⟩ feels like we're doing DSP in the z-plane in that latter one
<queqiao-> ⟨l​amont⟩ so my question really boils down to "WTF is this nomenclature?" and i'm trying to attack it via a rosetta stone approach to start with
<queqiao-> ⟨l​amont⟩ oh that code comment is perfect though and anticipates my next question about ABA vs BAB
<queqiao-> ⟨l​amont⟩ and yes, wikipedia is terribad
<queqiao-> ⟨s​ichelgaita⟩ PSA: New Reach video at https://www.youtube.com/watch?v=mkfBKk3dAiI (no Principia, though).
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ This is the first I've heard of wikipedia pages on higher math being inconsistent. What would you recommend instead for general purposes?
<queqiao-> ⟨B​utcher⟩ Wikipedia in general is inconsistent.
<queqiao-> ⟨l​amont⟩ from my experience the wikipedia page on gravity drag was horrible, see my frustrated comments in the talk page: https://en.wikipedia.org/wiki/Talk:Gravity_loss
<queqiao-> ⟨l​amont⟩ i also found the wikipedia implementation of brent's root finding algorithm was just fairly broken, although i still haven't had the time to try to come back and really debug it and propose fixes.
<queqiao-> ⟨s​ichelgaita⟩ https://en.wikipedia.org/wiki/Geopotential_model is another trainwreck.
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ I am slowly working on an ellipsoidal voronoi python script using information from the page on Vincenty's formulæ
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ But it apparently might not be accurate
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ But it apparently might not be accurate as described there (edited)
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ But it apparently might not be accurate as described there :/ (edited)
<queqiao-> ⟨l​amont⟩ i found and fixed a perf bug in Heap's algorithm due to someone incorrectly transcribing the algorithm in the paper as they were converting to zero-indexed arrays (it worked, it just did a lot more work than it needed to): https://en.wikipedia.org/w/index.php?title=Heap%27s_algorithm&type=revision&diff=1007649544&oldid=1002937119
<queqiao-> ⟨e​gg⟩ I just implemented it from Brent’s paper in Principia
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ Was it a simple typo, or a big mistake?
<queqiao-> ⟨l​amont⟩ a "thinko"
<queqiao-> ⟨B​utcher⟩ Speaking of #2400 I need to clear some history.
<queqiao-> ⟨B​utcher⟩ Right after I finish debugging this sky crane.
<queqiao-> ⟨e​gg⟩ we should probably post an update on the bug, we have made some progress on understanding what we want to do
<queqiao-> ⟨e​gg⟩ oh btw, some experiments reveal one thing: don’t delete the histories of interplanetary probes, it’s tiny (and it’s the stuff you want to look at anyway)
<queqiao-> ⟨B​utcher⟩ I was thinking of a Mars orbiter and some Lunar orbiters.
<queqiao-> ⟨e​gg⟩ yeah orbits are not cheap
<queqiao-> ⟨B​utcher⟩ Probably the Venus orbiter if that's still alive.
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ What if they do a bunch of weird flybys?
<queqiao-> ⟨l​amont⟩ that is a pretty battletested implementation of brent's algorithm, it works with an rtol of 2.24e-15 reliably so far
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ What if they do a bunch of weird flybys on the way? (edited)
<queqiao-> ⟨s​ichelgaita⟩ Flybys are cheap. Keep them.
<queqiao-> ⟨e​gg⟩ ah the root-finding one, https://github.com/mockingbirdnest/Principia/pull/2731; we don’t even use a tolerance for that one, we just go down to the granularity of the floating-point
<queqiao-> ⟨e​gg⟩ doesn’t take long and means one less number to think about
<queqiao-> ⟨s​ichelgaita⟩ Wikipedia doesn't even talk about minimization I think.
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ That's strange
<queqiao-> ⟨l​amont⟩ yeah the algorithm from wikipedia didn't go down to that granularity and it'd get lost and explode with too many iterations
<queqiao-> ⟨e​gg⟩ …how
<queqiao-> ⟨l​amont⟩ wikipedia
<queqiao-> ⟨e​gg⟩ how hard is it to copy an ALGOL procedure from a papre
<queqiao-> ⟨e​gg⟩ how hard is it to copy an ALGOL procedure from a paper (edited)
<queqiao-> ⟨l​amont⟩ i don't know, but there's no way on wikipedia to have someone prove that they've checked their work and there's no test suite
<queqiao-> ⟨l​amont⟩ so "young woman" in algol becomes "virgin" in pseudocode, and then your algorithm never converges because someone assertively made a transcription error
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ But, anyone can edit it and fix it
<queqiao-> ⟨l​amont⟩ conversely: anyone can edit it and break it
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ Yes, but they have bots that try to detect that
<egg|anbo|egg__> unless we are talking about this kind of bot, this is not in the category of problem that is soluble in automation…
<queqiao-> ⟨l​amont⟩ but it really relies on someone taking the code out of wikipedia and actually running it against test cases and finding that it fails and then circling around back and doing the work. the bots don't check for mathematical correctness.
<queqiao-> ⟨l​amont⟩ and subtle errors happen. so the one i fixed in heap's algorithm, it actually worked, it just did too much work.
<queqiao-> ⟨l​amont⟩ and in the case of brent's algorithm it worked down to a tolerance, but not down to actual floating point tolerance.
<queqiao-> ⟨l​amont⟩ (and in the case of the gravity loss / gravity drag article it was just a lot of people with passing acquaintance with KSP trying to sound authoritative and citing references they didn't understand, with no actual experts stepping up to clean up the article)
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ It flags very strange edits to be checked by humans
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ Or, it is meant to
<queqiao-> ⟨l​amont⟩ but math errors won't necessarily be "strange" at all
<queqiao-> ⟨e​gg⟩ yes you might despam like that; you are not going to identify people who overconfidently transform some code/maths/add their pet incomprehensible proof, etc.
<queqiao-> ⟨l​amont⟩ "(fix iterative case to not call the else branch unnecessarily (for n=4 cuts down calls into the non-swap else branch to 18 from 41) the 1977 paper sets this to i=2 with 1-indexed arrays, so we set it here to i=1 with 0-indexed arrays (the powerpoint PDF appears to be incorrect))"
<queqiao-> ⟨l​amont⟩ thats the comment i added when i changed `i := 0` to `i := 1`
<queqiao-> ⟨(​ᴇxᴘᴇʀɪᴍᴇɴᴛᴀʟshells)⟩ but eventually someone is going to see that change happen and then revert it manually p
<queqiao-> ⟨l​amont⟩ and the really fun bit is that the "powerpoint PDF" was written by robert sedgewick who wrote the book on algorithms and he's got a typo
<queqiao-> ⟨(​ᴇxᴘᴇʀɪᴍᴇɴᴛᴀʟshells)⟩ but eventually someone is going to see that change happen and then revert it manually (edited)
<queqiao-> ⟨(​ᴇxᴘᴇʀɪᴍᴇɴᴛᴀʟshells)⟩ but eventually someone is going to see that change happen and then revert it manually
<queqiao-> ⟨(​ᴇxᴘᴇʀɪᴍᴇɴᴛᴀʟshells)⟩ (usually) (edited)
<queqiao-> ⟨e​gg⟩ yes, if you have someone who understands the subject enough who looks at the page
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ Too bad he isn't the person who offers a cash prize for each published mistake of his that someone reports
<queqiao-> ⟨l​amont⟩ and the 1977 paper is correct, but its written with 1-indexed arrays and its much harder to read than the PDF which is probably how the error got into wikipedia and why i wouldn't be surprised if it gets reverted at some point in time by someone who takes the PDF to be correct and authoritative
<queqiao-> ⟨l​amont⟩ TL;DR: "check yo references"
<queqiao-> ⟨e​gg⟩ and go to the original references
<queqiao-> ⟨B​utcher⟩ [New87]?
<queqiao-> ⟨e​gg⟩ (but beware, that is how you fall into a :rabbit_hole: of somehow writing thirty pages about root-finding methods from the 17th century)
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ I'd have expected it to take more pages
<queqiao-> ⟨e​gg⟩ [Fan92] in this case
<queqiao-> ⟨S​tonesmile⟩ I assume you use cube roots often if you want to optimize them this much, for what do you use them?
<queqiao-> ⟨e​gg⟩ We use them in a couple of places, but they are certainly not performance-critical
<queqiao-> ⟨e​gg⟩ it is, however, a function for which no correctly-rounded implementation currently exists
<queqiao-> ⟨e​gg⟩ which means that we need to have our own if we ever want to get rid of platform-dependent results
<queqiao-> ⟨S​tonesmile⟩ So more 'just for fun' than for principia specifically?
<queqiao-> ⟨e​gg⟩ (and we might as well have the best one)
<queqiao-> ⟨e​gg⟩ What is Principia for though
<queqiao-> ⟨S​tonesmile⟩ Fair point! 😂
<queqiao-> ⟨l​amont⟩ reimplementing unity's floatcurves requires solving a third order equation
<queqiao-> ⟨e​gg⟩ remember, this is the criterion for adding features to Principia, are they fun to implement
<queqiao-> ⟨e​gg⟩ oh I believe there is a paper about that that is impossible to find
<queqiao-> ⟨e​gg⟩ by some frenchman at the national petroleum institute
<queqiao-> ⟨e​gg⟩ by some frenchman at the french petroleum institute (edited)
<queqiao-> ⟨s​ichelgaita⟩ There is a slew of papers by Blinn.
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ Why would the French Petroleum Institute need to reimplement Unity floatcurves?
<queqiao-> ⟨e​gg⟩ about solving cubics, not Unity floatcurves…
<queqiao-> ⟨l​amont⟩ weirdly my double precision floating point implementation seems faster than unity's floatcurve
<queqiao-> ⟨l​amont⟩ (at least on Mono)
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ Is that paper you mentioned the one with the page-long broadly applicable solution?
<queqiao-> ⟨e​gg⟩ Obligatory bibliographic rant from my recent forays: this rational method of third order is not actually due to Householder; the name « Householder’s » seems to originate from this 2001 article http://numbers.computation.free.fr/Constants/Algorithms/newton.html, but Householder, who gives those methods in his 1970 book, attributes them to Schröder’s 1870 paper on root finding methods.
<queqiao-> ⟨e​gg⟩ Schröder seems to not have known about that earlier work, but for the specific case of polynomial degree = method order, the method is actually due to Thomas Fantet de Lagny (1692, or 1691 for pure roots).
<queqiao-> ⟨e​gg⟩ (the rational method of third order is sometimes called Halley’s, but Halley actually cites Lagny’s book, it’s just that nobody follows the citation until they get to the more general work…)
* raptop wonders if egg has found any citation infinite loops
<queqiao-> ⟨P​aculino (ŝi/ri/she/they)⟩ Wikipedia is part of a few probably.
<raptop> Also, there's something incredibly frustrating with seeing a citation of (name et al, pending) in an older paper and nothing promising in the year range on ADS
<raptop> Bonus points if that person has since left the field
<_whitenotifier> [Principia] eggrobin synchronize pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
<_whitenotifier> [Principia] eggrobin synchronize pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
<_whitenotifier> [Principia] eggrobin synchronize pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
<_whitenotifier> [Principia] eggrobin synchronize pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
<_whitenotifier> [Principia] eggrobin edited pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
<_whitenotifier> [Principia] eggrobin synchronize pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
<queqiao-> ⟨(​ᴇxᴘᴇʀɪᴍᴇɴᴛᴀʟshells)⟩ https://en.wikipedia.org/wiki/Wikipedia%3AList_of_citogenesis_incidents?wprov=sfla1
<_whitenotifier> [Principia] eggrobin synchronize pull request #2973: Documentation for a correctly-rounded cube root - https://git.io/J3BRj
* raptop misread that as "a list of citrogenesis incidents"
* raptop recommends against spontaniously generating lemons, as many of them are highly flammable
Iskierka has quit [Ping timeout: 189 seconds]