I have a fairly complex mql5 for-loop code set that I need to run via opencl. What this will mean is I need to be able to have some kernel functions calling others. I have therefore experimented with this simple code and it fails to create a program (error 5105) when I call another function through it. Why?
const string _cl_source=
" \r\n"
" \r\n"
"__kernel void Tester() \r\n"
"{ \r\n"
" \r\n"
" float _margin = 10f; \r\n"
" float _balance = 10f; \r\n"
" float _equity = 10f; \r\n"
" float _openprice = 10f; \r\n"
" float _closeprice = 10f; \r\n"
" float _position = 10f; \r\n"
" \r\n"
/*fails on adding this line*/" CouponReset(_margin,_balance,_equity,_openprice,_closeprice,_position);\r\n"
" \r\n"
"} \r\n"
" \r\n"
" \r\n"
"__kernel void CouponReset(float margin, \r\n"
" float balance, \r\n"
" float equity, \r\n"
" float openprice, \r\n"
" float closeprice, \r\n"
" float position) \r\n"
"{ \r\n"
" position = 0f; \r\n"
" openprice = 0f; \r\n"
" closeprice = 0f; \r\n"
" balance = equity; \r\n"
" margin = balance; \r\n"
" \r\n"
"} \r\n"
" \r\n";