私のOpenCLコード(私自身でコード化されていない、インターネットからの単なるサンプルコードです)には、クランプの機能を使用するための次の文があります。
return clamp(color,0,1);
ただし、これによりコンパイル中にエラーが発生するようです。そのため、clGetProgramBuildInfoからCL_PROGRAM_BUILD_LOGを使用してエラー情報メッセージを受け取りました。
Error during compilation! (-11)
4483
build log
:211:9: error: call to 'clamp' is ambiguous
return clamp(color,0,1);
^~~~~
<built-in>:3558:26: note: candidate function
float4 __OVERLOADABLE__ clamp(float4 x, float min, float max) ;
^
<built-in>:3577:25: note: candidate function
float4 __OVERLOADABLE__ clamp(float4, float4, float4);
^
<built-in>:3556:26: note: candidate function
float3 __OVERLOADABLE__ clamp(float3 x, float min, float max) ;
^
<built-in>:3575:25: note: candidate function
float3 __OVERLOADABLE__ clamp(float3, float3, float3);
^
:296:52: error: address expression must be an lvalue or a function designator
r.origin = matrixVectorMultiply(viewTransform, &(float3)(0, 0, -1));
^~~~~~~~~~~~~~~~~~
:297:62: error: address expression must be an lvalue or a function designator
r.dir = normalize(matrixVectorMultiply(viewTransform, &(float3)(x, y, 0)) - r.origin);
^~~~~~~~~~~~~~~~~
OpenCLコードでクランプ機能を使用するために必要なキーワードはありますか?ところで、私はLinux Ubuntu10.0464ビットの環境を使用しています。