Necelociselne mocniny na 8bitech

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

Necelociselne mocniny na 8bitech

#1 Příspěvek 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?

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#2 Příspěvek 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

Uživatelský avatar
MiLe
Příspěvky: 123
Registrován: 18 říj 2005, 02:00

#3 Příspěvek 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?

termit256
Příspěvky: 10071
Registrován: 06 pro 2007, 01:00

#4 Příspěvek 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.

Uživatelský avatar
mihal
Příspěvky: 1812
Registrován: 06 dub 2005, 02:00
Bydliště: Zilina

#5 Příspěvek 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.

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#6 Příspěvek 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))

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“