Stránka 1 z 1

Necelociselne mocniny na 8bitech

Napsal: 04 srp 2008, 21:57
od termit256
Potrebuji na 8bitovem mcu (x51) spocitat mocninu s necelociselnym exponentem, napr. 25^1,32547
Mate fintu jak to nejakym rozumnym zpusobem provest?
Kdyz tech desetinnych cisel v exponentu nebylo moc, napr. a^1,5 resil jsem to jako druhou odmocninu a.a.a
Ale na takovy pocet desetinnych mist by bylo lepsi pouzit nejaky elegantnejsi postup, aby vypocet netrval tyden.
Ve skole jsem matematiku prospal, a ted chybi.
Poradite?

Napsal: 05 srp 2008, 09:37
od Crifodo
zkoušels ses inspirovat v Komentovaném výpisu ROM ZXS?
Je tam rutina pro funkci X^Y, samozřejmě je to všechno provázáno s odskoky na další podprogramy, předchází tomu prezentace čísel v pohyblivé řádové čárce ve formátu ZXS a tak.. nejsem znalec.
http://ci5.speccy.cz/files/romfull.zip

Rutina je na #3851

Napsal: 05 srp 2008, 21:09
od MiLe
Nazdar,
priamo ti poradit neviem ale mozno by pomohlo naco taky vypocet potrebujes? Osobne by som sa snazil ak to mas v nejakom vzorci sa tej neprijemnej mocniny nejak zbavit, prip. by pomohlo keby sa dala zanedbat a pod.
Daj vediet blizsie naco potrebujes takuto mocninu?
Aky je rozsah pre zaklad a mocninu?

Napsal: 07 srp 2008, 07:47
od termit256
Vzorec slouzi k vypoctu tloustky kury kulatiny (drevene klady) na zaklade jejiho prumeru. Zjednodusit pujde asi dost obtizne, je vytvoren zcasti na zaklade mereni a nejakych analytickych vyrazu. Ten mocnitel je konstanta a je pro kazdy druh dreva jiny, je to v nejake CSN.
Zaklad je cele cislo do cca 150. Cely vzorecek tu momentalne nemam, ale krome tohoto jsou to celkem trivialni vypocty.

Kod na ZXS jsem pokoumal, ale je extremne neprehledny a instrukcni soubor Z80 neznam, takze by mi trvalo silene dlouho nez bych z ASM vypreparoval princip toho vypoctu.
Pro me ani tak neni problem napsat kod, ale nevim jak to rozumne spocitat, treba na kalkulacce bez funkce X^Y.

Napsal: 07 srp 2008, 08:39
od mihal
Preskumaj preklad funkcii z vyssich jazykov, v C by som si jednoducho prilinkoval sqr kniznicu a smitec, na 8bite predpokladam bez hw delicky by bola mozno jednoduchsia tabulka.

Napsal: 07 srp 2008, 09:51
od rnbw
Ak vies pocitat exp() a ln(), tak to vypocitas takto:
y=x^n
ln(y)=ln(x^n)
ln(y)=n*ln(x)
y=exp(n*ln(x))