PGA Ep 5 : A new Hope I

  Рет қаралды 4,823

Bivector

Bivector

Күн бұрын

Пікірлер: 20
@angeldude101
@angeldude101 6 ай бұрын
I take issue with the choice of operator symbols, which is unfortunate since they seem to have become standard. For starters, the meet is ∧... in lattice theory (and in PGA). It is also very similar to ∩, which is the intersection of sets, and the meet in PGA is very closely related to the intersection of subspaces. It's also the AND operator in boolean logic. So why isn't the symbol used for the set of points contained in one subspace AND another subspace not the same as the one for AND (ie &, which is commonly used as shorthand for "and" even outside of math)? Similarly, ∨ is used for the join, in both lattice theory and PGA, and OR in boolean logic. In a few programming libraries that I've seen, the symbol used for bitwise OR is also often overloaded for the union of sets, which again has a very similar symbol in ∪. The connection between the join and the union is a bit looser than between the meet and the intersection, but I believe it's still relevant. Combine that with De Morgan's Laws where ¬(a ∨ b) = ¬a ∧ ¬b, which is translated into programming languages as !(a | b) = !a & !b, and it's pretty clear that at least the dual uses the right operator. Inner product would just get what's left, ^, which it doesn't have as much in common with as the others, but it's probably the most "xor-y" of the GA operations other than maybe the commutator product. I don't like how ^ was chosen for the meet solely because of its visual resemblance to ∧, when & already has the same meaning as ∧. P.S. The sandwich product doesn't really need its own symbol in my opinion, but if it did get one, really the function call syntax would be best, but overloading _that_ is honestly _cursed._
@Isomorph70
@Isomorph70 2 жыл бұрын
Where did you define the Vee product? Did I miss it?
@bivector
@bivector 2 жыл бұрын
We were on a time budget ;) - it's all in the writeup(s). (The dual of the vee equals the wedge of the duals) .. (A v B)* = A* ^ B*
@tsukisan101
@tsukisan101 2 жыл бұрын
It's a kind of magic... from N=3 to N=10 and into 3D...
@maxqutekerman907
@maxqutekerman907 2 жыл бұрын
This is sorcery
@safdarsafdari7289
@safdarsafdari7289 2 жыл бұрын
awesome
@karltraunmuller7048
@karltraunmuller7048 3 жыл бұрын
Super interesting, always loved math in university.
@andrewvoron4490
@andrewvoron4490 3 жыл бұрын
What are shortcuts?... I really tired to click that run button...
@bivector
@bivector 3 жыл бұрын
shift+enter to run :)
@andrewvoron4490
@andrewvoron4490 3 жыл бұрын
@@bivector 👍
@maksymiliank5135
@maksymiliank5135 Жыл бұрын
It's all fun and games until you see the implementation of these operators in code. There is so much going on in the inner and outer product functions. Now I've become a little bit skeptical about this
@bivector
@bivector Жыл бұрын
When implemented on full multivectors, these operators do indeed appear quite involved, however for production code, a graded approach is typically chosen which reduces the complexity by an order of magnitude. (think complexity of standard 3D cross/dot/etc). A good reference for a production level PGA library is the 'Klein' library by Jeremy Ong.
@maksymiliank5135
@maksymiliank5135 Жыл бұрын
@@bivector thank you for the response. When I first saw the code I thought that it looked inefficient, but then i remembered that in computer graphics everything is done with a 4x4 matrix multiplication, cross products and so on, which are also pretty costly operations. And there is also the SIMD instructions which let you do multiplications and additions in parallel. So it probably wasn't that bad as it first seemed
@ginanjarutama
@ginanjarutama 2 жыл бұрын
Hi, I try to reproduce the inverse kinematics code in the video, but it didn't run the way it should. And I can't spot my mistakes, need help :) Algebra(2,0,1, ()=>{ const N = 3; var points = Array(N+1); for (var i=0; i=0; --i) c[i].set(tr(c[i]&c[i+1],-0.5) >>> c[i+1]); c[0].set(b); for (var i=1; i>> c[i-1]); } return this.graph(()=>{ ik(base, target, points) return [ ...points, ...lines, 0xFF0000, base, target ] },{ grid :1, lineWidth: 8, fontSize:2, pointRadius:2 }) })
@bivector
@bivector 2 жыл бұрын
var tr = (line,dist)=>1 -0.5*dist*1e0*line.Normalized*!1e0;
@ginanjarutama
@ginanjarutama 2 жыл бұрын
@@bivector thank you
@nullstyle
@nullstyle 3 жыл бұрын
Love the math; Holy shit the merch is cringey as hell. Us neckbeards really need to get better with jokes
@eelcohoogendoorn8044
@eelcohoogendoorn8044 2 жыл бұрын
Im going to be wearing that MAGA hat with pride.
@nullstyle
@nullstyle 2 жыл бұрын
@@eelcohoogendoorn8044 I suppose your pride is my cringe; cool, cool, cool ;)
@eelcohoogendoorn8044
@eelcohoogendoorn8044 2 жыл бұрын
@@nullstyle it's all about how you trim your neckbeard. You've got to wear it with style.
PGA Ep 1 : The Reflection Menace
27:50
Bivector
Рет қаралды 20 М.
PGA Ep 6 : A new Hope II
12:34
Bivector
Рет қаралды 3,9 М.
Perfect Pitch Challenge? Easy! 🎤😎| Free Fire Official
00:13
Garena Free Fire Global
Рет қаралды 67 МЛН
Disrespect or Respect 💔❤️
00:27
Thiago Productions
Рет қаралды 30 МЛН
Wait for the last one 🤣🤣 #shorts #minecraft
00:28
Cosmo Guy
Рет қаралды 26 МЛН
PGA Ep 2 : Attack of the mirrors
30:37
Bivector
Рет қаралды 10 М.
GAME23 David Eelbode - Rotors and Spinors
56:55
Bivector
Рет қаралды 2,4 М.
PGA Ep 4 : The Forque Awakens
24:33
Bivector
Рет қаралды 6 М.
March 9th: Fun Applications of Geometric Algebra! by Logan Lim
55:48
Parker Glynn-Adey
Рет қаралды 7 М.
PGA Ep 3 : Revenge of Infinity
21:27
Bivector
Рет қаралды 7 М.
GAME23 Chris Doran - GA: Level Up!
1:09:45
Bivector
Рет қаралды 913
How Math Becomes Difficult
39:19
MAKiT
Рет қаралды 288 М.
Perfect Pitch Challenge? Easy! 🎤😎| Free Fire Official
00:13
Garena Free Fire Global
Рет қаралды 67 МЛН