Skip to content

Commit f39dcb5

Browse files
Zhao (#4)
* 新增多参数函数表达式计算组件 * update
1 parent f05f5d3 commit f39dcb5

File tree

74 files changed

+2564
-1001
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+2564
-1001
lines changed

CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ add_library(
2222
src/core/calculation/BooleanCalculationTwo.cpp include/BooleanCalculationTwo.h
2323
src/core/calculation/FunctionManager.cpp include/FunctionManager.h
2424
src/core/calculation/FunctionFormulaCalculation.cpp include/FunctionFormulaCalculation.h
25+
src/core/calculation/FunctionFormulaCalculationTwo.cpp include/FunctionFormulaCalculationTwo.h
2526
src/core/calculation/CalculationConstant.cpp include/CalculationConstant.h
2627
src/core/calculation/CumulativeCalculation.cpp include/CumulativeCalculation.h
27-
)
28+
src/core/calculation/FastSumOfIntervalsBrackets.cpp include/FastSumOfIntervalsBrackets.h src/core/calculation/SharedCalculation.cpp include/SharedCalculation.h)
2829

README-Chinese.md

+46-2
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@ project(MyCpp)
1919
set(CMAKE_CXX_STANDARD 14)
2020
2121
# 设置头文件目录(可以自定义)
22-
include_directories(${PROJECT_SOURCE_DIR}/head)
22+
include_directories(${PROJECT_SOURCE_DIR}/include)
23+
# 设置库文件目录
2324
add_executable(MyCpp main.cpp)
2425
# 与项目进行链接(将库链接到编译之后的目标中)
25-
target_link_libraries(${PROJECT_NAME} D:\\liming\\Project\\Clion\\MyCpp\\cmake-build-debug\\mathematical_expression_cpp.dll)
26+
target_link_libraries(
27+
${PROJECT_NAME} D:\\liming\\Project\\Clion\\MyCpp\\cmake-build-debug\\mathematical_expression_cpp_WINx64.dll
28+
)
2629
```
2730

2831
集成操作完毕之后,您可以尝试输入以下代码来判断库的功能是否正常,下面是该库的一个测试代码,如果其运行之后的程序main函数返回值为0
@@ -263,6 +266,47 @@ Active code page: 65001
263266
进程已结束,退出代码0
264267
```
265268

269+
### 快速区间求和计算组件(基于括号表达式)
270+
271+
- 类组件:ME::FastSumOfIntervalsBrackets.py
272+
- 介绍
273+
274+
1.15版本的新产物,区间快速求和组件,是针对一个等差为1的区间进行所有元素求和的快速组件,它将一个区间在逻辑上模拟成为一个数学数列,并通过求和公式进行快速的求和。
275+
276+
该组件实现了共享池计算功能,将检查,计算,以及上一次结果记录实现,能够加快计算速度,具体API调用如下所示。
277+
278+
```c++
279+
#include "mathematical_expression.h"
280+
281+
int main() {
282+
system("chcp 65001");
283+
// 获取到数学表达式解析库对象
284+
mathematical_expression me;
285+
// 获取到区间累加表达式对象
286+
ME::FastSumOfIntervalsBrackets fastSumOfIntervalsBrackets = me.getFastSumOfIntervalsBrackets();
287+
// 准备需要被计算的数学表达式,这里的数学表达式中有个逗号,逗号两边代表的就是区间的两个边界
288+
string f1 = "1 + 10, 20 - (5 + 2)";
289+
// 检查数学表达式
290+
fastSumOfIntervalsBrackets.check(f1);
291+
// 将步长修改为 2
292+
fastSumOfIntervalsBrackets.step = 2;
293+
// 开始计算 并获取到结果对象
294+
ME::CalculationNumberResults r1 = fastSumOfIntervalsBrackets << f1;
295+
// 开始进行结果查看
296+
cout << "计算层数:" << r1.getResultLayers() << "\t计算结果:" << r1 << "\t计算来源:" << r1.getCalculationSourceName()
297+
<< endl;
298+
}
299+
```
300+
301+
- 运行结果 从上面代码中我们可以看到,快速区间求和计算的公式由被逗号分割的两个括号表达式组成
302+
303+
```
304+
Active code page: 65001
305+
计算层数:1 计算结果:24 计算来源:FastSumOfIntervalsBrackets
306+
307+
进程已结束,退出代码0
308+
```
309+
266310
## C++API 特性
267311

268312
在 C++ 中,库具有更快的解析与计算速度,同时其具有更加庞大的功能,接下来针对C++中的特有功能来进行一个说明。

README.md

+47-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ set(CMAKE_CXX_STANDARD 14)
2727
include_directories(${PROJECT_SOURCE_DIR}/include)
2828
add_executable(MyCpp main.cpp)
2929
# Link to the project (link the library to the compiled target)
30-
target_link_libraries(${PROJECT_NAME} D:\\liming\\Project\\Clion\\MyCpp\\cmake-build-debug\\libmathematical_expression_cpp.dll)
30+
target_link_libraries(
31+
${PROJECT_NAME} D:\\liming\\Project\\Clion\\MyCpp\\cmake-build-debug\\mathematical_expression_cpp_WINx64.dll
32+
)
3133
```
3234

3335
After the integration operation is completed, you can try to enter the following code to determine whether the function
@@ -286,6 +288,50 @@ Active code page: 65001
286288
进程已结束,退出代码0
287289
```
288290

291+
### Quick interval summation calculation component (based on parenthesis expression)
292+
293+
- Class component: ME:: FastSumOfIntervalsBrackets
294+
- 介绍
295+
296+
The new product of version 1.15, the interval fast sum component, is a fast component that sums all elements of an
297+
interval with an equal difference of 1. It logically simulates an interval into a mathematical sequence and quickly
298+
sums it using a sum formula.
299+
300+
This component implements the shared pool calculation function, which includes checking, calculating, and recording
301+
the previous result, which can accelerate the calculation speed. The specific API calls are as follows.
302+
303+
```c++
304+
#include "mathematical_expression.h"
305+
306+
int main() {
307+
system("chcp 65001");
308+
// 获取到数学表达式解析库对象
309+
mathematical_expression me;
310+
// 获取到区间累加表达式对象
311+
ME::FastSumOfIntervalsBrackets fastSumOfIntervalsBrackets = me.getFastSumOfIntervalsBrackets();
312+
// 准备需要被计算的数学表达式,这里的数学表达式中有个逗号,逗号两边代表的就是区间的两个边界
313+
string f1 = "1 + 10, 20 - (5 + 2)";
314+
// 检查数学表达式
315+
fastSumOfIntervalsBrackets.check(f1);
316+
// 将步长修改为 2
317+
fastSumOfIntervalsBrackets.step = 2;
318+
// 开始计算 并获取到结果对象
319+
ME::CalculationNumberResults r1 = fastSumOfIntervalsBrackets << f1;
320+
// 开始进行结果查看
321+
cout << "计算层数:" << r1.getResultLayers() << "\t计算结果:" << r1 << "\t计算来源:" << r1.getCalculationSourceName()
322+
<< endl;
323+
}
324+
```
325+
326+
- 运行结果 从上面代码中我们可以看到,快速区间求和计算的公式由被逗号分割的两个括号表达式组成
327+
328+
```
329+
Active code page: 65001
330+
计算层数:1 计算结果:24 计算来源:FastSumOfIntervalsBrackets
331+
332+
进程已结束,退出代码0
333+
```
334+
289335
## C++API characteristic
290336

291337
In C++, libraries have faster parsing and computation speeds, while also having larger functionalities. Next, we will

cmake-build-debug/.cmake/api/v1/reply/cache-v2-96b496f63facb2cc201e.json cmake-build-debug/.cmake/api/v1/reply/cache-v2-5a1be0e8f87910a9e5fb.json

+28-28
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
}
1616
],
1717
"type" : "FILEPATH",
18-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/addr2line.exe"
18+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/addr2line.exe"
1919
},
2020
{
2121
"name" : "CMAKE_AR",
@@ -31,7 +31,7 @@
3131
}
3232
],
3333
"type" : "FILEPATH",
34-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/ar.exe"
34+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/ar.exe"
3535
},
3636
{
3737
"name" : "CMAKE_BUILD_TYPE",
@@ -55,7 +55,7 @@
5555
}
5656
],
5757
"type" : "INTERNAL",
58-
"value" : "d:/MyGithub/mathematical-expression-cpp/cmake-build-debug"
58+
"value" : "g:/MyGithub/mathematical-expression-cpp/cmake-build-debug"
5959
},
6060
{
6161
"name" : "CMAKE_CACHE_MAJOR_VERSION",
@@ -155,7 +155,7 @@
155155
}
156156
],
157157
"type" : "INTERNAL",
158-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/cmake/win/bin/cmake.exe"
158+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/cmake/win/bin/cmake.exe"
159159
},
160160
{
161161
"name" : "CMAKE_CPACK_COMMAND",
@@ -167,7 +167,7 @@
167167
}
168168
],
169169
"type" : "INTERNAL",
170-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/cmake/win/bin/cpack.exe"
170+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/cmake/win/bin/cpack.exe"
171171
},
172172
{
173173
"name" : "CMAKE_CTEST_COMMAND",
@@ -179,7 +179,7 @@
179179
}
180180
],
181181
"type" : "INTERNAL",
182-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/cmake/win/bin/ctest.exe"
182+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/cmake/win/bin/ctest.exe"
183183
},
184184
{
185185
"name" : "CMAKE_CXX_COMPILER",
@@ -195,7 +195,7 @@
195195
}
196196
],
197197
"type" : "FILEPATH",
198-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/g++.exe"
198+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/g++.exe"
199199
},
200200
{
201201
"name" : "CMAKE_CXX_COMPILER_AR",
@@ -211,7 +211,7 @@
211211
}
212212
],
213213
"type" : "FILEPATH",
214-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/gcc-ar.exe"
214+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/gcc-ar.exe"
215215
},
216216
{
217217
"name" : "CMAKE_CXX_COMPILER_RANLIB",
@@ -227,7 +227,7 @@
227227
}
228228
],
229229
"type" : "FILEPATH",
230-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/gcc-ranlib.exe"
230+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/gcc-ranlib.exe"
231231
},
232232
{
233233
"name" : "CMAKE_CXX_FLAGS",
@@ -339,7 +339,7 @@
339339
}
340340
],
341341
"type" : "FILEPATH",
342-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/gcc.exe"
342+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/gcc.exe"
343343
},
344344
{
345345
"name" : "CMAKE_C_COMPILER_AR",
@@ -355,7 +355,7 @@
355355
}
356356
],
357357
"type" : "FILEPATH",
358-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/gcc-ar.exe"
358+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/gcc-ar.exe"
359359
},
360360
{
361361
"name" : "CMAKE_C_COMPILER_RANLIB",
@@ -371,7 +371,7 @@
371371
}
372372
],
373373
"type" : "FILEPATH",
374-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/gcc-ranlib.exe"
374+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/gcc-ranlib.exe"
375375
},
376376
{
377377
"name" : "CMAKE_C_FLAGS",
@@ -483,7 +483,7 @@
483483
}
484484
],
485485
"type" : "FILEPATH",
486-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/dlltool.exe"
486+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/dlltool.exe"
487487
},
488488
{
489489
"name" : "CMAKE_EXECUTABLE_FORMAT",
@@ -611,7 +611,7 @@
611611
}
612612
],
613613
"type" : "INTERNAL",
614-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++;D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/x86_64-w64-mingw32;D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/backward;D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include;D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../include;D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include-fixed;D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/include"
614+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++;D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/x86_64-w64-mingw32;D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include/c++/backward;D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include;D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../include;D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include-fixed;D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/include"
615615
},
616616
{
617617
"name" : "CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS",
@@ -635,7 +635,7 @@
635635
}
636636
],
637637
"type" : "INTERNAL",
638-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include;D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../include;D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include-fixed;D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/include"
638+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include;D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../include;D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/include-fixed;D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/include"
639639
},
640640
{
641641
"name" : "CMAKE_GENERATOR",
@@ -707,7 +707,7 @@
707707
}
708708
],
709709
"type" : "INTERNAL",
710-
"value" : "D:/MyGithub/mathematical-expression-cpp"
710+
"value" : "G:/MyGithub/mathematical-expression-cpp"
711711
},
712712
{
713713
"name" : "CMAKE_INSTALL_PREFIX",
@@ -735,7 +735,7 @@
735735
}
736736
],
737737
"type" : "FILEPATH",
738-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/ld.exe"
738+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/ld.exe"
739739
},
740740
{
741741
"name" : "CMAKE_MAKE_PROGRAM",
@@ -751,7 +751,7 @@
751751
}
752752
],
753753
"type" : "FILEPATH",
754-
"value" : "D:/liming/CX/Clion/CLION2~1.1/bin/mingw/bin/mingw32-make.exe"
754+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/mingw32-make.exe"
755755
},
756756
{
757757
"name" : "CMAKE_MODULE_LINKER_FLAGS",
@@ -847,7 +847,7 @@
847847
}
848848
],
849849
"type" : "FILEPATH",
850-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/nm.exe"
850+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/nm.exe"
851851
},
852852
{
853853
"name" : "CMAKE_NUMBER_OF_MAKEFILES",
@@ -875,7 +875,7 @@
875875
}
876876
],
877877
"type" : "FILEPATH",
878-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/objcopy.exe"
878+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/objcopy.exe"
879879
},
880880
{
881881
"name" : "CMAKE_OBJDUMP",
@@ -891,7 +891,7 @@
891891
}
892892
],
893893
"type" : "FILEPATH",
894-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/objdump.exe"
894+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/objdump.exe"
895895
},
896896
{
897897
"name" : "CMAKE_PLATFORM_INFO_INITIALIZED",
@@ -955,7 +955,7 @@
955955
}
956956
],
957957
"type" : "FILEPATH",
958-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/ranlib.exe"
958+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/ranlib.exe"
959959
},
960960
{
961961
"name" : "CMAKE_RC_COMPILER",
@@ -971,7 +971,7 @@
971971
}
972972
],
973973
"type" : "FILEPATH",
974-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/windres.exe"
974+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/windres.exe"
975975
},
976976
{
977977
"name" : "CMAKE_RC_COMPILER_WORKS",
@@ -1079,7 +1079,7 @@
10791079
}
10801080
],
10811081
"type" : "FILEPATH",
1082-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/readelf.exe"
1082+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/readelf.exe"
10831083
},
10841084
{
10851085
"name" : "CMAKE_ROOT",
@@ -1091,7 +1091,7 @@
10911091
}
10921092
],
10931093
"type" : "INTERNAL",
1094-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/cmake/win/share/cmake-3.23"
1094+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/cmake/win/share/cmake-3.23"
10951095
},
10961096
{
10971097
"name" : "CMAKE_SHARED_LINKER_FLAGS",
@@ -1299,7 +1299,7 @@
12991299
}
13001300
],
13011301
"type" : "FILEPATH",
1302-
"value" : "D:/liming/CX/Clion/CLion 2022.2.1/bin/mingw/bin/strip.exe"
1302+
"value" : "D:/Liming/MyApplication/CLion/CLion 2022.2.1/bin/mingw/bin/strip.exe"
13031303
},
13041304
{
13051305
"name" : "CMAKE_VERBOSE_MAKEFILE",
@@ -1327,7 +1327,7 @@
13271327
}
13281328
],
13291329
"type" : "STATIC",
1330-
"value" : "D:/MyGithub/mathematical-expression-cpp/cmake-build-debug"
1330+
"value" : "G:/MyGithub/mathematical-expression-cpp/cmake-build-debug"
13311331
},
13321332
{
13331333
"name" : "mathematical_expression_cpp_IS_TOP_LEVEL",
@@ -1351,7 +1351,7 @@
13511351
}
13521352
],
13531353
"type" : "STATIC",
1354-
"value" : "D:/MyGithub/mathematical-expression-cpp"
1354+
"value" : "G:/MyGithub/mathematical-expression-cpp"
13551355
}
13561356
],
13571357
"kind" : "cache",

0 commit comments

Comments
 (0)