its even more unparalled for me cause yesterday I craved some of his vids so I came here and rewatched a few, and he uploaded a brand new one right just after I went to bed!
@@tom7 You'll see from an exhaustive search of all possibilities in the design space that there is no situation where it can loop an odd number of times.
I was just waiting in utter joy for "but we can't decide which instruction to execute, so we'll just do every single one and multiply 255 of them by 0" to drop. My favorite part of shader code is 'why branch when you could multiply by 0' and this is a delightful, horrifying project. I'm SHOCKED it can do an entire frame in 10 seconds.
My immediate reaction was "8 cores? Why only use 8 cores when you could force a poor GPU to do this for you?" The gpu only wants to play Monster Hunter why do we force it to do these tasks?
The hardest I ever worked in college was when my professor told me that something wasn't possible. The pure spite powered me through. It's an amazing force for sure
Like when my computer teacher insisted that "crashing the stack WILL harm the computer". I wrote a simple asm snippet that locked up the PC but left it unharmed in 10 minutes (It was intro to ASM). That teacher hated me and excused me from the entire module with top marks, muttering "I have nothing to teach this wiseass"
Haha! Had similar: ASM class. Assignment is to write a simple machine code program to accomplish a task, but he would award an extra mark for programs close enough in size (I forget how many bytes), to his own reference program. I got mine 6 bytes smaller than his.
"The Mandlebrot Set is the Radiohead of Fractals" I did a real spit-take all over my computer and am typing this as the water seeps in. Wish my computer a swell retreat into the afterlife.
The question was: "Okay, thanks professor, so I understand the mathematical point that the transfer function must be linear but when we implement this on a computer we’ll use some approximation of the real numbers like IEEE-754 floating point, which doesn’t have all the mathematical properties that we’re assuming here like distributivity and associativity, so doesn’t this mean that the doesn’t necessarily hold? like you could in principle have a transfer function that was “linear” but nonetheless exhibited irreducible complexity because of rounding error or things like that, or in principle transfer functions based on values outside of the reals, like NaN and Inf? Plus what about -0? Actually are linear operations even differentiable because when you think about it, they all take discrete steps so it’s really …" (for those of you who don't want to go frame by frame through it, as I have)
I really love being a bit lost on a new concept for a minute or so, then touching base with a concept I am familiar with, only to see Tom totally abusing and doing evil things to the 5% of the greater whole I understand. Really keeps me reassured that despite the calm demeanour and pretty diagrams, even the parts I don't understand are pure evil and crimes against numbers.
literal spit-take at "maybe we should do this on the computer." - although I started to follow it a bit less at the computer implementation, I enjoyed every second
I wish to see you getting nerd-sniped by this and somehow do floating point maths with analogue waves or something, maybe even build a whole (super basic) computer using the weird differentiator and integrator components. As a starting seed, note that you can get ln through integrating 1/x, and through ln you can get abs(x), and through that you can practically make arbitrary circuit. Don't know how useful or practical this is, but hey, maybe you end up discovering something video-worthy. I have some more ideas btw, mainly stemming from trying to (ab)use Desmos to define Boolean algebra and, hence, to create functions for equality and less than etc so that I'm able to define piecewise functions without any piecewise notation. I'd share a link to that here but RUclips is fussy about links.
@@kyay10 Side note: you don't need to integrate 1/x (analog integrators sorta suck), a BJT's transfer functions gives you exponentials (and logarithms via negative feedback). That's actually a somewhat standard trick, e.g. to get root-mean-square averages in an analog way. Analog computers were/are a thing, just that noise+imprecision limits the amount of stages you can cascade, and therefore the amount of cool stuff you can practically do And getting piecewise linear functions is pretty easy with step(x) = abs(x)/x ;) Used tricks like this to write text as graphs of functions on my calculator in boring math classes, the fun part is getting two lines above each other (interleaved with sign(sin(N * x)) or so)
@@efkastner I feel really smart when I understand the multitude of jokes in a video on this channel =D This one had me in stitches until the last act when I could tell he was over my head. I sent this video to multiple people before I was done watching it. Tom, if there's ever a brilliantly impractical project you need something built IRL for, hit me up - I know I can't compete on the code side ;)
I've had a beef with the way epsilon is used in programming for a while, so I was already laughing when you started complaining about it, then lost it when you revealed that you wrote a whole paper on the topic. The paper was delightful, as usual, and now I have something to send to people who I have petty internet arguments with -- oh sweet vindication!
Tom, you are my hero. I am inspired by your tenacity in pursuing problems simply for the heck of it. Watching your videos makes me want to write math papers about equally ridiculous topics.
This video reminded me of something learned, but have since forgotten, during my time in the CS dept: Never stop listening when the PhD is talking. If you do, even for a minute, you will be completely lost.
@@evanbarnes9984 The differencw between then and now is that back then, all your code, graphics, sound and everything was in ROM on the cartridge. RAM would _only_ be used to store the changing state of the game, like player and object positions, score, and such. So if you imagine a game where you just have a player, a few non player characters, maybe an object or two, you might find that it just takes a few bytes to keep track of the state!
Atari 2600 is tiny, but the code in atari 2600 games is so precisely written that if you sneeze on it it breaks completely. The 2600 had CPU-drive graphics. And I don't mean like the ZX80 where games would write to VRAM at their leisure, and then later on the CPU would push those VRAM bits out to the screen - the 2600 doesn't have enough RAM for that. No, I mean that, when it came time to draw the screen to the TV, a 2600 game would *use game logic to render a scanline of graphics in real-time as the beam crosses the screen.* It would do this for every scanline. It would use most of the CPU's time (leaving the vblank period for higher level game logic, a reversal of the typical arrangement), and if code wasn't tuned perfectly it would completely break. There wasn't enough RAM to do anything else, nothing ever did anything like that ever again, and its one of the craziest ways to render a game ever conceived. Meanwhile, anybody who's watched a Vinny corruption stream knows how much you can break an NES game and still have it keep on going.
I cannot even describe the positive impact these videos provide throughout the years. Every april i am enlightened with suboptimal solutions to problems noone has.
Tom's videos are awesome because the more you understand them, the more unreasonable they become. This is difficult to accomplish in practice, but when done correctly the entertainment value increases exponentially.
I love that I feel I understand the individual steps he's taking and the results, but I never understand what the premise of the video actually is. Yet still some of my favourite content on RUclips
The premise is to make something impractical by abusing the inherent non-linearity of floating point hardware to perform operations that fundamentally shouldn't work.
Fun fact about the newest version of Stockfish (15.1) - it no longer uses pawn values in the evaluation. From the changelog: "An evaluation of +1 is now no longer tied to the value of one pawn, but to the likelihood of winning the game. With a +1 evaluation, Stockfish has now a 50% chance of winning the game against an equally strong opponent. This convention scales down evaluations a bit compared to Stockfish 15 and allows for consistent evaluations in the future."
Because I know you appreciate pedantry (and maybe this was deliberate), the phrase "in cold blood" means the crime was done in a calm/systematic/premeditated way. The murderer was cool and/or chill at the time. Getting so frustrated that you snap and strangle a student is definitely a murder in hot blood, not cold
I was actually just at an academic conference where a similar problem was discussed! (The paper is Model Checking Linear Dynamical Systems under Floating-point Rounding at TACAS 2023) The authors want to verify certain linear programs, but find that with rounding it is undecidable for the same reasons as Tom: They can construct a computer. Their computer is a Turing machine, which I think we can all agree is much simpler than the NES, but it's the same idea. They go on to show that restricting the programs to non-negative coefficients makes the problem decidable again, because it forces the behavior to be somehow periodic.
Love your videos. They're just far enough outside my knowledge base I have to stretch my brain to understand what's going on. But when I figure it out it always is delivered with something approximating comedic timing, and I squeal with mischievous delight.
The floating point errors used here remind me of another April fool's research piece, pannenkoek2012's "How to Crash SM64 using a pendulum". An excellent watch as well!
So, one theoretical result of this is that, pretending we're working with reals for a second, you could multiply all of these linear operations out into one single matrix, right. Obviously, multiplying by the matrix does absolutely nothing, but It'd be kinda fun to see what the "NES emulator state transition matrix" ends up looking like.
I would guess that a lot of the operations will turn out to just be the zero function, or just some small constant, because a lot of the time we are trying to eliminate everything except for the error (in order to magnify it and use it). But by doing that with precise linear operations, everything would exactly cancel out. It's hard to know if this would eventually result in the overall matrix being the zero matrix, or just some very degenerate matrix, or maybe I'm completely wrong in assuming this at all.
Making complex machines out of slight differences in behavior is very reminiscent of how computers themselves work, with small differences between electron propagation in various silicon impurities being combined in complex ways to produce integrated circuits.
The true majesty of it didn’t dawn on me until today, when I actually paid attention to the zoom-in. On top of being a cursed artifact to render, it’s also inexplicably made up of beans
I actually had no idea how to compare floats or doubles and really needed that for a recent project, so I'm already lost down a rabbit hole having paused the video 8:00 minutes in. (Programming is just a hobby for me). Exactly what I love about your videos! Edit: 25 minutes in, and the baffling numbers are awesome as an ex math teacher! The Bafflebrot is great
@@jamesflames6987 don't worry, I was already fully aware of the problems of floating point math in programming, and had solved that previous problem by going down a really convoluted path with integer math. I'm not doing stuff with money or anything super critical though, I'm slowly trying to make my own paragliding flight instrument, which means figuring out sensor fusion with a 9-axis IMU, GPS, barometer, thermometer, and eventually a Pitot tube for airspeed. Because I want to learn how it all works, I'm trying to do it all from scratch, writing my own Kalman filters or whichever type I go with, for example. There will be regions of this project where making somewhat fuzzy comparisons of floating point numbers will be useful and sufficiently accurate. That's an excellent warning for people who aren't aware of the pitfalls of float math, though!
I've been doing computer science for longer than I care to admit. I teach (privately), I write a ton of code, I love zany nonsense, and that's just the tip of the iceberg. I, too, had difficulty understanding this (and I teach the damn stuff!)
I never know with this channel, as a tech illiterate, if something will be made with me in mind. And worse yet it usually won't be clear until halfway through. Genuine criticism of the format.
I had the realization yesterday "Wait, April 1st and SIGBOVIK passed without a new tom7 video", and checked the channel to confirm my fears, so I guess I willed this into existence you're welcome.
@@kaitlyn__L Oh plenty of people find ways to write whole papers on things that are purely non-serious. It makes finding the ones with serious math for pointless reasons that much more worth it.
there's a _lot_ of good qoutes in this one. here are some of my favorite: "and if i scroll all the way to the bottom, i can see that my results are in fact the worst results of all time. aw well that's not _too_ bad." "my professor was wrong, you in fact CAN do this as long as you dont need it to be good or fast." "and basically it's the same as before but more careful about intermediate computations so that it doesnt touch infinity by accident."
Wow! I've been in this field for over a decade. I did my graduate research in Applied ML. I've been to countless lectures and discussions on the topic... and this has to be one of my new favorite discussions of all time. What a masterful expose. Thank you for this!
I've read the paper as soon as you published it and I could not wait for you to upload the video, it feels like a culmination of so many other projects and it's such a perfect tom7 video.
I watched an answers in progress video before this about how the youtube algorithm works and how sidecart recommendations are made to uphold a certain vibe. It was hugely nerdy, far from reality and very satisfying. The sidecart recommendations appear to be working
The only person that can make both computer scientists and computer science teachers reee into high supersonic range. They only harmonise when Tom's not in the room.
I can't believe it. He brought together like, the majority of his previous video-documented projects into one amazing piece of impracticality. Glorious.
mr. 7, one day i am going to create a computer as ridiculous as one of yours. you're a true inspiration, and in fact your printable C project encountered many of the same problems as my planned project will. one day i hope i can show you
In the world full of distractions, you have managed to capture my attention for the full video. What a feeling I’ve not felt for quite a while. Take my video of the year award.
I was impressed when you managed to turn these algorithms (heuristics?) into a silly way to play bad chess _again,_ and I was doubly impressed by how they actually managed to outperform most of the ones you made for that video!
I'm two minutes in and I'm like ohhh boy, I can see where he is going with this. I'll be he's going to use the imperfections of IEEE float as a non-linearity....if I'm right, what a mad lad you are sir.
You are such an inspiration because you are living proof that there is no excuse for acting haughty and superior no matter how overwhelmingly intelligent or talented you are. You prove that there is no limit on intelligence where humor dies by turning incredibly stupid things into anything you desire, just because it's silly and fun. Thank you, Tom!
I'm impressed by the amount of skill you have to present a complicated topic I don't understand (past the 10 minute mark), and make me enjoy an almost hour-long video, which I normally don't enjoy watching.
No line in a youtube video has ever affected me like "This is the world's most boring Nintendo game ... You can't win it or even play it. It exists only to destroy your mind." in that style of delivery. I am in tears
If I had professors like you in 2009, I might have actually been excited about computer science at a crucial time in my life. Instead I got a professor stuck in 1973 and a class full of the worst examples for self actualization and independence in what should have been the hot spot for the tech boom. I lost like 5 years to people like your professor
LOL I'm a student at CMU right now and my prospective research actually involves neural nets, floating point numbers, and breaking up the computation into linear subproblems and cryptography. There's a good chance I'll reference your SIGBOVIK paper if they'll allow it...
Drinking game: you drink every time Tom says something like "this isn't optimal", or "that's not actually how it should be done", or "this is a bad idea"
i'll never forget the months i spent understanding a radial basis function network (which was described as a neural network). i'm still not sure what i was looking at, and i ended up replacing the entire system with... linear functions hahahaha
For performance reasons, I experimented using half-precison floats for the bulk of a linear regression I wrote in OpenCL. I'm excited to see where this video goes! Hopefully downhill towards the global minimum, possibly escaping any local minima through imprecision abuse.
he can't keep getting away with it
I think I'm supposed to say "hey it's the rhythm haven guy"? But I always think of you as the conlang guy
and yet he does
@@PC_RUclips_Channel to me, he's the guy who taught me how floating point numbers work
who's gonna stop me... FROBENIUS??
@@32th jan misali and pannenkoek are better teachers than any of my professors(and tom7 but we're already here)
"For all practical purposes it doesn't matter."
"What about impractical purposes?"
Thats the spirit i love.
I saw someone describe this video as a "Terrifying perversion of computation" and I thought you'd be proud to hear that.
I’ll take it!
the dopamine rush of tom 7 releasing a 55-minute video is unparalleled
the dopamine rush of tom 7 releasing a 55-minute video is serialled
its even more unparalled for me cause yesterday I craved some of his vids so I came here and rewatched a few, and he uploaded a brand new one right just after I went to bed!
i just got a big goofy grin
YES
You pants are now wet and gooey aren't they.
This is so genius it looped back around to being stupid, then back to smart, then back to stupid.
I should have done an odd number of loops :(
@@tom7 You'll see from an exhaustive search of all possibilities in the design space that there is no situation where it can loop an odd number of times.
@@tom7 honestly, this comment and the response to it were the best part of this entire video. Perfect payoff
I smell sbemail
Every suckerpinch video is like that. That's why it's so fun
Sorry to hear your professor strangled you to death, glad you got better
He's still out there hoarding chaos emeralds
Tom7 was secretly the beginning of Dr. Robotnik’s villain arc.
@@tom7 could be worse: could be chaos NFTs
@@tom7 🤣
@@treyquattro😂
I was just waiting in utter joy for "but we can't decide which instruction to execute, so we'll just do every single one and multiply 255 of them by 0" to drop. My favorite part of shader code is 'why branch when you could multiply by 0' and this is a delightful, horrifying project.
I'm SHOCKED it can do an entire frame in 10 seconds.
The "do all of them" reminds me of Stephen Wolfram's Ruliad 😂
tbh if one were to write this in shader it would probably run at over 20 fps.
My immediate reaction was "8 cores? Why only use 8 cores when you could force a poor GPU to do this for you?"
The gpu only wants to play Monster Hunter why do we force it to do these tasks?
Suckerpinch proves Math is a hammer for destroying problems indiscriminately
This surprisingly is kind of how CPUs actually work at a hardware level
The hardest I ever worked in college was when my professor told me that something wasn't possible. The pure spite powered me through. It's an amazing force for sure
Like when my computer teacher insisted that "crashing the stack WILL harm the computer". I wrote a simple asm snippet that locked up the PC but left it unharmed in 10 minutes (It was intro to ASM). That teacher hated me and excused me from the entire module with top marks, muttering "I have nothing to teach this wiseass"
Well, was it possible? Or was he right?
@@OscarSommerbo And then everybody clapped
@@OscarSommerbo what did he even mean by "harm"?
Haha! Had similar: ASM class. Assignment is to write a simple machine code program to accomplish a task, but he would award an extra mark for programs close enough in size (I forget how many bytes), to his own reference program. I got mine 6 bytes smaller than his.
"The Mandlebrot Set is the Radiohead of Fractals" I did a real spit-take all over my computer and am typing this as the water seeps in. Wish my computer a swell retreat into the afterlife.
If you don't water the computer, how will it grow?
The battery will probably swell!
what's radiohead?
@@NoNameAtAll2 nothing much, hbu?
@@tom7 I thought we were trying to avoid unfettered computer growth!
When Apr 1 came and went, I went through the five stages of grief over the lack of a Tom7 upload.
Then the madlad uploads on May 1.
Happy May Fool's Day!
@@tom7 Mayday! Mayday!
It's the out of season April Fool's upload.
That was the Tax joke
it's like that gomotion gal, maypril fools
The question was: "Okay, thanks professor, so I understand the mathematical point that the transfer function must be linear but when we implement this on a computer we’ll use some approximation of the real numbers like IEEE-754 floating point, which doesn’t have all the mathematical properties that we’re assuming here like distributivity and associativity, so doesn’t this mean that the doesn’t necessarily hold? like you could in principle have a transfer function that was “linear” but nonetheless exhibited irreducible complexity because of rounding error or things like that, or in principle transfer functions based on values outside of the reals, like NaN and Inf? Plus what about -0? Actually are linear operations even differentiable because when you think about it, they all take discrete
steps so it’s really …"
(for those of you who don't want to go frame by frame through it, as I have)
Raptor Pro Tip: You can use the comma and dot keys on the keyboard for stepping through videos frame-by-frame.
one of the most glaring omissions in the mobile apps :(
I really love being a bit lost on a new concept for a minute or so, then touching base with a concept I am familiar with, only to see Tom totally abusing and doing evil things to the 5% of the greater whole I understand.
Really keeps me reassured that despite the calm demeanour and pretty diagrams, even the parts I don't understand are pure evil and crimes against numbers.
Technically, numbers could sue me in civil court, but it is not a crime.
misdemeanors against numbers, maybe disorderly conduct?
@@DuringDark disorderly conducts a good one lol
@@ts4gvAdd intentional infliction of numerical distress to the list.
literal spit-take at "maybe we should do this on the computer." - although I started to follow it a bit less at the computer implementation, I enjoyed every second
I wish to see you getting nerd-sniped by this and somehow do floating point maths with analogue waves or something, maybe even build a whole (super basic) computer using the weird differentiator and integrator components.
As a starting seed, note that you can get ln through integrating 1/x, and through ln you can get abs(x), and through that you can practically make arbitrary circuit.
Don't know how useful or practical this is, but hey, maybe you end up discovering something video-worthy.
I have some more ideas btw, mainly stemming from trying to (ab)use Desmos to define Boolean algebra and, hence, to create functions for equality and less than etc so that I'm able to define piecewise functions without any piecewise notation. I'd share a link to that here but RUclips is fussy about links.
@AlphaPhoenixChannel I’m so delighted to see you here. The venn diagram between your content and Tom VII’s is the best of all
@@kyay10 Side note: you don't need to integrate 1/x (analog integrators sorta suck), a BJT's transfer functions gives you exponentials (and logarithms via negative feedback). That's actually a somewhat standard trick, e.g. to get root-mean-square averages in an analog way. Analog computers were/are a thing, just that noise+imprecision limits the amount of stages you can cascade, and therefore the amount of cool stuff you can practically do
And getting piecewise linear functions is pretty easy with step(x) = abs(x)/x ;) Used tricks like this to write text as graphs of functions on my calculator in boring math classes, the fun part is getting two lines above each other (interleaved with sign(sin(N * x)) or so)
@@efkastner I feel really smart when I understand the multitude of jokes in a video on this channel =D This one had me in stitches until the last act when I could tell he was over my head. I sent this video to multiple people before I was done watching it. Tom, if there's ever a brilliantly impractical project you need something built IRL for, hit me up - I know I can't compete on the code side ;)
@@AlphaPhoenixChannel An AlphaPheonix and tom7 collab video would be the pinnacle of my life. It would all be downhill from there no doubt.
I've had a beef with the way epsilon is used in programming for a while, so I was already laughing when you started complaining about it, then lost it when you revealed that you wrote a whole paper on the topic. The paper was delightful, as usual, and now I have something to send to people who I have petty internet arguments with -- oh sweet vindication!
That's what I call pedantry teamwork!
Tom, you are my hero. I am inspired by your tenacity in pursuing problems simply for the heck of it. Watching your videos makes me want to write math papers about equally ridiculous topics.
Thanks! You should do it!
This video reminded me of something learned, but have since forgotten, during my time in the CS dept:
Never stop listening when the PhD is talking. If you do, even for a minute, you will be completely lost.
This feels like a victory lap of many prior Tom7 videos. Congrats!
Now it's time to train an AI model to approximate the NES CPU, no?
The Tom VII cinematic universe is real 🤯
I'd start with Atari 2600, it has a tiny amount of RAM, should be easier
@@pafnutiytheartist I can't believe anyone managed to make working games for the 2600, it's such little RAM!
@@evanbarnes9984 The differencw between then and now is that back then, all your code, graphics, sound and everything was in ROM on the cartridge. RAM would _only_ be used to store the changing state of the game, like player and object positions, score, and such. So if you imagine a game where you just have a player, a few non player characters, maybe an object or two, you might find that it just takes a few bytes to keep track of the state!
Atari 2600 is tiny, but the code in atari 2600 games is so precisely written that if you sneeze on it it breaks completely.
The 2600 had CPU-drive graphics. And I don't mean like the ZX80 where games would write to VRAM at their leisure, and then later on the CPU would push those VRAM bits out to the screen - the 2600 doesn't have enough RAM for that.
No, I mean that, when it came time to draw the screen to the TV, a 2600 game would *use game logic to render a scanline of graphics in real-time as the beam crosses the screen.*
It would do this for every scanline. It would use most of the CPU's time (leaving the vblank period for higher level game logic, a reversal of the typical arrangement), and if code wasn't tuned perfectly it would completely break. There wasn't enough RAM to do anything else, nothing ever did anything like that ever again, and its one of the craziest ways to render a game ever conceived.
Meanwhile, anybody who's watched a Vinny corruption stream knows how much you can break an NES game and still have it keep on going.
I cannot even describe the positive impact these videos provide throughout the years. Every april i am enlightened with suboptimal solutions to problems noone has.
" suboptimal solutions to problems noone has." hahaha
I haven't understood anything for the past hour but i have never enjoyed something more
I'm okay with this
I understood almost everything.
I envy you. I'm in SO MUCH PAIN.
@@SianaGearz I'm also okay with this
Tom's videos are awesome because the more you understand them, the more unreasonable they become.
This is difficult to accomplish in practice, but when done correctly the entertainment value increases exponentially.
gahahaha
The running every instruction on copies of the state and then only keeping the right one is definitely reminiscent of quantum bogo sort :D
I love that I feel I understand the individual steps he's taking and the results, but I never understand what the premise of the video actually is. Yet still some of my favourite content on RUclips
The premise is to make something impractical by abusing the inherent non-linearity of floating point hardware to perform operations that fundamentally shouldn't work.
@@SianaGearz It was rhetorical, but thanks
*Raises hand* Actually, technically, we didn’t murder you in cold blood. Rather, we murdered you in pretty hot blood.
Fun fact about the newest version of Stockfish (15.1) - it no longer uses pawn values in the evaluation. From the changelog:
"An evaluation of +1 is now no longer tied to the value of one pawn, but to the likelihood of winning the game. With a +1 evaluation, Stockfish has now a 50% chance of winning the game against an equally strong opponent. This convention scales down evaluations a bit compared to Stockfish 15 and allows for consistent evaluations in the future."
Kind of like the gold standard
inb4 keynesian pointnomics
Whoa!
@@efkastner haha
Because I know you appreciate pedantry (and maybe this was deliberate), the phrase "in cold blood" means the crime was done in a calm/systematic/premeditated way. The murderer was cool and/or chill at the time. Getting so frustrated that you snap and strangle a student is definitely a murder in hot blood, not cold
If I were suckerpinch I'd hide this comment
It's because my professor was a reptilian
"We want it to be able things that are complicated like XOR or human thought"
Idk why this made me spit out my water laughing
I was actually just at an academic conference where a similar problem was discussed! (The paper is Model Checking Linear Dynamical Systems under Floating-point Rounding at TACAS 2023)
The authors want to verify certain linear programs, but find that with rounding it is undecidable for the same reasons as Tom: They can construct a computer. Their computer is a Turing machine, which I think we can all agree is much simpler than the NES, but it's the same idea.
They go on to show that restricting the programs to non-negative coefficients makes the problem decidable again, because it forces the behavior to be somehow periodic.
tom7's professor was dr robotnik vii and i think that explains a lot
Right after he killed me he took my chaos emeralds right out of my backpack :(
"I miss my wife, Tom"
Love your videos.
They're just far enough outside my knowledge base I have to stretch my brain to understand what's going on. But when I figure it out it always is delivered with something approximating comedic timing, and I squeal with mischievous delight.
That's pretty much what I'm going for, so thank you! :)
The floating point errors used here remind me of another April fool's research piece, pannenkoek2012's "How to Crash SM64 using a pendulum". An excellent watch as well!
Yeah that was a pretty interesting coincidence, I doubt they were aware each other's videos were in production simultaneously.
Just incredible stuff. Absolutely heretical behavior
That's why we call it the Association for Computational Heresy!
@@tom7the acronym is equivalent the sound I make when watching these amazing videos and getting my mind blown - ACH!!
Someday, you're going to say "This is ill-advised, but nobody is stopping me," and you're going to crash the simulation. I can feel it
I admire your persistence to replicate important results, but worse.
"Cryptography = fractals - drugs"
I love the way your brain works.
Oh god I haven't watched the video yet but I can only imagine the roller coaster I'm about to embark on based on the title alone...
40:11 omg I literally yelled "noooooo!" in the most pained voice at this part lmao. Pretty sure I scared my cat.
this really descends my gradients
So, one theoretical result of this is that, pretending we're working with reals for a second, you could multiply all of these linear operations out into one single matrix, right. Obviously, multiplying by the matrix does absolutely nothing, but It'd be kinda fun to see what the "NES emulator state transition matrix" ends up looking like.
I would guess that a lot of the operations will turn out to just be the zero function, or just some small constant, because a lot of the time we are trying to eliminate everything except for the error (in order to magnify it and use it). But by doing that with precise linear operations, everything would exactly cancel out. It's hard to know if this would eventually result in the overall matrix being the zero matrix, or just some very degenerate matrix, or maybe I'm completely wrong in assuming this at all.
@@stanleydodds9 Yeah, I'm guessing that the instruction selector manages this, because it's zero-everywhere disregarding floating point error
Making complex machines out of slight differences in behavior is very reminiscent of how computers themselves work, with small differences between electron propagation in various silicon impurities being combined in complex ways to produce integrated circuits.
"The Mandelbrot set is the Radiohead of fractals"
I.. uh... Ok, sure.
40:33 "Wait, did I already write this paper? Damn it!"
Comedy gold right there.
The 3d Mandelbrot set had me ugly laughing, this video is magnificent
The true majesty of it didn’t dawn on me until today, when I actually paid attention to the zoom-in. On top of being a cursed artifact to render, it’s also inexplicably made up of beans
New suckerpiiiiiinch!!!
new suckerpinch!!!!!
Just now realizing it’s Suckerpinch and not Suckerpunch.
Let's gooooo!!
nnneeeewwww suuuccckkerpinnnnchhhh
in a wrestlemania announcer voice
(distributing cold ones to the cheering crowd)
the phrase "I like to work at the intersection of theory and impractice and practice and entertainment" is my new life slogan, thank you
I actually had no idea how to compare floats or doubles and really needed that for a recent project, so I'm already lost down a rabbit hole having paused the video 8:00 minutes in. (Programming is just a hobby for me). Exactly what I love about your videos!
Edit: 25 minutes in, and the baffling numbers are awesome as an ex math teacher! The Bafflebrot is great
FOR GOD'S SAKE DO NOT USE THESE TECHNIQUES IF YOU ARE LEARNING PROGRAMMING.
@@jamesflames6987 I love how there's an actual need for an actual disclaimer
What you do for comparing will depend on your specific problem. Most cases = < > work fine and == has, well gotchas
@@chainingsolid
@@jamesflames6987 don't worry, I was already fully aware of the problems of floating point math in programming, and had solved that previous problem by going down a really convoluted path with integer math. I'm not doing stuff with money or anything super critical though, I'm slowly trying to make my own paragliding flight instrument, which means figuring out sensor fusion with a 9-axis IMU, GPS, barometer, thermometer, and eventually a Pitot tube for airspeed. Because I want to learn how it all works, I'm trying to do it all from scratch, writing my own Kalman filters or whichever type I go with, for example. There will be regions of this project where making somewhat fuzzy comparisons of floating point numbers will be useful and sufficiently accurate. That's an excellent warning for people who aren't aware of the pitfalls of float math, though!
You know that saying "If you can't dazzle someone with your brilliance, baffle them with your bullshit"?
This is both.
Is it normal to feel like a complete illiterate while watching this? That math is out of this world, and yet he explains it like it's trivial stuff!
he took neural nets in college and so on and so forth
I've been doing computer science for longer than I care to admit. I teach (privately), I write a ton of code, I love zany nonsense, and that's just the tip of the iceberg.
I, too, had difficulty understanding this (and I teach the damn stuff!)
it's not regular bullshit, it's advanced bullshit.
I never know with this channel, as a tech illiterate, if something will be made with me in mind. And worse yet it usually won't be clear until halfway through. Genuine criticism of the format.
He probably wanted to explain it more thoroughly but couldn't because the video would be over 2 hours
The algorithm sent me here because you said the word "vaporwave" and I'm so happy it did.
I had the realization yesterday "Wait, April 1st and SIGBOVIK passed without a new tom7 video", and checked the channel to confirm my fears, so I guess I willed this into existence you're welcome.
what's sigbovik?
@@NoNameAtAll2It‘s a non-serious mathematical conference, happening every April 1st.
@@screwaccountnames well, it’s serious maths, just used in silly ways ;)
@@kaitlyn__L Oh plenty of people find ways to write whole papers on things that are purely non-serious. It makes finding the ones with serious math for pointless reasons that much more worth it.
@@Ben-do1bf exactly! :D
there's a _lot_ of good qoutes in this one. here are some of my favorite:
"and if i scroll all the way to the bottom, i can see that my results are in fact the worst results of all time. aw well that's not _too_ bad."
"my professor was wrong, you in fact CAN do this as long as you dont need it to be good or fast."
"and basically it's the same as before but more careful about intermediate computations so that it doesnt touch infinity by accident."
"Yes it won't work, but we can just do it!"
Brilliance
Wow! I've been in this field for over a decade. I did my graduate research in Applied ML. I've been to countless lectures and discussions on the topic... and this has to be one of my new favorite discussions of all time. What a masterful expose. Thank you for this!
The pure joy I felt when you pulled up that chess matchup chart...
"He's like howtobasic but smarter" - a friend when I showed him one of your videos
Always looking forward to the yearly sigbovik video. I'm honored to be published alongside you in this year's conference.
wow congrats! what was yours?
@@efkastner VOACaloid, the first paper in track M
@@yoyoyonono haha well the Abstract has me hooked, can’t wait to read it later :)
@@efkastner thank you!!
Thank you for not trying to predict the future!
Christmas has come early this year. Tom7 videos are the best on RUclips: theatrics and fun concepts!
Oh man, the procrastination tax comment really speaks to my soul man. Super interesting video!
"the Mandelbrot set is the Radiohead of fractals" wiser words have never been spoken
I like that absolutely no elaboration or justification of that statement was given or in fact needed
I've read the paper as soon as you published it and I could not wait for you to upload the video, it feels like a culmination of so many other projects and it's such a perfect tom7 video.
Great! There should be many crazy computers in the world. :) Send it to SIGBOVIK!
I watched an answers in progress video before this about how the youtube algorithm works and how sidecart recommendations are made to uphold a certain vibe. It was hugely nerdy, far from reality and very satisfying. The sidecart recommendations appear to be working
The only person that can make both computer scientists and computer science teachers reee into high supersonic range. They only harmonise when Tom's not in the room.
This man will escape the matrix one day ...
"Given the microscopic rounding errors in quantum mechanics, I have found a way to ..."
"I caught a sandbox escape in real life."
Enjoyed seeing you present at SIGBOVIK this year. You come up with the craziest stuff :)
I'm glad! That was a very last-minute presentation!
You are one of the few youtubers who's videos just tickles me pink. I adore how far you go to make technology do stupid impractical things.
Thanks! That’s the suckerpink brand promise!
I can't believe it. He brought together like, the majority of his previous video-documented projects into one amazing piece of impracticality. Glorious.
the surreality of these videos really just washes over me as i watch them, like lying down on an alien beach as the tide comes in
Technically correct is the best kind of correct!
One day Tom VII will accidentally invent something revolutionary and never show it to us because it's not silly enough
I _aspire_ to understand even half of this video. I can only assume that this man's name is where the word "tomfoolery" comes from.
mr. 7, one day i am going to create a computer as ridiculous as one of yours. you're a true inspiration, and in fact your printable C project encountered many of the same problems as my planned project will. one day i hope i can show you
Happy to hear I could inspire you! The world needs more crazy computers. Consider sending it to SIGBOVIK when you're ready :)
I can't believe there's YET ANOTHER entry in the extended chess AI cinematic universe!
"we want to be able to model complex things like XOR or human thought"
In the world full of distractions, you have managed to capture my attention for the full video. What a feeling I’ve not felt for quite a while. Take my video of the year award.
Always my favorite math/compsci videos. Highly informative but extremely fun to watch from start to finish.
that gag of mimicking the Practical Engineering intro got a genuine laugh outa me
too much concrete and acrylic, not enough hello fresh, 3/5 stars
I was impressed when you managed to turn these algorithms (heuristics?) into a silly way to play bad chess _again,_ and I was doubly impressed by how they actually managed to outperform most of the ones you made for that video!
Loved seeing this presented at SIGBOVIK this year!
unironically, this channel actually makes me want to learn this stuff in depth. thanks!
TWO VIDEOS IN THE SAME YEAR?
I'm not sure! I didn't get much sleep last night!
@@tom7 Get some rest! You deserve it
I'm two minutes in and I'm like ohhh boy, I can see where he is going with this. I'll be he's going to use the imperfections of IEEE float as a non-linearity....if I'm right, what a mad lad you are sir.
You are such an inspiration because you are living proof that there is no excuse for acting haughty and superior no matter how overwhelmingly intelligent or talented you are. You prove that there is no limit on intelligence where humor dies by turning incredibly stupid things into anything you desire, just because it's silly and fun.
Thank you, Tom!
I'm impressed by the amount of skill you have to present a complicated topic I don't understand (past the 10 minute mark), and make me enjoy an almost hour-long video, which I normally don't enjoy watching.
the AI art really adds to the comedic effect, love it
I would have thought it would have been controversial by some people
Agreed. This is the first time I've seen AI art used well. This is what it's *for*.
28:16 HACERR / ACCESS GRANTED
37:12 plain crash / ACCESS GLARDED
46:39 hands holding hands
No line in a youtube video has ever affected me like "This is the world's most boring Nintendo game ... You can't win it or even play it. It exists only to destroy your mind." in that style of delivery. I am in tears
I can already be sure this will be my favorite video of the year.
RIP, Tom 7. ...20 years ago, apparently. 😢
Don't let anyone strangle you ever again, please! You need to be protected at all costs!
We must go deeper. Represent non-linear functions using linear functions using non-linear functions using linear functions.
You are one of the most insane people I "regularly" watch, and I mean this in the most endearing, loving way imaginable ♥
so many incredible quotes from this video but "the mandelbrot set is the radiohead of fractals" may be one of your best
If I had professors like you in 2009, I might have actually been excited about computer science at a crucial time in my life. Instead I got a professor stuck in 1973 and a class full of the worst examples for self actualization and independence in what should have been the hot spot for the tech boom. I lost like 5 years to people like your professor
His passion for Pascal didn't do it for ya huh?
Your content is the absolute best. Thank you for the countless hours of hard work for our hour of amusement!!
LOL I'm a student at CMU right now and my prospective research actually involves neural nets, floating point numbers, and breaking up the computation into linear subproblems and cryptography. There's a good chance I'll reference your SIGBOVIK paper if they'll allow it...
How could they not allow it!? It's the world's most prestigious venue!
Drinking game: you drink every time Tom says something like "this isn't optimal", or "that's not actually how it should be done", or "this is a bad idea"
our yearly suckerpunch video should be coming up soon
i'll never forget the months i spent understanding a radial basis function network (which was described as a neural network). i'm still not sure what i was looking at, and i ended up replacing the entire system with... linear functions hahahaha
Desperately awaiting the next Tom7 video
your videos are a beacon of information, entertainment and above all, impracticality. thank you for everything that you do.
For performance reasons, I experimented using half-precison floats for the bulk of a linear regression I wrote in OpenCL. I'm excited to see where this video goes! Hopefully downhill towards the global minimum, possibly escaping any local minima through imprecision abuse.
I did not expect this. What a fun way to play with abstractions. The fact that it works is a bonus.
also - if we're running all 256 instructions at once... hmm, can we emulate the 2A03 with a compute shader??? 🤔
I was just thinking about your channel yesterday randomly, and how I always look forward to your videos.