O MNIE MUZYKA TEKSTY PROGRAMY NA ZAMÓWIENIE SCENA i C64 GŁÓWNA

SatorParser

BARDZO SZYBKI parser wyrażeńytmetycznych dla dowolnej liczby zmiennych dla C++ dla liczb rzeczywistych (typu double i long double) z kompilacją wyrażenia w postaci biblioteki satorparserv.dll.

English:
Mathematical Expression Parser (MEP) for programmers, Mathematical Expression Evaluator, STRING Calculator, Sophisticated Equation Processor, Fast Math Parser, Equation parser - calculator, ultra fast math expression parser.
Many applications require the parsing of mathematical expressions. The main objective of this project is to provide a fast and easy way of doing this.
Satorparserv.dll is a standard DLL very easy to use programming component for software developers which allows programs to evaluate math / algebraic expressions defined at runtime. It is a high performance math parser library. The math parser is aimed to parse and extremely fast evaluate scientific, engineering and math expressions on-the-fly. It is designed for use in loops which repeat the same operation with different values. This library supports conventional math operators and functions, as well as infinite number of user variables. It includes over 40 built in functions including sin, log, exp, etc., 15 constants and implements all calculations in 8-byte (64-bit) double floating point. The program can handle all possible calculation errors and give very precise information about it. Ease of use and speed are at the core of the product's design. It is the fastest math-parser ever made (faster than UCalc).

Przetwarzanie wprowadzonych przez użytkownika funkcji matematycznych stanowi wąskie gardło optymalizacji szybkości działania takich programów jak Wykresy4DX, czyli dynamicznie tworzone animacje wykresów z podanych wzorów funkcji. Szybkość obliczania wartości przez parser matematyczny wpływa w znacznej mierze na szybkość obliczeń. Zatem potrzebny jest bardzo szybki parser i takim właśnie jest satorparser.

Inaczej nazywany jako: ewaluator wyrażeń matematycznych, parser wzoru funkcji, parser matematyczny, analizator, interpretator, parser wyrażeń matematycznych.
Jest to biblioteka DLL do obliczania wartości z pobieranych w postaci tekstu wyrażeń matematycznych w czasie wykonywania programu. Zawiera w sobie analizator składniowy.

Parser ten jest w postaci bardzo wygodnej w użyciu klasy C++. Można go stosować przy tworzeniu własnych programów, pobierających od użytkownika funkcje - wyrażenia arytmetyczne o dowolnej liczbie zmiennych i późniejszym szybkim wyznaczaniu ich wartości, przy zmianie zmiennych bez każdorazowego przetwarzania podanego ciągu znaków.
Biblioteka parsera zawiera ponad 40 wbudowanych funkcji, np. sin, log, exp oraz 15 stałych.
Parser ten stosuje swogo rodzaju kompilację wyrażenia danego w postaci tekstu do postaci, która umożliwia bardzo szybkie obliczanie wartości, przy zmienianiu wartości zmiennych.

Pełna funkcjonalność: sprawdzanie gramatyki wyrażenia, szczegółowe informacje w języku polskim o wszelkich możliwych błędach w wyrażeniu lub obliczaniu wyrażenia, ze wskazaniem na konkretny atom i bardzo duża szybkość działania!

Biblioteka ta jest bardzo bezpieczna: sprawdza wszystkie dziedziny funkcji matematycznych, przekroczenie zakresów; obsługuje wszelkie możliwe błędy obliczeń (np. z biblioteki math.h: DOMAIN, SING, OVERFLOW, PLOSS, TLOSS, UNDERFLOW).

Parser ten ma możliwość obliczania stałych wyrażeń podczas parseringu (kompilacji wyrażenia).

Porównując różne inne takie parsery (np. komponent do Delphi za $20, mathexpr_c, muParser, fastmath (za $300), ucalc i inne w C++ (nawet za $450!)) okazuje się, że ten parser jest wygodniejszy w użyciu, często bardziej rozbudowany i przede wszystkim najszybciej oblicza wyrażenia matematyczne. Naprawdę jest to najszybszy ewaluator wyrażeń, jaki istnieje!

Przykład: Najszybsza wersja biblioteki; Wyrażenie: "1-(sin(x*3)*4+cos(y*4)*2+sqrt(z))^2/6" Zmienne: x=2; y=3; z=4; Czas obliczania 10 000 000 razy: około 16s; Procesor Duron 900 MHz, 384MB SDRAM. To jest około 625 000 obliczeń tego wyrażenia na sekundę.

Zobacz tutaj, jak łatwo korzysta się z tego parsera: main.cpp.

Konkretne biblioteki dll są w różnych wersjach w zależności od kompilatora:

- dla MS Visual C++ wraz z przykładem jej użycia w projekcie Visual C++
Jest to bardzo szybka wersja biblioteki, dzięki dobremu kompilatorowi firmy Microsoft.
-Dodatkowa wersja - najszybsza ale pozbawiona precyzyjnych wskazań opisów ewentualnych błędów obliczeń.

- dla Borland Builder C++ wraz z przykładem jej użycia w projekcie Borland C++ Builder 6 (patrz także na stronie: Wykresy2D, KalkulatorSator). Dostępna jest także wersja dla liczb typu long double (10 bajtów)
Biblioteka skompilowana w Builderze jest równie szybka, jak ta dla MS Visual C++.
- dla Embarcadero Builder C++ - jak wyżej

- dla Dev-C++ wraz z przykładem użycia. Niestety wersja biblioteki skompilowana w Dev-C++ 4.9.9.2 jest wolniejsza od tej w MS Visual C++.

- dla MinGW Dev. Studio 2.05 wraz z przykładem użycia. Również ta wersja biblioteki jest wolniejsza od wersji skompilowanej w MS Visual C++.

Więcej informacji o implementacji. To samo w pliku rtf.
Plik pomocy dla końcowego użytkownika - możliwości obliczeń.

Tester szybkości parsera arytmetycznego - (wer. 2008-03m-31) Jest to kalkulator, który wylicza wielokrotnie dane wyrażenie arytmetyczne i podaje czas tych obliczeń. Dzięki temu programowi można zobaczyć, jak szybki jest powyższy parser matematyczny.

Biblioteka dll dla Visual C++ 2015 wraz z przykładem użycia w wersji ASCII, 32-bit Archiwum 7zip
Kontakt e-mail: artur.czekalski @ interia.pl

Liczba odwiedzin witryny od dnia 2016-10-02: 5483. Masz IP: 54.198.55.167