You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: LATEST.md
+14-9Lines changed: 14 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,25 +1,30 @@
1
1
# ParserNG
2
2
3
+
4
+
### Parser 1.0.4 has been released on maven-central!
5
+
This version features various optimizations and turbo capability for the Function
6
+
class.
7
+
3
8
Parser 1.0.3 has been released on maven-central!
4
9
Maintaining the industry standard besting speeds of v1.0.x, it adds the functionality of rotational geometry.
5
10
In v1.0.3, you can use the rotor function, `rot` to rotate raw points in 3D space and other functions such as curves, lines, surfaces(both plane and curved) and 3D equations of all sorts.
6
11
7
-
ParserNG 1.0.2 has been released on maven-central!
12
+
### ParserNG 1.0.2 has been released on maven-central!
8
13
Version 1.0.2 retains the wild speeds of Version 1.0.1. Adds an extra widening technique of variable passing to the Turbo mode,
9
14
In addition to the current method of array based passing. The widening technique can be sometimes faster than the array based methods,
10
15
but their speed profiles and memory profiles are similar. Its weakness though is that it cannot use more than 63 variables per expression, whereas the array based approach allows in theory any number up to the max integer size.
11
16
12
17
13
-
ParserNG 1.0.1 has been released on maven-central!
18
+
### ParserNG 1.0.1 has been released on maven-central!
14
19
This close update ensures that Turbo mode's memory profile stays close to that of the normal mode, which is, nigh zero.
15
20
16
21
17
-
ParserNG 1.0.0 has been released on maven-central!
22
+
### ParserNG 1.0.0 has been released on maven-central!
18
23
The library has finally come of age with the introduction of its Turbo mode, which offers a massive speed boost over its normal mode.
19
24
The nomal mode already beats famous libraries like exp4J, and rivals Janino, the widely acclaimed Gold Standard of Java math parser speed measurements, very closely
20
25
21
26
22
-
ParserNG 0.2.5 has been released on maven-central
27
+
### ParserNG 0.2.5 has been released on maven-central
23
28
24
29
1. Functions like `intg`, `root`, `t_root` and `quadratic` have been fixed and are working well. .
25
30
@@ -31,18 +36,18 @@ ParserNG 0.2.5 has been released on maven-central
31
36
32
37
5. If you need a rich, fully featured parser that can do 3 million to 10 million evaluations per second, ParserNG v0.2.5 is the one for you.
33
38
34
-
ParserNG 0.2.4 has been released on maven-central!
39
+
### ParserNG 0.2.4 has been released on maven-central!
35
40
36
-
ParserNG 0.2.4 drives the limits of expression interpretation velocity even further than all previous versions, beating many lighterweight and fast Java math parsers(interpreted) in many benchmarks.
41
+
### ParserNG 0.2.4 drives the limits of expression interpretation velocity even further than all previous versions, beating many lighterweight and fast Java math parsers(interpreted) in many benchmarks.
37
42
Check [ParserNG-Wars](https://github.com/gbenroscience/ParserNG) for some shootouts between ParserNG and other parsers, both handrafted benchmarks and JMH based ones
38
43
39
44
ParserNG evaluates expressions at almost the speed at which the expressions would run if they were compiled statements in Java code. Typical values for moderate expression evaluation speeds are between `85ns`(algebraic expressions e.g.`((12+5)*3 - (45/9))^2` to `176ns`(methods with trig. functions, e.g. `(sin(3) + cos(4 - sin(2))) ^ (-2))`.
40
45
41
46
42
47
Applications that need 5 million to 10 million points generated per second would benefit from `ParserNG v0.2.4`
43
48
44
-
0.2.3
45
-
**ParserNG 0.2.3** has been released on maven central!<br>
49
+
50
+
### **ParserNG 0.2.3** has been released on maven central!<br>
46
51
comes with couple microsecond (on decent hardware and) expression solving ability while maintaining its full feature stack. Graphing feels butter-smooth and iterations shouldn't feel so iterative.
47
52
48
53
At 5 microsecond, moderately complex expressions such as
Copy file name to clipboardExpand all lines: MORE.md
+29-29Lines changed: 29 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
# ParserNG
2
-
<b>ParserNG</b> is a powerful open-source math tool that parses and evaluates algebraic expressions and also knows how to handle a lot of mathematical expressions. Its latest release on mavn-central (version 1.0.31) can be used to plot 2D graphs(Geometric plots and function plots) It works seamlessly on all Java platforms.<br><br>
2
+
<b>ParserNG</b> is a powerful open-source math tool that parses and evaluates algebraic expressions and also knows how to handle a lot of mathematical expressions. Its latest release on mavn-central (version 1.0.4) can be used to plot 2D graphs(Geometric plots and function plots) It works seamlessly on all Java platforms.<br><br>
3
3
4
4
5
5
@@ -8,15 +8,15 @@
8
8
Click the Sponsor button to do this.
9
9
10
10
11
-
ParserNG v1.0.3 breaks the barrier in fully featured math parser frequencies!
12
-
With various other optimizations, v1.0.3 comes with inner loop optimizations which uses a blazing fast, post-fix style algorithm to quickly evaluate inner brackets with less checks and less string manipulations.
11
+
ParserNG v1.0.4 breaks the barrier in fully featured math parser frequencies!
12
+
With various other optimizations, v1.0.4 comes with inner loop optimizations which uses a blazing fast, post-fix style algorithm to quickly evaluate inner brackets with less checks and less string manipulations.
13
13
This obviously will make graphing and other iterative tasks super responsive.
14
14
15
-
ParserNG v1.0.34 is an extremely feature rich math tool which also doubles as (arguably) the fastest pure Java expression evaluator on the planet.
15
+
ParserNG v1.0.4 is an extremely feature rich math tool which also doubles as (arguably) the fastest pure Java expression evaluator on the planet.
16
16
In benchmarks, it beats com.expression.parser(Java Math Expression Parser) by almost (10x-14x) and edges out Exp4J (which is lightweight) in many benchmarks.
17
17
18
18
19
-
ParserNG 1.0.35 features strength reduction, constant folding and execution frame(array) based args passing(in contrast to Map based) to ensure O(1) complexity in passage of args to the evaluation stage.
19
+
ParserNG 1.0.4 features strength reduction, constant folding and execution frame(array) based args passing(in contrast to Map based) to ensure O(1) complexity in passage of args to the evaluation stage.
20
20
21
21
[Here are a few benchmarks here](./BENCHMARK_RESULTS.md)
22
22
@@ -68,7 +68,7 @@ If you need to access this library via Maven Central, do:
68
68
<dependency>
69
69
<groupId>com.github.gbenroscience</groupId>
70
70
<artifactId>parser-ng</artifactId>
71
-
<version>1.0.3</version>
71
+
<version>1.0.4</version>
72
72
</dependency>
73
73
74
74
@@ -101,20 +101,20 @@ ParserNG is written completely in (pure) Java and so is as cross-platform as Jav
101
101
## Using ParserNG as commandline tool
102
102
You can use jar directly as commandline calculus. Unless the tool is packed to your distribution:
103
103
```
104
-
java -jar parser-ng-1.0.3.jar 1+1
104
+
java -jar parser-ng-1.0.4.jar 1+1
105
105
2.0
106
106
```
107
107
Or as logical parser
108
108
```
109
-
java -jar parser-ng-1.0.3.jar -l true and true
109
+
java -jar parser-ng-1.0.4.jar -l true and true
110
110
true
111
-
java -jar parser-ng-1.0.3.jar -l "2 == (4-2)"
111
+
java -jar parser-ng-1.0.4.jar -l "2 == (4-2)"
112
112
true
113
113
```
114
114
You can get help by
115
115
```
116
-
java -jar parser-ng-1.0.3.jar -h
117
-
ParserNG 1.0.3 math.Main
116
+
java -jar parser-ng-1.0.4.jar -h
117
+
ParserNG 1.0.4 math.Main
118
118
-h/-H/--help this text; do not change for help (witout dashes), which lists functions
119
119
-v/-V/--verbose output is reprinted to stderr with some inter-steps
120
120
-l/-L/--logic will add logical expression wrapper around the expression
Copy file name to clipboardExpand all lines: README.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# ParserNG 🧮⚡
2
2
3
-
**ParserNG 1.0.3** is a **blazing-fast**, nigh zero allocation(memory wise), **pure Java**, **zero-native-dependencies** math expression parser and evaluator.
3
+
**ParserNG 1.0.4** is a **blazing-fast**, nigh zero allocation(memory wise), **pure Java**, **zero-native-dependencies** math expression parser and evaluator.
4
4
5
5
It **beats exp4J, and com.expression.parser on evaluation speed** across every kind of expression — from simple algebra to heavy trig, matrices, and calculus; and manages to beat Janino, the gold standard on some, while rivalling it on a host of other expressions
6
6
The normal mode routinely does about **3-10 million evaluations per second** while the new Turbo mode easily peaks at about **10 million to 90 million evaluations per second**.
> **1.0.3** introduces **Turbo Scalar** and **Turbo Matrix** compiled paths + massive speed improvements via strength reduction, constant folding, and O(1) frame-based argument passing.
17
+
> **1.0.4** introduces **Turbo Scalar** and **Turbo Matrix** compiled paths + massive speed improvements via strength reduction, constant folding, and O(1) frame-based argument passing.
18
18
19
-
## ✨ Highlights (v1.0.3)
19
+
## ✨ Highlights (v1.0.4)
20
20
21
21
-**Speed champion** — rivals Janino in most benchmarks, and beats exp4J, com.expression.parser and Parsii in every benchmark (see [BENCHMARK_RESULTS.md](BENCHMARK_RESULTS.md))
22
22
-**Turbo Mode** — compile once, evaluate millions of times per second (Scalar + Matrix paths)
0 commit comments