Jak podnieść jakąś zmienną do dowolnej potęgi?
Pytanie z assemblera AVR
Mar 21, 2005
22 Replies
No to jeszcze zdefiniuj czy dowolna oznacza:
- dowolną liczbę naturalną?
- dowolną liczbę całkowitą?
- dowolną liczbę?
U¿ytkownik "DScreator" snipped-for-privacy@tenbit.pl napisa³ w wiadomo¶ci news:d1mrv2$f79$ snipped-for-privacy@korweta.task.gda.pl...
ZTCP pomno¿yæ mantysê przez liczbê (potêgi) tzn. je¶li chcesz podnie¶æ do potêgi 5 to mno¿ysz mantysê razy 5
to znaczy dowolna przez dowolna :D
Żeby było precyzyjnie podam przykład zmienna jest np 20 i chcę ją podnieść do potęgi 0,16.
Moim zdaniem w uP o ograniczonych zasobach chyba nie uda siê wykonaæ operacji na dowolnej liczbie.
Pawe³
Jeśli się nie da to jest na to rozwiązanie - stworzyć tabelę z obliczonymi wartościami dla poszczególnych zmiennych. Ale jest tego trochę więc wolałbym jednak to jakoś policzyć na uP.
"Jest tego trochê" to bardzo ³agodne okre¶lenie. Ja bym powiedzia³, raczej ¿e dowolnych liczb jest nieskoñczenie du¿o.
Pawe³
Przez logarytmy juz tylko.
J.
Korzystajac z algorytmu CORDIC* mozesz w bardzo prosty i dosc szybki sposob wyliczyc sobie sinus oraz kosinus hiperboliczny podanej wartosci x, a nastepnie przypomniec sobie, ze e^x = sinh x + cosh x. A stad juz jest w miare prosto.
Pozdrawiam Piotr Wyderski
*) Biorac pod uwage liczbe rekomendacji, ktore mu tu ostatnio wystawilem, zaczynam sie czuc jak akwizytor... :->
A jesli chcesz podniesc do potegi pi? :-)
Pozdrawiam Piotr Wyderski
No jest to jakaś metoda. Potem dokładnie to przeliczę i sprawdzę czy nie zapłacę w ten sposób ceną skomplikowanego programu. Realizuje dość skomplikowane równanie.
Ale czy biorac metode stosowana w Cordicu za wzor nie wymyslimy jeszcze prostszego sposobu ?
A wiesz co najsmieszniejsze jest - on jest z roku 1959. Czemu tak malo popularny ze trzeba go odkrywac ?..
J.
A propos .. wpisales to w koncu w fpga ?
Gdyby podejsc do tego czysto kombinacyjnie [tzn szereg blokow z sumatorami] .. to ciekaw jestem co oscyloskop na wyjsciu pokaze przez okres ustalania wyniku. To sie juz chyba powinno dac zobaczyc :-)
J.
Nie wiem. :-) Tzn. napisalem w VHDL i sie poprawnie kompiluje (dziala do fmax=213MHz, a ja potrzebuje tylko 130MHz, wiec jest duzo rezerwy; uklad zajmuje 1215 LE), ale jeszcze nie mialem okazji przesymulowac, bo symulator udostepniany z darmowa wersja Quartusa nie potrafi wczytywac i zapisywac danych z/do pliku tekstowego, a z samego patrzenia na przebiegi nikt nie wydedukuje, czy to jest dobrze -- tu Matlaba/Octave trzeba. :-)
Wlasnie cos takiego zastosowalem -- szereg 15 blokow po 3 sumatory 24-bitowe kazdy. Tylko pomiedzy bloki wstawilem latche, by uklad nie byl czysto kombinacyjny, tj. zrobilem pelny pipelining.
Hm, ale po co?
Pozdrawiam Piotr Wyderski
Jak "jeszcze prostszego"? Przeciez sinus i kosinus hiperboliczny Cordic obliczy rownolegle w jednym przebiegu, a koszt dodawania dwoch liczb wynikowych to chyba nie jest jakies szczegolne obciazenie... Ja bym sie raczej shiftow obawial -- male procesorki zazwyczaj nie maja barrel shifterow i przesuniecia o k bitow trzeba skladac z k przesuniec o bit... :-(
Nie wiem, ale np. koprocesor matematyczny 8087 korzystal z tego wlasnie algorytmu do obliczania wielu funkcji.
Pozdrawiam Piotr Wyderski
Hm, zasadniczo powinny byc D-rejestry a nie latche
A tak z ciekawosci - zeby zobaczyc jak bramki pracuja :-)
J.
Ale na podobnej zasadzie chyba mozna liczyc bezposrednio exp.
Ale jakos nigdy wczesniej na niego nie trafilem. Tzn tak zeby byl wymieniony jako najlepszy i ladnie opisany. Fakt ze nie siedzialem az tak w temacie, ale chocby przypadkiem powinienem trafic.
J.
A jaka jest miedzy nimi roznica? Zasze nazywalem latchem wektor przerzutnikow D wyzwalanych zboczem. :-) W koncu zatrzask...
Ale w takim ukladzie kombinacyjnym stan nieustalony bedzie trwal na tyle dlugo, ze na wyjsciu ukladu bedzie mozna zaobserwowac rozne bardzo dziwne przejscia, niekoniecznie zwiazane z algorytmem, a bardziej ze struktura fizyczna ukladu. :-)
Pozdrawiam Piotr Wyderski
A to fakt, w zadnej ksiazce do informatyki tez nie znalazlem o nim wzmianki. Ale za to w podrecznikach do DSP to juz calkiem sporo.
Pozdrawiam Piotr Wyderski
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required