[英]Passing R functions to C as C functions
我正在編寫一個在R中實現特定優化算法的包,用於各種預先指定的目標函數(要優化的函數)。 優化代碼本身用C語言編寫。為了使代碼盡可能高效,我還在C中重新實現了目標函數。在當前階段,R的作用是使用.Call為C代碼提供接口。 。
我希望該軟件包能夠處理任何用戶提供的目標函數。 但是,我不想從C調用R函數,這會產生很大的開銷,並且很可能會非常緩慢。
我真正想要的是一種將有限類R函數(通常在統計和機器學習中看作成本函數)作為參數傳遞的方法,將此R函數轉換為C函數 ,然后將其用作目標優化算法中的函數。
R與LISP有很強的育兒關系。 獲得函數的抽象語法樹(AST)非常簡單。 我認為有可能將AST解析為C函數然后編譯它或者只是動態傳遞它(我不知道這是否在C中是可行的)
注意:不必將此作為R包執行。 試圖在R包的剛性結構中執行此操作可能會使事情變得更加困難。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.