@dpiponi@mathstodon.xyz
@dpiponi@mathstodon.xyz avatar

dpiponi

@dpiponi@mathstodon.xyz

Disclaimer:
👽 My opinions are not my own. They're beamed to me by aliens

Current life:
🎮 Epic Games

Previous lives:
🍩 a PhD in Riemann theta functions
💥 many years working in movie visual effects
🎈 some years devising navigation strategies for balloons
🎲 a year drawing random samples from tricky distributions

Likes:
🚴 I like to bike
🏃 I like to run
🎛️ my musical tastes lie towards the electronic end of the spectrum
🚀 I like Andor and The Mandalorian

This profile is from a federated server and may be incomplete. Browse more on the original instance.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

New Chomsky paper on Hopf algebras. Seriously.

https://arxiv.org/abs/2306.10270

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

Like most people, I find mathematics (and computer science) a hard subject. But that's also part of its appeal - plenty of people like a puzzle.

Sometimes though, mathematics can feel more challenging that it ought to and that can be frustrating. Examples of situations like this are when something isn't well motivated. And also I often have trouble figuring out the scope of variables because the translation from informal English to formal quantifiers isn't clear to me. ("Now suppose x>0..." is this the same x as before, with the same conditions, or is it a fresh x?)

But there's one thing people talk about a lot but which hasn't really been a problem for me: other people's names for things. Monads, monoids, modules, and so on. You read the definition and move on. If you can't understand the definition then the problem is the definition, not the name. I guess I grew up without the expectation in mathematics that the word, in and of itself, should tell you what the word means. In fact, I sometimes like not carrying baggage about what I expect a name to mean. I doubt I would have grasped the concept of a monad, say, any quicker if it had a different name - monads are tricky in themselves when you first meet them.

The only time naming comes up as an issue for me is at the intersection of two subcultures when a word becomes ambiguous. Eg. if I want to talk about categorical functors in the context of C++ code. I feel like this is the minority of cases though.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

Fun question:

"what are...non-trivial examples of mathematics where the parity of an integral parameter makes a crucial difference?"

https://mathoverflow.net/questions/447780/oddities-of-evenness

I expect many of these are related. I find the difference between odd-dimensional and even-dimensional rotation groups interesting and that has wide-ranging ramifications.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

As I photograph my electronic book reader using my handheld supercomputer/communication device I can't help wonder what kind of world a sci-fi writer imagined in which there are neural interfaces to spaceships with hyperdrives but adjusting your watch is an unsolved problem.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

One way to view automatic differentiation is to think of it as adjoining an "infinitesimal" element d to the reals, such that d²=0, to the reals, ie. forming ℝ[d]/(d²). If f is a polynomial then f(x+d)=f(x)+df'(x) giving a nice way to compute derivatives on a computer - especially as it can be extended to rational and even transcendental functions f. It doesn't form a field though. For example you can't always divide by d.

TIL There is a field, named after Levi-Civita, that generalises ℝ[d]/(d²) quite a bit. Every element is a kind of power series in an infinitesimal ε. More precisely, each element is a "formal" sum ∑aᵢεⁱ where the sum is over some subset S of the rationals which is left-finite, ie. for any z, S has only finitely many elements less than z. Addition and multiplication work in the way you might guess.

This means we can form things like ε^(1/2) or even the "infinite" 1/ε. It's not just a field, it's an ordered field so we have, for example, that 1 > ε^(1/2) > ε > ε² > 0.

You can even construct a Dirac delta-like function δ(x) = ε/π(x²+ε²).

It's all very similar to non-standard analysis but this particular construction doesn't require anything non-standard.

https://en.wikipedia.org/wiki/Levi-Civita_field

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

A small thing on monad strength I put on github years ago but should have put on my blog.

http://blog.sigfpe.com/2023/08/what-does-it-mean-for-monad-to-be-strong.html

BTW I was reminded of this by doing lots of C++ programming - C++ makes very explicit when you're capturing variables and so the "strength" in C++, in some sense, is also made very explicit.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

When I first came across Voigtländer's paper on speeding up free monads [1] and some of the methods that Hinze mentions [2] I was a bit bemused about why category theory had anything to say about program optimization. But now it seems obvious. Much of optimization is a lot like algebraic manipulation where you're rearranging while hoping to keep the value the same. But in particular, a really common optimization move is to write f(g(x)) as (fg)(x) where (fg) is somehow simpler (or more reusable than) than just applying g then f. Ie. associativity - which is one of the laws of category theory. I think this step also accounts for almost all of the computational reasons for using linear algebra. Eg. graphics pipelines make good use of this kind of associativity.

[1] https://janis-voigtlaender.eu/papers/AsymptoticImprovementOfComputationsOverFreeMonads.pdf
[2] https://www.cs.ox.ac.uk/ralf.hinze/Kan.pdf

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

I don't know what people mean when they say LLMs don't really understand language. The only interpretation that makes sense to me is so trivial that it can't be what's intended - that LLMs aren't people. I wish people could just be normal around this technology and stick to saying sensible things about their observations without trying to weave in their religious beliefs.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

Despite Wildberger being a bit off the usual conventional paths in mathematics, he's influenced me to the point where every time I write a line of code using an angle I ask myself if I could use an alternative "rational" representation.

https://research.unsw.edu.au/people/professor-norman-j-wildberger

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

I was going to toot about Brian Stableford and then I learnt that he just passed away yesterday.

I grew up reading a lot of Asimov, Clarke and Bradbury. They were such good authors I tended not to stray far from them. (I did eventually stray far enough to take in @gregeganSF though.)

Recently I tried revisiting some of the science fiction authors who published during my childhood that I didn't read. So far, Stableford has been my favourite though I've only read part of the "Hooded Swan" series. His background was in biology so the interesting ideas have all been sociological or biological. The (anti-)hero is a grumpy pacifist who sometimes gets so annoying you find yourself empathizing with the parasitic (symbiotic?) mind who lives inside his head. Though written in the 70s there's an undercurrent of economics and politics that feels remarkably prescient about tech billionaires today.

Anyway, entertaining stuff definitely worth a read. I even built a Lego Hooded Swan.

https://en.wikipedia.org/wiki/Brian_Stableford

image/jpeg

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

Given a random number generator that generates points uniformly in the unit interval [0,1] can you generate uniformly distributed points in the unit circle using only algebraic functions? In a finite number of steps - so no rejection sampling, loops, recursion. No "almost always" finite either.

Just wondering about sitiations where it seems you can't avoid trig functions.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

I'm a walking musical ability free zone. And yet I love messing around with Logic Pro. Sadly that's why I don't play with it much. Any time I did, I'd be sucked into a time sink and 12 hours of my life would vanish when other important things would fail to get done.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

When I see the word 'art' the first thing that comes to my mind is "who's gatekeeping what?"

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

Too much of my life spent wrangling build systems rather than writing actual software that does something.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

Looks like the Google Chart API has dropped its support for latex expressions (or it's temporarily out of action) which means my blog is now packed solid full of broken links. I did start the process of making more stable versions of some of the articles as PDFs here: https://github.com/dpiponi/StableBlog Luckily I wrote a lot of that stuff with my own homebrew markup that can be translated to LaTeX somewhat mechanically.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

I don't care whether LLMs can "reason", or "create", or do any of these abstractions. Most of these abstractions arose because of humans classifying the behaviour of other humans. They're only crude approximations when applied to a wider class of entity beyond humans in which the usual kinds of properties don't cluster together in the same way. So you can use empty phrases like "can't create" or "can't really reason" or "just use statistics" as much as you like and it will have no effect on me using LLMs as a tool to help me solve the kinds of problem they can solve. And I hope I also have the sense not to waste time using them for the things they're not good at.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

Weird how characters in science fiction often go on about "the species". I care about "the species" about as much as I care about the charge on an electron or the melting point of caesium. It's people I care about - or not, as the case may be.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

A bit late to the game but I finally got around to giving Universal Paperclips a go.

Besides all of the philosophical questions it poses (and I think it poses more than any other game I've played) - I can't help wondering if the crazy level of battery consumption it causes on my phone couldn't have been mitigated by rendering all those varying numbers in a GPU shader rather than with Javascript.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

Sometimes I feel like software engineers are a bit culty and puritanical. So many times I go to stackoverflow and someone has asked "how do I do X with Y" and the replies are standard dictums like "you should never (in bold!) do X with Y" or "why are you doing X yourself? use this or that library", usually expressed pretty rudely. In the workplace it's often a good idea not to keep reinventing the wheel, but outside of that learning by experimentation shouldn't be discouraged.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

The clickbaity title of an article in the Cambridge University alumni magazine caught my attention: "Pythagoras was wrong"

The Nature article linked to is good though.

Quick summary: what chords sound consonant or dissonant? Two leading models: one based on the idea of humans liking integer or rational ratios between the frequencies of the partials, and the other based on the idea that humans don't like to hear almost but not quite equal partials "rubbing up" against each other. (The latter model is championed by Sethares whose book on timbre I recommend.) These models have mostly been just talk but this new research tested preferences among many subjects.

Conclusion: sometimes the integer/rational model makes very good predictions and the other model completely fails. And vice versa.

https://www.nature.com/articles/s41467-024-45812-z

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

One of the most popular types of software bug is the off-by-one error. But in simulation work the off-by-half error is pretty popular too.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

I was working out the details of functions like sqrt, atan and log for my implementation of the Levi-Civita field.

I thought I'd mention a technique that's available for these quantities that doesn't work as well for ordinary reals. For my example this isn't meant to be the most efficient method, just an illustration of the approach.

Consider f(x)=1/√(1+x) for infinitesimal x. We could just use the Taylor series. For infinitesimal x it will always converge in the Levi-Civita field. (We can also use Newton-Raphson and I think there's also a direct back substitution method.)

Here's another way:

We have f'(x)=-(1+x)^(-3/2)/2 = -f(x)^2/2. This is an ODE for f. We can rewrite this as an integral equation:

f(x) = 1-(1/2)∫f(x)^3 dx where the integral is on [0,1].

This looks useless, but...

When working in Haskell I make the elements of the LC field streams of (power,coefficient) pairs. Haskell is happy for you to write a circular definition of a stream as long as when you evaluate the nth element you only use the first n-1 elements. It looks like recursion but for an infinite stream there's no base case so technically it's a corecursion.

Now define a linear partial function on the Levi-Civita field "∫" that maps ε^n to ε^(n+1)/(n+1).

This has the property that if a is real and b is finite, computing the nth element of a+∫b requires looking at only the first n-1 elements of b. So the equation

f(x) = 1-(1/2)∫f(x)^3 dx

can be translated directly into Haskell.

Many interesting functions have ODEs, and hence integral equations that can be exploited like this.

FWIW the actual line of code I tested was:

y = 1 +∫ ((-1 / 2) * d v * y * y * y)

where "+∫" (and d) are functions I define elsewhere.

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

I don't know if I hallucinated this but maybe someone recognises it:

I'm sure I once (~20 years ago) saw an arbitrary precision real number library for C or C++ that worked by picking some fixed precision and worked until it produced a result at the required precision, or, if it convinced itself it couldn't achieve that precision, did some kind of backtracking so it could redo the computation at a higher fixed precision. Somewhat analogously to how transactional memory works - and I think under the hood there may have been some unusual memory model.

Sound familiar to anyone?

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

Poulnabrone Dolmen, a 5-6000 year old tomb just sitting there on the most incredible limestone landscape in The Burren, Ireland. The tomb was originally covered in earth - what's left is just the bare structure.

image/jpeg

dpiponi, to random
@dpiponi@mathstodon.xyz avatar

For rainy days we have a treadmill but it's locked into the vendor's subscription service if you want to watch videos.

Except...tap the bottom left 10 times, wait 7 seconds, tap 10 more times, up pops a number, use that as a seed to generate a number with lrand48, reduce modulo 999999 (not 1000000!) and type that number back in, and now you have an Android tablet with web browser and access to YouTube.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • provamag3
  • kavyap
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • ngwrru68w68
  • Durango
  • thenastyranch
  • Youngstown
  • rosin
  • slotface
  • tacticalgear
  • mdbf
  • ethstaker
  • JUstTest
  • khanakhh
  • osvaldo12
  • GTA5RPClips
  • cubers
  • cisconetworking
  • everett
  • tester
  • modclub
  • megavids
  • Leos
  • normalnudes
  • anitta
  • lostlight
  • All magazines