Arithmetic functions for OpenCL buffers More...
#include <Inventor/OpenCL/algorithms/SoArithmetic.h>
Public Member Functions | |
SoOpenCLArithmetic () | |
virtual int | add (SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *inputBufferB, const SbDataType typeB, SoBufferObject *outputBufferC, const SbDataType typeC) |
int | add (SoOpenCLBufferObject *inputBufferA, const SbDataType typeA, SoOpenCLBufferObject *inputBufferB, const SbDataType typeB, SoOpenCLBufferObject *outputBufferC, const SbDataType typeC) |
virtual int | mult (SoBufferObject *intpuBufferA, const SbDataType typeA, SoBufferObject *intpuBufferB, const SbDataType typeB, SoBufferObject *outputBufferC, const SbDataType typeC) |
int | mult (SoOpenCLBufferObject *inputBufferA, const SbDataType typeA, SoOpenCLBufferObject *inputBufferB, const SbDataType typeB, SoOpenCLBufferObject *outputBufferC, const SbDataType typeC) |
virtual int | scale (SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *outputBufferB, const SbDataType typeB, const float scaleValue) |
int | scale (SoOpenCLBufferObject *inputBufferA, const SbDataType typeA, SoOpenCLBufferObject *outputBufferB, const SbDataType typeB, const float scaleValue) |
virtual int | shift (SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *outputBufferB, const SbDataType typeB, const float shiftFactor) |
int | shift (SoOpenCLBufferObject *inputBufferA, const SbDataType typeA, SoOpenCLBufferObject *outputBufferB, const SbDataType typeB, const float shiftFactor) |
virtual int | madd (SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *inputBufferB, const SbDataType typeB, SoBufferObject *outputBufferC, const SbDataType typeC, const float scaleValue) |
int | madd (SoOpenCLBufferObject *inputBufferA, const SbDataType typeA, SoOpenCLBufferObject *inputBufferB, const SbDataType typeB, SoOpenCLBufferObject *outputBufferC, const SbDataType typeC, const float scaleValue) |
The Arithmetic module provides basic Add, Multiply, etc functions that operate on buffers.
NOTE: The classes in this module do not exist in Open Inventor 10.0 and later.Examples:
SoOpenCLArithmetic::SoOpenCLArithmetic | ( | ) |
Constructor.
int SoOpenCLArithmetic::add | ( | SoOpenCLBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoOpenCLBufferObject * | inputBufferB, | |||
const SbDataType | typeB, | |||
SoOpenCLBufferObject * | outputBufferC, | |||
const SbDataType | typeC | |||
) |
Add two buffers into a third one.
OpenCL input version.
virtual int SoOpenCLArithmetic::add | ( | SoBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoBufferObject * | inputBufferB, | |||
const SbDataType | typeB, | |||
SoBufferObject * | outputBufferC, | |||
const SbDataType | typeC | |||
) | [virtual] |
Add two buffers into a third one.
C = A + B
Note: C can be a reference to A or B.
Limitation: typeA and typeB must be the same as typeC.
Reimplemented from SoArithmetic.
int SoOpenCLArithmetic::madd | ( | SoOpenCLBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoOpenCLBufferObject * | inputBufferB, | |||
const SbDataType | typeB, | |||
SoOpenCLBufferObject * | outputBufferC, | |||
const SbDataType | typeC, | |||
const float | scaleValue | |||
) |
C = A * scale + B
OpenCL input version.
virtual int SoOpenCLArithmetic::madd | ( | SoBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoBufferObject * | inputBufferB, | |||
const SbDataType | typeB, | |||
SoBufferObject * | outputBufferC, | |||
const SbDataType | typeC, | |||
const float | scaleValue | |||
) | [virtual] |
C = A * scale + B
Note: C can be a reference to A or B
Limitation: typeA and typeB must be the same as typeC.
Reimplemented from SoArithmetic.
int SoOpenCLArithmetic::mult | ( | SoOpenCLBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoOpenCLBufferObject * | inputBufferB, | |||
const SbDataType | typeB, | |||
SoOpenCLBufferObject * | outputBufferC, | |||
const SbDataType | typeC | |||
) |
Multiply two buffers into a third one.
OpenCL input version.
virtual int SoOpenCLArithmetic::mult | ( | SoBufferObject * | intpuBufferA, | |
const SbDataType | typeA, | |||
SoBufferObject * | intpuBufferB, | |||
const SbDataType | typeB, | |||
SoBufferObject * | outputBufferC, | |||
const SbDataType | typeC | |||
) | [virtual] |
Multiply two buffers into a third one.
C = A * B Note: C can be a reference to A or B
Limitation: typeA and typeB must be the same as typeC
Reimplemented from SoArithmetic.
int SoOpenCLArithmetic::scale | ( | SoOpenCLBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoOpenCLBufferObject * | outputBufferB, | |||
const SbDataType | typeB, | |||
const float | scaleValue | |||
) |
B = A * scaleFactor
OpenCL input version.
virtual int SoOpenCLArithmetic::scale | ( | SoBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoBufferObject * | outputBufferB, | |||
const SbDataType | typeB, | |||
const float | scaleValue | |||
) | [virtual] |
B = A * scaleFactor
Note: B can be a reference to A
Limitation: typeA must be the same as typeC.
Reimplemented from SoArithmetic.
int SoOpenCLArithmetic::shift | ( | SoOpenCLBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoOpenCLBufferObject * | outputBufferB, | |||
const SbDataType | typeB, | |||
const float | shiftFactor | |||
) |
B = A + shiftFactor
OpenCL input version.
virtual int SoOpenCLArithmetic::shift | ( | SoBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoBufferObject * | outputBufferB, | |||
const SbDataType | typeB, | |||
const float | shiftFactor | |||
) | [virtual] |
B = A + shiftFactor
Note: B can be a reference to A
Limitation: typeA must be the same as typeC.
Reimplemented from SoArithmetic.