eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingszybki logarytmRe: szybki logarytm
  • Data: 2014-07-29 18:56:34
    Temat: Re: szybki logarytm
    Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On 29.07.2014 09:52, Borneq wrote:
    > W dniu 2014-07-22 14:31, bartekltg pisze:
    >> Odpowiedź prosta, rozbić" liczbę na cechę/mantysę, choćby funkcją
    >> frexp (x) -> (y,n) : x = y*2^n, 0.5<=y<1
    >
    > Jak zrobić funkcję frexp? Trzeba bitowo grzebać we floacie, gdzie już
    > jest rozbita na cechę i mantysę? Chyba się da, C++ to nie Java i
    > można robić takie konwersje

    Użyć funkcji frexp z cmath.

    A ona bawi się w bity. Działa tak samo, a ja nie muszę pamiętać
    dokładnie specyfikacji ieee ileśtam. Nie można przesadzać z firowaniem;)

    >> całość: http://pastebin.com/WuYW6MTJ
    >
    > chrono::high_resolution_clock::now() to standardowa otoczka
    > QueryPerformanceCounter ?

    Cholera wie. Pewnie "zależy od implementacji".
    Najdokładniejszy zegar, jaki jest dostępny dla piszącego
    bibliotekę na danej maszynie.
    Pewnie można zapytać się zegara o precyzja, a przynajmniej
    o rozdzielczość.

    > A może by spróbować podzielić wielomian przez wielomian? Choć
    > dzielenie trwa znacznie dłużej niż mnożenie, to będzie tylko jedno.

    Przecież właśnie to robię. Mam wielomian w liczniku, wielomian
    w mianowniku, liczone są oba, potem wyniki są dzielone.

    > Skąd wziąłeś te wzory? Czy podobnie daje się wyprowadzić na inne
    > funkcje?

    Dla wielomianów masz kryterium Czebyszewa i algorytm Remeza.
    http://en.wikipedia.org/wiki/Remez_algorithm

    Dla wymiernych kryterium też działa (pewnie już nie na zasadzie
    _najlepszej_ funkcji, a jedynie przyzwoitej, jak będę potrzebował,
    wgryzę się głębiej. Na razie odpłynąłem w próbę zrozumienia,
    dlaczego funkcje wymierne dają tak znacznie lepsze wyniki
    niż wielomiany:).

    Wyznaczenie też jest bardziej kłopotliwe.
    Jakoś robi to boost
    http://www.boost.org/doc/libs/1_36_0/libs/math/doc/s
    f_and_dist/html/math_toolkit/backgrounders/remez.htm
    l
    I jakoś lepiej robi to mathematica
    http://reference.wolfram.com/language/FunctionApprox
    imations/ref/MiniMaxApproximation.html
    [używa błędu względnego, chciałem +-bezwzględny,
    dodałem do funkcji 100:)]

    > A jeśli chodzi o wolniejsze szeregi ale pozwalające wyliczyć
    > z dowolną dokładnością, to gdzie można natknąć się na zbiór takich
    > wzorów? Trochę jest na exp, sinus,czy cosinus w tablicach
    > matematycznych.

    To, co powyżej nie było przybliżeniem Pada. Było funkcją wymierną
    utworzoną aby na danym przedziale jak najlepiej (minimalny błąd
    maksymalny) odtworzyć funkcję.

    Różnica jest taka, jak między szeregiem taylora a najlepszym wielomianem
    danego stopnia.

    Takie funkcje na pewno są w pracach poświęconych wyznaczaniu
    numerycznych przybliżeń. Kiedyś czytałem coś większego
    o polilogarytmach, były tabelki;-)


    Metody z kwadratowaniem na razie rozumiem, nie umiem znaleźć ;-)
    Może jakbyś przepuścił przez tą maszynkę podane tam wielomiany.



    pzdr
    bartekltg




Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: