Pyslvs 開發進度

  • 新版 Solvespace 獨立 solver 編譯成功
  • 長時演算模式

Solvespace solver

根據新版 CMake list 任務,找到 solver 所需的 source code 與 header。

Sources

須注意要辨認平台選擇 platform 目錄中的檔案,否則會有找不到 windows.h 之類的錯誤發生。

  • constraint.cpp
  • constrainteq.cpp
  • entity.cpp
  • expr.cpp
  • lib.cpp
  • system.cpp
  • util.cpp
  • platform/platform.cpp
  • platform/w32util.cpp (Windows)
  • platform/unixutil.cpp (Unix)

Headers

雖然只會用到 solvespace.hplatform.h,但是由於 solvespace.h 會 include 其他標頭檔,所以還是得附在目錄中。

  • dsc.h
  • expr.h
  • polygon.h
  • resource.h
  • sketch.h
  • solvespace.h
  • ttf.h
  • ui.h
  • platform/platform.h

接著將所有 sources 編譯成 obj 檔,由於是較新版規則,在 g++ 中加入 -std=c++11 的參數供辨認。

最後包裝 obj 時加上 -shared 編成共享函式庫。

以上流程都為 C++ 編譯操作,往後可能會換成加入 SWIG 端口或 Cython 包裝。

長時演算模式

新增直到手動停止的模式,將代數改為 0 即可,這時 report 會變成每 10 代紀錄一次。

此模式下會一直演化,直到手動中斷為止。

這個模式只是用來測試用,若是在服務端,可以改成演化直到適應值小於某要求後停止,且加上評估演化效率後自動中止的機制。


Comments

comments powered by Disqus