Arithmetic functions for CUDA buffers More...
#include <Inventor/cuda/algorithms/SoArithmetic.h>
Public Member Functions | |
SoCudaArithmetic () | |
virtual int | add (SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *inputBufferB, const SbDataType typeB, SoBufferObject *outputBufferC, const SbDataType typeC) |
int | add (SoCudaBufferObject *inputBufferA, const SbDataType typeA, SoCudaBufferObject *inputBufferB, const SbDataType typeB, SoCudaBufferObject *outputBufferC, const SbDataType typeC) |
virtual int | mult (SoBufferObject *intpuBufferA, const SbDataType typeA, SoBufferObject *intpuBufferB, const SbDataType typeB, SoBufferObject *outputBufferC, const SbDataType typeC) |
int | mult (SoCudaBufferObject *inputBufferA, const SbDataType typeA, SoCudaBufferObject *inputBufferB, const SbDataType typeB, SoCudaBufferObject *outputBufferC, const SbDataType typeC) |
virtual int | scale (SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *outputBufferB, const SbDataType typeB, const float scaleValue) |
int | scale (SoCudaBufferObject *inputBufferA, const SbDataType typeA, SoCudaBufferObject *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 (SoCudaBufferObject *inputBufferA, const SbDataType typeA, SoCudaBufferObject *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 (SoCudaBufferObject *inputBufferA, const SbDataType typeA, SoCudaBufferObject *inputBufferB, const SbDataType typeB, SoCudaBufferObject *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:
SoCudaArithmetic::SoCudaArithmetic | ( | ) |
Constructor.
int SoCudaArithmetic::add | ( | SoCudaBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoCudaBufferObject * | inputBufferB, | |||
const SbDataType | typeB, | |||
SoCudaBufferObject * | outputBufferC, | |||
const SbDataType | typeC | |||
) |
Add two buffers into a third one.
Cuda input version.
virtual int SoCudaArithmetic::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 SoCudaArithmetic::madd | ( | SoCudaBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoCudaBufferObject * | inputBufferB, | |||
const SbDataType | typeB, | |||
SoCudaBufferObject * | outputBufferC, | |||
const SbDataType | typeC, | |||
const float | scaleValue | |||
) |
C = A * scale + B
Cuda input version.
virtual int SoCudaArithmetic::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 SoCudaArithmetic::mult | ( | SoCudaBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoCudaBufferObject * | inputBufferB, | |||
const SbDataType | typeB, | |||
SoCudaBufferObject * | outputBufferC, | |||
const SbDataType | typeC | |||
) |
Multiply two buffers into a third one.
Cuda input version.
virtual int SoCudaArithmetic::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 SoCudaArithmetic::scale | ( | SoCudaBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoCudaBufferObject * | outputBufferB, | |||
const SbDataType | typeB, | |||
const float | scaleValue | |||
) |
B = A * scaleFactor
Cuda input version.
virtual int SoCudaArithmetic::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 SoCudaArithmetic::shift | ( | SoCudaBufferObject * | inputBufferA, | |
const SbDataType | typeA, | |||
SoCudaBufferObject * | outputBufferB, | |||
const SbDataType | typeB, | |||
const float | shiftFactor | |||
) |
B = A + shiftFactor
Cuda input version.
virtual int SoCudaArithmetic::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.