UmbralRaptor changed the topic of #kspacademia to: https://gist.github.com/pdn4kd/164b9b85435d87afbec0c3a7e69d3e6d | Dogs are cats. Spiders are cat interferometers. | Космизм сегодня! | Document well, for tomorrow you may get mauled by a ネコバス. | <UmbralRaptor> … one of the other grad students just compared me to nomal O_o | <ferram4> I shall beat my problems to death with an engineer.
<bofh> Fiora: damn. I think my respect for him just went up even more and it was already around DBL_MAX to begin with.
<bofh> egg|zzz|egg: he is mentioned in the IEEE754-2008 spec as a contributor, yes.
<bofh> page vi, he's one of the Floating Point working group.
e_14159 has quit [Ping timeout: 200 seconds]
Technicalfool is now known as tfsleep
e_14159 has joined #kspacademia
<Fiora> i'm actually slightly annoyed i don't get to work with him as a numerics person, since he mostly works with Accelerate and friends and avoids GPU stuff
<Fiora> because the GPU numerics people are significantly less cool
<bofh> well GPU numerics stuff doesn't quite seem his thing from what I've gathered
<Fiora> well yes, he's only like, 70% masochistic
<Fiora> then again, one could argue gpu numerics isn't nearly as bad, since fuck nans with a rusty spoon
<bofh> NaNs/gremlins aren't that bad IMO
<bofh> tho fuck them every time one lands in a feedback filter routine.
<Fiora> you: nans are important
<Fiora> me: I believe 0 * x should be 0
<bofh> even in the case where x = Inf?
<bofh> like I mean I often have to patch shit to do exactly that
<bofh> so tbh I am torn between my mathematical background which objects, and my audio codec dev background which does exactly the same as you
<Fiora> i'm in compilers so i want everything * 0 to optimize to 0 :P
<bofh> touché.
icefire has quit [Read error: -0x1: UNKNOWN ERROR CODE (0001)]
egg|cell|egg has quit [Remote host closed the connection]
ferram4 has quit [Read error: Connection reset by peer]
ferram4 has joined #kspacademia
<whitequark> Fiora: re apple letting him work remotely: wow.
<whitequark> "say no more"
<Fiora> he told me a story once that went something like this
<Fiora> some new bigwig came into power and noticed scanon was remote and was like, no, you need to come on campus, that's policy
<Fiora> steve canon said uh, lol, no.
<Fiora> it was a very short period of time before the bigwig had been informed by a very large number of people, including other bigwigs, that he is not to hand off their best math person to another company.
<Fiora> he still works remote from his family home in new england.
u_nu has joined #kspacademia
u_nu has left #kspacademia [#kspacademia]
<egg|zzz|egg> o/ bofh Fiora whitequark
<egg|zzz|egg> <Fiora> i'm in compilers so i want everything * 0 to optimize to 0 :P << phl had to regularly complain to the optimization people when he did the numerics libs for Apex, because they'd introduce an optimization that was incorrect and broke some linear algebra thing :-p
<egg|zzz|egg> Fiora: but hey, at least anything * 1 and anything / 1 you can safely optimize
<egg|zzz|egg> which for physics porpoises is probably more useful, that way you can wrap things in physical quantity types and * Metre or / Second get optimized away
<egg|zzz|egg> bofh: also I think he has a series of tweet about the confusing terminology of C++'s std::numeric_limits<double>, I have to say it applies to DBL_MAX too >_<
<kmath> <stephentyrone> God, I just discovered std::numeric_limits<>::lowest(). C++ isn't even *trying* to have reasonable names, are they?
<kmath> <TheOtherDaveS> @stephentyrone Clearly the answer is single-character Unicode pictograms.
<egg|zzz|egg> also I should go to work
egg|zzz|egg is now known as egg|afk|egg
* egg|afk|egg stares at egg|work|egg
* egg|work|egg stares back
egg|work|egg has quit [Quit: Web client closed]
egg|work|egg has joined #kspacademia
ferram4 has quit [Ping timeout: 383 seconds]
<egg|work|egg> bofh: I feel like I should reply to https://twitter.com/stephentyrone/status/890741790579601408 asking about kittenpies3's question but for functions of multiple arguments
<kmath> <stephentyrone> Open to questions about numerical computation, from microarchitecture, assembly, details of floating-point and inte… https://t.co/ZUBqR6uP38
<egg|work|egg> bofh: also about that composition of high/low vs. low/high condition thing, I find it odd
TonyC1 has joined #kspacademia
APlayer has joined #kspacademia
<egg|work|egg> :q
<egg|work|egg> um.
tfsleep is now known as Technicalfool
BPlayer has joined #kspacademia
APlayer has quit [Ping timeout: 204 seconds]
BPlayer is now known as APlayer
<egg|work|egg> <Fiora> i'm in compilers so i want everything * 0 to optimize to 0 :P <<< also, that goes beyond just ignoring NaN, it screws with signed 0, and that's really bad
<APlayer> I asked a few days ago, but it seems everyone (including me ;-) ) forgot about that... How does one calculate the closest approach between two objects orbiting the same body, as shown in KSP's map view?
<egg|work|egg> APlayer: I don't think there's an analytic solution, just look for the minimum distance with a root finding algorithm
<APlayer> Why is there never a sane answer to my questions? :-( LOL
<APlayer> Oh well, we chose to do physics and maths not because it is easy, but because it is hard.
<egg|work|egg> or gradient descent I guess
<bofh> egg|work|egg: it *is* odd
<egg|work|egg> o/ bofh
<egg|work|egg> !wpn bofh
* Qboid gives bofh a hydrofluoroolefin with a † attachment
<bofh> also multiple-arg functions are helk
<bofh> hell*
<egg|work|egg> bofh: "it" refers to the composition thing?
<egg|work|egg> bofh: and yes, that's the understanding I got from multi-arg functions, but I wonder whether there's more to it than "Lasciate ogne speranza, voi ch'intrate"
APlayer has quit [Ping timeout: 383 seconds]
<bofh> oh prolly, I'd ask @stephentyrone tho
<egg|work|egg> bofh: I'll do that when I get back home then
<egg|work|egg> bofh: also is helk hell for elk
<bofh> yep yep
<egg|work|egg> bofh: any idea for APlayer's question?
<bofh> sec. it's a hard one.
<egg|work|egg> bofh: random principia-related question: what's the tangent bundle of the projective plane?
<egg|work|egg> bofh: admittedly this is the sort of question that is going to end with nice abstractions laden with questionably clear comments like https://github.com/mockingbirdnest/Principia/blob/master/physics/rigid_motion.hpp#L60-L67 >_<
<bofh> b/c it's easier than paraphrasing that all into IRC. but the tl;dr is "gross".
<bofh> https://math.stackexchange.com/a/524545 also this is my personal favourite construction fwiw
APlayer has joined #kspacademia
<Fiora> egg|afk|egg: the critical reason why we need to optimize x * 0 is because people write GL/etc code with vectors that contain zeroes
<APlayer> Sorry, lost my connection and had to go afterwards. I am back now - did I miss any answers?
<Fiora> the other big reason why it's important is when you have lots of templated/inlined code people end up with x + 0 and x * 0 without it being obvious to the programmer
<Fiora> and no, x+0 isn't equal to x. x + -0, however, is.
<Fiora> another important optimization is being able to use higher precision than the programmer asked for
egg|phone|egg has joined #kspacademia
<Fiora> ex: float res = half1 * half2; can be optimized into the single instruction float res = (float)half1 * (float)half2;
<bofh> APlayer: not yet, it's a nasty tricky problem
<egg|phone|egg> ;rpn -0 0 +
<kmath> egg|phone|egg: 0.0
<egg|phone|egg> ;rpn -0 -0 +
<kmath> egg|phone|egg: -0.0
<Fiora> yup. you got it
<egg|phone|egg> Right
<egg|phone|egg> That makes sense
<Fiora> that's why in LLVM, "negate" is represented as %1 = fsub float -0.0, %0
<egg|phone|egg> Fiora: i knew about +0 not being moo, had not realized -0 was
<APlayer> I wonder why I keep wanting to know things that are nasty and tricky
<egg|phone|egg> Fiora: nop not moo, autocorrect
<egg|phone|egg> I mean I'm more likely to say moo than nop I guess
<Fiora> of course, you and your silly IEEE. you should feel lucky to have chips where 0 *x == x * 0 ;-)
<Fiora> (The PS2 VU's float unit wasn't commutative)
<egg|phone|egg> Fiora: wat
<Fiora> yes.
<bofh> what
<bofh> why/how?
<Fiora> its rounding mode was "round to whatever"
<egg|phone|egg> ...
<bofh> amazing
<Fiora> it literally was not even commutative.
<Fiora> x * 1 and 1 * x were not the same, and not necessarily x.
<egg|phone|egg> Fiora: but yeah, signed 0 being respected matters, at least outside the GPU world :-p
<Fiora> or the PPC 750CL which is just all kinds of fun
<Fiora> its float FMA is "mixed precision"
<egg|phone|egg> Um
<bofh> UM.
<bofh> I have many questions.
<Fiora> here's how it works.
<Fiora> this has been confirmed through hardware testing.
<bofh> (always a good start)
<Fiora> powerpc, in its infinite wisdom, decided x87 was a great idea.
<egg|phone|egg> Fiora: you still do floating point arithmetic with a cauldron around here?
<Fiora> that is, floating point is implemented with 64-bit internal registers, regardless of whether you're using float or double
<Fiora> "floats" are stored as doubles.
<Fiora> a "float" operation is just equivalent to a double operation where you clamp to float at the end, from a user perspective.
<Fiora> this is universal to PPC.
<bofh> thanks, Kahan. Thahan.
<Fiora> lol
<Fiora> now, this also means you can use float arithmetic on doubles. because they're all technically the same.
<egg|phone|egg> Bofh: where does that même come from
<Fiora> egg|phone|egg: "look around you"
<bofh> egg|phone|egg: look around you, episode 2 iirc
<bofh> was it sulfur, calcium or maths? I can't recall.
<UmbralRaptor> APlayer: to belatedly answer your question, can I assume coplanar ellipses not in a resonance? >_>
<Fiora> on PPC arch as a whole, this is undefined in the arch spec. however, it does work. on the 750CL, in the private arch spec given to nintendo, it *is* defined. presumably, this is how it works in general, but on other chips they didn't want to publicly document it as okay.
<Fiora> the practical purpose is that converting between float and double is free.
<Fiora> since they're all the same thing.
<APlayer> UmbralRaptor: Uh, I don't know. I guess yes, that seems pretty unlikely.
<Fiora> however, this comes with a small catch.
<Fiora> the internal multiply unit in the PPC750CL is a 56x28 multiplier. the adder is 56+56. this lets it do double/float adds in one cycle, and double multiplies in two, and float multiplies in one.
<Fiora> so to do a double multiply/fma you just throw it into the multiplier twice.
FluffyFoxeh has quit [Quit: El Psy Kongroo!]
<Fiora> (56 because 53 + 3 guard bits)
<bofh> jesus fuck.
<Fiora> this is still extremely normal.
<Fiora> nothing weird here. now the weird part comes in.
<UmbralRaptor> (Can I make simplifying assumptions to the point an analytic solution exists?)
<Fiora> when you do a float FMA/mul, you're doing d = a * b + c;
<bofh> Yeah.
<Fiora> it then does a 56x28 multiply, reading 53 bits of a, 25 bits of b, and 53 bits of c.
<Fiora> 25 bits of b, huh? wait, that's neither float nor double!
<APlayer> UmbralRaptor: I am looking for an algorithm or something I can implement to facilitate rendezvous, ASAT missiles and stuff in kOS
<bofh> uhh.
<Fiora> the correct behavior to emulate this is to round b to 25 bit precision before performing the FMA.
<bofh> it has a 56x28-bit mul, why does it drop down to 25?
<Fiora> 3 guard bits
<bofh> Oh. Oh my god.
<bofh> I see now.
<Fiora> So the result of this is that the FMA takes 53 bits from a, 25 bits from b, and 53 bits from c (in terms of mantissa).
<Fiora> now, if you were doing an *FMUL*, this would be invisible
<egg|phone|egg> . . .. ... .....
<Fiora> because the rounding of the result would mean those bits would be lost anyways.
<Fiora> But in FMA, because of cancellation, these bits actually matter.
<Fiora> correctly emulating this is necessary to make physics work correctly in multiple gamecube/wii games, and mariokart ghosts desync almost immediately without it as well.
<bofh> ...
<bofh> ............amazing.
FluffyFoxeh has joined #kspacademia
<Fiora> (fortunately you can do it in 4 insructions.)
<egg|phone|egg> Also bofh, Fiora got deopped somehow, can you fix that
<Fiora> // mantissa = (mantissa & ~0xFFFFFFF) + ((mantissa & (1ULL << 27)) << 1);
<Fiora> it's great.
<egg|phone|egg> ...
<bofh> and yes, that is, I just what.
<egg|phone|egg> Fiora: ... I'd say 'at least everyone uses guard bits now' but I'm scared of the answer
<Fiora> XD
<Fiora> (bit-exact asm implementation of ppc frsqrte, for x86)
<bofh> I take it starting from rsqrtss would fail to be bit-exact sufficiently often that there's no point in using it even in special cases?
<Fiora> no point, since we're trying to match *ppc's* estimate
<Fiora> which is entirely different from x86's
egg|cell|egg has joined #kspacademia
egg|phone|egg has quit [Read error: Connection reset by peer]
* egg|afk|egg back
* egg|afk|egg stabs the heat
egg|afk|egg is now known as egg
<egg> !wpn Fiora, bofh, et al.
* Qboid gives Fiora, bofh, et al. a lego infinite error
<egg> !wpn UmbralRaptor
* Qboid gives UmbralRaptor a solenoidal cobolt cone
* UmbralRaptor adiabatically expands egg.
<UmbralRaptor> APlayer: stabbity.
<APlayer> Stabbity?
<APlayer> Pongity?
<UmbralRaptor> In the process of writing out an equation, and realizing that I have a bunch of trig functions that will probably not play nice.
<UmbralRaptor> Hence why egg et al suggested something numeric. (Also, my phone tried numeric → uneducated o_O)
<bofh> egg: I will say that after Shanghai the heat here in IL doesn't bother me much anymore.
<APlayer> UmbralRaptor: Okay, thanks a lot. You should have told me you were writing equations, I would have stopped you. ;-)
<UmbralRaptor> hah
<egg> bofh: israel or illinois?
<APlayer> I really just need a nudge on how to approach that, or, if there is a widely used solution, a link or something for that.
* UmbralRaptor notes that it hit 310 K the other day.
<egg> bofh: also, "2 questions: 1. same as @kittenpies3's but for multiple arguments; 2. is it true that if f=g₁∘h₁=g₂∘h₂ and κ(g₁)>κ(g₂), g₁∘h₁ is preferable?" is 140 codepoints, but is it clear enough
* egg is bad at twitter
* UmbralRaptor is unsure how egg survives without A/C.
<egg> !wa weather in Zurich
<bofh> egg: yes, I think it's clear enouh
<bofh> egg: illinois
<Qboid> egg: weather | Zurich, Switzerland: temperature | 30 °C (heat index: 31 °C), relative humidity | 46% (dew point: 17 °C), wind speed | 3.6 m/s, (48 minutes ago)
<bofh> Yuck, that's comparable to PVG.
<egg> bofh: also did I get my inequality in the direction that we think is right
<egg> bofh: PVG?
<bofh> I tend to abbreviate cities by local airports sometimes, old bad habit.
<APlayer> Let me try to think over it a bit, because, off the top of my head, I don't see how finding the root of a function would give me the closest approach. But let me try it myself first.
<bofh> So Shanghai -> Pudong Int'l.
<APlayer> Anyway, got to go for now - see you later!
<egg> bofh: tbh I do that too, because my company does that
<egg> e.g. MTV, SBO, ZRH, PAR
<bofh> yeah so ones to add would be PEK, HKG and PVG. Also WUH I suppose.
<bofh> also yes I believe your condition number inequality is in the correct direction.
<bofh> (granted my unicode is partially failing due to my terminal font missing a few symbols, so sec)
<UmbralRaptor> APlayer: Now just solve for Θ!
<egg> UmbralRaptor: light clothing, closed windows, when it is sustainedly that hot showers (the cold water remains cold, it's the lake's essentially)
APlayer has quit [Ping timeout: 204 seconds]
<egg> UmbralRaptor: also now that I have a job there's air conditioning at work
<UmbralRaptor> \o/
<egg> UmbralRaptor: but things cool down at night so it's fairly easy to keep the inside fresh enough, it's 25 dec C here\
<egg> also swiss houses being well insulated (mostly because of the cold helps) with that :-p
* egg stabs the closing parenthesis in the misplacement
<egg> Fiora: huh, they don't do that here https://twitter.com/FioraAeterna/status/892757265899413504
<kmath> <FioraAeterna> idea: borosilicate glass windows for houses so they don't start making creaking and clicking noises when the sun hits them in the morning
<egg> though maybe the seals around them help?
<kmath> <johnregehr> s'up https://t.co/K2lcgYcpo9
<bofh> oh probably.
<Fiora> maybe better seals
<Fiora> i dunno
<egg> bofh: wait no, that's the wrong inequality, composition is from the right
<bofh> g₁∘h₁
<bofh> what's between the g and h?
<bofh> since my unicode is fucking up
<bofh> hurr
<bofh> !u g₁∘h₁
<Qboid> U+0067 LATIN SMALL LETTER G (g)
<Qboid> U+2081 SUBSCRIPT ONE (₁)
<Qboid> U+2218 RING OPERATOR (∘)
<Qboid> U+0068 LATIN SMALL LETTER H (h)
<Qboid> U+2081 SUBSCRIPT ONE (₁)
* egg pets the bot
<egg> good bot
<bofh> Okay yeah you're right.
<egg> bofh: so then the statement is "if f=g₁∘h₁=g₂∘h₂ and κ(h₁)>κ(h₂), g₁∘h₁ is preferable"
<egg> that is, put the high condition first, so that high condition doesn't amplify rounding from the first function
<egg> (well rounding or whatever L infinity norm it might have)
<kmath> <eggleroy> @stephentyrone 2 questions: 1. same as @kittenpies3's but for multiple arguments; 2. is it true that if f=g₁∘h₁=g₂∘… https://t.co/GBhxpqwtYl
<bofh> egg: ++
<egg> bofh: I guess as phrased it's incorrect, but the interesting case is when the condition is *large* (tending to infinity) and the functions have well bounded error
<egg> tweeting accurately is hard :-p
<bofh> you can always follow it with a clarification, 140 chars is a pain in the arse
<egg> bofh: is "(assuming we are dealing with gᵢ, hᵢ that can be computed with a nicely bounded number of ULPs)" a good enough clarification
<egg> !u ᵢ
<Qboid> U+1D62 LATIN SUBSCRIPT SMALL LETTER I (ᵢ)
<egg> well I guess (assuming we are dealing with gᵢ, hᵢ that can be computed with a nicely bounded number of ULPs and the conditions get large)
<egg> otherwise we have to say that they're all the same number of ULPs
<bofh> yeah, is okay
<e_14159> egg: 25° right now?
<egg> e_14159: inside, yes
<e_14159> Ah, okay. I was thinking I was stuck on the wrong side of the Alps :-)
<egg> so tomorrow it will apparently go to 32°C outside here
<bofh> random stupid thought: I wonder how an NaCl : MSG cocrystal would look like.
<e_14159> egg: Same here.
<e_14159> And no, we don't have air conditioning at work. OTOH, third floor and open windows work acceptably well.
APlayer has joined #kspacademia
<egg> argh, missed the Vega launch https://www.youtube.com/watch?v=bqDeRU8kAZY
<kmath> YouTube - Vega Rocket Launches Venµs and OPTSAT-3000 Satellites (Flight VV10)
<APlayer> Back
<egg> Thomas: we need a Kountdown functionality for Qboid :-p
<bofh> Agreed.
<egg> bofh: you weren't here in the age of Kountdown though
<bofh> Oh? Is that different from just a standard countdown?
<egg> Kountdown was a bot
<egg> who spewed some markov nonsense when its name was mentioned
<bofh> ahh.
<bofh> LOL
<SnoopJeDi> And did some county things
<egg> and who counted down to rocket launches
<SnoopJeDi> ;mission Kountdown?
<egg> ;mission is kmath
<egg> ;mission
<kmath> egg: Seeking extra lift, you fill your craft with helium party balloons. Everything explodes!
<Ellied> kountdown made me start to think that "countdown" was an incorrect spelling after a while
<egg> hah
<SnoopJeDi> I know. I can't remember who, but someone used to ask ";mission Kountdown?" every so often to get some spew
<egg> bofh: other bots of times past include Ellied's Lizzie (formerly Kalaxy, it was GreeningGalaxy's), who introduced >wpn
<egg> after Lizzie disappeared Thomas incorporated >wpn into Qboid, yielding !wpn
<egg> bofh: huh, from that video there's a telemetry station in Saint-Jean-du-Maroni now? do we need to add Yet Another station in french Guyana :-p
<egg> (to RSS)
<egg> aaah it's a flanking station
<egg> because of the flame effect: the smoke cloud from Vega obstructs telemetry from the usual stations
<egg> when it goes north
<APlayer> !wpn everyone
* Qboid gives everyone a supersaturated halberd
<egg> which is why they take one very far west
<egg> !wpn APlayer
* Qboid gives APlayer a Bose-Einstein refractor
<egg> hm I should take a look at http://www.cnes-csg.fr/automne_modules_files/pArticles/public/r7110_f158_L5NS5_Web.pdf and check that we have them all in RSS at some point
<APlayer> egg: Could you give me a hint on the closest approach finding problem I asked about?
<egg> as UmbralRaptor said, I think you're going to have to go with a numerical approach
<APlayer> I.e. how to approach the formula (see what I did there? :P) for which I need to find a root
<egg> I think gradient descent might be better for that problem?
<egg> you're looking for a minimum of the distance between the vessels
<APlayer> Or just get the orbital positions for time t, get the distance between the objects and do a binary search until I narrowed down the result sufficiently?
<egg> so you can gradient-descent it towards the next minimum
<egg> APlayer: yes, that would work too
<egg> perhaps less efficient, but maybe simpler
<UmbralRaptor> ^
<APlayer> Just a second, looking up gradient descents on wikipedia
<bofh> egg: huh. well I guess the smoke cloud would necessitate constructing the additional TLM station
<APlayer> "[...] hopefully the sequence [...] converges to the desired local minimum." - the "hopefully" does not sound exactly promising?
<bofh> ahh, you've discovered the "wonders" of gradient descent.
<egg> bofh: or any root finding smarter than dichotomy :-p
<bofh> another algorithm for which the description "works everytime, 60% of the time" is accurate.
<bofh> egg: okay, true.
<egg> bofh: principia has only one root finder, it's Bisection
<bofh> any reason why? I'dve expected at least Gradient Descent.
<egg> bofh: specifically, Bisection til bisecting more yields equality, because we love ULPs :-p
<APlayer> But what is that? I mean, I can rely on that method, can I not?
<bofh> And possibly also a quasi-Newton method or two as well.
<egg> bofh: because it's easy to implement and we haven't had a need for fast root finding
<APlayer> Why "hopefully"?
<egg> bofh: instead we have a collection of integrators because swimming in the sea of integration papers is fun :-p
<APlayer> And how come do I, eg.g, bo.fh and Um.bral all have the same color in my IRC client?! :/
<egg> same here
<egg> yeah, you have hexchat
<bofh> egg: I will argue both are fun, but I have more experience with root-finding (well, to be pedantic, constrained minimization)
<APlayer> There are a total of five people that are colored pink on this channel right now, and four of them are currently participating in this conversation
<bofh> what is this "colour" in irc you speak of? :P (am using irssi)
<egg> bofh: well, there's more paper-digging to do with integrators
<bofh> okay, true if we're comparing to root-finding, false if compared to constrained minimization problems in general.
<bofh> unless you are somehow now able to implement primal-dual interior-point blindfolded w/o refs :P
<egg> bofh: yeah; we will need constrained minimizators, eventually, when I decide to be interested in trajectory optimization; for now just root finding for apsides and whatnot
<egg> bofh: "when I decide to be interested in trajectory optimization" << when combined with lamont's ascent code, if we get to this point things will be "I would like to get to the mercury please" *churn* *flies a 20-gravity assist trajectory* I guess :-p
<egg> s/the mercury/mercury/ stab copy editing sentences
<lamont> heh maybe not quite that simple
<bofh> LOL
<bofh> badger badger badger badger badger
<APlayer> egg: Could you explain the formula following "Ausgehend von einem Anfangspunkt x_0 wird die Richtung des steilsten Abstiegs durch" at https://de.wikipedia.org/wiki/Gradientenverfahren, paragraph "Das Verfahren"?
<egg> it's the gradient
<egg> it says so
<egg> {\displaystyle \nabla f(x^{(j)})} {\displaystyle \nabla f(x^{(j)})} den Gradienten von {\displaystyle f} f an der Stelle {\displaystyle x^{(j)}} x^{{(j)}} bezeichnet.
<APlayer> No, I mean explain the formula. Not what it is, but what it does
<APlayer> And what's the inverted delta thing?
<egg> it's the gradient
<bofh> The inverted delta is the gradient symbol.
<egg> bofh: I am suddenly tempted to define it as a function of the differential operator and the inner product but I feel like it would not help
<egg> bofh: ... fortunately the wiki article I linked does that :D
<bofh> egg: so like that is actually how I was introduced to it in my advanced calculus course but it's fairly opaque if one lacks the analysis background IMO
<egg> bofh: yes
<APlayer> Oh boy
<egg> bofh: but, look at Definition in that article I linked :-p
* APlayer chooses the binary search implementation
<bofh> lol
<bofh> heh.
<egg> bofh: oh great and for d they use die Cartan-Ableitung https://de.wikipedia.org/wiki/%C3%84u%C3%9Fere_Ableitung >_>
<bofh> LOL
<egg> bofh: I think if you click links on that you'll end up doing differential geometry II
<bofh> that *is* what I'm thinking of, i.e. the Exterior Derivative?
<egg> yes
<egg> "Sei {\displaystyle M} M eine {\displaystyle n} n-dimensionale glatte Mannigfaltigkeit"
<APlayer> Thanks for nudging me in the right direction, egg, bofh, Umbral!
<egg> yup you're in for Differentialgeometrie II
<APlayer> On another note, I received a 15 € book gift card an
<egg> bofh: okay maybe just Differentialgeometrie I, I see no metrics
<APlayer> and looking for a book I can spend it on*
<UmbralRaptor> The coplanar case is 1D, so it should take serious effort for a numeric approach to not converge. <_<
<egg> yeah
<APlayer> Is there anything you could recommend exactly on these topics? I.e. I clearly lack an understanding of the maths you give me here, even if I manage to implement them with lots of help.
<bofh> hmm.
* UmbralRaptor actually struggles a lot with the details of numerics.
<bofh> calculus on manifolds by spivak possibly?
<bofh> as for numerics? nfi.
<egg> bofh: uh I could link some ethz lecture notes in german, they might be free too :-p
<bofh> egg: sounds better, yeah
<egg> ok, so that is a bit out of scope, but I think APlayer asked about ODEs a while back, Numerik der ODEs (Numerik II) http://www.sam.math.ethz.ch/~pgrohs/tmp/NUMODE13.pdf
<egg> bofh: lol, the references are basically "all Hairer all the time"
<bofh> Somehow, not at all surprised.
<APlayer> I believe all of my questions here so far resulted in something numerics related, yes
<APlayer> Except the ascent algorithms
<egg> um
<egg> that's optimization
<egg> :-p
<egg> but numerics is vast, so pointing you to the right bits of it can be tricky
<egg> no need for you to learn about low level floating-point tricks (I mean it's fun and useful and then Fiora comes up with an insane chip that breaks it all)
<bofh> ^
<APlayer> Well, really, for now I am looking to get a basic introduction. Because what happens here is a crash course, currently. :P
<egg> bofh: not sure whether the above is good, it's certainly a bit large-scoped
egg is now known as egg|nomz|egg
<egg|nomz|egg> afknomz
<APlayer> Humm, thanks a lot
<bofh> egg|nomz|egg: so that seems reasonable for calculus, which is large-scoped to begin with.
ferram4 has joined #kspacademia
<UmbralRaptor> So SDSS DR14 is 156 TB, but all of sci-hub is only ~60 TB?
* UmbralRaptor ponders.
<bofh> SDSS?
<Qboid> bofh: [SDSS] => Sloan Digital Sky Survey
<bofh> so like sci-hub is just a paper archive, no supplementary data
<egg|nomz|egg> bofh: it's the course I had in calculus, back in 2011 2012
<egg|nomz|egg> in fact I might have a printout of that somewhere that I used to revise for the eggsams
egg|nomz|egg is now known as egg
* e_14159 was summoned by Gradient Descent.
<e_14159> Gradient Descent is almost guaranteed to converge to a minimum eventually.
<e_14159> * Terms and conditions apply. Minimum might not be global minimum. Minimum probably isn't local minimum.
<egg> Faust, but for optimization
<e_14159> Ich bin ein Teil von jener Kraft/die stets globales sucht/und doch nur lokal schafft.
<e_14159> The rhythm got all screwed up :-/
<egg> e_14159: also clearly you should write that Theil :-p
<e_14159> So ist denn alles was ihr Sünde,/ Zerstörung, kurz Numerik nennt/mein eigentliches Element
<egg> :D
<APlayer> No, I shall use binary search. Gradient descent is too complicated. :/
<egg> APlayer: it's not fundamentally hard, defining it for a a general function on some arbitrary manifold is hard, but also rather pointless
<egg> but in this case you wish to minimize the distance between vessels, so the gradient is their relative velocity
<egg> follow that til you reach the minimum
<APlayer> I mean I didn't even understand how to use the formula...
<APlayer> BRB
<APlayer> Back
<SnoopJeDi> Gradient descent can be summarized as "walk directly downhill to go down fast"
<bofh> That's a good summary, actually.
<SnoopJeDi> So the problem is an iteration of 1) find out where "downhill" points, 2) step that direction, 3) repeat
<SnoopJeDi> there's lots of little finicky details because how big a step you take can influence the results of (1) but in general that's all there is to it
SilverFoxy has joined #kspacademia
SilverFox has quit [Ping timeout: 186 seconds]
<APlayer> Yeah, I figured so much, but it needs me to know the derivative and involves vector fields? And what about the zig-zagging? If it goes directly downwards
SilverFoxy is now known as SilverFox
<APlayer> I currently have some serious mash in my head... Sorry :/
<SnoopJeDi> Yea, the interpretation you want there is that the derivative (the gradient operator ∇) points "uphill" (so downhill is the other way)
<SnoopJeDi> The zig-zagging is because you take a step and then look for the new "downhill" direction, so it depends on how big your steps are.
<SnoopJeDi> If you imagine a valley, but your step-size is the size of the valley, that loop just has you stepping across the valley repeatedly. This is a characteristic problem with more naïve optimization schemes
<SnoopJeDi> A *lot* of the fancy dressing in numerical analysis is about "shaking things up" enough to avoid convergence problems
icefire has joined #kspacademia
<SnoopJeDi> But those can be very coarsely summarized as "be clever when you pick your step size"
<SnoopJeDi> There's no reason the next step you take has to be the same size as the one you just took.
<egg> also in this case you're optimizing a 1-argument function so it's rather easy
* SnoopJeDi has always been fond of topological map analogies in class
<SnoopJeDi> Which is a shame because so few college students know how to read a topo ?
APlayer has quit [Ping timeout: 204 seconds]
APlayer has joined #kspacademia
<egg> !u ?
<Qboid> U+1F643 UPSIDE-DOWN FACE (?)
<APlayer> Woops, lost connection
<egg> SnoopJeDi: um, topographic surely?
<APlayer> Something's wrong with my WIFI setup. Got to fix it
<SnoopJeDi> ...yes.
<SnoopJeDi> I've got bad brain, egg
<egg> or is it a map that tells you how many holes there are on your planet :-p
<egg> *unfolds map* "we are on a manifold without boundary whose Euler characteristic is 2; the manifold is orientable, we are on the outside"
<bofh> LOL
<SnoopJeDi> ?️
<bofh> !u ️
<Qboid> U+FE0F VARIATION SELECTOR-16 (◌️)
<APlayer> egg: This map should be a !wpn
<SnoopJeDi> !wpn -add:wpn map
<Qboid> SnoopJeDi: Weapon added!
<SnoopJeDi> surprised it wasn't in there to begin with
<bofh> Same
<bofh> !wpn APlayer, egg and SnoopJeDi
* Qboid gives APlayer, egg and SnoopJeDi a chi egg|zzz|egg/Qboid hybrid
<SnoopJeDi> !wpn bofh
* Qboid gives bofh a krypton aluminium ellipse with a varistor attachment
<Thomas> egg: Re: Kountdown functionality for Qboid: I could do that, or I just take cactus code and launch my own wille/sopel/whatever bot :D
<egg> Thomas: yeah but then again you have a nice bot framework with Qboid
APlayer has quit [Ping timeout: 204 seconds]
<Ellied> Horrible discovery: LEMO connectors fit inside the insulators of SHV sockets, and the center pins can touch. LEMO is designed for low voltage, so if the SHV socket were live at the full 5000 volts at the time, the cable might fail short, and in that case, the outer metal jacket of the LEMO connector would just be touching the insulation of the SHV and not the ground, so it would immediately
<Ellied> go live under the fingertips of whoever was holding it.
<Ellied> that's almost worse than the MHV/BNC thing.
<bofh> yum, 5kV
<UmbralRaptor> Arc flash?
<UmbralRaptor> SnoopJeDi: is there an IOPC perchance? (Python, not Perl)
<SnoopJeDi> UmbralRaptor, IOPC?
<UmbralRaptor> International Obfuscated Python Contest
<UmbralRaptor> Blame the IOCC.
<SnoopJeDi> oh, re: that Penrose program? Dunno about an official one, but deliberate obfuscation abounds :P
<SnoopJeDi> I would wager probably 80% of the pandas code ever written?
<SnoopJeDi> someone in #python dropped the lovely nugget "list incomprehension" the other day :D
<UmbralRaptor> lolsob
<bofh> rofl accurate
<kmath> <Otter_News> I don't want to talk, Carl, Just drive. https://t.co/cxWUJNpzJX
<egg> synapsid
<egg> !wpn bofh
* Qboid gives bofh a transuranic microscope
<egg> no reply yet on the numerics questions
<xShadowx> what happens when astronauts look at the sun? (with and without visor)
<xShadowx> only know what hollywood has which was (sometimes) burn exposed skin, and always go blind (some perm, some temp)
<Fiora> ... why would it burn exposed skin?
<egg> !wpn Fiora
* Qboid gives Fiora an overclocked kmath-like voulge
<Fiora> sunlight in space is 1370 W/m^2, sunlight at zenith at the surface is ~1120 W/m^2
<Fiora> the spectrum is not enormously different either https://upload.wikimedia.org/wikipedia/commons/e/e7/Solar_spectrum_en.svg
<xShadowx> as i said hollywood, though figured no atmo, no filtering energy / wavelengths, and thought itd be atleast worse than on earth surface
<Fiora> you can't have "no filtering", because you have to be inside a pressurized chamber!
<Fiora> since you're in space.
<Fiora> the sun does emit higher energy light than UVB that can't pierce the atmosphere (with or without ozone) but e.g. UVC is completely absorbed by almost every solid material you could use, including glass, acrylic, etc
<Fiora> to the point where it's actually absorbed by your own dead skin before it reaches live cells in most cases
<Fiora> now, you want something that's dangerous to look at? way more dangerous than the sun in space?
<Fiora> an arc welder
<egg> Fiora: which reminds me I've seen people welding without a mask in Saigon D:
<Fiora> holy fuck
<Fiora> like, you think the sun is bad
<Fiora> an arc welder at 0.5m away is (very roughly) like... 1kw/m^2. so, similar to the sun.
<xShadowx> XD
<Fiora> BUT way more UV-biased.
<egg> yeah
<Fiora> because of the black body curve center
<Fiora> you can get horrible burns in seconds in the worst case
<egg> I mean, from afar it's already obnoxiously bright
<Fiora> also destroy your eyes
* xShadowx wants to make his kerbals go blind if they stare at the sun too long
<Fiora> https://en.wikipedia.org/wiki/Photokeratitis // this is what happens due to exposure to intense UV
<Fiora> it's usually temporary though
<Fiora> since it's effectively "eye sunburn"
<Fiora> so yeah i suspect arc welders on earth are much, much worse than the sun in space.
<xShadowx> arent the old arc lamps in the same boat?
<xShadowx> when electric lighting first started, before the bulb, arc lamps, i accually seen one of those old things still workin, thing freakin bright
<Fiora> (no)
<Fiora> from a black body perspective: the sun is ~5800K and arc welders can reach ~30K
<Fiora> *30,000K
<egg> bofh: hm, with b > a, can a + (b - a) be greater than b
<egg> or Fiora ^ (assume IEEE 754 arithmetic, I'm sure on a Cray it can be anything :-p)
Wetmelon has joined #kspacademia
<xShadowx> Fiora: so...the only real effect would be blindness? and how long of duration for staring until blindness? though i guess it would be more of a gradual effect, so any chart for duration of exposure vs blindness level?
SilverFox has quit [Ping timeout: 201 seconds]
SilverFox has joined #kspacademia
<Iskierka> high temperature doesn't necessarily mean high brightness, if it's very small