| Автор |
Съобщение |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 Абе тая магия от Куейк 3 знаехте ли я?
http://en.wikipedia.org/wiki/Fast_inverse_square_rootАз понеже се бях засилил да си търся sqrt функция която да се търкаля прилично на дребен процесор и налетях на това...
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Юни 15, 2012 12:50 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Абе тая магия от Куейк 3 знаехте ли я?
Бе не, не съм го правил така. Иначе в power има инструкция точно за това, но на мене като ми трябва корен ми трябва цялата точност та го правя с последователни приближения и толкова умножения, колкото бита искам в резултата (демек корен от 32 битово цяло число става с 16 умножения, за FP става по същия начин за мантисите а какво им баех на експонентите не мога да си спомня без да погледна сорса ама не беше нищо особено). Гяволско е де, сега поне знам какво да правя с това "square root esrtimate" дето го имам  . Дано потрябва скоро.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Пет Юни 15, 2012 1:25 pm |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
 Re: Абе тая магия от Куейк 3 знаехте ли я?
бисмилях аррахмани аррахим! това ме изкърти яко!!!
|
| Пет Юни 15, 2012 9:15 pm |
|
 |
|
anrieff
Ранг: Новодошъл
Регистриран на: Нед Ное 16, 2008 1:16 pm Мнения: 179 Местоположение: София
|
 Re: Абе тая магия от Куейк 3 знаехте ли я?
Винаги съм се чудил какво толкова невероятно намират хората в това парче код. Идеята е гениална - спор няма. Повечето хора, обаче, се захласват по магическата константа 0x5f3759df. И се дивят на гения, успял да я рафинира. Пък то прецизирането на константата става с малко код и двоично търсене. Аз като бях на 20 години си направих подобна функция, смятаща реципрочен четвърти корен (т.е. смята x^(-0.25), с +- 3% точност): И това без да знам въобще как работи оригиналният код. Моето е малко по-подробно разписано, с union-и, щото иначе GCC-то се сърди заради нарушаване на strict aliasing (оригиналното от на Quake-а няма да се компилира до правилен машинен код на достатъчно ново GCC с -O2  )
_________________ 2 + 2 = 5, при много големи стойности на 2.
|
| Съб Юни 16, 2012 12:59 am |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5298
|
 Re: Абе тая магия от Куейк 3 знаехте ли я?
Аз пък като бях на 20 години, джитках Archon и Cubit по 12 часа на ден, пушех по 50 цигари и слушах Napalm Death. И пет пари не давах дали числата имат корен изобщо 
_________________ 'просто' е технически синоним на 'красиво'
|
| Съб Юни 16, 2012 2:32 am |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
 Re: Абе тая магия от Куейк 3 знаехте ли я?
коснатнатта въобще не ме учудва, а това че някой въобще му е хрумнало да шифтва флоатинг пойнт число и че резултата е смислен. аз също съм правил ускорени функции, но са чисто инт или чисто флоат, аркустангенс примерно.
|
| Съб Юни 16, 2012 6:27 am |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Абе тая магия от Куейк 3 знаехте ли я?
А, това с шифта не е голям скок, лесно би ти дошъл ако си писал достатъчно FP емулатори и/или емулирал по-сложните функции в налично FPU и си запомнил добре кое къде е във формата. Как ли не съм ги шил и съшивал (или успявал да го избегна ...  ). Идеята за самия алгоритъм е интересна според мене, но не вникнах достатъчно та да имам истинска преценка де.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Съб Юни 16, 2012 8:22 am |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
 Re: Абе тая магия от Куейк 3 знаехте ли я?
Сметките за графика позволяват човек да балансира м/у скорост и точност. http://www.lomont.org/Math/Papers/2003/InvSqrt.pdfНе баш двоично търсене. По-скоро зиг-заг след теоретично определяне на стартовата, следейки критерия за грешката. Когато слушах Napalm Death и играех Archon и на мен това щеше да ми се види като пълна магия. "Смислен" в рамките на търсената точност. Или ще влезе бит от експонентата, или не. В PDF-а има анализ.
|
| Съб Юни 16, 2012 11:03 am |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Абе тая магия от Куейк 3 знаехте ли я?
Има известна забава и от това, че тоя бит ще нахлуе не като най-старши а едно място по-надолу. Ако въобще съм загрял от половиния поглед какво става де, може да не са в "нормалния" IEEE формат FP числата та знам ли.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Съб Юни 16, 2012 12:12 pm |
|
 |
|
woody
Ранг: Форумен бог
Регистриран на: Вто Юли 31, 2007 2:55 pm Мнения: 1792 Местоположение: София
|
 Re: Абе тая магия от Куейк 3 знаехте ли я?
Стандартни IEEE са си. Вливането на бит и само един пас N-R са били ОК за търсената графична цел - валидни еди-колко-си бита. Специално за случая на Quake III човекът дори е махнал втория N-R пас. 
|
| Съб Юни 16, 2012 12:24 pm |
|
|