Dyyt587 1 年之前
父節點
當前提交
f0f3b89a11
共有 50 個文件被更改,包括 1690 次插入4218 次删除
  1. 1 0
      .gitignore
  2. 18 0
      .vscode/c_cpp_properties.json
  3. 22 5
      .vscode/launch.json
  4. 61 3
      .vscode/settings.json
  5. 29 0
      .vscode/tasks.json
  6. 13 0
      README_zh.md
  7. 0 369
      example/CMakeCache.txt
  8. 0 72
      example/CMakeFiles/3.22.1/CMakeCCompiler.cmake
  9. 0 83
      example/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake
  10. 二進制
      example/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin
  11. 二進制
      example/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin
  12. 0 15
      example/CMakeFiles/3.22.1/CMakeSystem.cmake
  13. 0 803
      example/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c
  14. 0 791
      example/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp
  15. 0 16
      example/CMakeFiles/CMakeDirectoryInformation.cmake
  16. 0 451
      example/CMakeFiles/CMakeOutput.log
  17. 0 47
      example/CMakeFiles/Makefile.cmake
  18. 0 112
      example/CMakeFiles/Makefile2
  19. 0 3
      example/CMakeFiles/TargetDirectories.txt
  20. 0 1
      example/CMakeFiles/cmake.check_cache
  21. 0 21
      example/CMakeFiles/main.dir/DependInfo.cmake
  22. 0 142
      example/CMakeFiles/main.dir/build.make
  23. 0 15
      example/CMakeFiles/main.dir/cmake_clean.cmake
  24. 0 70
      example/CMakeFiles/main.dir/compiler_depend.internal
  25. 0 127
      example/CMakeFiles/main.dir/compiler_depend.make
  26. 0 2
      example/CMakeFiles/main.dir/compiler_depend.ts
  27. 0 2
      example/CMakeFiles/main.dir/depend.make
  28. 0 10
      example/CMakeFiles/main.dir/flags.make
  29. 0 1
      example/CMakeFiles/main.dir/link.txt
  30. 0 5
      example/CMakeFiles/main.dir/progress.make
  31. 0 20
      example/CMakeFiles/main1.dir/DependInfo.cmake
  32. 0 126
      example/CMakeFiles/main1.dir/build.make
  33. 0 13
      example/CMakeFiles/main1.dir/cmake_clean.cmake
  34. 0 2
      example/CMakeFiles/main1.dir/compiler_depend.make
  35. 0 2
      example/CMakeFiles/main1.dir/compiler_depend.ts
  36. 0 2
      example/CMakeFiles/main1.dir/depend.make
  37. 0 10
      example/CMakeFiles/main1.dir/flags.make
  38. 0 1
      example/CMakeFiles/main1.dir/link.txt
  39. 0 4
      example/CMakeFiles/main1.dir/progress.make
  40. 0 1
      example/CMakeFiles/progress.marks
  41. 0 54
      example/cmake_install.cmake
  42. 9 1
      example/main.c
  43. 674 0
      src/apid.c
  44. 107 27
      src/apid.h
  45. 36 0
      src/apid_cfg.h
  46. 191 0
      src/apid_ex_fuzzy.c
  47. 48 0
      src/apid_ex_fuzzy.h
  48. 481 0
      src/apid_exfunc.c
  49. 0 567
      src/pid.c
  50. 0 222
      src/pid_exfunc.c

+ 1 - 0
.gitignore

@@ -50,3 +50,4 @@ modules.order
 Module.symvers
 Mkfile.old
 dkms.conf
+/build

+ 18 - 0
.vscode/c_cpp_properties.json

@@ -0,0 +1,18 @@
+{
+  "configurations": [
+    {
+      "name": "windows-gcc-x64",
+      "includePath": [
+        "${workspaceFolder}/**"
+      ],
+      "compilerPath": "C:/mingw64/bin/gcc.exe",
+      "cStandard": "${default}",
+      "cppStandard": "${default}",
+      "intelliSenseMode": "windows-gcc-x64",
+      "compilerArgs": [
+        ""
+      ]
+    }
+  ],
+  "version": 4
+}

+ 22 - 5
.vscode/launch.json

@@ -1,7 +1,24 @@
 {
-    // 使用 IntelliSense 了解相关属性。 
-    // 悬停以查看现有属性的描述。
-    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
-    "version": "0.2.0",
-    "configurations": []
+  "version": "0.2.0",
+  "configurations": [
+    {
+      "name": "C/C++ Runner: Debug Session",
+      "type": "cppdbg",
+      "request": "launch",
+      "args": [],
+      "stopAtEntry": false,
+      "externalConsole": true,
+      "cwd": "c:/Users/33368/Documents/GitHub/all_pid/example",
+      "program": "c:/Users/33368/Documents/GitHub/all_pid/example/build/Debug/outDebug",
+      "MIMode": "gdb",
+      "miDebuggerPath": "gdb",
+      "setupCommands": [
+        {
+          "description": "Enable pretty-printing for gdb",
+          "text": "-enable-pretty-printing",
+          "ignoreFailures": true
+        }
+      ]
+    }
+  ]
 }

+ 61 - 3
.vscode/settings.json

@@ -1,5 +1,63 @@
 {
-    "files.associations": {
-        "pid.h": "c"
-    }
+  "files.associations": {
+    "pid.h": "c"
+  },
+  "C_Cpp_Runner.cCompilerPath": "gcc",
+  "C_Cpp_Runner.cppCompilerPath": "g++",
+  "C_Cpp_Runner.debuggerPath": "gdb",
+  "C_Cpp_Runner.cStandard": "",
+  "C_Cpp_Runner.cppStandard": "",
+  "C_Cpp_Runner.msvcBatchPath": "",
+  "C_Cpp_Runner.useMsvc": false,
+  "C_Cpp_Runner.warnings": [
+    "-Wall",
+    "-Wextra",
+    "-Wpedantic",
+    "-Wshadow",
+    "-Wformat=2",
+    "-Wcast-align",
+    "-Wconversion",
+    "-Wsign-conversion",
+    "-Wnull-dereference"
+  ],
+  "C_Cpp_Runner.msvcWarnings": [
+    "/W4",
+    "/permissive-",
+    "/w14242",
+    "/w14287",
+    "/w14296",
+    "/w14311",
+    "/w14826",
+    "/w44062",
+    "/w44242",
+    "/w14905",
+    "/w14906",
+    "/w14263",
+    "/w44265",
+    "/w14928"
+  ],
+  "C_Cpp_Runner.enableWarnings": true,
+  "C_Cpp_Runner.warningsAsError": false,
+  "C_Cpp_Runner.compilerArgs": [],
+  "C_Cpp_Runner.linkerArgs": [],
+  "C_Cpp_Runner.includePaths": [],
+  "C_Cpp_Runner.includeSearch": [
+    "*",
+    "**/*"
+  ],
+  "C_Cpp_Runner.excludeSearch": [
+    "**/build",
+    "**/build/**",
+    "**/.*",
+    "**/.*/**",
+    "**/.vscode",
+    "**/.vscode/**"
+  ],
+  "C_Cpp_Runner.useAddressSanitizer": false,
+  "C_Cpp_Runner.useUndefinedSanitizer": false,
+  "C_Cpp_Runner.useLeakSanitizer": false,
+  "C_Cpp_Runner.showCompilationTime": false,
+  "C_Cpp_Runner.useLinkTimeOptimization": false,
+  "C_Cpp_Runner.msvcSecureNoWarnings": false,
+  "cmake.sourceDirectory": "C:/Users/33368/Documents/GitHub/all_pid/example"
 }

+ 29 - 0
.vscode/tasks.json

@@ -0,0 +1,29 @@
+{
+    "tasks": [
+        {
+            "type": "cppbuild",
+            "label": "C/C++: gcc.exe 生成活动文件",
+            "command": "C:/mingw64/bin/gcc.exe",
+            "args": [
+                "-fdiagnostics-color=always",
+                "-g",
+                "${file}",
+                "-o",
+                "${fileDirname}\\${fileBasenameNoExtension}.exe",
+                ""
+            ],
+            "options": {
+                "cwd": "C:/mingw64/bin"
+            },
+            "problemMatcher": [
+                "$gcc"
+            ],
+            "group": {
+                "kind": "build",
+                "isDefault": true
+            },
+            "detail": "调试器生成的任务。"
+        }
+    ],
+    "version": "2.0.0"
+}

+ 13 - 0
README_zh.md

@@ -0,0 +1,13 @@
+# all_pid
+
+这是一个强大的pid运算库,包含众多常见的pid改进方法,并且大多数可以动态改变(这很有用,尤其是在算法验证初期)
+
+## 我们支持
+
+* 增量式和位置式pid
+* pid基本限幅:误差限幅,目标值限幅,输出限幅,积分限幅(抗饱和积分),死区限幅
+* pid改进积分方法:积分分离 抗饱和积分 变速积分(beta)梯形积分
+* pid改进微分方法:不完微分,微分先行
+* 高级pid改进:前馈pid(beta)预测pid (beta) 模糊pid (开发中...)
+
+## 如何使用

+ 0 - 369
example/CMakeCache.txt

@@ -1,369 +0,0 @@
-# This is the CMakeCache file.
-# For build in directory: /home/dyyt/all_pid/example
-# It was generated by CMake: /usr/bin/cmake
-# You can edit this file to change values found and used by cmake.
-# If you do not want to change any of the values, simply exit the editor.
-# If you do want to change a value, simply edit, save, and exit the editor.
-# The syntax for the file is as follows:
-# KEY:TYPE=VALUE
-# KEY is the name of a variable in the cache.
-# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
-# VALUE is the current value for the KEY.
-
-########################
-# EXTERNAL cache entries
-########################
-
-//Path to a program.
-CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
-
-//Path to a program.
-CMAKE_AR:FILEPATH=/usr/bin/ar
-
-//Choose the type of build, options are: None Debug Release RelWithDebInfo
-// MinSizeRel ...
-CMAKE_BUILD_TYPE:STRING=
-
-//Enable/Disable color output during build.
-CMAKE_COLOR_MAKEFILE:BOOL=ON
-
-//CXX compiler
-CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
-
-//A wrapper around 'ar' adding the appropriate '--plugin' option
-// for the GCC compiler
-CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-11
-
-//A wrapper around 'ranlib' adding the appropriate '--plugin' option
-// for the GCC compiler
-CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11
-
-//Flags used by the CXX compiler during all build types.
-CMAKE_CXX_FLAGS:STRING=
-
-//Flags used by the CXX compiler during DEBUG builds.
-CMAKE_CXX_FLAGS_DEBUG:STRING=-g
-
-//Flags used by the CXX compiler during MINSIZEREL builds.
-CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
-
-//Flags used by the CXX compiler during RELEASE builds.
-CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
-
-//Flags used by the CXX compiler during RELWITHDEBINFO builds.
-CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
-
-//C compiler
-CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
-
-//A wrapper around 'ar' adding the appropriate '--plugin' option
-// for the GCC compiler
-CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-11
-
-//A wrapper around 'ranlib' adding the appropriate '--plugin' option
-// for the GCC compiler
-CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11
-
-//Flags used by the C compiler during all build types.
-CMAKE_C_FLAGS:STRING=
-
-//Flags used by the C compiler during DEBUG builds.
-CMAKE_C_FLAGS_DEBUG:STRING=-g
-
-//Flags used by the C compiler during MINSIZEREL builds.
-CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
-
-//Flags used by the C compiler during RELEASE builds.
-CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
-
-//Flags used by the C compiler during RELWITHDEBINFO builds.
-CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
-
-//Path to a program.
-CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
-
-//Flags used by the linker during all build types.
-CMAKE_EXE_LINKER_FLAGS:STRING=
-
-//Flags used by the linker during DEBUG builds.
-CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during MINSIZEREL builds.
-CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during RELEASE builds.
-CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during RELWITHDEBINFO builds.
-CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//Enable/Disable output of compile commands during generation.
-CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
-
-//Install path prefix, prepended onto install directories.
-CMAKE_INSTALL_PREFIX:PATH=/usr/local
-
-//Path to a program.
-CMAKE_LINKER:FILEPATH=/usr/bin/ld
-
-//Path to a program.
-CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake
-
-//Flags used by the linker during the creation of modules during
-// all build types.
-CMAKE_MODULE_LINKER_FLAGS:STRING=
-
-//Flags used by the linker during the creation of modules during
-// DEBUG builds.
-CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during the creation of modules during
-// MINSIZEREL builds.
-CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during the creation of modules during
-// RELEASE builds.
-CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during the creation of modules during
-// RELWITHDEBINFO builds.
-CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//Path to a program.
-CMAKE_NM:FILEPATH=/usr/bin/nm
-
-//Path to a program.
-CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
-
-//Path to a program.
-CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
-
-//Value Computed by CMake
-CMAKE_PROJECT_DESCRIPTION:STATIC=
-
-//Value Computed by CMake
-CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
-
-//Value Computed by CMake
-CMAKE_PROJECT_NAME:STATIC=demo
-
-//Path to a program.
-CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
-
-//Path to a program.
-CMAKE_READELF:FILEPATH=/usr/bin/readelf
-
-//Flags used by the linker during the creation of shared libraries
-// during all build types.
-CMAKE_SHARED_LINKER_FLAGS:STRING=
-
-//Flags used by the linker during the creation of shared libraries
-// during DEBUG builds.
-CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during the creation of shared libraries
-// during MINSIZEREL builds.
-CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during the creation of shared libraries
-// during RELEASE builds.
-CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during the creation of shared libraries
-// during RELWITHDEBINFO builds.
-CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//If set, runtime paths are not added when installing shared libraries,
-// but are added when building.
-CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
-
-//If set, runtime paths are not added when using shared libraries.
-CMAKE_SKIP_RPATH:BOOL=NO
-
-//Flags used by the linker during the creation of static libraries
-// during all build types.
-CMAKE_STATIC_LINKER_FLAGS:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during DEBUG builds.
-CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during MINSIZEREL builds.
-CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during RELEASE builds.
-CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during RELWITHDEBINFO builds.
-CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//Path to a program.
-CMAKE_STRIP:FILEPATH=/usr/bin/strip
-
-//If this value is on, makefiles will be generated without the
-// .SILENT directive, and all commands will be echoed to the console
-// during the make.  This is useful for debugging only. With Visual
-// Studio IDE projects all commands are done without /nologo.
-CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
-
-//Value Computed by CMake
-demo_BINARY_DIR:STATIC=/home/dyyt/all_pid/example
-
-//Value Computed by CMake
-demo_IS_TOP_LEVEL:STATIC=ON
-
-//Value Computed by CMake
-demo_SOURCE_DIR:STATIC=/home/dyyt/all_pid/example
-
-
-########################
-# INTERNAL cache entries
-########################
-
-//ADVANCED property for variable: CMAKE_ADDR2LINE
-CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_AR
-CMAKE_AR-ADVANCED:INTERNAL=1
-//This is the directory where this CMakeCache.txt was created
-CMAKE_CACHEFILE_DIR:INTERNAL=/home/dyyt/all_pid/example
-//Major version of cmake used to create the current loaded cache
-CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
-//Minor version of cmake used to create the current loaded cache
-CMAKE_CACHE_MINOR_VERSION:INTERNAL=22
-//Patch version of cmake used to create the current loaded cache
-CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
-//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
-CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
-//Path to CMake executable.
-CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
-//Path to cpack program executable.
-CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
-//Path to ctest program executable.
-CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
-//ADVANCED property for variable: CMAKE_CXX_COMPILER
-CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
-CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
-CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS
-CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
-CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
-CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
-CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
-CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_COMPILER
-CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_COMPILER_AR
-CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
-CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS
-CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
-CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
-CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
-CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
-CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_DLLTOOL
-CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
-//Executable file format
-CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
-CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
-CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
-CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
-CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
-CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
-//Name of external makefile project generator.
-CMAKE_EXTRA_GENERATOR:INTERNAL=
-//Name of generator.
-CMAKE_GENERATOR:INTERNAL=Unix Makefiles
-//Generator instance identifier.
-CMAKE_GENERATOR_INSTANCE:INTERNAL=
-//Name of generator platform.
-CMAKE_GENERATOR_PLATFORM:INTERNAL=
-//Name of generator toolset.
-CMAKE_GENERATOR_TOOLSET:INTERNAL=
-//Source directory with the top level CMakeLists.txt file for this
-// project
-CMAKE_HOME_DIRECTORY:INTERNAL=/home/dyyt/all_pid/example
-//Install .so files without execute permission.
-CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
-//ADVANCED property for variable: CMAKE_LINKER
-CMAKE_LINKER-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
-CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
-CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
-CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
-CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
-CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_NM
-CMAKE_NM-ADVANCED:INTERNAL=1
-//number of local generators
-CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
-//ADVANCED property for variable: CMAKE_OBJCOPY
-CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_OBJDUMP
-CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
-//Platform information initialized
-CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_RANLIB
-CMAKE_RANLIB-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_READELF
-CMAKE_READELF-ADVANCED:INTERNAL=1
-//Path to CMake installation.
-CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.22
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
-CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
-CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
-CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
-CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
-CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SKIP_RPATH
-CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
-CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
-CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
-CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
-CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STRIP
-CMAKE_STRIP-ADVANCED:INTERNAL=1
-//uname command
-CMAKE_UNAME:INTERNAL=/usr/bin/uname
-//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
-CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
-

+ 0 - 72
example/CMakeFiles/3.22.1/CMakeCCompiler.cmake

@@ -1,72 +0,0 @@
-set(CMAKE_C_COMPILER "/usr/bin/cc")
-set(CMAKE_C_COMPILER_ARG1 "")
-set(CMAKE_C_COMPILER_ID "GNU")
-set(CMAKE_C_COMPILER_VERSION "11.4.0")
-set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
-set(CMAKE_C_COMPILER_WRAPPER "")
-set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
-set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
-set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
-set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
-set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
-set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
-set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
-set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
-
-set(CMAKE_C_PLATFORM_ID "Linux")
-set(CMAKE_C_SIMULATE_ID "")
-set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
-set(CMAKE_C_SIMULATE_VERSION "")
-
-
-
-
-set(CMAKE_AR "/usr/bin/ar")
-set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-11")
-set(CMAKE_RANLIB "/usr/bin/ranlib")
-set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11")
-set(CMAKE_LINKER "/usr/bin/ld")
-set(CMAKE_MT "")
-set(CMAKE_COMPILER_IS_GNUCC 1)
-set(CMAKE_C_COMPILER_LOADED 1)
-set(CMAKE_C_COMPILER_WORKS TRUE)
-set(CMAKE_C_ABI_COMPILED TRUE)
-
-set(CMAKE_C_COMPILER_ENV_VAR "CC")
-
-set(CMAKE_C_COMPILER_ID_RUN 1)
-set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
-set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
-set(CMAKE_C_LINKER_PREFERENCE 10)
-
-# Save compiler ABI information.
-set(CMAKE_C_SIZEOF_DATA_PTR "8")
-set(CMAKE_C_COMPILER_ABI "ELF")
-set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
-set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
-
-if(CMAKE_C_SIZEOF_DATA_PTR)
-  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
-endif()
-
-if(CMAKE_C_COMPILER_ABI)
-  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
-endif()
-
-if(CMAKE_C_LIBRARY_ARCHITECTURE)
-  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
-endif()
-
-set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
-if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
-  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
-endif()
-
-
-
-
-
-set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
-set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
-set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
-set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

+ 0 - 83
example/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake

@@ -1,83 +0,0 @@
-set(CMAKE_CXX_COMPILER "/usr/bin/c++")
-set(CMAKE_CXX_COMPILER_ARG1 "")
-set(CMAKE_CXX_COMPILER_ID "GNU")
-set(CMAKE_CXX_COMPILER_VERSION "11.4.0")
-set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
-set(CMAKE_CXX_COMPILER_WRAPPER "")
-set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
-set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
-set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23")
-set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
-set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
-set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
-set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
-set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
-set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
-
-set(CMAKE_CXX_PLATFORM_ID "Linux")
-set(CMAKE_CXX_SIMULATE_ID "")
-set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
-set(CMAKE_CXX_SIMULATE_VERSION "")
-
-
-
-
-set(CMAKE_AR "/usr/bin/ar")
-set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-11")
-set(CMAKE_RANLIB "/usr/bin/ranlib")
-set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11")
-set(CMAKE_LINKER "/usr/bin/ld")
-set(CMAKE_MT "")
-set(CMAKE_COMPILER_IS_GNUCXX 1)
-set(CMAKE_CXX_COMPILER_LOADED 1)
-set(CMAKE_CXX_COMPILER_WORKS TRUE)
-set(CMAKE_CXX_ABI_COMPILED TRUE)
-
-set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
-
-set(CMAKE_CXX_COMPILER_ID_RUN 1)
-set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)
-set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
-
-foreach (lang C OBJC OBJCXX)
-  if (CMAKE_${lang}_COMPILER_ID_RUN)
-    foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
-      list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
-    endforeach()
-  endif()
-endforeach()
-
-set(CMAKE_CXX_LINKER_PREFERENCE 30)
-set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
-
-# Save compiler ABI information.
-set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
-set(CMAKE_CXX_COMPILER_ABI "ELF")
-set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
-set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
-
-if(CMAKE_CXX_SIZEOF_DATA_PTR)
-  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
-endif()
-
-if(CMAKE_CXX_COMPILER_ABI)
-  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
-endif()
-
-if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
-  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
-endif()
-
-set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
-if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
-  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
-endif()
-
-
-
-
-
-set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
-set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
-set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
-set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

二進制
example/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin


二進制
example/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin


+ 0 - 15
example/CMakeFiles/3.22.1/CMakeSystem.cmake

@@ -1,15 +0,0 @@
-set(CMAKE_HOST_SYSTEM "Linux-5.15.146.1-microsoft-standard-WSL2")
-set(CMAKE_HOST_SYSTEM_NAME "Linux")
-set(CMAKE_HOST_SYSTEM_VERSION "5.15.146.1-microsoft-standard-WSL2")
-set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
-
-
-
-set(CMAKE_SYSTEM "Linux-5.15.146.1-microsoft-standard-WSL2")
-set(CMAKE_SYSTEM_NAME "Linux")
-set(CMAKE_SYSTEM_VERSION "5.15.146.1-microsoft-standard-WSL2")
-set(CMAKE_SYSTEM_PROCESSOR "x86_64")
-
-set(CMAKE_CROSSCOMPILING "FALSE")
-
-set(CMAKE_SYSTEM_LOADED 1)

+ 0 - 803
example/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c

@@ -1,803 +0,0 @@
-#ifdef __cplusplus
-# error "A C++ compiler has been selected for C."
-#endif
-
-#if defined(__18CXX)
-# define ID_VOID_MAIN
-#endif
-#if defined(__CLASSIC_C__)
-/* cv-qualifiers did not exist in K&R C */
-# define const
-# define volatile
-#endif
-
-#if !defined(__has_include)
-/* If the compiler does not have __has_include, pretend the answer is
-   always no.  */
-#  define __has_include(x) 0
-#endif
-
-
-/* Version number components: V=Version, R=Revision, P=Patch
-   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
-
-#if defined(__INTEL_COMPILER) || defined(__ICC)
-# define COMPILER_ID "Intel"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# if defined(__GNUC__)
-#  define SIMULATE_ID "GNU"
-# endif
-  /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
-     except that a few beta releases use the old format with V=2021.  */
-# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
-#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
-#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
-#  if defined(__INTEL_COMPILER_UPDATE)
-#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
-#  else
-#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
-#  endif
-# else
-#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
-#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
-   /* The third version component from --version is an update index,
-      but no macro is provided for it.  */
-#  define COMPILER_VERSION_PATCH DEC(0)
-# endif
-# if defined(__INTEL_COMPILER_BUILD_DATE)
-   /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
-#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
-# endif
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# if defined(__GNUC__)
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-# elif defined(__GNUG__)
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-# endif
-# if defined(__GNUC_MINOR__)
-#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
-# define COMPILER_ID "IntelLLVM"
-#if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-#endif
-#if defined(__GNUC__)
-# define SIMULATE_ID "GNU"
-#endif
-/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
- * later.  Look for 6 digit vs. 8 digit version number to decide encoding.
- * VVVV is no smaller than the current year when a version is released.
- */
-#if __INTEL_LLVM_COMPILER < 1000000L
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER    % 10)
-#else
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER     % 100)
-#endif
-#if defined(_MSC_VER)
-  /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-#endif
-#if defined(__GNUC__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-#elif defined(__GNUG__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-#endif
-#if defined(__GNUC_MINOR__)
-# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-#endif
-#if defined(__GNUC_PATCHLEVEL__)
-# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-#endif
-
-#elif defined(__PATHCC__)
-# define COMPILER_ID "PathScale"
-# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
-# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
-# if defined(__PATHCC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
-# endif
-
-#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
-# define COMPILER_ID "Embarcadero"
-# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
-# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
-# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
-
-#elif defined(__BORLANDC__)
-# define COMPILER_ID "Borland"
-  /* __BORLANDC__ = 0xVRR */
-# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
-# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
-
-#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
-# define COMPILER_ID "Watcom"
-   /* __WATCOMC__ = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__WATCOMC__)
-# define COMPILER_ID "OpenWatcom"
-   /* __WATCOMC__ = VVRP + 1100 */
-# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__SUNPRO_C)
-# define COMPILER_ID "SunPro"
-# if __SUNPRO_C >= 0x5100
-   /* __SUNPRO_C = 0xVRRP */
-#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
-#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
-#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
-# else
-   /* __SUNPRO_CC = 0xVRP */
-#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
-#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
-#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
-# endif
-
-#elif defined(__HP_cc)
-# define COMPILER_ID "HP"
-  /* __HP_cc = VVRRPP */
-# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
-# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
-
-#elif defined(__DECC)
-# define COMPILER_ID "Compaq"
-  /* __DECC_VER = VVRRTPPPP */
-# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
-# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
-# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
-
-#elif defined(__IBMC__) && defined(__COMPILER_VER__)
-# define COMPILER_ID "zOS"
-  /* __IBMC__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
-
-#elif defined(__ibmxl__) && defined(__clang__)
-# define COMPILER_ID "XLClang"
-# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
-# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
-# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
-# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
-
-
-#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
-# define COMPILER_ID "XL"
-  /* __IBMC__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
-
-#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
-# define COMPILER_ID "VisualAge"
-  /* __IBMC__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
-
-#elif defined(__NVCOMPILER)
-# define COMPILER_ID "NVHPC"
-# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
-# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
-# if defined(__NVCOMPILER_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
-# endif
-
-#elif defined(__PGI)
-# define COMPILER_ID "PGI"
-# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
-# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
-# if defined(__PGIC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
-# endif
-
-#elif defined(_CRAYC)
-# define COMPILER_ID "Cray"
-# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
-# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
-
-#elif defined(__TI_COMPILER_VERSION__)
-# define COMPILER_ID "TI"
-  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
-# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
-# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
-# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
-
-#elif defined(__CLANG_FUJITSU)
-# define COMPILER_ID "FujitsuClang"
-# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
-# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
-# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
-# define COMPILER_VERSION_INTERNAL_STR __clang_version__
-
-
-#elif defined(__FUJITSU)
-# define COMPILER_ID "Fujitsu"
-# if defined(__FCC_version__)
-#   define COMPILER_VERSION __FCC_version__
-# elif defined(__FCC_major__)
-#   define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
-#   define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
-#   define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
-# endif
-# if defined(__fcc_version)
-#   define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
-# elif defined(__FCC_VERSION)
-#   define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
-# endif
-
-
-#elif defined(__ghs__)
-# define COMPILER_ID "GHS"
-/* __GHS_VERSION_NUMBER = VVVVRP */
-# ifdef __GHS_VERSION_NUMBER
-# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
-# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
-# endif
-
-#elif defined(__TINYC__)
-# define COMPILER_ID "TinyCC"
-
-#elif defined(__BCC__)
-# define COMPILER_ID "Bruce"
-
-#elif defined(__SCO_VERSION__)
-# define COMPILER_ID "SCO"
-
-#elif defined(__ARMCC_VERSION) && !defined(__clang__)
-# define COMPILER_ID "ARMCC"
-#if __ARMCC_VERSION >= 1000000
-  /* __ARMCC_VERSION = VRRPPPP */
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
-#else
-  /* __ARMCC_VERSION = VRPPPP */
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
-#endif
-
-
-#elif defined(__clang__) && defined(__apple_build_version__)
-# define COMPILER_ID "AppleClang"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
-
-#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
-# define COMPILER_ID "ARMClang"
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
-# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
-
-#elif defined(__clang__)
-# define COMPILER_ID "Clang"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-
-#elif defined(__GNUC__)
-# define COMPILER_ID "GNU"
-# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
-# if defined(__GNUC_MINOR__)
-#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif defined(_MSC_VER)
-# define COMPILER_ID "MSVC"
-  /* _MSC_VER = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
-# if defined(_MSC_FULL_VER)
-#  if _MSC_VER >= 1400
-    /* _MSC_FULL_VER = VVRRPPPPP */
-#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
-#  else
-    /* _MSC_FULL_VER = VVRRPPPP */
-#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
-#  endif
-# endif
-# if defined(_MSC_BUILD)
-#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
-# endif
-
-#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
-# define COMPILER_ID "ADSP"
-#if defined(__VISUALDSPVERSION__)
-  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
-# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
-# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
-# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
-#endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# define COMPILER_ID "IAR"
-# if defined(__VER__) && defined(__ICCARM__)
-#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
-#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
-#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
-#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
-#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
-#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
-#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
-#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# endif
-
-#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
-# define COMPILER_ID "SDCC"
-# if defined(__SDCC_VERSION_MAJOR)
-#  define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
-#  define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
-#  define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
-# else
-  /* SDCC = VRP */
-#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
-#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
-#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
-# endif
-
-
-/* These compilers are either not known or too old to define an
-  identification macro.  Try to identify the platform and guess that
-  it is the native compiler.  */
-#elif defined(__hpux) || defined(__hpua)
-# define COMPILER_ID "HP"
-
-#else /* unknown compiler */
-# define COMPILER_ID ""
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
-   getting matched.  Store it in a pointer rather than an array
-   because some compilers will just produce instructions to fill the
-   array rather than assigning a pointer to a static array.  */
-char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
-#ifdef SIMULATE_ID
-char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
-#endif
-
-#ifdef __QNXNTO__
-char const* qnxnto = "INFO" ":" "qnxnto[]";
-#endif
-
-#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
-char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
-#endif
-
-#define STRINGIFY_HELPER(X) #X
-#define STRINGIFY(X) STRINGIFY_HELPER(X)
-
-/* Identify known platforms by name.  */
-#if defined(__linux) || defined(__linux__) || defined(linux)
-# define PLATFORM_ID "Linux"
-
-#elif defined(__MSYS__)
-# define PLATFORM_ID "MSYS"
-
-#elif defined(__CYGWIN__)
-# define PLATFORM_ID "Cygwin"
-
-#elif defined(__MINGW32__)
-# define PLATFORM_ID "MinGW"
-
-#elif defined(__APPLE__)
-# define PLATFORM_ID "Darwin"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-# define PLATFORM_ID "Windows"
-
-#elif defined(__FreeBSD__) || defined(__FreeBSD)
-# define PLATFORM_ID "FreeBSD"
-
-#elif defined(__NetBSD__) || defined(__NetBSD)
-# define PLATFORM_ID "NetBSD"
-
-#elif defined(__OpenBSD__) || defined(__OPENBSD)
-# define PLATFORM_ID "OpenBSD"
-
-#elif defined(__sun) || defined(sun)
-# define PLATFORM_ID "SunOS"
-
-#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
-# define PLATFORM_ID "AIX"
-
-#elif defined(__hpux) || defined(__hpux__)
-# define PLATFORM_ID "HP-UX"
-
-#elif defined(__HAIKU__)
-# define PLATFORM_ID "Haiku"
-
-#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
-# define PLATFORM_ID "BeOS"
-
-#elif defined(__QNX__) || defined(__QNXNTO__)
-# define PLATFORM_ID "QNX"
-
-#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
-# define PLATFORM_ID "Tru64"
-
-#elif defined(__riscos) || defined(__riscos__)
-# define PLATFORM_ID "RISCos"
-
-#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
-# define PLATFORM_ID "SINIX"
-
-#elif defined(__UNIX_SV__)
-# define PLATFORM_ID "UNIX_SV"
-
-#elif defined(__bsdos__)
-# define PLATFORM_ID "BSDOS"
-
-#elif defined(_MPRAS) || defined(MPRAS)
-# define PLATFORM_ID "MP-RAS"
-
-#elif defined(__osf) || defined(__osf__)
-# define PLATFORM_ID "OSF1"
-
-#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
-# define PLATFORM_ID "SCO_SV"
-
-#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
-# define PLATFORM_ID "ULTRIX"
-
-#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
-# define PLATFORM_ID "Xenix"
-
-#elif defined(__WATCOMC__)
-# if defined(__LINUX__)
-#  define PLATFORM_ID "Linux"
-
-# elif defined(__DOS__)
-#  define PLATFORM_ID "DOS"
-
-# elif defined(__OS2__)
-#  define PLATFORM_ID "OS2"
-
-# elif defined(__WINDOWS__)
-#  define PLATFORM_ID "Windows3x"
-
-# elif defined(__VXWORKS__)
-#  define PLATFORM_ID "VxWorks"
-
-# else /* unknown platform */
-#  define PLATFORM_ID
-# endif
-
-#elif defined(__INTEGRITY)
-# if defined(INT_178B)
-#  define PLATFORM_ID "Integrity178"
-
-# else /* regular Integrity */
-#  define PLATFORM_ID "Integrity"
-# endif
-
-#else /* unknown platform */
-# define PLATFORM_ID
-
-#endif
-
-/* For windows compilers MSVC and Intel we can determine
-   the architecture of the compiler being used.  This is because
-   the compilers do not have flags that can change the architecture,
-   but rather depend on which compiler is being used
-*/
-#if defined(_WIN32) && defined(_MSC_VER)
-# if defined(_M_IA64)
-#  define ARCHITECTURE_ID "IA64"
-
-# elif defined(_M_ARM64EC)
-#  define ARCHITECTURE_ID "ARM64EC"
-
-# elif defined(_M_X64) || defined(_M_AMD64)
-#  define ARCHITECTURE_ID "x64"
-
-# elif defined(_M_IX86)
-#  define ARCHITECTURE_ID "X86"
-
-# elif defined(_M_ARM64)
-#  define ARCHITECTURE_ID "ARM64"
-
-# elif defined(_M_ARM)
-#  if _M_ARM == 4
-#   define ARCHITECTURE_ID "ARMV4I"
-#  elif _M_ARM == 5
-#   define ARCHITECTURE_ID "ARMV5I"
-#  else
-#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
-#  endif
-
-# elif defined(_M_MIPS)
-#  define ARCHITECTURE_ID "MIPS"
-
-# elif defined(_M_SH)
-#  define ARCHITECTURE_ID "SHx"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__WATCOMC__)
-# if defined(_M_I86)
-#  define ARCHITECTURE_ID "I86"
-
-# elif defined(_M_IX86)
-#  define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# if defined(__ICCARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__ICCRX__)
-#  define ARCHITECTURE_ID "RX"
-
-# elif defined(__ICCRH850__)
-#  define ARCHITECTURE_ID "RH850"
-
-# elif defined(__ICCRL78__)
-#  define ARCHITECTURE_ID "RL78"
-
-# elif defined(__ICCRISCV__)
-#  define ARCHITECTURE_ID "RISCV"
-
-# elif defined(__ICCAVR__)
-#  define ARCHITECTURE_ID "AVR"
-
-# elif defined(__ICC430__)
-#  define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__ICCV850__)
-#  define ARCHITECTURE_ID "V850"
-
-# elif defined(__ICC8051__)
-#  define ARCHITECTURE_ID "8051"
-
-# elif defined(__ICCSTM8__)
-#  define ARCHITECTURE_ID "STM8"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__ghs__)
-# if defined(__PPC64__)
-#  define ARCHITECTURE_ID "PPC64"
-
-# elif defined(__ppc__)
-#  define ARCHITECTURE_ID "PPC"
-
-# elif defined(__ARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__x86_64__)
-#  define ARCHITECTURE_ID "x64"
-
-# elif defined(__i386__)
-#  define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__TI_COMPILER_VERSION__)
-# if defined(__TI_ARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__MSP430__)
-#  define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__TMS320C28XX__)
-#  define ARCHITECTURE_ID "TMS320C28x"
-
-# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
-#  define ARCHITECTURE_ID "TMS320C6x"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#else
-#  define ARCHITECTURE_ID
-#endif
-
-/* Convert integer to decimal digit literals.  */
-#define DEC(n)                   \
-  ('0' + (((n) / 10000000)%10)), \
-  ('0' + (((n) / 1000000)%10)),  \
-  ('0' + (((n) / 100000)%10)),   \
-  ('0' + (((n) / 10000)%10)),    \
-  ('0' + (((n) / 1000)%10)),     \
-  ('0' + (((n) / 100)%10)),      \
-  ('0' + (((n) / 10)%10)),       \
-  ('0' +  ((n) % 10))
-
-/* Convert integer to hex digit literals.  */
-#define HEX(n)             \
-  ('0' + ((n)>>28 & 0xF)), \
-  ('0' + ((n)>>24 & 0xF)), \
-  ('0' + ((n)>>20 & 0xF)), \
-  ('0' + ((n)>>16 & 0xF)), \
-  ('0' + ((n)>>12 & 0xF)), \
-  ('0' + ((n)>>8  & 0xF)), \
-  ('0' + ((n)>>4  & 0xF)), \
-  ('0' + ((n)     & 0xF))
-
-/* Construct a string literal encoding the version number. */
-#ifdef COMPILER_VERSION
-char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
-
-/* Construct a string literal encoding the version number components. */
-#elif defined(COMPILER_VERSION_MAJOR)
-char const info_version[] = {
-  'I', 'N', 'F', 'O', ':',
-  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
-  COMPILER_VERSION_MAJOR,
-# ifdef COMPILER_VERSION_MINOR
-  '.', COMPILER_VERSION_MINOR,
-#  ifdef COMPILER_VERSION_PATCH
-   '.', COMPILER_VERSION_PATCH,
-#   ifdef COMPILER_VERSION_TWEAK
-    '.', COMPILER_VERSION_TWEAK,
-#   endif
-#  endif
-# endif
-  ']','\0'};
-#endif
-
-/* Construct a string literal encoding the internal version number. */
-#ifdef COMPILER_VERSION_INTERNAL
-char const info_version_internal[] = {
-  'I', 'N', 'F', 'O', ':',
-  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
-  'i','n','t','e','r','n','a','l','[',
-  COMPILER_VERSION_INTERNAL,']','\0'};
-#elif defined(COMPILER_VERSION_INTERNAL_STR)
-char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
-#endif
-
-/* Construct a string literal encoding the version number components. */
-#ifdef SIMULATE_VERSION_MAJOR
-char const info_simulate_version[] = {
-  'I', 'N', 'F', 'O', ':',
-  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
-  SIMULATE_VERSION_MAJOR,
-# ifdef SIMULATE_VERSION_MINOR
-  '.', SIMULATE_VERSION_MINOR,
-#  ifdef SIMULATE_VERSION_PATCH
-   '.', SIMULATE_VERSION_PATCH,
-#   ifdef SIMULATE_VERSION_TWEAK
-    '.', SIMULATE_VERSION_TWEAK,
-#   endif
-#  endif
-# endif
-  ']','\0'};
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
-   getting matched.  Store it in a pointer rather than an array
-   because some compilers will just produce instructions to fill the
-   array rather than assigning a pointer to a static array.  */
-char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
-char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
-
-
-
-#if !defined(__STDC__) && !defined(__clang__)
-# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
-#  define C_VERSION "90"
-# else
-#  define C_VERSION
-# endif
-#elif __STDC_VERSION__ > 201710L
-# define C_VERSION "23"
-#elif __STDC_VERSION__ >= 201710L
-# define C_VERSION "17"
-#elif __STDC_VERSION__ >= 201000L
-# define C_VERSION "11"
-#elif __STDC_VERSION__ >= 199901L
-# define C_VERSION "99"
-#else
-# define C_VERSION "90"
-#endif
-const char* info_language_standard_default =
-  "INFO" ":" "standard_default[" C_VERSION "]";
-
-const char* info_language_extensions_default = "INFO" ":" "extensions_default["
-/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */
-#if (defined(__clang__) || defined(__GNUC__) ||                               \
-     defined(__TI_COMPILER_VERSION__)) &&                                     \
-  !defined(__STRICT_ANSI__) && !defined(_MSC_VER)
-  "ON"
-#else
-  "OFF"
-#endif
-"]";
-
-/*--------------------------------------------------------------------------*/
-
-#ifdef ID_VOID_MAIN
-void main() {}
-#else
-# if defined(__CLASSIC_C__)
-int main(argc, argv) int argc; char *argv[];
-# else
-int main(int argc, char* argv[])
-# endif
-{
-  int require = 0;
-  require += info_compiler[argc];
-  require += info_platform[argc];
-  require += info_arch[argc];
-#ifdef COMPILER_VERSION_MAJOR
-  require += info_version[argc];
-#endif
-#ifdef COMPILER_VERSION_INTERNAL
-  require += info_version_internal[argc];
-#endif
-#ifdef SIMULATE_ID
-  require += info_simulate[argc];
-#endif
-#ifdef SIMULATE_VERSION_MAJOR
-  require += info_simulate_version[argc];
-#endif
-#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
-  require += info_cray[argc];
-#endif
-  require += info_language_standard_default[argc];
-  require += info_language_extensions_default[argc];
-  (void)argv;
-  return require;
-}
-#endif

+ 0 - 791
example/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp

@@ -1,791 +0,0 @@
-/* This source file must have a .cpp extension so that all C++ compilers
-   recognize the extension without flags.  Borland does not know .cxx for
-   example.  */
-#ifndef __cplusplus
-# error "A C compiler has been selected for C++."
-#endif
-
-#if !defined(__has_include)
-/* If the compiler does not have __has_include, pretend the answer is
-   always no.  */
-#  define __has_include(x) 0
-#endif
-
-
-/* Version number components: V=Version, R=Revision, P=Patch
-   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
-
-#if defined(__COMO__)
-# define COMPILER_ID "Comeau"
-  /* __COMO_VERSION__ = VRR */
-# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
-# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
-
-#elif defined(__INTEL_COMPILER) || defined(__ICC)
-# define COMPILER_ID "Intel"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# if defined(__GNUC__)
-#  define SIMULATE_ID "GNU"
-# endif
-  /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
-     except that a few beta releases use the old format with V=2021.  */
-# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
-#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
-#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
-#  if defined(__INTEL_COMPILER_UPDATE)
-#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
-#  else
-#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
-#  endif
-# else
-#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
-#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
-   /* The third version component from --version is an update index,
-      but no macro is provided for it.  */
-#  define COMPILER_VERSION_PATCH DEC(0)
-# endif
-# if defined(__INTEL_COMPILER_BUILD_DATE)
-   /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
-#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
-# endif
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# if defined(__GNUC__)
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-# elif defined(__GNUG__)
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-# endif
-# if defined(__GNUC_MINOR__)
-#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
-# define COMPILER_ID "IntelLLVM"
-#if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-#endif
-#if defined(__GNUC__)
-# define SIMULATE_ID "GNU"
-#endif
-/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
- * later.  Look for 6 digit vs. 8 digit version number to decide encoding.
- * VVVV is no smaller than the current year when a version is released.
- */
-#if __INTEL_LLVM_COMPILER < 1000000L
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER    % 10)
-#else
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER     % 100)
-#endif
-#if defined(_MSC_VER)
-  /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-#endif
-#if defined(__GNUC__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-#elif defined(__GNUG__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-#endif
-#if defined(__GNUC_MINOR__)
-# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-#endif
-#if defined(__GNUC_PATCHLEVEL__)
-# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-#endif
-
-#elif defined(__PATHCC__)
-# define COMPILER_ID "PathScale"
-# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
-# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
-# if defined(__PATHCC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
-# endif
-
-#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
-# define COMPILER_ID "Embarcadero"
-# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
-# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
-# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
-
-#elif defined(__BORLANDC__)
-# define COMPILER_ID "Borland"
-  /* __BORLANDC__ = 0xVRR */
-# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
-# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
-
-#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
-# define COMPILER_ID "Watcom"
-   /* __WATCOMC__ = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__WATCOMC__)
-# define COMPILER_ID "OpenWatcom"
-   /* __WATCOMC__ = VVRP + 1100 */
-# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__SUNPRO_CC)
-# define COMPILER_ID "SunPro"
-# if __SUNPRO_CC >= 0x5100
-   /* __SUNPRO_CC = 0xVRRP */
-#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
-#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
-#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
-# else
-   /* __SUNPRO_CC = 0xVRP */
-#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
-#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
-#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
-# endif
-
-#elif defined(__HP_aCC)
-# define COMPILER_ID "HP"
-  /* __HP_aCC = VVRRPP */
-# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
-# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
-
-#elif defined(__DECCXX)
-# define COMPILER_ID "Compaq"
-  /* __DECCXX_VER = VVRRTPPPP */
-# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
-# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
-# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
-
-#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
-# define COMPILER_ID "zOS"
-  /* __IBMCPP__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
-
-#elif defined(__ibmxl__) && defined(__clang__)
-# define COMPILER_ID "XLClang"
-# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
-# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
-# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
-# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
-
-
-#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
-# define COMPILER_ID "XL"
-  /* __IBMCPP__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
-
-#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
-# define COMPILER_ID "VisualAge"
-  /* __IBMCPP__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
-
-#elif defined(__NVCOMPILER)
-# define COMPILER_ID "NVHPC"
-# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
-# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
-# if defined(__NVCOMPILER_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
-# endif
-
-#elif defined(__PGI)
-# define COMPILER_ID "PGI"
-# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
-# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
-# if defined(__PGIC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
-# endif
-
-#elif defined(_CRAYC)
-# define COMPILER_ID "Cray"
-# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
-# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
-
-#elif defined(__TI_COMPILER_VERSION__)
-# define COMPILER_ID "TI"
-  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
-# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
-# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
-# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
-
-#elif defined(__CLANG_FUJITSU)
-# define COMPILER_ID "FujitsuClang"
-# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
-# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
-# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
-# define COMPILER_VERSION_INTERNAL_STR __clang_version__
-
-
-#elif defined(__FUJITSU)
-# define COMPILER_ID "Fujitsu"
-# if defined(__FCC_version__)
-#   define COMPILER_VERSION __FCC_version__
-# elif defined(__FCC_major__)
-#   define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
-#   define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
-#   define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
-# endif
-# if defined(__fcc_version)
-#   define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
-# elif defined(__FCC_VERSION)
-#   define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
-# endif
-
-
-#elif defined(__ghs__)
-# define COMPILER_ID "GHS"
-/* __GHS_VERSION_NUMBER = VVVVRP */
-# ifdef __GHS_VERSION_NUMBER
-# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
-# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
-# endif
-
-#elif defined(__SCO_VERSION__)
-# define COMPILER_ID "SCO"
-
-#elif defined(__ARMCC_VERSION) && !defined(__clang__)
-# define COMPILER_ID "ARMCC"
-#if __ARMCC_VERSION >= 1000000
-  /* __ARMCC_VERSION = VRRPPPP */
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
-#else
-  /* __ARMCC_VERSION = VRPPPP */
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
-#endif
-
-
-#elif defined(__clang__) && defined(__apple_build_version__)
-# define COMPILER_ID "AppleClang"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
-
-#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
-# define COMPILER_ID "ARMClang"
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
-# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
-
-#elif defined(__clang__)
-# define COMPILER_ID "Clang"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-
-#elif defined(__GNUC__) || defined(__GNUG__)
-# define COMPILER_ID "GNU"
-# if defined(__GNUC__)
-#  define COMPILER_VERSION_MAJOR DEC(__GNUC__)
-# else
-#  define COMPILER_VERSION_MAJOR DEC(__GNUG__)
-# endif
-# if defined(__GNUC_MINOR__)
-#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif defined(_MSC_VER)
-# define COMPILER_ID "MSVC"
-  /* _MSC_VER = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
-# if defined(_MSC_FULL_VER)
-#  if _MSC_VER >= 1400
-    /* _MSC_FULL_VER = VVRRPPPPP */
-#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
-#  else
-    /* _MSC_FULL_VER = VVRRPPPP */
-#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
-#  endif
-# endif
-# if defined(_MSC_BUILD)
-#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
-# endif
-
-#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
-# define COMPILER_ID "ADSP"
-#if defined(__VISUALDSPVERSION__)
-  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
-# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
-# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
-# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
-#endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# define COMPILER_ID "IAR"
-# if defined(__VER__) && defined(__ICCARM__)
-#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
-#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
-#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
-#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
-#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
-#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
-#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
-#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# endif
-
-
-/* These compilers are either not known or too old to define an
-  identification macro.  Try to identify the platform and guess that
-  it is the native compiler.  */
-#elif defined(__hpux) || defined(__hpua)
-# define COMPILER_ID "HP"
-
-#else /* unknown compiler */
-# define COMPILER_ID ""
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
-   getting matched.  Store it in a pointer rather than an array
-   because some compilers will just produce instructions to fill the
-   array rather than assigning a pointer to a static array.  */
-char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
-#ifdef SIMULATE_ID
-char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
-#endif
-
-#ifdef __QNXNTO__
-char const* qnxnto = "INFO" ":" "qnxnto[]";
-#endif
-
-#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
-char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
-#endif
-
-#define STRINGIFY_HELPER(X) #X
-#define STRINGIFY(X) STRINGIFY_HELPER(X)
-
-/* Identify known platforms by name.  */
-#if defined(__linux) || defined(__linux__) || defined(linux)
-# define PLATFORM_ID "Linux"
-
-#elif defined(__MSYS__)
-# define PLATFORM_ID "MSYS"
-
-#elif defined(__CYGWIN__)
-# define PLATFORM_ID "Cygwin"
-
-#elif defined(__MINGW32__)
-# define PLATFORM_ID "MinGW"
-
-#elif defined(__APPLE__)
-# define PLATFORM_ID "Darwin"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-# define PLATFORM_ID "Windows"
-
-#elif defined(__FreeBSD__) || defined(__FreeBSD)
-# define PLATFORM_ID "FreeBSD"
-
-#elif defined(__NetBSD__) || defined(__NetBSD)
-# define PLATFORM_ID "NetBSD"
-
-#elif defined(__OpenBSD__) || defined(__OPENBSD)
-# define PLATFORM_ID "OpenBSD"
-
-#elif defined(__sun) || defined(sun)
-# define PLATFORM_ID "SunOS"
-
-#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
-# define PLATFORM_ID "AIX"
-
-#elif defined(__hpux) || defined(__hpux__)
-# define PLATFORM_ID "HP-UX"
-
-#elif defined(__HAIKU__)
-# define PLATFORM_ID "Haiku"
-
-#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
-# define PLATFORM_ID "BeOS"
-
-#elif defined(__QNX__) || defined(__QNXNTO__)
-# define PLATFORM_ID "QNX"
-
-#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
-# define PLATFORM_ID "Tru64"
-
-#elif defined(__riscos) || defined(__riscos__)
-# define PLATFORM_ID "RISCos"
-
-#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
-# define PLATFORM_ID "SINIX"
-
-#elif defined(__UNIX_SV__)
-# define PLATFORM_ID "UNIX_SV"
-
-#elif defined(__bsdos__)
-# define PLATFORM_ID "BSDOS"
-
-#elif defined(_MPRAS) || defined(MPRAS)
-# define PLATFORM_ID "MP-RAS"
-
-#elif defined(__osf) || defined(__osf__)
-# define PLATFORM_ID "OSF1"
-
-#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
-# define PLATFORM_ID "SCO_SV"
-
-#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
-# define PLATFORM_ID "ULTRIX"
-
-#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
-# define PLATFORM_ID "Xenix"
-
-#elif defined(__WATCOMC__)
-# if defined(__LINUX__)
-#  define PLATFORM_ID "Linux"
-
-# elif defined(__DOS__)
-#  define PLATFORM_ID "DOS"
-
-# elif defined(__OS2__)
-#  define PLATFORM_ID "OS2"
-
-# elif defined(__WINDOWS__)
-#  define PLATFORM_ID "Windows3x"
-
-# elif defined(__VXWORKS__)
-#  define PLATFORM_ID "VxWorks"
-
-# else /* unknown platform */
-#  define PLATFORM_ID
-# endif
-
-#elif defined(__INTEGRITY)
-# if defined(INT_178B)
-#  define PLATFORM_ID "Integrity178"
-
-# else /* regular Integrity */
-#  define PLATFORM_ID "Integrity"
-# endif
-
-#else /* unknown platform */
-# define PLATFORM_ID
-
-#endif
-
-/* For windows compilers MSVC and Intel we can determine
-   the architecture of the compiler being used.  This is because
-   the compilers do not have flags that can change the architecture,
-   but rather depend on which compiler is being used
-*/
-#if defined(_WIN32) && defined(_MSC_VER)
-# if defined(_M_IA64)
-#  define ARCHITECTURE_ID "IA64"
-
-# elif defined(_M_ARM64EC)
-#  define ARCHITECTURE_ID "ARM64EC"
-
-# elif defined(_M_X64) || defined(_M_AMD64)
-#  define ARCHITECTURE_ID "x64"
-
-# elif defined(_M_IX86)
-#  define ARCHITECTURE_ID "X86"
-
-# elif defined(_M_ARM64)
-#  define ARCHITECTURE_ID "ARM64"
-
-# elif defined(_M_ARM)
-#  if _M_ARM == 4
-#   define ARCHITECTURE_ID "ARMV4I"
-#  elif _M_ARM == 5
-#   define ARCHITECTURE_ID "ARMV5I"
-#  else
-#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
-#  endif
-
-# elif defined(_M_MIPS)
-#  define ARCHITECTURE_ID "MIPS"
-
-# elif defined(_M_SH)
-#  define ARCHITECTURE_ID "SHx"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__WATCOMC__)
-# if defined(_M_I86)
-#  define ARCHITECTURE_ID "I86"
-
-# elif defined(_M_IX86)
-#  define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# if defined(__ICCARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__ICCRX__)
-#  define ARCHITECTURE_ID "RX"
-
-# elif defined(__ICCRH850__)
-#  define ARCHITECTURE_ID "RH850"
-
-# elif defined(__ICCRL78__)
-#  define ARCHITECTURE_ID "RL78"
-
-# elif defined(__ICCRISCV__)
-#  define ARCHITECTURE_ID "RISCV"
-
-# elif defined(__ICCAVR__)
-#  define ARCHITECTURE_ID "AVR"
-
-# elif defined(__ICC430__)
-#  define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__ICCV850__)
-#  define ARCHITECTURE_ID "V850"
-
-# elif defined(__ICC8051__)
-#  define ARCHITECTURE_ID "8051"
-
-# elif defined(__ICCSTM8__)
-#  define ARCHITECTURE_ID "STM8"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__ghs__)
-# if defined(__PPC64__)
-#  define ARCHITECTURE_ID "PPC64"
-
-# elif defined(__ppc__)
-#  define ARCHITECTURE_ID "PPC"
-
-# elif defined(__ARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__x86_64__)
-#  define ARCHITECTURE_ID "x64"
-
-# elif defined(__i386__)
-#  define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__TI_COMPILER_VERSION__)
-# if defined(__TI_ARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__MSP430__)
-#  define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__TMS320C28XX__)
-#  define ARCHITECTURE_ID "TMS320C28x"
-
-# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
-#  define ARCHITECTURE_ID "TMS320C6x"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#else
-#  define ARCHITECTURE_ID
-#endif
-
-/* Convert integer to decimal digit literals.  */
-#define DEC(n)                   \
-  ('0' + (((n) / 10000000)%10)), \
-  ('0' + (((n) / 1000000)%10)),  \
-  ('0' + (((n) / 100000)%10)),   \
-  ('0' + (((n) / 10000)%10)),    \
-  ('0' + (((n) / 1000)%10)),     \
-  ('0' + (((n) / 100)%10)),      \
-  ('0' + (((n) / 10)%10)),       \
-  ('0' +  ((n) % 10))
-
-/* Convert integer to hex digit literals.  */
-#define HEX(n)             \
-  ('0' + ((n)>>28 & 0xF)), \
-  ('0' + ((n)>>24 & 0xF)), \
-  ('0' + ((n)>>20 & 0xF)), \
-  ('0' + ((n)>>16 & 0xF)), \
-  ('0' + ((n)>>12 & 0xF)), \
-  ('0' + ((n)>>8  & 0xF)), \
-  ('0' + ((n)>>4  & 0xF)), \
-  ('0' + ((n)     & 0xF))
-
-/* Construct a string literal encoding the version number. */
-#ifdef COMPILER_VERSION
-char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
-
-/* Construct a string literal encoding the version number components. */
-#elif defined(COMPILER_VERSION_MAJOR)
-char const info_version[] = {
-  'I', 'N', 'F', 'O', ':',
-  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
-  COMPILER_VERSION_MAJOR,
-# ifdef COMPILER_VERSION_MINOR
-  '.', COMPILER_VERSION_MINOR,
-#  ifdef COMPILER_VERSION_PATCH
-   '.', COMPILER_VERSION_PATCH,
-#   ifdef COMPILER_VERSION_TWEAK
-    '.', COMPILER_VERSION_TWEAK,
-#   endif
-#  endif
-# endif
-  ']','\0'};
-#endif
-
-/* Construct a string literal encoding the internal version number. */
-#ifdef COMPILER_VERSION_INTERNAL
-char const info_version_internal[] = {
-  'I', 'N', 'F', 'O', ':',
-  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
-  'i','n','t','e','r','n','a','l','[',
-  COMPILER_VERSION_INTERNAL,']','\0'};
-#elif defined(COMPILER_VERSION_INTERNAL_STR)
-char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
-#endif
-
-/* Construct a string literal encoding the version number components. */
-#ifdef SIMULATE_VERSION_MAJOR
-char const info_simulate_version[] = {
-  'I', 'N', 'F', 'O', ':',
-  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
-  SIMULATE_VERSION_MAJOR,
-# ifdef SIMULATE_VERSION_MINOR
-  '.', SIMULATE_VERSION_MINOR,
-#  ifdef SIMULATE_VERSION_PATCH
-   '.', SIMULATE_VERSION_PATCH,
-#   ifdef SIMULATE_VERSION_TWEAK
-    '.', SIMULATE_VERSION_TWEAK,
-#   endif
-#  endif
-# endif
-  ']','\0'};
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
-   getting matched.  Store it in a pointer rather than an array
-   because some compilers will just produce instructions to fill the
-   array rather than assigning a pointer to a static array.  */
-char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
-char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
-
-
-
-#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
-#  if defined(__INTEL_CXX11_MODE__)
-#    if defined(__cpp_aggregate_nsdmi)
-#      define CXX_STD 201402L
-#    else
-#      define CXX_STD 201103L
-#    endif
-#  else
-#    define CXX_STD 199711L
-#  endif
-#elif defined(_MSC_VER) && defined(_MSVC_LANG)
-#  define CXX_STD _MSVC_LANG
-#else
-#  define CXX_STD __cplusplus
-#endif
-
-const char* info_language_standard_default = "INFO" ":" "standard_default["
-#if CXX_STD > 202002L
-  "23"
-#elif CXX_STD > 201703L
-  "20"
-#elif CXX_STD >= 201703L
-  "17"
-#elif CXX_STD >= 201402L
-  "14"
-#elif CXX_STD >= 201103L
-  "11"
-#else
-  "98"
-#endif
-"]";
-
-const char* info_language_extensions_default = "INFO" ":" "extensions_default["
-/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */
-#if (defined(__clang__) || defined(__GNUC__) ||                               \
-     defined(__TI_COMPILER_VERSION__)) &&                                     \
-  !defined(__STRICT_ANSI__) && !defined(_MSC_VER)
-  "ON"
-#else
-  "OFF"
-#endif
-"]";
-
-/*--------------------------------------------------------------------------*/
-
-int main(int argc, char* argv[])
-{
-  int require = 0;
-  require += info_compiler[argc];
-  require += info_platform[argc];
-#ifdef COMPILER_VERSION_MAJOR
-  require += info_version[argc];
-#endif
-#ifdef COMPILER_VERSION_INTERNAL
-  require += info_version_internal[argc];
-#endif
-#ifdef SIMULATE_ID
-  require += info_simulate[argc];
-#endif
-#ifdef SIMULATE_VERSION_MAJOR
-  require += info_simulate_version[argc];
-#endif
-#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
-  require += info_cray[argc];
-#endif
-  require += info_language_standard_default[argc];
-  require += info_language_extensions_default[argc];
-  (void)argv;
-  return require;
-}

+ 0 - 16
example/CMakeFiles/CMakeDirectoryInformation.cmake

@@ -1,16 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
-
-# Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/dyyt/all_pid/example")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/dyyt/all_pid/example")
-
-# Force unix paths in dependencies.
-set(CMAKE_FORCE_UNIX_PATHS 1)
-
-
-# The C and CXX include file regular expressions for this directory.
-set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})

+ 0 - 451
example/CMakeFiles/CMakeOutput.log

@@ -1,451 +0,0 @@
-The system is: Linux - 5.15.146.1-microsoft-standard-WSL2 - x86_64
-Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
-Compiler: /usr/bin/cc 
-Build flags: 
-Id flags:  
-
-The output was:
-0
-
-
-Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
-
-The C compiler identification is GNU, found in "/home/dyyt/all_pid/example/CMakeFiles/3.22.1/CompilerIdC/a.out"
-
-Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
-Compiler: /usr/bin/c++ 
-Build flags: 
-Id flags:  
-
-The output was:
-0
-
-
-Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
-
-The CXX compiler identification is GNU, found in "/home/dyyt/all_pid/example/CMakeFiles/3.22.1/CompilerIdCXX/a.out"
-
-Detecting C compiler ABI info compiled with the following output:
-Change Dir: /home/dyyt/all_pid/example/CMakeFiles/CMakeTmp
-
-Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_6fe40/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_6fe40.dir/build.make CMakeFiles/cmTC_6fe40.dir/build
-gmake[1]: Entering directory '/home/dyyt/all_pid/example/CMakeFiles/CMakeTmp'
-Building C object CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o
-/usr/bin/cc   -v -o CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c
-Using built-in specs.
-COLLECT_GCC=/usr/bin/cc
-OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
-OFFLOAD_TARGET_DEFAULT=1
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
-Thread model: posix
-Supported LTO compression algorithms: zlib zstd
-gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6fe40.dir/'
- /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_6fe40.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccu5p6he.s
-GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
-	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
-
-GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
-ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
-ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"
-ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"
-#include "..." search starts here:
-#include <...> search starts here:
- /usr/lib/gcc/x86_64-linux-gnu/11/include
- /usr/local/include
- /usr/include/x86_64-linux-gnu
- /usr/include
-End of search list.
-GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
-	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
-
-GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
-Compiler executable checksum: 50eaa2331df977b8016186198deb2d18
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6fe40.dir/'
- as -v --64 -o CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o /tmp/ccu5p6he.s
-GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
-COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
-LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.'
-Linking C executable cmTC_6fe40
-/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6fe40.dir/link.txt --verbose=1
-/usr/bin/cc  -v -rdynamic CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o -o cmTC_6fe40 
-Using built-in specs.
-COLLECT_GCC=/usr/bin/cc
-COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
-OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
-OFFLOAD_TARGET_DEFAULT=1
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
-Thread model: posix
-Supported LTO compression algorithms: zlib zstd
-gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
-COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
-LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
-COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_6fe40' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_6fe40.'
- /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccis28LU.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_6fe40 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
-COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_6fe40' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_6fe40.'
-gmake[1]: Leaving directory '/home/dyyt/all_pid/example/CMakeFiles/CMakeTmp'
-
-
-
-Parsed C implicit include dir info from above output: rv=done
-  found start of include info
-  found start of implicit include info
-    add: [/usr/lib/gcc/x86_64-linux-gnu/11/include]
-    add: [/usr/local/include]
-    add: [/usr/include/x86_64-linux-gnu]
-    add: [/usr/include]
-  end of search list found
-  collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/11/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/11/include]
-  collapse include dir [/usr/local/include] ==> [/usr/local/include]
-  collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
-  collapse include dir [/usr/include] ==> [/usr/include]
-  implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
-
-
-Parsed C implicit link information from above output:
-  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
-  ignore line: [Change Dir: /home/dyyt/all_pid/example/CMakeFiles/CMakeTmp]
-  ignore line: []
-  ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_6fe40/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_6fe40.dir/build.make CMakeFiles/cmTC_6fe40.dir/build]
-  ignore line: [gmake[1]: Entering directory '/home/dyyt/all_pid/example/CMakeFiles/CMakeTmp']
-  ignore line: [Building C object CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o]
-  ignore line: [/usr/bin/cc   -v -o CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c]
-  ignore line: [Using built-in specs.]
-  ignore line: [COLLECT_GCC=/usr/bin/cc]
-  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
-  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
-  ignore line: [Target: x86_64-linux-gnu]
-  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
-  ignore line: [Thread model: posix]
-  ignore line: [Supported LTO compression algorithms: zlib zstd]
-  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
-  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6fe40.dir/']
-  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_6fe40.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccu5p6he.s]
-  ignore line: [GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
-  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
-  ignore line: []
-  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
-  ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
-  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"]
-  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"]
-  ignore line: [#include "..." search starts here:]
-  ignore line: [#include <...> search starts here:]
-  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include]
-  ignore line: [ /usr/local/include]
-  ignore line: [ /usr/include/x86_64-linux-gnu]
-  ignore line: [ /usr/include]
-  ignore line: [End of search list.]
-  ignore line: [GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
-  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
-  ignore line: []
-  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
-  ignore line: [Compiler executable checksum: 50eaa2331df977b8016186198deb2d18]
-  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6fe40.dir/']
-  ignore line: [ as -v --64 -o CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o /tmp/ccu5p6he.s]
-  ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38]
-  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
-  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
-  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.']
-  ignore line: [Linking C executable cmTC_6fe40]
-  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6fe40.dir/link.txt --verbose=1]
-  ignore line: [/usr/bin/cc  -v -rdynamic CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o -o cmTC_6fe40 ]
-  ignore line: [Using built-in specs.]
-  ignore line: [COLLECT_GCC=/usr/bin/cc]
-  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper]
-  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
-  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
-  ignore line: [Target: x86_64-linux-gnu]
-  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
-  ignore line: [Thread model: posix]
-  ignore line: [Supported LTO compression algorithms: zlib zstd]
-  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
-  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
-  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
-  ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_6fe40' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_6fe40.']
-  link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccis28LU.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_6fe40 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore
-    arg [-plugin] ==> ignore
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore
-    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore
-    arg [-plugin-opt=-fresolution=/tmp/ccis28LU.res] ==> ignore
-    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
-    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
-    arg [-plugin-opt=-pass-through=-lc] ==> ignore
-    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
-    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
-    arg [--build-id] ==> ignore
-    arg [--eh-frame-hdr] ==> ignore
-    arg [-m] ==> ignore
-    arg [elf_x86_64] ==> ignore
-    arg [--hash-style=gnu] ==> ignore
-    arg [--as-needed] ==> ignore
-    arg [-export-dynamic] ==> ignore
-    arg [-dynamic-linker] ==> ignore
-    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
-    arg [-pie] ==> ignore
-    arg [-znow] ==> ignore
-    arg [-zrelro] ==> ignore
-    arg [-o] ==> ignore
-    arg [cmTC_6fe40] ==> ignore
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o]
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o]
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o]
-    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11]
-    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu]
-    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib]
-    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
-    arg [-L/lib/../lib] ==> dir [/lib/../lib]
-    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
-    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
-    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..]
-    arg [CMakeFiles/cmTC_6fe40.dir/CMakeCCompilerABI.c.o] ==> ignore
-    arg [-lgcc] ==> lib [gcc]
-    arg [--push-state] ==> ignore
-    arg [--as-needed] ==> ignore
-    arg [-lgcc_s] ==> lib [gcc_s]
-    arg [--pop-state] ==> ignore
-    arg [-lc] ==> lib [c]
-    arg [-lgcc] ==> lib [gcc]
-    arg [--push-state] ==> ignore
-    arg [--as-needed] ==> ignore
-    arg [-lgcc_s] ==> lib [gcc_s]
-    arg [--pop-state] ==> ignore
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o]
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
-  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o]
-  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o]
-  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o]
-  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11]
-  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
-  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib]
-  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
-  collapse library dir [/lib/../lib] ==> [/lib]
-  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
-  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
-  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib]
-  implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
-  implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o]
-  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
-  implicit fwks: []
-
-
-Detecting CXX compiler ABI info compiled with the following output:
-Change Dir: /home/dyyt/all_pid/example/CMakeFiles/CMakeTmp
-
-Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_4c42b/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_4c42b.dir/build.make CMakeFiles/cmTC_4c42b.dir/build
-gmake[1]: Entering directory '/home/dyyt/all_pid/example/CMakeFiles/CMakeTmp'
-Building CXX object CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o
-/usr/bin/c++   -v -o CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp
-Using built-in specs.
-COLLECT_GCC=/usr/bin/c++
-OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
-OFFLOAD_TARGET_DEFAULT=1
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
-Thread model: posix
-Supported LTO compression algorithms: zlib zstd
-gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c42b.dir/'
- /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_4c42b.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccRZ0MeZ.s
-GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
-	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
-
-GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
-ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"
-ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
-ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"
-ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"
-#include "..." search starts here:
-#include <...> search starts here:
- /usr/include/c++/11
- /usr/include/x86_64-linux-gnu/c++/11
- /usr/include/c++/11/backward
- /usr/lib/gcc/x86_64-linux-gnu/11/include
- /usr/local/include
- /usr/include/x86_64-linux-gnu
- /usr/include
-End of search list.
-GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
-	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
-
-GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
-Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c42b.dir/'
- as -v --64 -o CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccRZ0MeZ.s
-GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
-COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
-LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.'
-Linking CXX executable cmTC_4c42b
-/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4c42b.dir/link.txt --verbose=1
-/usr/bin/c++  -v -rdynamic CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_4c42b 
-Using built-in specs.
-COLLECT_GCC=/usr/bin/c++
-COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
-OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
-OFFLOAD_TARGET_DEFAULT=1
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
-Thread model: posix
-Supported LTO compression algorithms: zlib zstd
-gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
-COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
-LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
-COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_4c42b' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4c42b.'
- /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cchR8K8h.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4c42b /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
-COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_4c42b' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4c42b.'
-gmake[1]: Leaving directory '/home/dyyt/all_pid/example/CMakeFiles/CMakeTmp'
-
-
-
-Parsed CXX implicit include dir info from above output: rv=done
-  found start of include info
-  found start of implicit include info
-    add: [/usr/include/c++/11]
-    add: [/usr/include/x86_64-linux-gnu/c++/11]
-    add: [/usr/include/c++/11/backward]
-    add: [/usr/lib/gcc/x86_64-linux-gnu/11/include]
-    add: [/usr/local/include]
-    add: [/usr/include/x86_64-linux-gnu]
-    add: [/usr/include]
-  end of search list found
-  collapse include dir [/usr/include/c++/11] ==> [/usr/include/c++/11]
-  collapse include dir [/usr/include/x86_64-linux-gnu/c++/11] ==> [/usr/include/x86_64-linux-gnu/c++/11]
-  collapse include dir [/usr/include/c++/11/backward] ==> [/usr/include/c++/11/backward]
-  collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/11/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/11/include]
-  collapse include dir [/usr/local/include] ==> [/usr/local/include]
-  collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
-  collapse include dir [/usr/include] ==> [/usr/include]
-  implicit include dirs: [/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
-
-
-Parsed CXX implicit link information from above output:
-  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
-  ignore line: [Change Dir: /home/dyyt/all_pid/example/CMakeFiles/CMakeTmp]
-  ignore line: []
-  ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_4c42b/fast && /usr/bin/gmake  -f CMakeFiles/cmTC_4c42b.dir/build.make CMakeFiles/cmTC_4c42b.dir/build]
-  ignore line: [gmake[1]: Entering directory '/home/dyyt/all_pid/example/CMakeFiles/CMakeTmp']
-  ignore line: [Building CXX object CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o]
-  ignore line: [/usr/bin/c++   -v -o CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp]
-  ignore line: [Using built-in specs.]
-  ignore line: [COLLECT_GCC=/usr/bin/c++]
-  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
-  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
-  ignore line: [Target: x86_64-linux-gnu]
-  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
-  ignore line: [Thread model: posix]
-  ignore line: [Supported LTO compression algorithms: zlib zstd]
-  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
-  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c42b.dir/']
-  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_4c42b.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccRZ0MeZ.s]
-  ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
-  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
-  ignore line: []
-  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
-  ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"]
-  ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
-  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"]
-  ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"]
-  ignore line: [#include "..." search starts here:]
-  ignore line: [#include <...> search starts here:]
-  ignore line: [ /usr/include/c++/11]
-  ignore line: [ /usr/include/x86_64-linux-gnu/c++/11]
-  ignore line: [ /usr/include/c++/11/backward]
-  ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include]
-  ignore line: [ /usr/local/include]
-  ignore line: [ /usr/include/x86_64-linux-gnu]
-  ignore line: [ /usr/include]
-  ignore line: [End of search list.]
-  ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
-  ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
-  ignore line: []
-  ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
-  ignore line: [Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f]
-  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c42b.dir/']
-  ignore line: [ as -v --64 -o CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccRZ0MeZ.s]
-  ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38]
-  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
-  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
-  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.']
-  ignore line: [Linking CXX executable cmTC_4c42b]
-  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4c42b.dir/link.txt --verbose=1]
-  ignore line: [/usr/bin/c++  -v -rdynamic CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_4c42b ]
-  ignore line: [Using built-in specs.]
-  ignore line: [COLLECT_GCC=/usr/bin/c++]
-  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper]
-  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
-  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
-  ignore line: [Target: x86_64-linux-gnu]
-  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2]
-  ignore line: [Thread model: posix]
-  ignore line: [Supported LTO compression algorithms: zlib zstd]
-  ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
-  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
-  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
-  ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_4c42b' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4c42b.']
-  link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cchR8K8h.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4c42b /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore
-    arg [-plugin] ==> ignore
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore
-    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore
-    arg [-plugin-opt=-fresolution=/tmp/cchR8K8h.res] ==> ignore
-    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
-    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
-    arg [-plugin-opt=-pass-through=-lc] ==> ignore
-    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
-    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
-    arg [--build-id] ==> ignore
-    arg [--eh-frame-hdr] ==> ignore
-    arg [-m] ==> ignore
-    arg [elf_x86_64] ==> ignore
-    arg [--hash-style=gnu] ==> ignore
-    arg [--as-needed] ==> ignore
-    arg [-export-dynamic] ==> ignore
-    arg [-dynamic-linker] ==> ignore
-    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
-    arg [-pie] ==> ignore
-    arg [-znow] ==> ignore
-    arg [-zrelro] ==> ignore
-    arg [-o] ==> ignore
-    arg [cmTC_4c42b] ==> ignore
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o]
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o]
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o]
-    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11]
-    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu]
-    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib]
-    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
-    arg [-L/lib/../lib] ==> dir [/lib/../lib]
-    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
-    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
-    arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..]
-    arg [CMakeFiles/cmTC_4c42b.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
-    arg [-lstdc++] ==> lib [stdc++]
-    arg [-lm] ==> lib [m]
-    arg [-lgcc_s] ==> lib [gcc_s]
-    arg [-lgcc] ==> lib [gcc]
-    arg [-lc] ==> lib [c]
-    arg [-lgcc_s] ==> lib [gcc_s]
-    arg [-lgcc] ==> lib [gcc]
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o]
-    arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
-  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o]
-  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o]
-  collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o]
-  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11]
-  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
-  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib]
-  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
-  collapse library dir [/lib/../lib] ==> [/lib]
-  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
-  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
-  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib]
-  implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
-  implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o]
-  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
-  implicit fwks: []
-
-

+ 0 - 47
example/CMakeFiles/Makefile.cmake

@@ -1,47 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
-
-# The generator used is:
-set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
-
-# The top level Makefile was generated from the following files:
-set(CMAKE_MAKEFILE_DEPENDS
-  "CMakeCache.txt"
-  "CMakeFiles/3.22.1/CMakeCCompiler.cmake"
-  "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake"
-  "CMakeFiles/3.22.1/CMakeSystem.cmake"
-  "CMakeLists.txt"
-  "/usr/share/cmake-3.22/Modules/CMakeCInformation.cmake"
-  "/usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
-  "/usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
-  "/usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
-  "/usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
-  "/usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
-  "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
-  "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
-  "/usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
-  "/usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake"
-  "/usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake"
-  "/usr/share/cmake-3.22/Modules/Compiler/GNU.cmake"
-  "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake"
-  "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake"
-  "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake"
-  "/usr/share/cmake-3.22/Modules/Platform/Linux.cmake"
-  "/usr/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
-  )
-
-# The corresponding makefile is:
-set(CMAKE_MAKEFILE_OUTPUTS
-  "Makefile"
-  "CMakeFiles/cmake.check_cache"
-  )
-
-# Byproducts of CMake generate step:
-set(CMAKE_MAKEFILE_PRODUCTS
-  "CMakeFiles/CMakeDirectoryInformation.cmake"
-  )
-
-# Dependency information for all targets:
-set(CMAKE_DEPEND_INFO_FILES
-  "CMakeFiles/main.dir/DependInfo.cmake"
-  )

+ 0 - 112
example/CMakeFiles/Makefile2

@@ -1,112 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
-
-# Default target executed when no arguments are given to make.
-default_target: all
-.PHONY : default_target
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /home/dyyt/all_pid/example
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /home/dyyt/all_pid/example
-
-#=============================================================================
-# Directory level rules for the build root directory
-
-# The main recursive "all" target.
-all: CMakeFiles/main.dir/all
-.PHONY : all
-
-# The main recursive "preinstall" target.
-preinstall:
-.PHONY : preinstall
-
-# The main recursive "clean" target.
-clean: CMakeFiles/main.dir/clean
-.PHONY : clean
-
-#=============================================================================
-# Target rules for target CMakeFiles/main.dir
-
-# All Build rule for target.
-CMakeFiles/main.dir/all:
-	$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/depend
-	$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/build
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/dyyt/all_pid/example/CMakeFiles --progress-num=1,2,3,4 "Built target main"
-.PHONY : CMakeFiles/main.dir/all
-
-# Build rule for subdir invocation for target.
-CMakeFiles/main.dir/rule: cmake_check_build_system
-	$(CMAKE_COMMAND) -E cmake_progress_start /home/dyyt/all_pid/example/CMakeFiles 4
-	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/main.dir/all
-	$(CMAKE_COMMAND) -E cmake_progress_start /home/dyyt/all_pid/example/CMakeFiles 0
-.PHONY : CMakeFiles/main.dir/rule
-
-# Convenience name for target.
-main: CMakeFiles/main.dir/rule
-.PHONY : main
-
-# clean rule for target.
-CMakeFiles/main.dir/clean:
-	$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/clean
-.PHONY : CMakeFiles/main.dir/clean
-
-#=============================================================================
-# Special targets to cleanup operation of make.
-
-# Special rule to run CMake to check the build system integrity.
-# No rule that depends on this can have commands that come from listfiles
-# because they might be regenerated.
-cmake_check_build_system:
-	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-.PHONY : cmake_check_build_system
-

+ 0 - 3
example/CMakeFiles/TargetDirectories.txt

@@ -1,3 +0,0 @@
-/home/dyyt/all_pid/example/CMakeFiles/main.dir
-/home/dyyt/all_pid/example/CMakeFiles/edit_cache.dir
-/home/dyyt/all_pid/example/CMakeFiles/rebuild_cache.dir

+ 0 - 1
example/CMakeFiles/cmake.check_cache

@@ -1 +0,0 @@
-# This file is generated by cmake for dependency checking of the CMakeCache.txt file

+ 0 - 21
example/CMakeFiles/main.dir/DependInfo.cmake

@@ -1,21 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
-  )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
-  "/home/dyyt/all_pid/src/pid.c" "CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o" "gcc" "CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o.d"
-  "/home/dyyt/all_pid/src/pid_exfunc.c" "CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o" "gcc" "CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o.d"
-  "/home/dyyt/all_pid/example/main.c" "CMakeFiles/main.dir/main.c.o" "gcc" "CMakeFiles/main.dir/main.c.o.d"
-  )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
-  )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")

+ 0 - 142
example/CMakeFiles/main.dir/build.make

@@ -1,142 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /home/dyyt/all_pid/example
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /home/dyyt/all_pid/example
-
-# Include any dependencies generated for this target.
-include CMakeFiles/main.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include CMakeFiles/main.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include CMakeFiles/main.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include CMakeFiles/main.dir/flags.make
-
-CMakeFiles/main.dir/main.c.o: CMakeFiles/main.dir/flags.make
-CMakeFiles/main.dir/main.c.o: main.c
-CMakeFiles/main.dir/main.c.o: CMakeFiles/main.dir/compiler_depend.ts
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/dyyt/all_pid/example/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/main.dir/main.c.o"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/main.dir/main.c.o -MF CMakeFiles/main.dir/main.c.o.d -o CMakeFiles/main.dir/main.c.o -c /home/dyyt/all_pid/example/main.c
-
-CMakeFiles/main.dir/main.c.i: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/main.dir/main.c.i"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dyyt/all_pid/example/main.c > CMakeFiles/main.dir/main.c.i
-
-CMakeFiles/main.dir/main.c.s: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/main.dir/main.c.s"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dyyt/all_pid/example/main.c -o CMakeFiles/main.dir/main.c.s
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o: CMakeFiles/main.dir/flags.make
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o: /home/dyyt/all_pid/src/pid.c
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o: CMakeFiles/main.dir/compiler_depend.ts
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/dyyt/all_pid/example/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o -MF CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o.d -o CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o -c /home/dyyt/all_pid/src/pid.c
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.i: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.i"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dyyt/all_pid/src/pid.c > CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.i
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.s: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.s"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dyyt/all_pid/src/pid.c -o CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.s
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o: CMakeFiles/main.dir/flags.make
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o: /home/dyyt/all_pid/src/pid_exfunc.c
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o: CMakeFiles/main.dir/compiler_depend.ts
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/dyyt/all_pid/example/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o -MF CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o.d -o CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o -c /home/dyyt/all_pid/src/pid_exfunc.c
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.i: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.i"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dyyt/all_pid/src/pid_exfunc.c > CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.i
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.s: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.s"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dyyt/all_pid/src/pid_exfunc.c -o CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.s
-
-# Object files for target main
-main_OBJECTS = \
-"CMakeFiles/main.dir/main.c.o" \
-"CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o" \
-"CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o"
-
-# External object files for target main
-main_EXTERNAL_OBJECTS =
-
-main: CMakeFiles/main.dir/main.c.o
-main: CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o
-main: CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o
-main: CMakeFiles/main.dir/build.make
-main: CMakeFiles/main.dir/link.txt
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/dyyt/all_pid/example/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Linking C executable main"
-	$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/main.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-CMakeFiles/main.dir/build: main
-.PHONY : CMakeFiles/main.dir/build
-
-CMakeFiles/main.dir/clean:
-	$(CMAKE_COMMAND) -P CMakeFiles/main.dir/cmake_clean.cmake
-.PHONY : CMakeFiles/main.dir/clean
-
-CMakeFiles/main.dir/depend:
-	cd /home/dyyt/all_pid/example && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/dyyt/all_pid/example /home/dyyt/all_pid/example /home/dyyt/all_pid/example /home/dyyt/all_pid/example /home/dyyt/all_pid/example/CMakeFiles/main.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : CMakeFiles/main.dir/depend
-

+ 0 - 15
example/CMakeFiles/main.dir/cmake_clean.cmake

@@ -1,15 +0,0 @@
-file(REMOVE_RECURSE
-  "CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o"
-  "CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o.d"
-  "CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o"
-  "CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o.d"
-  "CMakeFiles/main.dir/main.c.o"
-  "CMakeFiles/main.dir/main.c.o.d"
-  "main"
-  "main.pdb"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang C)
-  include(CMakeFiles/main.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()

+ 0 - 70
example/CMakeFiles/main.dir/compiler_depend.internal

@@ -1,70 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o
- /home/dyyt/all_pid/src/pid.c
- /usr/include/stdc-predef.h
- /home/dyyt/all_pid/src/pid.h
- /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h
- /usr/include/stdio.h
- /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
- /usr/include/features.h
- /usr/include/features-time64.h
- /usr/include/x86_64-linux-gnu/bits/wordsize.h
- /usr/include/x86_64-linux-gnu/bits/timesize.h
- /usr/include/x86_64-linux-gnu/sys/cdefs.h
- /usr/include/x86_64-linux-gnu/bits/long-double.h
- /usr/include/x86_64-linux-gnu/gnu/stubs.h
- /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
- /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h
- /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h
- /usr/include/x86_64-linux-gnu/bits/types.h
- /usr/include/x86_64-linux-gnu/bits/typesizes.h
- /usr/include/x86_64-linux-gnu/bits/time64.h
- /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
- /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
- /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
- /usr/include/x86_64-linux-gnu/bits/types/__FILE.h
- /usr/include/x86_64-linux-gnu/bits/types/FILE.h
- /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
- /usr/include/x86_64-linux-gnu/bits/stdio_lim.h
- /usr/include/x86_64-linux-gnu/bits/floatn.h
- /usr/include/x86_64-linux-gnu/bits/floatn-common.h
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o
- /home/dyyt/all_pid/src/pid_exfunc.c
- /usr/include/stdc-predef.h
- /home/dyyt/all_pid/src/pid.h
- /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h
- /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h
-
-CMakeFiles/main.dir/main.c.o
- /home/dyyt/all_pid/example/main.c
- /usr/include/stdc-predef.h
- /usr/include/stdio.h
- /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
- /usr/include/features.h
- /usr/include/features-time64.h
- /usr/include/x86_64-linux-gnu/bits/wordsize.h
- /usr/include/x86_64-linux-gnu/bits/timesize.h
- /usr/include/x86_64-linux-gnu/sys/cdefs.h
- /usr/include/x86_64-linux-gnu/bits/long-double.h
- /usr/include/x86_64-linux-gnu/gnu/stubs.h
- /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
- /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h
- /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h
- /usr/include/x86_64-linux-gnu/bits/types.h
- /usr/include/x86_64-linux-gnu/bits/typesizes.h
- /usr/include/x86_64-linux-gnu/bits/time64.h
- /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
- /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
- /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
- /usr/include/x86_64-linux-gnu/bits/types/__FILE.h
- /usr/include/x86_64-linux-gnu/bits/types/FILE.h
- /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
- /usr/include/x86_64-linux-gnu/bits/stdio_lim.h
- /usr/include/x86_64-linux-gnu/bits/floatn.h
- /usr/include/x86_64-linux-gnu/bits/floatn-common.h
- /home/dyyt/all_pid/src/pid.h
- /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h
-

+ 0 - 127
example/CMakeFiles/main.dir/compiler_depend.make

@@ -1,127 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o: /home/dyyt/all_pid/src/pid.c \
-  /usr/include/stdc-predef.h \
-  /home/dyyt/all_pid/src/pid.h \
-  /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \
-  /usr/include/stdio.h \
-  /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
-  /usr/include/features.h \
-  /usr/include/features-time64.h \
-  /usr/include/x86_64-linux-gnu/bits/wordsize.h \
-  /usr/include/x86_64-linux-gnu/bits/timesize.h \
-  /usr/include/x86_64-linux-gnu/sys/cdefs.h \
-  /usr/include/x86_64-linux-gnu/bits/long-double.h \
-  /usr/include/x86_64-linux-gnu/gnu/stubs.h \
-  /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
-  /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \
-  /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \
-  /usr/include/x86_64-linux-gnu/bits/types.h \
-  /usr/include/x86_64-linux-gnu/bits/typesizes.h \
-  /usr/include/x86_64-linux-gnu/bits/time64.h \
-  /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
-  /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
-  /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
-  /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
-  /usr/include/x86_64-linux-gnu/bits/types/FILE.h \
-  /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
-  /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
-  /usr/include/x86_64-linux-gnu/bits/floatn.h \
-  /usr/include/x86_64-linux-gnu/bits/floatn-common.h
-
-CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o: /home/dyyt/all_pid/src/pid_exfunc.c \
-  /usr/include/stdc-predef.h \
-  /home/dyyt/all_pid/src/pid.h \
-  /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \
-  /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h
-
-CMakeFiles/main.dir/main.c.o: main.c \
-  /usr/include/stdc-predef.h \
-  /usr/include/stdio.h \
-  /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
-  /usr/include/features.h \
-  /usr/include/features-time64.h \
-  /usr/include/x86_64-linux-gnu/bits/wordsize.h \
-  /usr/include/x86_64-linux-gnu/bits/timesize.h \
-  /usr/include/x86_64-linux-gnu/sys/cdefs.h \
-  /usr/include/x86_64-linux-gnu/bits/long-double.h \
-  /usr/include/x86_64-linux-gnu/gnu/stubs.h \
-  /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
-  /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \
-  /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \
-  /usr/include/x86_64-linux-gnu/bits/types.h \
-  /usr/include/x86_64-linux-gnu/bits/typesizes.h \
-  /usr/include/x86_64-linux-gnu/bits/time64.h \
-  /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
-  /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
-  /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
-  /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
-  /usr/include/x86_64-linux-gnu/bits/types/FILE.h \
-  /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
-  /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
-  /usr/include/x86_64-linux-gnu/bits/floatn.h \
-  /usr/include/x86_64-linux-gnu/bits/floatn-common.h \
-  /home/dyyt/all_pid/src/pid.h \
-  /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h
-
-
-main.c:
-
-/usr/include/x86_64-linux-gnu/bits/long-double.h:
-
-/usr/include/features-time64.h:
-
-/usr/include/x86_64-linux-gnu/bits/wordsize.h:
-
-/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:
-
-/usr/include/stdc-predef.h:
-
-/usr/include/x86_64-linux-gnu/sys/cdefs.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/x86_64-linux-gnu/11/include/float.h:
-
-/usr/include/x86_64-linux-gnu/bits/floatn-common.h:
-
-/home/dyyt/all_pid/src/pid.h:
-
-/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h:
-
-/usr/include/x86_64-linux-gnu/bits/typesizes.h:
-
-/home/dyyt/all_pid/src/pid.c:
-
-/usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h:
-
-/usr/include/x86_64-linux-gnu/bits/time64.h:
-
-/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h:
-
-/usr/include/x86_64-linux-gnu/bits/timesize.h:
-
-/usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h:
-
-/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
-
-/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h:
-
-/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h:
-
-/usr/include/x86_64-linux-gnu/bits/types/__FILE.h:
-
-/usr/include/features.h:
-
-/usr/include/x86_64-linux-gnu/bits/types/FILE.h:
-
-/usr/include/x86_64-linux-gnu/bits/types.h:
-
-/usr/include/x86_64-linux-gnu/gnu/stubs.h:
-
-/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
-
-/home/dyyt/all_pid/src/pid_exfunc.c:
-
-/usr/include/x86_64-linux-gnu/bits/floatn.h:

+ 0 - 2
example/CMakeFiles/main.dir/compiler_depend.ts

@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for main.

+ 0 - 2
example/CMakeFiles/main.dir/depend.make

@@ -1,2 +0,0 @@
-# Empty dependencies file for main.
-# This may be replaced when dependencies are built.

+ 0 - 10
example/CMakeFiles/main.dir/flags.make

@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
-
-# compile C with /usr/bin/cc
-C_DEFINES = 
-
-C_INCLUDES = -I/home/dyyt/all_pid/example/../src
-
-C_FLAGS = 
-

+ 0 - 1
example/CMakeFiles/main.dir/link.txt

@@ -1 +0,0 @@
-/usr/bin/cc -rdynamic CMakeFiles/main.dir/main.c.o CMakeFiles/main.dir/home/dyyt/all_pid/src/pid.c.o CMakeFiles/main.dir/home/dyyt/all_pid/src/pid_exfunc.c.o -o main 

+ 0 - 5
example/CMakeFiles/main.dir/progress.make

@@ -1,5 +0,0 @@
-CMAKE_PROGRESS_1 = 1
-CMAKE_PROGRESS_2 = 2
-CMAKE_PROGRESS_3 = 3
-CMAKE_PROGRESS_4 = 4
-

+ 0 - 20
example/CMakeFiles/main1.dir/DependInfo.cmake

@@ -1,20 +0,0 @@
-
-# Consider dependencies only in project.
-set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
-
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
-  )
-
-# The set of dependency files which are needed:
-set(CMAKE_DEPENDS_DEPENDENCY_FILES
-  "/home/dyyt/all_pid/src/pid.c" "CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o" "gcc" "CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o.d"
-  "/home/dyyt/all_pid/src/pid_exfunc.c" "CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o" "gcc" "CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o.d"
-  )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
-  )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")

+ 0 - 126
example/CMakeFiles/main1.dir/build.make

@@ -1,126 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-# Disable VCS-based implicit rules.
-% : %,v
-
-# Disable VCS-based implicit rules.
-% : RCS/%
-
-# Disable VCS-based implicit rules.
-% : RCS/%,v
-
-# Disable VCS-based implicit rules.
-% : SCCS/s.%
-
-# Disable VCS-based implicit rules.
-% : s.%
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-# Command-line flag to silence nested $(MAKE).
-$(VERBOSE)MAKESILENT = -s
-
-#Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-# A target that is always out of date.
-cmake_force:
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E rm -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /home/dyyt/all_pid/example
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /home/dyyt/all_pid/example
-
-# Include any dependencies generated for this target.
-include CMakeFiles/main1.dir/depend.make
-# Include any dependencies generated by the compiler for this target.
-include CMakeFiles/main1.dir/compiler_depend.make
-
-# Include the progress variables for this target.
-include CMakeFiles/main1.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include CMakeFiles/main1.dir/flags.make
-
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o: CMakeFiles/main1.dir/flags.make
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o: /home/dyyt/all_pid/src/pid.c
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o: CMakeFiles/main1.dir/compiler_depend.ts
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/dyyt/all_pid/example/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o -MF CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o.d -o CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o -c /home/dyyt/all_pid/src/pid.c
-
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.i: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.i"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dyyt/all_pid/src/pid.c > CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.i
-
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.s: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.s"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dyyt/all_pid/src/pid.c -o CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.s
-
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o: CMakeFiles/main1.dir/flags.make
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o: /home/dyyt/all_pid/src/pid_exfunc.c
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o: CMakeFiles/main1.dir/compiler_depend.ts
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/dyyt/all_pid/example/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o -MF CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o.d -o CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o -c /home/dyyt/all_pid/src/pid_exfunc.c
-
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.i: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.i"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/dyyt/all_pid/src/pid_exfunc.c > CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.i
-
-CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.s: cmake_force
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.s"
-	/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/dyyt/all_pid/src/pid_exfunc.c -o CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.s
-
-# Object files for target main1
-main1_OBJECTS = \
-"CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o" \
-"CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o"
-
-# External object files for target main1
-main1_EXTERNAL_OBJECTS =
-
-main1: CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o
-main1: CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o
-main1: CMakeFiles/main1.dir/build.make
-main1: CMakeFiles/main1.dir/link.txt
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/dyyt/all_pid/example/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking C executable main1"
-	$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/main1.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-CMakeFiles/main1.dir/build: main1
-.PHONY : CMakeFiles/main1.dir/build
-
-CMakeFiles/main1.dir/clean:
-	$(CMAKE_COMMAND) -P CMakeFiles/main1.dir/cmake_clean.cmake
-.PHONY : CMakeFiles/main1.dir/clean
-
-CMakeFiles/main1.dir/depend:
-	cd /home/dyyt/all_pid/example && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/dyyt/all_pid/example /home/dyyt/all_pid/example /home/dyyt/all_pid/example /home/dyyt/all_pid/example /home/dyyt/all_pid/example/CMakeFiles/main1.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : CMakeFiles/main1.dir/depend
-

+ 0 - 13
example/CMakeFiles/main1.dir/cmake_clean.cmake

@@ -1,13 +0,0 @@
-file(REMOVE_RECURSE
-  "CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o"
-  "CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o.d"
-  "CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o"
-  "CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o.d"
-  "main1"
-  "main1.pdb"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang C)
-  include(CMakeFiles/main1.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()

+ 0 - 2
example/CMakeFiles/main1.dir/compiler_depend.make

@@ -1,2 +0,0 @@
-# Empty compiler generated dependencies file for main1.
-# This may be replaced when dependencies are built.

+ 0 - 2
example/CMakeFiles/main1.dir/compiler_depend.ts

@@ -1,2 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Timestamp file for compiler generated dependencies management for main1.

+ 0 - 2
example/CMakeFiles/main1.dir/depend.make

@@ -1,2 +0,0 @@
-# Empty dependencies file for main1.
-# This may be replaced when dependencies are built.

+ 0 - 10
example/CMakeFiles/main1.dir/flags.make

@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.22
-
-# compile C with /usr/bin/cc
-C_DEFINES = 
-
-C_INCLUDES = -I/home/dyyt/all_pid/example/../src
-
-C_FLAGS = 
-

+ 0 - 1
example/CMakeFiles/main1.dir/link.txt

@@ -1 +0,0 @@
-/usr/bin/cc -rdynamic CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid.c.o CMakeFiles/main1.dir/home/dyyt/all_pid/src/pid_exfunc.c.o -o main1 

+ 0 - 4
example/CMakeFiles/main1.dir/progress.make

@@ -1,4 +0,0 @@
-CMAKE_PROGRESS_1 = 5
-CMAKE_PROGRESS_2 = 6
-CMAKE_PROGRESS_3 = 7
-

+ 0 - 1
example/CMakeFiles/progress.marks

@@ -1 +0,0 @@
-4

+ 0 - 54
example/cmake_install.cmake

@@ -1,54 +0,0 @@
-# Install script for directory: /home/dyyt/all_pid/example
-
-# Set the install prefix
-if(NOT DEFINED CMAKE_INSTALL_PREFIX)
-  set(CMAKE_INSTALL_PREFIX "/usr/local")
-endif()
-string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
-# Set the install configuration name.
-if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-  if(BUILD_TYPE)
-    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
-           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
-  else()
-    set(CMAKE_INSTALL_CONFIG_NAME "")
-  endif()
-  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-endif()
-
-# Set the component getting installed.
-if(NOT CMAKE_INSTALL_COMPONENT)
-  if(COMPONENT)
-    message(STATUS "Install component: \"${COMPONENT}\"")
-    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
-  else()
-    set(CMAKE_INSTALL_COMPONENT)
-  endif()
-endif()
-
-# Install shared libraries without execute permission?
-if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
-  set(CMAKE_INSTALL_SO_NO_EXE "1")
-endif()
-
-# Is this installation the result of a crosscompile?
-if(NOT DEFINED CMAKE_CROSSCOMPILING)
-  set(CMAKE_CROSSCOMPILING "FALSE")
-endif()
-
-# Set default install directory permissions.
-if(NOT DEFINED CMAKE_OBJDUMP)
-  set(CMAKE_OBJDUMP "/usr/bin/objdump")
-endif()
-
-if(CMAKE_INSTALL_COMPONENT)
-  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
-else()
-  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
-endif()
-
-string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
-       "${CMAKE_INSTALL_MANIFEST_FILES}")
-file(WRITE "/home/dyyt/all_pid/example/${CMAKE_INSTALL_MANIFEST}"
-     "${CMAKE_INSTALL_MANIFEST_CONTENT}")

+ 9 - 1
example/main.c

@@ -1,5 +1,13 @@
+/*
+ * @Author: Dyyt587 67887002+Dyyt587@users.noreply.github.com
+ * @Date: 2024-02-28 08:04:51
+ * @LastEditors: Dyyt587 67887002+Dyyt587@users.noreply.github.com
+ * @LastEditTime: 2024-04-01 10:41:04
+ * @FilePath: \all_pid\example\main.c
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
 #include <stdio.h>
-#include "pid.h"
+#include "apid.h"
 
 int main(void)
 {

+ 674 - 0
src/apid.c

@@ -0,0 +1,674 @@
+/*
+ * @Author: dyyt 805207319@qq.com
+ * @Date: 2023-05-29 16:03:17
+ * @LastEditors: Dyyt587 67887002+Dyyt587@users.noreply.github.com
+ * @LastEditTime: 2024-04-02 09:32:11
+ * @FilePath: \undefinedc:\Users\LENOVO\Documents\programs\PID\VS_Project\ConsoleApplication1\ConsoleApplication1\pid.c
+ * @Description:pid库
+ */
+
+#include "apid.h"
+#include "stdio.h"
+#include <stdarg.h>
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+	void APID_Reset(apid_t *pid);
+
+	/////////////////////////////////////////////////////////
+#if EXAMPLE
+	// 以下为pid初始化实例和解析
+	apid_t pid = {0};
+	apid_t next_pid = {0};
+	void example(void)
+	{
+	}
+
+#endif
+
+	void inline APID_Hander(apid_t *pid, PID_TYPE cycle)
+	{
+		pid->handle(pid, cycle);
+	}
+	float FOLowPassFilter(float In, float LastOut, float a)
+	{
+		return a * In + (1 - a) * LastOut;
+	}
+
+	/**
+	 * @description: 暂停pid计算,输出将等于输入
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void APID_Pause(apid_t *pid)
+	{
+		pid->flag.run_status = PAUSE;
+	}
+	/**
+	 * @description: 停止pid,输出将恒等于0
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void APID_STOP(apid_t *pid)
+	{
+		pid->flag.run_status = STOP;
+	}
+	/**
+	 * @description: 开启pid/pid正常运行
+	 * @param {apid_t*} pid 实例句柄
+	 * @note: 不要在已经 ENABLE 时调用重复调用
+	 * @return {*}
+	 */
+	void APID_Enable(apid_t *pid)
+	{
+		/* 目标值等于当前值 防止切换时候产生阶跃冲击*/
+		pid->parameter.target = pid->parameter.present;
+		pid->flag.run_status = PID_ENABLE;
+	}
+
+	/**
+	 * @description: 内部使用,增量式普通积分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Increment_Normal(apid_t *pid)
+	{
+		// 普通积分
+		pid->process.integral_bias = pid->process.bias * pid->cycle;
+		pid->process.integral_bias = pid->process.bias * pid->cycle;
+	}
+	/**
+	 * @description: 内部使用,增量式积分分离
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Increment_Separation(apid_t *pid)
+	{
+		// 积分分离
+		if (pid->process.bias > pid->parameter.bias_for_integral ||
+			pid->process.bias < -pid->parameter.bias_for_integral)
+			return;
+		pid->process.integral_bias = pid->process.bias * pid->cycle;
+	}
+	/**
+	 * @description: 内部使用,增量式抗饱和积分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Increment_Saturation(apid_t *pid)
+	{
+		// 抗积分饱和
+		if (pid->process.integral_bias * pid->parameter.ki > pid->parameter.integral_limit)
+			pid->process.integral_bias = pid->parameter.integral_limit / pid->parameter.ki;
+
+		else if (pid->process.integral_bias * pid->parameter.ki < -pid->parameter.integral_limit)
+			pid->process.integral_bias = -pid->parameter.integral_limit / pid->parameter.ki;
+
+		else
+			pid->process.integral_bias = pid->process.bias * pid->cycle;
+		return;
+	}
+	/**
+	 * @description: 内部使用,增量式变速积分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Increment_Speed(apid_t *pid)
+	{
+		// 变速积分 -- 可自行添加函数或处理算法
+		pid->process.integral_bias = (pid->process.bias + pid->process.last_bias) / (2.0f * pid->cycle);
+		pid->process.integral_bias -= (pid->process.bias - pid->process.last_bias) * pid->cycle;
+	}
+	/**
+	 * @description: 内部使用,增量式梯形积分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Increment_Trapeziod(apid_t *pid)
+	{
+		// 梯形积分 -- 可自行添加函数或处理算法
+		pid->process.integral_bias = (pid->process.bias + pid->process.last_bias) / (2.0f * pid->cycle);
+	}
+
+	/**
+	 * @description: 内部使用,增量式全微分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void d_handle_Increment_Complete(apid_t *pid)
+	{
+		pid->process.lpf_differential_bias = pid->process.differential_bias = pid->process.bias - 2 * pid->process.last_bias + pid->process.lastlast_bias;
+	}
+	/**
+	 * @description: 内部使用,增量式不完全微分
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {parameter.kd_lpf} *
+	 * @return {*}
+	 */
+	void d_handle_Increment_Part(apid_t *pid)
+	{
+		// 求微分,再低通滤波
+		pid->process.differential_bias = pid->process.bias - 2 * pid->process.last_bias + pid->process.lastlast_bias; // 本行进行d的计算
+		pid->process.differential_bias = FOLowPassFilter(pid->process.differential_bias, pid->process.lpf_differential_bias, pid->parameter.kd_.kd_lpf);
+		pid->process.lpf_differential_bias = pid->process.differential_bias;
+		// pid->process.lpf_differential_bias = pid->parameter.kd_lpf *
+		//	(3.1415926f * cycle * (pid->process.differential_bias - pid->process.lpf_differential_bias));//本行进行低通滤波 输入输出为d
+		//	//(3.1415926f * cycle * (pid->process.bias - 2*pid->process.last_bias + pid->process.lastlast_bias));//本行进行低通滤波 输入输出为d
+	}
+	/**
+	 * @description: 内部使用,增量式微分先行
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void d_handle_Increment_Previous(apid_t *pid)
+	{
+		// 微分先行
+		pid->process.lpf_differential_bias = pid->process.differential_bias = (pid->process.bias - 2 * pid->process.last_bias + pid->process.lastlast_bias) - pid->parameter.kd_.kd_pre * (pid->parameter.target - pid->process.last_target);
+	}
+
+	/**
+	 * @description: 内部使用,位置式全微分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void d_handle_Position_Complete(apid_t *pid)
+	{
+		// 直接求微分
+		pid->process.lpf_differential_bias = pid->process.differential_bias = pid->process.bias - pid->process.last_bias;
+	}
+	/**
+	 * @description: 内部使用,位置式不完全微分
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {parameter.kd_lpf * 3.1415926f * cycle		} *
+	 * @return {*}
+	 */
+	void d_handle_Position_Part(apid_t *pid)
+	{
+		// 求微分,再低通滤波
+		pid->process.differential_bias = pid->process.bias - pid->process.last_bias;
+		pid->process.differential_bias = FOLowPassFilter(pid->process.differential_bias, pid->process.lpf_differential_bias, pid->parameter.kd_.kd_lpf);
+		pid->process.lpf_differential_bias = pid->process.differential_bias;
+		/*pid->process.lpf_differential_bias += pid->parameter.kd_lpf * 3.1415926f * cycle
+		 * (pid->process.differential_bias - pid->process.lpf_differential_bias);*/
+	}
+	/**
+	 * @description: 内部使用,位置式微分先行
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void d_handle_Position_Previous(apid_t *pid)
+	{
+		// 微分先行
+		pid->process.lpf_differential_bias = pid->process.differential_bias = (pid->process.bias - pid->process.last_bias) - pid->parameter.kd_.kd_pre * (pid->parameter.target - pid->process.last_target);
+	}
+
+	/**
+	 * @description: 内部使用,位置式普通积分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Position_Normal(apid_t *pid)
+	{
+		// 普通积分
+		pid->process.integral_bias += pid->process.bias * pid->cycle;
+		pid->process.integral_bias += pid->process.bias * pid->cycle;
+	}
+	/**
+	 * @description: 内部使用,位置式积分分离
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Position_Separation(apid_t *pid)
+	{
+		// 积分分离
+		if (pid->process.bias > pid->parameter.bias_for_integral || pid->process.bias < -pid->parameter.bias_for_integral)
+			return;
+
+		pid->process.integral_bias += pid->process.bias * pid->cycle;
+	}
+	/**
+	 * @description: 内部使用,位置式抗饱和积分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Position_Saturation(apid_t *pid)
+	{
+		//		//抗积分饱和
+		//		if (pid->process.integral_bias * pid->parameter.ki > pid->parameter.integral_limit)
+		//			pid->process.integral_bias = pid->parameter.integral_limit * pid->parameter.ki;
+
+		//		else if (pid->process.integral_bias * pid->parameter.ki < -pid->parameter.integral_limit)
+		//			pid->process.integral_bias = -pid->parameter.integral_limit * pid->parameter.ki;
+
+		//		else
+		//			pid->process.integral_bias += pid->process.bias * pid->cycle;
+
+		// 抗积分饱和
+		if (pid->process.integral_bias * pid->parameter.ki > pid->parameter.integral_limit)
+			pid->process.integral_bias = pid->parameter.integral_limit;
+
+		else if (pid->process.integral_bias * pid->parameter.ki < -pid->parameter.integral_limit)
+			pid->process.integral_bias = -pid->parameter.integral_limit;
+
+		else
+			pid->process.integral_bias += pid->process.bias * pid->cycle;
+	}
+	/**
+	 * @description: 内部使用,位置式变速积分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Position_Speed(apid_t *pid)
+	{
+		// 变速积分 -- 可自行添加函数或处理算法
+		pid->process.integral_bias += (pid->process.bias + pid->process.last_bias) / (2.0f * pid->cycle);
+		pid->process.integral_bias -= (pid->process.bias - pid->process.last_bias) * pid->cycle;
+	}
+	/**
+	 * @description: 内部使用,位置式梯形积分
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void i_handle_Position_Trapeziod(apid_t *pid)
+	{
+		pid->process.integral_bias += (pid->process.bias + pid->process.last_bias) / (2.0f * pid->cycle);
+	}
+
+	/**
+	 * @description: 内部使用
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void static __PID_Out(apid_t *pid)
+	{
+		////////////////////////////////输出合成
+#if USE_HOOK_FIRST
+		if (pid->user_hook_first)
+			pid->user_hook_first(pid);
+#endif
+		// 计算输出
+		pid->parameter.out = pid->parameter.kp * pid->process.bias +
+							 pid->parameter.ki * pid->process.integral_bias +
+							 pid->parameter.kd * pid->process.lpf_differential_bias / pid->cycle +
+							 pid->process.feedforward;
+#if USE_HOOK_OUT
+		if (pid->user_hook_end)
+			pid->user_hook_end(pid);
+#endif
+		// 输出限幅
+		if (pid->parameter.out_limit > 0)
+		{
+			if (pid->parameter.out > pid->parameter.out_limit)
+				pid->parameter.out = pid->parameter.out_limit;
+
+			else if (pid->parameter.out < -pid->parameter.out_limit)
+				pid->parameter.out = -pid->parameter.out_limit;
+		}
+		// 存储过去值
+		pid->process.last_target = (pid->parameter.target);
+		pid->process.lastlast_bias = pid->process.last_bias; // 仅增量式使用
+		pid->process.last_bias = pid->process.bias;
+	}
+
+// 内部使用,检查是否要进行pid计算
+#define __OPERATE_STATUS()                              \
+	if (pid->flag.run_status != PID_ENABLE)             \
+	{                                                   \
+		if (pid->flag.run_status == STOP)               \
+		{                                               \
+			pid->parameter.out = 0;                     \
+		}                                               \
+		else                                            \
+		{                                               \
+			pid->parameter.out = pid->parameter.target; \
+		}                                               \
+		pid->process.bias = 0;                          \
+		pid->process.differential_bias = 0;             \
+		pid->process.lpf_differential_bias = 0;         \
+		pid->process.feedforward = 0;                   \
+		pid->process.integral_bias = 0;                 \
+		pid->process.last_bias = 0;                     \
+		pid->process.last_target = 0;                   \
+		pid->process.lastlast_bias = 0;                 \
+		pid->parameter.present = 0;                     \
+		pid->parameter.predict = 0;                     \
+		return;                                         \
+	}
+
+	/**
+	 * @description: pid计算函数
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} cycle pid计算周期,单位ms
+	 * @return {*}
+	 */
+	void _PID_Hander(apid_t *pid, PID_TYPE cycle)
+	{
+		pid->cycle = cycle;
+		__OPERATE_STATUS(); // 检查运行状态
+		////////////////////////////////期望值限幅
+		if ((pid->parameter.target) > pid->parameter.target_limit)
+			(pid->parameter.target) = pid->parameter.target_limit;
+		else if ((pid->parameter.target) < -pid->parameter.target_limit)
+			(pid->parameter.target) = -pid->parameter.target_limit;
+		////////////////////////////////前馈操作--前馈值直接加入输出
+		pid->process.feedforward = pid->parameter.kf * (pid->parameter.target);
+		/////////////////////////////////////////////////////////////////////////////////
+
+		////////////////////////////////预测操作--预测值直接加入偏差
+		pid->process.predict = pid->parameter.k_pre * pid->parameter.predict * ABS(pid->parameter.predict);
+		/////////////////////////////////////////////////////////////////////////////////
+
+		////////////////////////////////偏差操作
+		// 第一部分为期望
+		// 第二部分为反馈
+		// 第三部分为预测(一般为内环反馈,可不设置)
+		PID_TYPE temp_bias = (pid->parameter.target) -
+							 (pid->parameter.present) -
+							 pid->process.predict;
+
+		if (pid->parameter.bias_dead_zone > 0)
+			temp_bias = (temp_bias < pid->parameter.bias_dead_zone &&
+						 temp_bias > -pid->parameter.bias_dead_zone)
+							? 0
+							: temp_bias; // 误差死区判断--不用该功能时可以将其置-1 0
+
+		if (pid->parameter.bias_limit > 0)
+		{
+			temp_bias = (temp_bias > pid->parameter.bias_limit) ? pid->parameter.bias_limit : temp_bias; // 误差限幅--不用该功能时可以将其置-1 0
+			temp_bias = (temp_bias < -pid->parameter.bias_limit) ? -pid->parameter.bias_limit : temp_bias;
+		}
+
+		pid->process.bias = temp_bias; // 计算误差
+
+#if USE_HOOK_PRE_CPLT
+		if (pid->user_hook_pre_cplt)
+			pid->user_hook_pre_cplt(pid);
+#endif
+		////////////////////////////////积分操作
+		pid->i_handle(pid);
+		////////////////////////////////微分操作
+		pid->d_handle(pid);
+		////////////////////////////////输出操作,包含p操作
+		__PID_Out(pid);
+		// LOG_RAW("t p o:%f,%f,%f\r\n",pid->parameter.target,pid->parameter.present,pid->parameter.out);
+	}
+
+	/**
+	 * @description: 初始化pid,配置必要参数
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {ALL_PID_Mode} mode 增量式或位置式
+	 * @param {PID_TYPE} kp pid参数
+	 * @param {PID_TYPE} ki pid参数
+	 * @param {PID_TYPE} kd pid参数
+	 * @return {*}
+	 */
+	void APID_Init(apid_t *pid, ALL_PID_Mode mode, PID_TYPE kp, PID_TYPE ki, PID_TYPE kd)
+	{
+		APID_Reset(pid);
+		pid->flag.pid_mode = mode;
+		pid->handle = _PID_Hander; // 注册处理函数
+		// 注册函数
+		if (mode == PID_INCREMENT)
+		{
+			pid->i_handle = i_handle_Increment_Normal;
+			pid->d_handle = d_handle_Increment_Complete;
+		}
+		else
+		{
+			pid->i_handle = i_handle_Position_Normal;
+			pid->d_handle = d_handle_Position_Complete;
+		}
+		pid->parameter.kp = kp;
+		pid->parameter.ki = ki;
+		pid->parameter.kd = kd;
+	}
+
+	/**
+	 * @description: 将pid复位成原始状态
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {*}
+	 */
+	void APID_Reset(apid_t *pid)
+	{
+		pid->flag.run_status = PID_ENABLE;
+
+		pid->parameter.target = 0;
+		pid->parameter.present = 0;
+		pid->parameter.predict = 0;
+
+		pid->parameter.kp = 0;
+		pid->parameter.ki = 0;
+		pid->parameter.kd = 0;
+		pid->parameter.kf = 0;
+		pid->parameter.kd_.kd_lpf = 0;
+		pid->parameter.kd_.kd_pre = 0;
+		pid->parameter.k_pre = 0;
+
+		pid->parameter.target_limit = TARGET_MAX;
+		pid->parameter.bias_limit = -1;
+		pid->parameter.bias_dead_zone = -1;
+		pid->parameter.bias_for_integral = -1;
+		pid->parameter.integral_limit = -1;
+		pid->parameter.out_limit = OUT_MAX;
+
+		pid->parameter.out = 0;
+
+		pid->process.bias = 0;
+		pid->process.differential_bias = 0;
+		pid->process.lpf_differential_bias = 0;
+		pid->process.feedforward = 0;
+		pid->process.integral_bias = 0;
+		pid->process.last_bias = 0;
+		pid->process.lastlast_bias = 0;
+		pid->process.last_target = 0;
+	}
+
+	/**
+	 * @description: 限制目标值/期望值最大值
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void inline APID_Set_Target_Limit(apid_t *pid, PID_TYPE value)
+	{
+		pid->parameter.target_limit = value;
+	}
+	/**
+	 * @description: 限制误差最大值
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void inline APID_Set_Bias_Limit(apid_t *pid, PID_TYPE value)
+	{
+		pid->parameter.bias_limit = value;
+	}
+	/**
+	 * @description: 设置误差响应死区
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void inline APID_Set_Bias_Dead_Zone(apid_t *pid, PID_TYPE value)
+	{
+		pid->parameter.bias_dead_zone = value;
+	}
+
+	/**
+	 * @description: 限制积分项最大值
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void APID_Set_Integral_Limit(apid_t *pid, PID_TYPE value);
+	/**
+	 * @description: 限制pid输出最大值
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void inline APID_Set_Out_Limit(apid_t *pid, PID_TYPE value)
+	{
+		pid->parameter.out_limit = value;
+	}
+	/**
+	 * @description: 设置前馈系数
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void inline APID_Set_Feedforward(apid_t *pid, PID_TYPE value)
+	{
+		pid->parameter.kf = value;
+	}
+	/**
+	 * @description: 设置预测系数
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void inline APID_Set_KPre(apid_t *pid, PID_TYPE value)
+	{
+		pid->parameter.k_pre = value;
+	}
+	/**
+	 * @description: 限制目标值/期望值
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void inline APID_Set_Target(apid_t *pid, PID_TYPE value)
+	{
+		pid->parameter.target = value;
+	}
+	/**
+	 * @description: 设置当前值/反馈值
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void inline APID_Set_Present(apid_t *pid, PID_TYPE value)
+	{
+		pid->parameter.present = value;
+	}
+	/**
+	 * @description: 设置预测系数
+	 * @param {apid_t*} pid 实例句柄
+	 * @param {PID_TYPE} value
+	 * @return {*}
+	 */
+	void inline APID_Set_Predict(apid_t *pid, PID_TYPE value)
+	{
+		pid->parameter.predict = value;
+	}
+
+	/**
+	 * @description: 获取pid输出
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE inline APID_Get_Out(apid_t *pid)
+	{
+		return pid->parameter.out;
+	}
+
+	/**
+	 * @description: 获取pid目标值/期望值最大值
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE APID_Get_Target_Limit(apid_t *pid)
+	{
+		return pid->parameter.target_limit;
+	}
+
+	/**
+	 * @description: 获取pid误差最大值
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE APID_Get_Bias_Limit(apid_t *pid)
+	{
+		return pid->parameter.bias_limit;
+	}
+
+	/**
+	 * @description: 获取pid误差响应死区
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE APID_Get_Bias_Dead_Zone(apid_t *pid)
+	{
+		return pid->parameter.bias_dead_zone;
+	}
+
+	/**
+	 * @description: 获取pid积分项最大值
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE APID_Get_Integral_Limit(apid_t *pid)
+	{
+		return pid->parameter.integral_limit;
+	}
+
+	/**
+	 * @description: 获取pid输出最大值
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE APID_Get_Out_Limit(apid_t *pid)
+	{
+		return pid->parameter.out_limit;
+	}
+
+	/**
+	 * @description: 获取pid前馈系数
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE APID_Get_Feedforward(apid_t *pid)
+	{
+		return pid->parameter.kf;
+	}
+
+	/**
+	 * @description: 获取pid预测系数
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE APID_Get_KPre(apid_t *pid)
+	{
+		return pid->parameter.k_pre;
+	}
+
+	/**
+	 * @description: 获取pid期望
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE inline APID_Get_Target(apid_t *pid)
+	{
+		return pid->parameter.target;
+	}
+
+	/**
+	 * @description: 获取pid当前值
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE inline APID_Get_Present(apid_t *pid)
+	{
+		return pid->parameter.present;
+	}
+
+	/**
+	 * @description: 获取pid预测值
+	 * @param {apid_t*} pid 实例句柄
+	 * @return {PID_TYPE}
+	 */
+	PID_TYPE inline APID_Get_Predict(apid_t *pid)
+	{
+		return pid->parameter.predict;
+	}

+ 107 - 27
src/pid.h → src/apid.h

@@ -1,35 +1,46 @@
 /*
  * @Author: dyyt 805207319@qq.com
  * @Date: 2023-05-29 16:03:17
- * @LastEditors: dyyt 805207319@qq.com
- * @LastEditTime: 2023-07-23 01:44:41
+ * @LastEditors: Dyyt587 67887002+Dyyt587@users.noreply.github.com
+ * @LastEditTime: 2024-04-02 09:30:36
  * @FilePath: \undefinedc:\Users\LENOVO\Documents\programs\PID\VS_Project\ConsoleApplication1\ConsoleApplication1\pid.h
  * @Description: pid库
  */
 
-#ifndef _PID_H
-#define _PID_H
+#ifndef _APID_H
+#define _APID_H
 
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 #include "float.h"
+#include "stdint.h"
+#include "apid_cfg.h"
 
-#ifndef u8
-#define u8 unsigned char
+#ifndef ABS
+#define ABS(x) ((x > 0) ? x : -x)
 #endif
 
-#define TARGET_MAX FLT_MAX // 默认最大限幅值
-#define OUT_MAX FLT_MAX    // 默认最大限幅值
+    typedef enum
+    {
+        _8 = 0U,
 
-#define PID_TYPE float // 该库使用的数据类型
+        _16,
 
-// 注意,钩子函数对所有pid节点都有效,但每个节点都可自行编写属于自己的函数
-#define USE_HOOK_FIRST 0 // 使用钩子函数,自行编写
-#define USE_HOOK_END 0
+        _32,
+        _64,
 
-#define ABS(x) ((x > 0) ? x : -x)
+        _f,
+        _lf
+    } var_type_e;
+    typedef struct _var_list
+    {
+        const char *name;
+        void *body;
+        var_type_e type;
+        struct _var_list *next;
+    } var_list_t;
 
     enum
     {
@@ -64,7 +75,7 @@ extern "C"
 
     typedef struct
     {
-        u8 run_status;
+        uint8_t run_status;
         ALL_PID_I_Function integral_way;
         ALL_PID_D_Function differential_way;
         ALL_PID_Mode pid_mode; // 判定pid为增量或者位置
@@ -92,8 +103,6 @@ extern "C"
         PID_TYPE bias_for_integral; // 开始积分的误差	--	用于积分分离
         PID_TYPE integral_limit;    // 积分限幅				--	用于抗积分饱和
         PID_TYPE out_limit;         // 输出限幅
- 
-        PID_TYPE k; // 并行pid相加系数          -- 用于并行pid
 
         PID_TYPE out; // 此节点pid输出
 
@@ -101,12 +110,6 @@ extern "C"
         PID_TYPE present; // 当前值
         PID_TYPE predict; // 预测值
 
-#if USE_HOOK_FIRST
-        void (*user_hook_first)(apid_t *pid); // 钩子函数,在计算result之前,其他必要操作之后
-#endif
-#if USE_HOOK_FIRST
-        void (*user_hook_out)(apid_t *pid); // 钩子函数,在计算result之后,限幅之前
-#endif
     } PID_Parameter;
 
     // 增量式pid
@@ -143,8 +146,6 @@ extern "C"
 
     } PID_Process;
 
-    typedef struct _PID_T apid_t;
-
     typedef struct
     {
         ALL_PID_Mode mode;
@@ -154,8 +155,9 @@ extern "C"
         PID_TYPE ki;
         PID_TYPE kd;
     } PID_Config_t;
+    typedef struct _PID_T apid_t;
 
-    typedef struct _PID_T
+    struct _PID_T
     {
         ALL_PID_Flag flag;
         PID_Parameter parameter;
@@ -165,13 +167,65 @@ extern "C"
         void (*i_handle)(apid_t *pid);
         void (*d_handle)(apid_t *pid);
         void (*variable)(apid_t *pid); // 变速积分
-    }apid_t;
+
+#if USE_HOOK_FIRST
+        void (*user_hook_first)(apid_t *pid); // 钩子函数,在计算result之前,其他必要操作之后
+#endif
+#if USE_HOOK_FIRST
+        void (*user_hook_out)(apid_t *pid); // 钩子函数,在计算result之后,限幅之前
+#endif
+#if USE_HOOK_PRE_CPLT
+void (*user_hook_pre_cplt)(apid_t *pid);// 钩子函数,在计算前馈和bais之后,经行pid运算前
+#endif
+    };
+
+    /*用户不该使用该注释下面的函数*/
+    void _PID_Hander(apid_t *pid, PID_TYPE cycle);
+    void i_handle_Increment_Normal(apid_t *pid);
+    void d_handle_Increment_Complete(apid_t *pid);
+    void i_handle_Position_Normal(apid_t *pid);
+    void d_handle_Position_Complete(apid_t *pid);
+/*用户不该使用该注释上面的函数*/
+
+/**
+ * @brief 对于特殊的使用环境,可以使用该宏创建一个匿名的pid实例,但该实例不会被自动初始化,任然需要调用init函数
+ *
+ */
+#define APID_CREATE_STATIC_ANONYMOUS(mode, kp, ki, kd) \
+    &(apid_t)                                          \
+    {                                                  \
+        .flag = {.pid_mode = mode},                    \
+        .parameter = {.kp = kp, .ki = ki, .kd = kd},   \
+    }
+
+/**
+ * @brief 对于特殊的使用环境,可以使用下面宏创建一个匿名的pid实例,该实例不用调用初始化函数
+ *
+ */
+#define APID_CREATE_STATIC_ANONYMOUS_INCREMENT(_kp, _ki, _kd) \
+    &(apid_t)                                                 \
+    {                                                         \
+        .flag = {.pid_mode = PID_INCREMENT},                  \
+        .parameter = {.kp = _kp, .ki = _ki, .kd = _kd},       \
+        .handle = _PID_Hander,                                \
+        .i_handle = i_handle_Increment_Normal,                \
+        .d_handle = d_handle_Increment_Complete,              \
+    }
+#define APID_CREATE_STATIC_ANONYMOUS_POSITION(_kp, _ki, _kd) \
+    &(apid_t)                                                \
+    {                                                        \
+        .flag = {.pid_mode = PID_POSITION},                  \
+        .parameter = {.kp = _kp, .ki = _ki, .kd = _kd},      \
+        .handle = _PID_Hander,                               \
+        .i_handle = i_handle_Position_Normal,                \
+        .d_handle = d_handle_Position_Complete,              \
+    }
 
     void APID_STOP(apid_t *pid);
     void APID_Pause(apid_t *pid);
     void APID_Enable(apid_t *pid);
     void APID_Init(apid_t *pid, ALL_PID_Mode mode, PID_TYPE kp, PID_TYPE ki, PID_TYPE kd);
-	void PID_Reset(apid_t* pid);
+    void APID_Reset(apid_t *pid);
 
     void APID_SET_I_Function(apid_t *pid, ALL_PID_I_Function imode, ...);
     void APID_SET_D_Function(apid_t *pid, ALL_PID_D_Function dmode, ...);
@@ -202,6 +256,32 @@ extern "C"
 
     PID_TYPE APID_Get_Out(apid_t *pid);
 
+    PID_TYPE APID_Get_Target_Limit(apid_t *pid);
+    PID_TYPE APID_Get_Bias_Limit(apid_t *pid);
+    PID_TYPE APID_Get_Bias_Dead_Zone(apid_t *pid);
+    PID_TYPE APID_Get_Integral_Limit(apid_t *pid);
+    PID_TYPE APID_Get_Out_Limit(apid_t *pid);
+
+    PID_TYPE APID_Get_Feedforward(apid_t *pid);
+    PID_TYPE APID_Get_KPre(apid_t *pid);
+
+    PID_TYPE APID_Get_Target(apid_t *pid);
+    PID_TYPE APID_Get_Present(apid_t *pid);
+    PID_TYPE APID_Get_Predict(apid_t *pid);
+
+#define VAR_CMD_REGISTER(var, type)     \
+    do                                  \
+    {                                   \
+        var_register(&var, #var, type); \
+    } while (0)
+#define VAR_CMD_ARR_REGISTER(var, type, size)     \
+    do                                            \
+    {                                             \
+        var_arr_register(&var, #var, type, size); \
+    } while (0)
+    void var_register(void *var, const char *name, var_type_e type);
+    void var_arr_register(void *var, const char *name, var_type_e type, int size);
+    void var_init(void);
 
 #ifdef __cplusplus
 }

+ 36 - 0
src/apid_cfg.h

@@ -0,0 +1,36 @@
+#ifndef APID_CFG_H
+#define APID_CFG_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define PID_TYPE float // 该库使用的数据类型
+#define TARGET_MAX FLT_MAX // 默认最大限幅值
+#define OUT_MAX FLT_MAX    // 默认最大限幅值
+
+
+// 注意,钩子函数对所有pid节点都有效,但每个节点都可自行编写属于自己的函数
+#define USE_HOOK_FIRST 0 // 使用钩子函数,自行编写
+#define USE_HOOK_END 0
+#define USE_HOOK_PRE_CPLT 0 //fuzzy将会占用
+
+#define APID_USING_LOG
+#define APID_USING_LOG_LEVEL
+
+#define APID_USING_RTOS_RTTHREAD
+#define APID_USING_LETTERSHELL
+
+#define APID_USING_FUZZY 1
+
+
+
+#if APID_USING_FUZZY
+#undef USE_HOOK_PRE_CPLT
+#define USE_HOOK_PRE_CPLT 1
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

+ 191 - 0
src/apid_ex_fuzzy.c

@@ -0,0 +1,191 @@
+#include "apid.h"
+#if APID_USING_FUZZY
+#include "apid_ex_fuzzy.h"
+
+#define NB -6
+#define NM -4
+#define NS -2
+#define ZO 0
+#define PS 2
+#define PM 4
+#define PB 6
+static int ruleKp[7][7] = {{PB, PB, PM, PM, PS, ZO, ZO}, // kp规则表
+                           {PB, PB, PM, PS, PS, ZO, NS},
+                           {PM, PM, PM, PS, ZO, NS, NS},
+                           {PM, PM, PS, ZO, NS, NM, NM},
+                           {PS, PS, ZO, NS, NS, NM, NM},
+                           {PS, ZO, NS, NM, NM, NM, NB},
+                           {ZO, ZO, NM, NM, NM, NB, NB}};
+
+static int ruleKi[7][7] = {{NB, NB, NM, NM, NS, ZO, ZO}, // ki规则表
+                           {NB, NB, NM, NS, NS, ZO, ZO},
+                           {NB, NM, NS, NS, ZO, PS, PS},
+                           {NM, NM, NS, ZO, PS, PM, PM},
+                           {NM, NS, ZO, PS, PS, PM, PB},
+                           {ZO, ZO, PS, PS, PM, PB, PB},
+                           {ZO, ZO, PS, PM, PM, PB, PB}};
+
+static int ruleKd[7][7] = {{PS, NS, NB, NB, NB, NM, PS}, // kd规则表
+                           {PS, NS, NB, NM, NM, NS, ZO},
+                           {ZO, NS, NM, NM, NS, NS, ZO},
+                           {ZO, NS, NS, NS, NS, NS, ZO},
+                           {ZO, ZO, ZO, ZO, ZO, ZO, ZO},
+                           {PB, NS, PS, PS, PS, PS, PB},
+                           {PB, PM, PM, PM, PS, PS, PB}};
+
+/*线性量化操作函数,论域{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}*/
+/**
+ * @brief
+ *
+ * @param ctrl
+ * @param qValue 量化结果[0]偏差[1]偏差增量
+ */
+static void Linear_quantization(apid_fuzzy_ctrl_t *ctrl, PID_TYPE *qValue)
+{
+    apid_t *pid = ctrl->pid;
+
+    float thisError;
+    float deltaError;
+    thisError = pid->process.bias;                    /* 获取当前偏差值 */
+    deltaError = pid->process.last_bias / pid->cycle; /* 获取偏差值增量 */
+
+    qValue[0] = 6.0 * thisError / (ctrl->maximum - ctrl->minimum);
+    qValue[1] = 3.0 * deltaError / (ctrl->maximum - ctrl->minimum);
+}
+/**
+ * @brief 反模糊化
+ *
+ * @param ctrl
+ * @param max_kp
+ * @param qValueK
+ */
+PID_TYPE Linear_realization(PID_TYPE max_kp, PID_TYPE min_kp, PID_TYPE qValueK)
+{
+    return max_kp;
+}
+/**
+ * @brief 隶属度计算函数
+ *
+ * @param msp 隶属度
+ * @param qv 目标值
+ * @param index 隶属度在模糊表中的索引
+ */
+static void Calc_membership(float *msp, float qv, int *index)
+{
+
+    if ((qv >= -NB) && (qv < -NM))
+    {
+        index[0] = 0;
+        index[1] = 1;
+        msp[0] = -0.5 * qv - 2.0; // y=-0.5x-2.0
+        msp[1] = 0.5 * qv + 3.0;  // y=0.5x+3.0
+    }
+    else if ((qv >= -NM) && (qv < -NS))
+    {
+        index[0] = 1;
+        index[1] = 2;
+        msp[0] = -0.5 * qv - 1.0; // y=-0.5x-1.0
+        msp[1] = 0.5 * qv + 2.0;  // y=0.5x+2.0
+    }
+    else if ((qv >= -NS) && (qv < ZO))
+    {
+        index[0] = 2;
+        index[1] = 3;
+        msp[0] = -0.5 * qv;      // y=-0.5x
+        msp[1] = 0.5 * qv + 1.0; // y=0.5x+1.0
+    }
+    else if ((qv >= ZO) && (qv < PS))
+    {
+        index[0] = 3;
+        index[1] = 4;
+        msp[0] = -0.5 * qv + 1.0; // y=-0.5x+1.0
+        msp[1] = 0.5 * qv;        // y=0.5x
+    }
+    else if ((qv >= PS) && (qv < PM))
+    {
+        index[0] = 4;
+        index[1] = 5;
+        msp[0] = -0.5 * qv + 2.0; // y=-0.5x+2.0
+        msp[1] = 0.5 * qv - 1.0;  // y=0.5x-1.0
+    }
+    else if ((qv >= PM) && (qv <= PB))
+    {
+        index[0] = 5;
+        index[1] = 6;
+        msp[0] = -0.5 * qv + 3.0; // y=-0.5x+3.0
+        msp[1] = 0.5 * qv - 2.0;  // y=0.5x-2.0
+    }
+}
+
+/**
+ * @brief 解模糊化操作,根据具体的量化函数和隶属度函数调整
+ *
+ * @param ctrl
+ * @param deltaK
+ */
+static void Fuzzy_computation(apid_fuzzy_ctrl_t *ctrl)
+{
+    float qValue[2] = {0, 0};   // 偏差及其增量的量化值
+    uint8_t indexE[2] = {0, 0}; // 偏差隶属度索引
+    float msE[2] = {0, 0};      // 偏差隶属度
+
+    uint8_t indexEC[2] = {0, 0}; // 偏差增量隶属度索引
+    float msEC[2] = {0, 0};      // 偏差增量隶属度
+
+    float qValueK[3];
+    float deltaK[3] = {0};
+    ctrl->linear_quantization(ctrl, qValue);
+
+    ctrl->calc_membership(msE, qValue[0], indexE);
+    ctrl->calc_membership(msEC, qValue[1], indexEC);
+
+    qValueK[0] = msE[0] * (msEC[0] * ruleKp[indexE[0]][indexEC[0]] + msEC[1] * ruleKp[indexE[0]][indexEC[1]]) + msE[1] * (msEC[0] * ruleKp[indexE[1]][indexEC[0]] + msEC[1] * ruleKp[indexE[1]][indexEC[1]]);
+
+    qValueK[1] = msE[0] * (msEC[0] * ruleKi[indexE[0]][indexEC[0]] + msEC[1] * ruleKi[indexE[0]][indexEC[1]]) + msE[1] * (msEC[0] * ruleKi[indexE[1]][indexEC[0]] + msEC[1] * ruleKi[indexE[1]][indexEC[1]]);
+
+    qValueK[2] = msE[0] * (msEC[0] * ruleKd[indexE[0]][indexEC[0]] + msEC[1] * ruleKd[indexE[0]][indexEC[1]]) + msE[1] * (msEC[0] * ruleKd[indexE[1]][indexEC[0]] + msEC[1] * ruleKd[indexE[1]][indexEC[1]]);
+
+    deltaK[0] = ctrl->linear_realization(ctrl->maxdKp, ctrl->mindKp, qValueK[0]);
+    deltaK[1] = ctrl->linear_realization(ctrl->maxdKi, ctrl->mindKi, qValueK[1]);
+    deltaK[2] = ctrl->linear_realization(ctrl->maxdKd, ctrl->mindKd, qValueK[2]);
+
+    ctrl->pid->parameter.kp += deltaK[0];
+    ctrl->pid->parameter.ki += deltaK[1];
+    ctrl->pid->parameter.kd += deltaK[2];
+}
+
+typedef struct
+{
+    apid_t *pid;
+    float maximum; /*最大输出限幅值*/
+    float minimum; /*最小输出限幅值*/
+
+    float maxdKp; /*Kp增量的最大限值*/
+    float mindKp; /*Kp增量的最小限值*/
+    float qKp;    /*Kp增量的影响系数*/
+
+    float maxdKi; /*Ki增量的最大限值*/
+    float mindKi; /*Ki增量的最小限值*/
+    float qKi;    /*Ki增量的影响系数*/
+
+    float maxdKd; /*Kd增量的最大限值*/
+    float mindKd; /*Kd增量的最小限值*/
+    float qKd;    /*Kd增量的影响系数*/
+} APID_Fuzzy_Init_t;
+/**
+ * @brief 初始化模糊控制,使用默认的函数
+ *
+ * @param ctrl
+ * @param pid
+ */
+void APID_Fuzzy_Fast_Init(apid_fuzzy_ctrl_t *ctrl, APID_Fuzzy_Init_t *init,
+ PID_TYPE (*linear_realization)(PID_TYPE max_kp, PID_TYPE min_kp, PID_TYPE qValueK))
+{
+    ctrl->pid = init->pid;
+    ctrl->linear_quantization = Linear_quantization;
+    ctrl->calc_membership = Calc_membership;
+    ctrl->linear_realization = linear_realization;
+    ctrl->pid->user_hook_pre_cplt =Fuzzy_computation;
+}
+
+#endif

+ 48 - 0
src/apid_ex_fuzzy.h

@@ -0,0 +1,48 @@
+/*
+ * @Author: Dyyt587 67887002+Dyyt587@users.noreply.github.com
+ * @Date: 2024-04-02 09:03:54
+ * @LastEditors: Dyyt587 67887002+Dyyt587@users.noreply.github.com
+ * @LastEditTime: 2024-04-02 09:07:20
+ * @FilePath: \all_pid\src\apid_ex_fuzzy.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+#ifndef APID_EX_FUZZY_H_
+#define APID_EX_FUZZY_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "apid.h"
+#if APID_USING_FUZZY
+
+
+typedef struct apid_fuzzy_ctrl apid_fuzzy_ctrl_t;
+
+struct apid_fuzzy_ctrl
+{
+    void (*linear_quantization)(apid_fuzzy_ctrl_t *ctrl, PID_TYPE *qValue);
+    void (*calc_membership)(PID_TYPE *msp, PID_TYPE qv, uint8_t *index);
+    PID_TYPE(*linear_realization)(PID_TYPE max_kp, PID_TYPE min_kp, PID_TYPE qValueK);
+
+    apid_t *pid;
+
+    float maximum;/*最大输出限幅值*/
+    float minimum;/*最小输出限幅值*/
+
+    float maxdKp; /*Kp增量的最大限值*/
+    float mindKp; /*Kp增量的最小限值*/
+    float qKp;    /*Kp增量的影响系数*/
+
+    float maxdKi; /*Ki增量的最大限值*/
+    float mindKi; /*Ki增量的最小限值*/
+    float qKi;    /*Ki增量的影响系数*/
+
+    float maxdKd; /*Kd增量的最大限值*/
+    float mindKd; /*Kd增量的最小限值*/
+    float qKd;    /*Kd增量的影响系数*/
+};
+
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif

+ 481 - 0
src/apid_exfunc.c

@@ -0,0 +1,481 @@
+/*
+ * @Author: dyyt 805207319@qq.com
+ * @Date: 2023-07-19 11:36:27
+ * @LastEditors: Dyyt587 67887002+Dyyt587@users.noreply.github.com
+ * @LastEditTime: 2024-04-01 10:42:59
+ * @FilePath: \undefinedc:\Users\LENOVO\Documents\programs\PID\VS_Project\ConsoleApplication1\ConsoleApplication1\pid_exfunc.c
+ * @Description: pid库
+ */
+#include "apid.h"
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+
+var_list_t var_list;
+var_list_t* _var_begin = 0;
+
+#define var_logInfo(...) printf(__VA_ARGS__);
+#define __NAME(restrc,x,name) strcpy(name,#x)
+#define VAR_MALLOC(x) malloc(x)
+
+extern void i_handle_Increment_Normal(apid_t *pid);
+extern void i_handle_Increment_Separation(apid_t *pid);
+extern void i_handle_Increment_Saturation(apid_t *pid);
+extern void i_handle_Increment_Speed(apid_t *pid);
+extern void i_handle_Increment_Trapeziod(apid_t *pid);
+
+extern void d_handle_Increment_Complete(apid_t *pid);
+extern void d_handle_Increment_Part(apid_t *pid);
+extern void d_handle_Increment_Previous(apid_t *pid);
+
+extern void d_handle_Position_Complete(apid_t *pid);
+extern void d_handle_Position_Part(apid_t *pid);
+extern void d_handle_Position_Previous(apid_t *pid);
+
+extern void i_handle_Position_Normal(apid_t *pid);
+extern void i_handle_Position_Separation(apid_t *pid);
+extern void i_handle_Position_Saturation(apid_t *pid);
+extern void i_handle_Position_Speed(apid_t *pid);
+extern void i_handle_Position_Trapeziod(apid_t *pid);
+
+/*
+TODO:   实现变速积分的用户自定义
+        实现前馈方程的自定义,同时保留kf参数
+        实现输出滤波集成功能,包括滑膜滤波/用户自定义滤波
+        完善宏配置项,由用户决定支持哪些模式以减小编译体积
+        集成调试功能,与vofa对接,打图像(支持任意参数),添加name属性
+        集成命令功能
+        集成自动调参
+        完善asssert功能
+
+*/
+
+/**
+ * @description: 限制积分项最大值
+ * @param {apid_t*} pid 实例句柄
+ * @param {PID_TYPE} value
+ * @return {*}
+ */
+void APID_Set_Integral_Limit(apid_t *pid, PID_TYPE value)
+{
+    if (pid->flag.integral_way != PID_INTEGRAL_SATURATION)
+    {
+        APID_SET_I_Function(pid, PID_INTEGRAL_SATURATION, value); // 抗饱和积分
+    }
+    else
+    {
+        pid->parameter.integral_limit = value;
+    }
+}
+/**
+ * @description: 设置pid的积分模式(默认为普通模式)
+ * @param {apid_t*} pid 实例句柄
+ * @param {ALL_PID_I_Function} imode 支持的积分模式
+ * @return {*}
+ * @note 根据具不同的功能,可能要传入一个数或函数指针做特别的初始化
+ *       PID_INTEGRAL_SEPARATION:pid->parameter.bias_for_integral //数
+ *       PID_INTEGRAL_SATURATION:pid->parameter.integral_limit //数
+ *       PID_INTEGRAL_SPEED:pid->variable //函数
+ */
+void APID_SET_I_Function(apid_t *pid, ALL_PID_I_Function imode, ...)
+{
+    va_list ap; // 声明一个va_list变量
+	  va_start(ap, imode); // 初始化,第二个参数为最后一个确定的形参      
+    pid->flag.integral_way = imode;
+    switch (imode)
+    {
+    case PID_INTEGRAL_NORMAL:
+        if (pid->flag.pid_mode == PID_INCREMENT)
+        {
+            pid->i_handle = i_handle_Increment_Normal;
+        }
+        else
+        {
+            pid->i_handle = i_handle_Position_Normal;
+        }
+        break;
+    case PID_INTEGRAL_SEPARATION:
+        if (pid->flag.pid_mode == PID_INCREMENT)
+        {
+            pid->i_handle = i_handle_Increment_Separation;
+        }
+        else
+        {
+            pid->i_handle = i_handle_Position_Separation;
+        }
+#if (PID_TYPE == float)
+        pid->parameter.bias_for_integral = va_arg(ap, double);
+#elif (PID_TYPE == double)
+        pid->parameter.bias_for_integral = va_arg(ap, PID_TYPE);
+#else
+        pid->parameter.bias_for_integral = (PID_TYPE)va_arg(ap, int);
+#endif
+        break;
+    case PID_INTEGRAL_SATURATION:
+        if (pid->flag.pid_mode == PID_INCREMENT)
+        {
+            pid->i_handle = i_handle_Increment_Saturation;
+        }
+        else
+        {
+            pid->i_handle = i_handle_Position_Saturation;
+        }
+#if (PID_TYPE == float)
+        pid->parameter.integral_limit = va_arg(ap, double);
+#elif (PID_TYPE == double)
+        pid->parameter.integral_limit = va_arg(ap, PID_TYPE);
+#else
+        pid->parameter.integral_limit = (PID_TYPE)va_arg(ap, int);
+#endif
+        break;
+    case PID_INTEGRAL_SPEED:
+
+        if (pid->flag.pid_mode == PID_INCREMENT)
+        {
+            pid->i_handle = i_handle_Increment_Speed;
+        }
+        else
+        {
+            pid->i_handle = i_handle_Position_Speed;
+        }
+        pid->variable = va_arg(ap, void *);
+        break;
+    case PID_INTEGRAL_TRAPEZIOD:
+        if (pid->flag.pid_mode == PID_INCREMENT)
+        {
+            pid->i_handle = i_handle_Increment_Trapeziod;
+        }
+        else
+        {
+            pid->i_handle = i_handle_Position_Trapeziod;
+        }
+
+        break;
+    default:
+        break;
+    }
+		        va_end(ap);
+
+}
+
+/**
+ * @description: 设置pid的微分模式(默认为普通模式)
+ * @param {apid_t*} pid 实例句柄
+ * @param {ALL_PID_D_Function} dmode
+ * @return {*}
+ * @note 更具不同的功能,可能要传入一个参数做特别的初始化float 或函数指针
+ *          PID_DIFFERENTIAL_COMPLETE:	//完全微分
+ *          PID_DIFFERENTIAL_PART:pid->parameter.kd_lpf
+ *          PID_DIFFERENTIAL_PREVIOUS:pid->parameter.kd_pre
+ */
+void APID_SET_D_Function(apid_t *pid, ALL_PID_D_Function dmode, ...)
+{
+    va_list ap; // 声明一个va_list变量	  va_start(ap, dmode);    // 初始化,第二个参数为最后一个确定的形参
+
+    pid->flag.differential_way = dmode;
+    switch (dmode)
+    {
+    case PID_DIFFERENTIAL_COMPLETE: // 完全微分
+        if (pid->flag.pid_mode == PID_INCREMENT)
+        {
+            pid->d_handle = d_handle_Increment_Complete;
+        }
+        else
+        {
+            pid->d_handle = d_handle_Position_Complete;
+        }
+        break;
+    case PID_DIFFERENTIAL_PART: // 不完全微分
+        if (pid->flag.pid_mode == PID_INCREMENT)
+        {
+            pid->d_handle = d_handle_Increment_Part;
+        }
+        else
+        {
+            pid->d_handle = d_handle_Position_Part;
+        }
+#if (PID_TYPE == float)
+        pid->parameter.kd_.kd_lpf = va_arg(ap, double);
+#elif (PID_TYPE == double)
+        pid->parameter.kd_.kd_lpf = va_arg(ap, PID_TYPE);
+#else
+        pid->parameter.kd_.kd_lpf = (PID_TYPE)va_arg(ap, int);
+#endif
+        break;
+    case PID_DIFFERENTIAL_PREVIOUS: // 微分先行
+        if (pid->flag.pid_mode == PID_INCREMENT)
+        {
+            pid->d_handle = d_handle_Increment_Previous;
+        }
+        else
+        {
+            pid->d_handle = d_handle_Position_Previous;
+        }
+#if (PID_TYPE == float)
+        pid->parameter.kd_.kd_pre = va_arg(ap, double);
+#elif (PID_TYPE == double)
+        pid->parameter.kd_.kd_pre = va_arg(ap, PID_TYPE);
+#else
+        pid->parameter.kd_.kd_pre = (PID_TYPE)va_arg(ap, int);
+#endif
+        break;
+    default:
+        break;
+    }
+		va_end(ap);
+
+}
+
+
+
+//参数一命令
+//参数2 变量名
+//参数3 变量值//可选
+void var(int argc, char** argv)
+{
+    var_list_t* _var = _var_begin;
+    var_list_t* _var_second=0;
+    int is_assign=0;
+    //var_logInfo("var enter\r\n",0);
+    if(argc==1)
+    {
+        var_logInfo("\r\n");
+       while (_var)
+       {
+                var_logInfo("\t-- %s \r\n", _var->name);
+              _var = _var->next;
+
+       }
+       return;
+
+    }
+
+    if (argc > 4) {
+        var_logInfo("paramer error\r\n");
+        return;
+    }
+
+    if(0==strcmp(argv[1], "all")){
+
+        while (_var)
+        {
+            var_logInfo("\t--%s \r\n", _var->name);
+            _var = _var->next;
+
+        }
+        return;
+    }
+
+    while (0!=strcmp(argv[1], _var->name))
+    {
+
+        _var = _var->next;
+        if (_var == 0)
+        {
+            var_logInfo("We don't have that variable here\r\n");
+            return;
+        }//未找到变量
+    }//已经找到变量
+    if(argc==4){
+
+        if(strcmp(argv[2],"=")==0){
+                if(argc==4){
+                    _var_second=_var_begin;
+                    while (0!=strcmp(argv[3], _var_second->name))
+                    {
+
+                        _var_second = _var_second->next;
+                        if (_var_second == 0)
+                        {
+                            var_logInfo("There's no variable here(var tow)\r\n");
+                            return;
+                        }//未找到变量
+                    }//已经找到变量
+                    is_assign=1;
+                }
+
+            }
+    }else is_assign=0;
+
+
+
+    switch (_var->type)
+    {
+
+    case _8:
+        if(argc == 3 && is_assign==0){
+            *(char*)_var->body = (char)atoi(argv[2]);
+        }else if(is_assign==1){
+            *(char*)_var->body = *(char*)_var_second->body;
+        }
+        var_logInfo("%s is %d\r\n", _var->name, *(char*)_var->body);
+        break;
+    //case _8:
+    //    var_logInfo("%s is %d", _var->name, *(unsigned char*)_var->body);
+
+    //    break;
+    case _16:
+        if(argc == 3&& is_assign==0){
+            *(short*)_var->body = (short)atoi(argv[2]);
+        }else if(is_assign==1){
+            *(short*)_var->body = *(short*)_var_second->body;
+        }
+        var_logInfo("%s is %d\r\n", _var->name, *(short*)_var->body);
+
+        break;
+    //case _u16:
+    //    var_logInfo("%s is %d", _var->name, *( unsigned short*)_var->body);
+
+    //    break;
+    case _32:
+        if(argc == 3&& is_assign==0){
+            *(int*)_var->body = atoi(argv[2]);
+        }else if(is_assign==1){
+            //var_logInfo("test\r\n",0);
+
+            *(int*)_var->body = *(int*)_var_second->body;
+        }
+        var_logInfo("%s is %d\r\n", _var->name, *(int*)_var->body);
+
+        break;
+    //case _u32:
+    //    var_logInfo("%s is %d", _var->name, *(unsigned int*)_var->body);
+    //    break;
+    case _64:
+        if(argc == 3&& is_assign==0){
+            *(long long*)_var->body = atoi(argv[2]);
+        }else if(is_assign==1){
+            *(long long*)_var->body = *(long long*)_var_second->body;
+        }
+        var_logInfo("%s is %d\r\n", _var->name, *(int32_t*)_var->body);//由于使用microlib所以只能输出32位字符输出
+
+        break;
+    //case _u64:
+    //    var_logInfo("%s is %d", _var->name, *(unsigned long long*)_var->body);
+
+    //    break;
+    case _f:
+        if(argc == 3&& is_assign==0){
+            *(float*)_var->body = (float)atof(argv[2]);
+        }else if(is_assign==1){
+            *(float*)_var->body = *(float*)_var_second->body;
+        }
+        var_logInfo("%s is %f\r\n", _var->name, *(float*)_var->body);
+
+        break;
+    case _lf:
+        if(argc == 3&& is_assign==0){
+            *(double*)_var->body = atof(argv[2]);
+        }else if(is_assign==1){
+            *(double*)_var->body = *(double*)_var_second->body;
+        }
+        var_logInfo("%s is %lf\r\n", _var->name, *(double*)_var->body);
+
+        break;
+    default:
+        break;
+    }
+}
+//MSH_CMD_EXPORT(var, set get var);
+
+
+void var_arr_register(void *var,const char* name, var_type_e type,int size)
+{
+    char name1[20]={0};
+    switch (type)
+        {
+
+        case _8:
+            for(int i=0;i<size;++i){
+                sprintf(name1,"%s[%d]",name,i);
+                var_register(&((char*)var)[i],name1,type);
+            }
+            break;
+			
+			
+        //case _8:
+        //    var_logInfo("%s is %d", _var->name, *(unsigned char*)_var->body);
+
+        //    break;
+        case _16:
+            for(int i=0;i<size;++i){
+                sprintf(name1,"%s[%d]",name,i);
+                var_register(&((short*)var)[i],name1,type);
+            }
+            break;
+        //case _u16:
+        //    var_logInfo("%s is %d", _var->name, *( unsigned short*)_var->body);
+
+        //    break;
+        case _32:
+            for(int i=0;i<size;++i){
+                sprintf(name1,"%s[%d]",name,i);
+                var_register(&((int*)var)[i],name1,type);
+            }
+            break;
+        //case _u32:
+        //    var_logInfo("%s is %d", _var->name, *(unsigned int*)_var->body);
+        //    break;
+        case _64:
+            for(int i=0;i<size;++i){
+                sprintf(name1,"%s[%d]",name,i);
+                var_register(&((long long*)var)[i],name1,type);
+            }
+            break;
+        //case _u64:
+        //    var_logInfo("%s is %d", _var->name, *(unsigned long long*)_var->body);
+
+        //    break;
+        case _f:
+            for(int i=0;i<size;++i){
+                sprintf(name1,"%s[%d]",name,i);
+                var_register(&((float*)var)[i],name1,type);
+            }
+            break;
+        case _lf:
+            for(int i=0;i<size;++i){
+                sprintf(name1,"%s[%d]",name,i);
+                var_register(&((double*)var)[i],name1,type);
+            }
+            break;
+        default:
+            break;
+        }
+
+
+
+}
+void var_register(void* var,const char* name, var_type_e type)
+{
+    var_list_t* p = (var_list_t*)VAR_MALLOC(sizeof(var_list_t));
+
+    if (p == NULL)return;
+    var_list_t* p2;
+    if (var != NULL)p->body = var;
+    else return;
+    if (name != NULL)
+    {
+        int len=strlen(name);
+        char* pname = (char*)VAR_MALLOC(sizeof(char)*len+1);
+        strcpy(pname,name);
+        p->name = pname;
+    }
+    else return;
+    p->type = type;
+    p->next = 0;
+    if (!_var_begin) {//
+        _var_begin = p;
+        return;
+    }
+    p2 = _var_begin;
+    while ((p2->next)!=0)
+    {
+        p2 = p2->next;
+    }//找到最后一个变量
+    p2->next = p;//添加变量到单向链表
+}
+
+
+

+ 0 - 567
src/pid.c

@@ -1,567 +0,0 @@
-/*
- * @Author: dyyt 805207319@qq.com
- * @Date: 2023-05-29 16:03:17
- * @LastEditors: dyyt 805207319@qq.com
- * @LastEditTime: 2023-07-23 01:19:13
- * @FilePath: \undefinedc:\Users\LENOVO\Documents\programs\PID\VS_Project\ConsoleApplication1\ConsoleApplication1\pid.c
- * @Description:pid库
- */
-
-#include"pid.h"
-#include"stdio.h"
-#include <stdarg.h>
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-	void PID_Reset(apid_t* pid);
-
-	/////////////////////////////////////////////////////////
-#if EXAMPLE
-//以下为pid初始化实例和解析
-	apid_t pid = { 0 };
-	apid_t next_pid = { 0 };
-	void example(void)
-	{
-
-
-	}
-
-#endif
-
-    void  inline APID_Hander(apid_t* pid, PID_TYPE cycle)
-    {
-        pid->handle(pid, cycle);
-    }
-    float  FOLowPassFilter(float In, float LastOut, float a)
-    {
-        return a * In + (1 - a) * LastOut;
-    }
-
- /**
-  * @description: 暂停pid计算,输出将等于输入
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void APID_Pause(apid_t* pid)
-	{
-		pid->flag.run_status = PAUSE;
-	}
- /**
-  * @description: 停止pid,输出将恒等于0
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void APID_STOP(apid_t* pid)
-	{
-		pid->flag.run_status = STOP;
-	}
- /**
-  * @description: 开启pid/pid正常运行
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void APID_Enable(apid_t* pid)
-	{
-		pid->flag.run_status = PID_ENABLE;
-	}
-
- /**
-  * @description: 内部使用,增量式普通积分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Increment_Normal(apid_t* pid)
-	{
-		//普通积分
-		pid->process.integral_bias = pid->process.bias * pid->cycle;
-		pid->process.integral_bias = pid->process.bias * pid->cycle;
-
-	}
- /**
-  * @description: 内部使用,增量式积分分离 
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Increment_Separation(apid_t* pid)
-	{
-		//积分分离
-		if (pid->process.bias > pid->parameter.bias_for_integral ||
-			pid->process.bias < -pid->parameter.bias_for_integral)
-			return;
-		pid->process.integral_bias = pid->process.bias * pid->cycle;
-	}
- /**
-  * @description: 内部使用,增量式抗饱和积分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Increment_Saturation(apid_t* pid)
-	{
-		//抗积分饱和
-		if (pid->process.integral_bias * pid->parameter.ki > pid->parameter.integral_limit)
-			pid->process.integral_bias = pid->parameter.integral_limit / pid->parameter.ki;
-
-		else if (pid->process.integral_bias * pid->parameter.ki < -pid->parameter.integral_limit)
-			pid->process.integral_bias = -pid->parameter.integral_limit / pid->parameter.ki;
-
-		else
-			pid->process.integral_bias = pid->process.bias * pid->cycle;
-		return;
-	}
- /**
-  * @description: 内部使用,增量式变速积分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Increment_Speed(apid_t* pid)
-	{
-		//变速积分 -- 可自行添加函数或处理算法
-		pid->process.integral_bias = (pid->process.bias + pid->process.last_bias) / (2.0f * pid->cycle);
-		pid->process.integral_bias -= (pid->process.bias - pid->process.last_bias) * pid->cycle;
-
-	}
- /**
-  * @description: 内部使用,增量式梯形积分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Increment_Trapeziod(apid_t* pid)
-	{
-		//梯形积分 -- 可自行添加函数或处理算法
-		pid->process.integral_bias = (pid->process.bias + pid->process.last_bias) / (2.0f * pid->cycle);
-	}
-
- /**
-  * @description: 内部使用,增量式全微分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void d_handle_Increment_Complete(apid_t* pid)
-	{
-		pid->process.lpf_differential_bias
-			= pid->process.differential_bias
-			= pid->process.bias - 2 * pid->process.last_bias + pid->process.lastlast_bias;
-	}
- /**
-  * @description: 内部使用,增量式不完全微分
-  * @param {apid_t*} pid 实例句柄
-  * @param {parameter.kd_lpf} *
-  * @return {*}
-  */
-	void d_handle_Increment_Part(apid_t* pid)
-	{
-		//求微分,再低通滤波
-		pid->process.differential_bias = pid->process.bias - 2 * pid->process.last_bias + pid->process.lastlast_bias;//本行进行d的计算
-		pid->process.differential_bias = FOLowPassFilter(pid->process.differential_bias, pid->process.lpf_differential_bias, pid->parameter.kd_.kd_lpf);
-		pid->process.lpf_differential_bias = pid->process.differential_bias;
-		//pid->process.lpf_differential_bias = pid->parameter.kd_lpf * 
-		//	(3.1415926f * cycle * (pid->process.differential_bias - pid->process.lpf_differential_bias));//本行进行低通滤波 输入输出为d
-		//	//(3.1415926f * cycle * (pid->process.bias - 2*pid->process.last_bias + pid->process.lastlast_bias));//本行进行低通滤波 输入输出为d
-	}
- /**
-  * @description: 内部使用,增量式微分先行
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void d_handle_Increment_Previous(apid_t* pid)
-	{
-		//微分先行
-		pid->process.lpf_differential_bias
-			= pid->process.differential_bias
-			= (pid->process.bias - 2 * pid->process.last_bias + pid->process.lastlast_bias) - pid->parameter.kd_.kd_pre * (pid->parameter.target - pid->process.last_target);
-	}
-
- /**
-  * @description: 内部使用,位置式全微分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void d_handle_Position_Complete(apid_t* pid)
-	{
-		//直接求微分
-		pid->process.lpf_differential_bias
-			= pid->process.differential_bias
-			= pid->process.bias - pid->process.last_bias;
-	}
- /**
-  * @description: 内部使用,位置式不完全微分
-  * @param {apid_t*} pid 实例句柄
-  * @param {parameter.kd_lpf * 3.1415926f * cycle		} *
-  * @return {*}
-  */
-	void d_handle_Position_Part(apid_t* pid)
-	{
-		//求微分,再低通滤波
-		pid->process.differential_bias = pid->process.bias - pid->process.last_bias;
-		pid->process.differential_bias = FOLowPassFilter(pid->process.differential_bias, pid->process.lpf_differential_bias, pid->parameter.kd_.kd_lpf);
-		pid->process.lpf_differential_bias = pid->process.differential_bias;
-		/*pid->process.lpf_differential_bias += pid->parameter.kd_lpf * 3.1415926f * cycle
-			* (pid->process.differential_bias - pid->process.lpf_differential_bias);*/
-	}
- /**
-  * @description: 内部使用,位置式微分先行
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void d_handle_Position_Previous(apid_t* pid)
-	{
-		//微分先行
-		pid->process.lpf_differential_bias
-			= pid->process.differential_bias
-			= (pid->process.bias - pid->process.last_bias) - pid->parameter.kd_.kd_pre * (pid->parameter.target - pid->process.last_target);
-	}
-
- /**
-  * @description: 内部使用,位置式普通积分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Position_Normal(apid_t* pid)
-	{
-		//普通积分
-		pid->process.integral_bias += pid->process.bias * pid->cycle;
-		pid->process.integral_bias += pid->process.bias * pid->cycle;
-
-	}
- /**
-  * @description: 内部使用,位置式积分分离
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Position_Separation(apid_t* pid)
-	{
-		//积分分离
-		if (pid->process.bias > pid->parameter.bias_for_integral || pid->process.bias < -pid->parameter.bias_for_integral)
-			return;
-
-		pid->process.integral_bias += pid->process.bias * pid->cycle;
-
-	}
- /**
-  * @description: 内部使用,位置式抗饱和积分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Position_Saturation(apid_t* pid)
-	{
-		//抗积分饱和
-		if (pid->process.integral_bias * pid->parameter.ki > pid->parameter.integral_limit)
-			pid->process.integral_bias = pid->parameter.integral_limit / pid->parameter.ki;
-
-		else if (pid->process.integral_bias * pid->parameter.ki < -pid->parameter.integral_limit)
-			pid->process.integral_bias = -pid->parameter.integral_limit / pid->parameter.ki;
-
-		else
-			pid->process.integral_bias += pid->process.bias * pid->cycle;
-	}
- /**
-  * @description: 内部使用,位置式变速积分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Position_Speed(apid_t* pid)
-	{
-		//变速积分 -- 可自行添加函数或处理算法
-		pid->process.integral_bias += (pid->process.bias + pid->process.last_bias) / (2.0f * pid->cycle);
-		pid->process.integral_bias -= (pid->process.bias - pid->process.last_bias) * pid->cycle;
-	}
- /**
-  * @description: 内部使用,位置式梯形积分
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void i_handle_Position_Trapeziod(apid_t* pid)
-	{
-		pid->process.integral_bias += (pid->process.bias + pid->process.last_bias) / (2.0f * pid->cycle);
-	}
-
-
- /**
-  * @description: 内部使用
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void __PID_Out(apid_t* pid)
-	{
-		////////////////////////////////输出合成
-#if USE_HOOK_FIRST
-		pid->parameter.user_hook_first(pid);
-#endif
-		//计算输出
-		pid->parameter.out = pid->parameter.kp * pid->process.bias +
-			pid->parameter.ki * pid->process.integral_bias +
-			pid->parameter.kd * pid->process.lpf_differential_bias / pid->cycle + 	//可以将cycle注释
-			pid->process.feedforward;
-#if USE_HOOK_OUT
-		pid->parameter.user_hook_end(pid);
-#endif
-		//输出限幅
-		if (pid->parameter.out_limit >= 0)
-		{
-			if (pid->parameter.out > pid->parameter.out_limit)
-				pid->parameter.out = pid->parameter.out_limit;
-
-			else if (pid->parameter.out < -pid->parameter.out_limit)
-				pid->parameter.out = -pid->parameter.out_limit;
-		}
-		//存储过去值
-		pid->process.last_target = (pid->parameter.target);
-		pid->process.lastlast_bias = pid->process.last_bias;//仅增量式使用
-		pid->process.last_bias = pid->process.bias;
-	}
-
-//内部使用,检查是否要进行pid计算
-#define __OPERATE_STATUS() \
-	if (pid->flag.run_status != PID_ENABLE)\
-	{\
-		if (pid->flag.run_status == STOP)\
-		{\
-			pid->parameter.out = 0;\
-		}\
-		else {\
-			pid->parameter.out = pid->parameter.target;\
-		}\
-		pid->process.bias = 0;\
-		pid->process.differential_bias = 0;\
-		pid->process.lpf_differential_bias = 0;\
-		pid->process.feedforward = 0;\
-		pid->process.integral_bias = 0;\
-		pid->process.last_bias = 0;\
-		pid->process.last_target = 0;\
-		pid->process.lastlast_bias = 0;\
-		pid->parameter.present = 0;\
-		pid->parameter.predict = 0;\
-		return;\
-	}
-
- /**
-  * @description: pid计算函数
-  * @param {apid_t*} pid 实例句柄
-  * @param {PID_TYPE} cycle pid计算周期,单位ms
-  * @return {*}
-  */
-	void _PID_Hander(apid_t* pid, PID_TYPE cycle)
-	{
-		pid->cycle = cycle;
-		__OPERATE_STATUS();//检查运行状态
-		////////////////////////////////期望值限幅
-		if ((pid->parameter.target) > pid->parameter.target_limit)
-			(pid->parameter.target) = pid->parameter.target_limit;
-		else if ((pid->parameter.target) < -pid->parameter.target_limit)
-			(pid->parameter.target) = -pid->parameter.target_limit;
-		////////////////////////////////前馈操作--前馈值直接加入输出
-		pid->process.feedforward = pid->parameter.kf * (pid->parameter.target);
-		/////////////////////////////////////////////////////////////////////////////////
-
-		////////////////////////////////预测操作--预测值直接加入偏差	
-		pid->process.predict = pid->parameter.k_pre * pid->parameter.predict * ABS(pid->parameter.predict);
-		/////////////////////////////////////////////////////////////////////////////////
-
-		////////////////////////////////偏差操作	
-			//第一部分为期望
-			//第二部分为反馈
-			//第三部分为预测(一般为内环反馈,可不设置)
-		PID_TYPE temp_bias = (pid->parameter.target) -
-			(pid->parameter.present) -
-			pid->process.predict;
-
-		if (pid->parameter.bias_dead_zone > 0)
-			temp_bias = (temp_bias < pid->parameter.bias_dead_zone&&
-				temp_bias > -pid->parameter.bias_dead_zone) ? 0 : temp_bias;	//误差死区判断--不用该功能时可以将其置-1 0
-
-		if (pid->parameter.bias_limit > 0)
-		{
-			temp_bias = (temp_bias > pid->parameter.bias_limit) ? pid->parameter.bias_limit : temp_bias;//误差限幅--不用该功能时可以将其置-1 0
-			temp_bias = (temp_bias < -pid->parameter.bias_limit) ? -pid->parameter.bias_limit : temp_bias;
-		}
-
-		pid->process.bias = temp_bias;		//计算误差
-		////////////////////////////////积分操作
-		pid->i_handle(pid);
-		////////////////////////////////微分操作	
-		pid->d_handle(pid);
-		////////////////////////////////输出操作,包含p操作
-		__PID_Out(pid);
-	}
-
- /**
-  * @description: 初始化pid,配置必要参数
-  * @param {apid_t*} pid 实例句柄
-  * @param {ALL_PID_Mode} mode 增量式或位置式
-  * @param {PID_TYPE} kp pid参数
-  * @param {PID_TYPE} ki pid参数
-  * @param {PID_TYPE} kd pid参数
-  * @return {*}
-  */
-	void APID_Init(apid_t* pid, ALL_PID_Mode mode, PID_TYPE kp, PID_TYPE ki, PID_TYPE kd)
-	{
-		PID_Reset(pid);
-		pid->flag.pid_mode = mode;
-		pid->handle = _PID_Hander;//注册处理函数
-		//注册函数
-		if (mode == PID_INCREMENT) {
-			pid->i_handle = i_handle_Increment_Normal;
-			pid->d_handle = d_handle_Increment_Complete;
-		}
-		else {
-			pid->i_handle = i_handle_Position_Normal;
-			pid->d_handle = d_handle_Position_Complete;
-		}
-		pid->parameter.kp = kp;
-		pid->parameter.ki = ki;
-		pid->parameter.kd = kd;
-
-	}
-
-
- /**
-  * @description: 将pid复位成原始状态
-  * @param {apid_t*} pid 实例句柄
-  * @return {*}
-  */
-	void PID_Reset(apid_t* pid)
-	{
-		pid->flag.run_status = PID_ENABLE;
-
-		pid->parameter.target = 0;
-		pid->parameter.present = 0;
-		pid->parameter.predict = 0;
-
-		pid->parameter.kp = 0;
-		pid->parameter.ki = 0;
-		pid->parameter.kd = 0;
-		pid->parameter.kf = 0;
-		pid->parameter.kd_.kd_lpf = 0;
-		pid->parameter.kd_.kd_pre = 0;
-		pid->parameter.k_pre = 0;
-
-		pid->parameter.target_limit = TARGET_MAX;
-		pid->parameter.bias_limit = -1;
-		pid->parameter.bias_dead_zone = -1;
-		pid->parameter.bias_for_integral = -1;
-		pid->parameter.integral_limit = -1;
-		pid->parameter.out_limit = OUT_MAX;
-
-		pid->parameter.out = 0;
-
-		pid->process.bias = 0;
-		pid->process.differential_bias = 0;
-		pid->process.lpf_differential_bias = 0;
-		pid->process.feedforward = 0;
-		pid->process.integral_bias = 0;
-		pid->process.last_bias = 0;
-		pid->process.lastlast_bias = 0;
-		pid->process.last_target = 0;
-	}
-
-
-/**
- * @description: 限制目标值/期望值最大值
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void inline APID_Set_Target_Limit(apid_t* pid, PID_TYPE value)
-{
-    pid->parameter.target_limit = value;
-}
-/**
- * @description: 限制误差最大值
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void inline APID_Set_Bias_Limit(apid_t* pid, PID_TYPE value)
-{
-    pid->parameter.bias_limit = value;
-}
-/**
- * @description: 设置误差响应死区
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void inline APID_Set_Bias_Dead_Zone(apid_t* pid, PID_TYPE value)
-{
-    pid->parameter.bias_dead_zone = value;
-}
-
-/**
- * @description: 限制积分项最大值
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void APID_Set_Integral_Limit(apid_t* pid, PID_TYPE value);
-/**
- * @description: 限制pid输出最大值
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void inline APID_Set_Out_Limit(apid_t* pid, PID_TYPE value)
-{
-    pid->parameter.out_limit = value;
-}
-/**
- * @description: 设置前馈系数
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void inline APID_Set_Feedforward(apid_t* pid, PID_TYPE value)
-{
-    pid->parameter.kf = value;
-}
-/**
- * @description: 设置预测系数
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void inline APID_Set_KPre(apid_t* pid, PID_TYPE value)
-{
-    pid->parameter.k_pre = value;
-}
-/**
- * @description: 限制目标值/期望值
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void inline APID_Set_Target(apid_t* pid, PID_TYPE value)
-{
-    pid->parameter.target = value;
-}
-/**
- * @description: 设置当前值/反馈值
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void inline APID_Set_Present(apid_t* pid, PID_TYPE value)
-{
-    pid->parameter.present = value;
-}
-/**
- * @description: 设置预测系数
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void inline APID_Set_Predict(apid_t* pid, PID_TYPE value)
-{
-    pid->parameter.predict = value;
-}
-
-/**
- * @description: 获取pid输出
- * @param {apid_t*} pid 实例句柄
- * @return {PID_TYPE}
- */
-PID_TYPE inline APID_Get_Out(apid_t *pid)
-{
-	return pid->parameter.out;
-}
-

+ 0 - 222
src/pid_exfunc.c

@@ -1,222 +0,0 @@
-/*
- * @Author: dyyt 805207319@qq.com
- * @Date: 2023-07-19 11:36:27
- * @LastEditors: dyyt 805207319@qq.com
- * @LastEditTime: 2023-07-23 01:44:00
- * @FilePath: \undefinedc:\Users\LENOVO\Documents\programs\PID\VS_Project\ConsoleApplication1\ConsoleApplication1\pid_exfunc.c
- * @Description: pid库
- */
-#include "pid.h"
-#include <stdarg.h>
-
-extern void i_handle_Increment_Normal(apid_t *pid);
-extern void i_handle_Increment_Separation(apid_t *pid);
-extern void i_handle_Increment_Saturation(apid_t *pid);
-extern void i_handle_Increment_Speed(apid_t *pid);
-extern void i_handle_Increment_Trapeziod(apid_t *pid);
-
-extern void d_handle_Increment_Complete(apid_t *pid);
-extern void d_handle_Increment_Part(apid_t *pid);
-extern void d_handle_Increment_Previous(apid_t *pid);
-
-extern void d_handle_Position_Complete(apid_t *pid);
-extern void d_handle_Position_Part(apid_t *pid);
-extern void d_handle_Position_Previous(apid_t *pid);
-
-extern void i_handle_Position_Normal(apid_t *pid);
-extern void i_handle_Position_Separation(apid_t *pid);
-extern void i_handle_Position_Saturation(apid_t *pid);
-extern void i_handle_Position_Speed(apid_t *pid);
-extern void i_handle_Position_Trapeziod(apid_t *pid);
-
-/*
-TODO:   实现变速积分的用户自定义
-        实现前馈方程的自定义,同时保留kf参数
-        实现输出滤波集成功能,包括滑膜滤波/用户自定义滤波
-        完善宏配置项,由用户决定支持哪些模式以减小编译体积
-        集成调试功能,与vofa对接,打图像(支持任意参数),添加name属性
-        集成命令功能
-        集成自动调参
-        完善asssert功能
-
-*/
-
-/**
- * @description: 限制积分项最大值
- * @param {apid_t*} pid 实例句柄
- * @param {PID_TYPE} value
- * @return {*}
- */
-void PID_Sst_Integral_Limit(apid_t *pid, PID_TYPE value)
-{
-    if (pid->flag.integral_way != PID_INTEGRAL_SATURATION)
-    {
-        APID_SET_I_Function(pid, PID_INTEGRAL_SATURATION, value); // 抗饱和积分
-    }
-    else
-    {
-        pid->parameter.integral_limit = value;
-    }
-}
-/**
- * @description: 设置pid的积分模式(默认为普通模式)
- * @param {apid_t*} pid 实例句柄
- * @param {ALL_PID_I_Function} imode 支持的积分模式
- * @return {*}
- * @note 根据具不同的功能,可能要传入一个数或函数指针做特别的初始化
- *       PID_INTEGRAL_SEPARATION:pid->parameter.bias_for_integral //数
- *       PID_INTEGRAL_SATURATION:pid->parameter.integral_limit //数
- *       PID_INTEGRAL_SPEED:pid->variable //函数
- */
-void APID_SET_I_Function(apid_t *pid, ALL_PID_I_Function imode, ...)
-{
-    va_list ap; // 声明一个va_list变量
-    pid->flag.integral_way = imode;
-    switch (imode)
-    {
-    case PID_INTEGRAL_NORMAL:
-        if (pid->flag.pid_mode == PID_INCREMENT)
-        {
-            pid->i_handle = i_handle_Increment_Normal;
-        }
-        else
-        {
-            pid->i_handle = i_handle_Position_Normal;
-        }
-        break;
-    case PID_INTEGRAL_SEPARATION:
-        va_start(ap, imode); // 初始化,第二个参数为最后一个确定的形参
-        if (pid->flag.pid_mode == PID_INCREMENT)
-        {
-            pid->i_handle = i_handle_Increment_Separation;
-        }
-        else
-        {
-            pid->i_handle = i_handle_Position_Separation;
-        }
-#if (PID_TYPE == float)
-        pid->parameter.bias_for_integral = va_arg(ap, double);
-#elif (PID_TYPE == double)
-        pid->parameter.bias_for_integral = va_arg(ap, PID_TYPE);
-#else
-        pid->parameter.bias_for_integral = (PID_TYPE)va_arg(ap, int);
-#endif
-        va_end(ap);
-        break;
-    case PID_INTEGRAL_SATURATION:
-        if (pid->flag.pid_mode == PID_INCREMENT)
-        {
-            pid->i_handle = i_handle_Increment_Saturation;
-        }
-        else
-        {
-            pid->i_handle = i_handle_Position_Saturation;
-        }
-        va_start(ap, imode); // 初始化,第二个参数为最后一个确定的形参
-#if (PID_TYPE == float)
-        pid->parameter.integral_limit = va_arg(ap, double);
-#elif (PID_TYPE == double)
-        pid->parameter.integral_limit = va_arg(ap, PID_TYPE);
-#else
-        pid->parameter.integral_limit = (PID_TYPE)va_arg(ap, int);
-#endif
-        va_end(ap);
-        break;
-    case PID_INTEGRAL_SPEED:
-
-        if (pid->flag.pid_mode == PID_INCREMENT)
-        {
-            pid->i_handle = i_handle_Increment_Speed;
-        }
-        else
-        {
-            pid->i_handle = i_handle_Position_Speed;
-        }
-        va_start(ap, imode); // 初始化,第二个参数为最后一个确定的形参
-        pid->variable = va_arg(ap, void *);
-        va_end(ap);
-        break;
-    case PID_INTEGRAL_TRAPEZIOD:
-        if (pid->flag.pid_mode == PID_INCREMENT)
-        {
-            pid->i_handle = i_handle_Increment_Trapeziod;
-        }
-        else
-        {
-            pid->i_handle = i_handle_Position_Trapeziod;
-        }
-
-        break;
-    default:
-        break;
-    }
-}
-
-/**
- * @description: 设置pid的微分模式(默认为普通模式)
- * @param {apid_t*} pid 实例句柄
- * @param {ALL_PID_D_Function} dmode
- * @return {*}
- * @note 更具不同的功能,可能要传入一个参数做特别的初始化float 或函数指针
- *          PID_DIFFERENTIAL_COMPLETE:	//完全微分
- *          PID_DIFFERENTIAL_PART:pid->parameter.kd_lpf
- *          PID_DIFFERENTIAL_PREVIOUS:pid->parameter.kd_pre
- */
-void APID_SET_D_Function(apid_t *pid, ALL_PID_D_Function dmode, ...)
-{
-    va_list ap; // 声明一个va_list变量
-    pid->flag.differential_way = dmode;
-    switch (dmode)
-    {
-    case PID_DIFFERENTIAL_COMPLETE: // 完全微分
-        if (pid->flag.pid_mode == PID_INCREMENT)
-        {
-            pid->d_handle = d_handle_Increment_Complete;
-        }
-        else
-        {
-            pid->d_handle = d_handle_Position_Complete;
-        }
-        break;
-    case PID_DIFFERENTIAL_PART: // 不完全微分
-        va_start(ap, dmode);    // 初始化,第二个参数为最后一个确定的形参
-        if (pid->flag.pid_mode == PID_INCREMENT)
-        {
-            pid->d_handle = d_handle_Increment_Part;
-        }
-        else
-        {
-            pid->d_handle = d_handle_Position_Part;
-        }
-#if (PID_TYPE == float)
-        pid->parameter.kd_.kd_lpf = va_arg(ap, double);
-#elif (PID_TYPE == double)
-        pid->parameter.kd_.kd_lpf = va_arg(ap, PID_TYPE);
-#else
-        pid->parameter.kd_.kd_lpf = (PID_TYPE)va_arg(ap, int);
-#endif
-        va_end(ap);
-        break;
-    case PID_DIFFERENTIAL_PREVIOUS: // 微分先行
-        va_start(ap, dmode);        // 初始化,第二个参数为最后一个确定的形参
-        if (pid->flag.pid_mode == PID_INCREMENT)
-        {
-            pid->d_handle = d_handle_Increment_Previous;
-        }
-        else
-        {
-            pid->d_handle = d_handle_Position_Previous;
-        }
-#if (PID_TYPE == float)
-        pid->parameter.kd_.kd_pre = va_arg(ap, double);
-#elif (PID_TYPE == double)
-        pid->parameter.kd_.kd_pre = va_arg(ap, PID_TYPE);
-#else
-        pid->parameter.kd_.kd_pre = (PID_TYPE)va_arg(ap, int);
-#endif
-        va_end(ap);
-        break;
-    default:
-        break;
-    }
-}