Biblioteka do kalkulatora

Biblioteka do kalkulatora
lipkerson
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 2 lata
1

Witam

Piszę dość specyficzny kalkulator - nie będę się tutaj rozpisywał nad jego funkcjonalnością. Ważne jest, że precyzja to podstawa: w działaniach liczy się n-te miejsce po przecinku a taką liczbę będe musiał jeszcze pierwiastkować itp.
Jest klasa BigDecimal i teraz pytanie czy ona mi to zapewni?
Jest metoda devide i mniemam, że będzie ok ale pierwiastek?
Konwersja do double to nieporozumienie.
Znalazłem takie coś:

Kopiuj
 
public static BigDecimal sqrt(BigDecimal n, int s) {
    BigDecimal TWO = BigDecimal.valueOf(2);

    // Obtain the first approximation
    BigDecimal x = n
        .divide(BigDecimal.valueOf(3), s, BigDecimal.ROUND_DOWN);
    BigDecimal lastX = BigDecimal.valueOf(0);

    // Proceed through 50 iterations
    for (int i = 0; i < 50; i++) {
      x = n.add(x.multiply(x)).divide(x.multiply(TWO), s,
          BigDecimal.ROUND_DOWN);
      if (x.compareTo(lastX) == 0)
        break;
      lastX = x;
    }
    return x;
  }

Co myślicie? Dodam, że jeszcze też muszę logarytmowac takie niewdzięczne liczby - jakieś pomysły czy zostaje mi tylko implementacja samemu jakiegoś algorytmu numerycznego.

Inne pytanie - kiedys na tym forum była opisana biblioteka, która obsługiwała sama kolejnosc zadan arytmetycznych - również nawiasy itp. rzeczy. Pamięta ktoś?

Za wszelkie podpowiedzi będe naprawdę wdzięczny!


Another jam from the world for the jam from the voices of the world......
edytowany 2x, ostatnio: lipkerson
Koziołek
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:7 dni
  • Lokalizacja:Stacktrace
  • Postów:6822
1

Uderz do CERN > http://acs.lbl.gov/software/colt/

Z colta trochę korzystałem na studiach i był całkiem fajny. Tam zresztą jest więcej tego typu softu.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
lipkerson
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 2 lata
0

Znalazłem kilka prostych i fajnych parserów, ale najbardziej mnie zaciekawił bardziej skomplikowanuy ANTLR. Można robić na nim grafy - działania są rozpisywane na poziomu i pomyśałem że dzięki temu można by zrobić wielowątkowe przetwarzanie działań.

Znalazłem fajny link opisujący gramatykę dla operatorów:
http://www.mymindleaks.com/article/writing-expression-parser-using-antlr.html

Tylko zastanawiam się jak zrobić funkcje : ln, cos itp (są jednoelementowe).
Próbował ktoś to ugryźć?


Another jam from the world for the jam from the voices of the world......
Koziołek
tylko na wierzchu. Pod spodem masz sumę szeregu zatem można zapisać np. ln jako sumę

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.