Needing practical info on Math

All off topic discussions go here. Everything from the funny thing your cat did to your favorite tv shows. Non-programming computer questions are ok too.
Post Reply
User avatar
~
Member
Member
Posts: 1226
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Needing practical info on Math

Post by ~ »

I have tried to find a resource of information that explains the order in which math should be learned for that knowledge to be functional, practical and applicable. I don't know how much would pure algebra, geometry, pre-calculus/calculus (I don't know what those are) would cover that or what other things to learn for also somehow understanding the dependencies on each other of them. The wiki section doesn't seem to have something about it, and all one can seem to find are unsorted books mainly about very advanced topics.

Like if you pick the "Graphics Gems" books and don't understand even a bit of what they contain but an absolute void in the concepts.

What I'm talking about specifically is, what should be the order of topics and math knowledge to learn, from very basic to (very) advanced, for being able to understand math formulas like those used in Bresenham, Bezier, squares/areas, circles, visual algorithms like fire and 3D (basic X-Y-Z dot plotting), and of course vital things such as the math used in MP3 (huffman decoding, 9 point inverse discrete cosine transform, MDTC...) and other simpler but necessary tasks like .ZIP/.PNG compression, among many many others.

So I need to know:
- what to learn
- in which order
- where could possibly be found, some titles?

...since it seems unclear even what is needed to be learned for getting to be able to handle that huge portion of computing stuff that relies purely on math.

Some hints, books or other stuff that can be obtained from the web or a real library/bookstore?
YouTube:
http://youtube.com/@AltComp126

My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
User avatar
Masterkiller
Member
Member
Posts: 153
Joined: Sat May 05, 2007 6:20 pm

Re: Needing practical info on Math

Post by Masterkiller »

"Math" is wide conception. You must define a target. What do you want to achieve? And then you will know what to learn.

Since you are posting in a "OS Development" forum and you mention "3D basics" and "MP3", I suppose you want to learn computer math. You should start with binary and hex counting systems, logical operations, boolean algebra and so on. This covers the very begining of computer programmer's math (sadly most of the programmers start with C++ and miss that part). I do not know any book, but now you know what to search, use google. Since this things are quite simple, there are a lot of material on wikipedia. Good Luck!
ALCA OS: Project temporarity suspended!
Current state: real-mode kernel-FS reader...
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Needing practical info on Math

Post by Combuster »

Should still not be in OS development. Moved.

Computer math != signal processing != linear algebra.

The first one is some basic stuff of binary math, groups, and primarily, logic.

Signal processing is that what you use for MP3 stuff. You'd need to learn about frequencies, frequency domains, psychoacoustics, and the whole lot of sample transforms. Each of which is a relatively big topic.

Linear algebra is the basis of computer graphics. You'll need to learn about vectors, the differences in locations and directions, dotproducts & cross products, matrices, scaling, rotations, implicit surfaces, explicit surfaces, affine transformations, translations, projections, matrix inverse, and barycentric coordinates to start with 2D and 3D graphics. You can tackle parametric systems, linear interpolation, box filters, hermites, cubic interpolation, beziers, B-splines and cardinal splines somewhere half way through that list.

And trust me, it is really hard to figure all this out on your own with the available internet resources. Ask a math teacher.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
~
Member
Member
Posts: 1226
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Re: Needing practical info on Math

Post by ~ »

At this point, as a regular programmer I know the fundamental stuff like bitwise and logical operations, everything that has to do with routinary C and ASM-style operations.

But there are several "links" missing between these "baby steps" and slightly higher topics like Bresenham. I can have the code from Wikipedia, can translate it to assembler, but I don't fully understand what the formulas mean and I really need to, because even the books about computer math use formulas in a written form that I don't understand.

That's why I am needing a list of topics, their mere name and possibly the order to learn them, for being able to see clearly the map of things.

I don't think that something like Huffman decoding (Huffman trees) is a simple thing that can be learned without knowing specifically the math principles it uses (its names, logarithms? calculus? trigonometry? what about them?), specially if one doesn't know the syntax of math symbols. That is the kind of things that I need to know , as it has occurred that whenever I look for them in Google or anywhere, I end up with a huge bunch of big books about advanced topics for which I don't have the required prior knowledge to understand.

Could it be possible to provide maybe a drafty and rather brief index of what to be learned progressively? Note that I'm NOT helpless and am doing my own search, as you can see I know there is code and can blindly implement it as a novice "user" of it, but it is going nowhere from the point of view of a "decent" learning.

Being able to include it eventually in the wiki would certainly be a terrific help for a lot of people, even I would be glad to help in what I can if there is information of what to learn if it's properly stated/explained/written down.
YouTube:
http://youtube.com/@AltComp126

My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Needing practical info on Math

Post by Combuster »

The linear algebra list is pretty much in chronological order...

edit: for bresenham and other discretisation topics, try chapters 35-40 of michael abrash graphics programming black book.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
DeletedAccount
Member
Member
Posts: 566
Joined: Tue Jun 20, 2006 9:17 am

Re: Needing practical info on Math

Post by DeletedAccount »

Hi,
One book which i read and is quite good is

http://www.amazon.com/Advanced-Engineer ... 0471154962

Another book which is quite good is Higher Engineering Mathematics by B S Grewal , but I am not sure whether it is available outside India . Generally books by Indian Mathematician's are easier to understand and have more challenging problems . Calculus books by Shanti Narayan are also good :) .
And trust me, it is really hard to figure all this out on your own with the available internet resources. Ask a math teacher.
That's not really correct , for mathematics you need practice , constant and regular practice.( An hour a day will suffice ) . Never go to a teacher for help , do that only if it's absolutely necessary , never trust the textbook , develop your own proof's and compare with the solution given in the book. That is the real joy of mathematics , never let the teacher or book take that away from you :wink: . Get yourself a good book and start practicing that's all .

Depending on teacher for everything is a bad idea ( at least in Math )
Regards
Shrek
purage
On Probation
Posts: 119
Joined: Wed Feb 11, 2009 1:04 am

Re: Needing practical info on Math

Post by purage »

Basic Math, Pre-Algebra, Algebra, Pre-Calculus, Calculus, Linear Math, Discrete Math, Statistics. Study the Elements to keep sharp. And then learn what Combuster said and do what Shrek said.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Needing practical info on Math

Post by Combuster »

Get yourself a good book and start practicing that's all
That was exactly my point. You don't have that information off the internet.

I once made an attempt at reed-solomon encoding in order to implement code for a CD's error correction scheme. And I spent quite a few hours on that and I still don't get how it is supposed to work. Because there was no document that explained how it worked, let alone giving an example of the process.
And the one bit of sourcecode with more than copyright in the comments I found was useless as it didn't operate as expected.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
bewing
Member
Member
Posts: 1401
Joined: Wed Feb 07, 2007 1:45 pm
Location: Eugene, OR, US

Re: Needing practical info on Math

Post by bewing »

As a published mathematician, I think I can freely say that the entire cosmos of important and necessary functional algorithms is more than one human mind can understand in a lifetime. So you will eventually either need to depend on cookbooks sometimes, or team up with someone who can study half of it, while you study the other half.

As far as huffman goes, I do understand that one, and it is quite simple. (When I can make some time, I'll put it in the wiki.) And you didn't mention wavelets, or exponential moving averages, or FFTs, or ....
Post Reply