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) |
Arithmetic functions for OpenCL buffers
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.