PAL 3D Arrays: Real, Integer, and Boolean Operations

Initialization, copying, arithmetic, extrema, logarithms, and conversion for three-dimensional Float, Double, Int, and Bool arrays.

PAL 3D Arrays: Real, Integer, and Boolean Operations — 25 functions

KiratPal3DFloat­Log10Approx

Signature
T_INT KiratPal3DFloatLog10Approx( T_FLOAT*** pppfSource, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Calculates a fast element-wise approximation of log10.
Mathematical operation
\(y_{\mathbf i}\approx\log_{10}(x_{\mathbf i})\) using the PAL approximate log implementation.
Supported implementations
  • ANSI C - portable reference implementation

KiratPal3DFloat­Log10ApproxToDest

Signature
T_INT KiratPal3DFloatLog10ApproxToDest( T_FLOAT*** pppfSource, T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Calculates a fast element-wise approximation of log10.
Mathematical operation
\(y_{\mathbf i}\approx\log_{10}(x_{\mathbf i})\) using the PAL approximate log implementation.
Supported implementations
  • ANSI C - portable reference implementation

KiratPalAdd3DFloat­To3DDouble

Signature
T_INT KiratPalAdd3DFloatTo3DDouble( T_FLOAT*** pppfSource, T_DOUBLE*** pppdDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Adds scalar, vector, or array values element-wise; ToDest writes to a separate destination, while Acc accumulates into an existing destination.
Mathematical operation
\(y_{\mathbf i}=\operatorname{cast}(x_{\mathbf i})\) element-wise.
Supported implementations
  • ANSI C - portable reference implementation

KiratPalAdd3DFloat­To3DFloat

Signature
void KiratPalAdd3DFloatTo3DFloat( T_FLOAT*** pppfSource, T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Adds scalar, vector, or array values element-wise; ToDest writes to a separate destination, while Acc accumulates into an existing destination.
Mathematical operation
\(d_{\mathbf i}\leftarrow d_{\mathbf i}+s_{\mathbf i}\) (or \(+c\) for a scalar source).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel PC — processor-specific Intel branch

KiratPalAdd3DFloat­To3DFloatToDest

Signature
void KiratPalAdd3DFloatTo3DFloatToDest( T_FLOAT*** pppfSource1, T_FLOAT*** pppfSource2, T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Adds scalar, vector, or array values element-wise; ToDest writes to a separate destination, while Acc accumulates into an existing destination.
Mathematical operation
\(d_{\mathbf i}=a_{\mathbf i}+b_{\mathbf i}\) (or source element plus scalar, according to the signature).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel PC — processor-specific Intel branch

KiratPalAddFloat­To3DFloat

Signature
T_INT KiratPalAddFloatTo3DFloat( T_FLOAT fSource, T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Adds scalar, vector, or array values element-wise; ToDest writes to a separate destination, while Acc accumulates into an existing destination.
Mathematical operation
\(d_{\mathbf i}\leftarrow d_{\mathbf i}+c\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalAddFloat­To3DFloatToDest

Signature
T_INT KiratPalAddFloatTo3DFloatToDest( const T_FLOAT*** pppfSource, T_FLOAT fValue, T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizedim3);
Description
Adds scalar, vector, or array values element-wise; ToDest writes to a separate destination, while Acc accumulates into an existing destination.
Mathematical operation
\(d_{\mathbf i}\leftarrow d_{\mathbf i}+c\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalCopy3DFloat

Signature
void KiratPalCopy3DFloat( T_FLOAT** const* pppfSource, T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Copies the specified data or subrange to the destination.
Mathematical operation
\(D_{\mathbf i}\leftarrow S_{\mathbf i}\) element-wise (with type conversion where indicated by the function name).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalCopy3DFloat­To3DDouble

Signature
T_INT KiratPalCopy3DFloatTo3DDouble( T_FLOAT*** pppfSource, T_DOUBLE*** pppdDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Copies the specified data or subrange to the destination.
Mathematical operation
\(y_{\mathbf i}=\operatorname{cast}(x_{\mathbf i})\) element-wise.
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel IPP library support

KiratPalDivide­3DFloatBy3DFloat

Signature
void KiratPalDivide3DFloatBy3DFloat( T_FLOAT*** pppfSource, T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Divides element-wise; some implementations add SYS_EPS or another small safeguard to avoid division by zero.
Mathematical operation
\(D_{ijk}\leftarrow D_{ijk}/X_{ijk}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalGetMax3DFloat

Signature
T_FLOAT KiratPalGetMax3DFloat(T_FLOAT*** pppfVector, T_INT iSize1, T_INT iSize2, T_INT iSize3);
Description
Returns the largest value in the array.
Mathematical operation
\(y=\max_{\mathbf i}x_{\mathbf i}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalGetMaxVal­AndIndex3DFloat

Signature
T_FLOAT KiratPalGetMaxValAndIndex3DFloat( T_FLOAT*** pppfVector, T_INT iSize1, T_INT iSize2, T_INT iSize3, T_INT* piIndex1, T_INT* piIndex2, T_INT* piIndex3);
Description
Finds the maximum value (or maximum magnitude measure) and its corresponding index.
Mathematical operation
\(y=\max_{\mathbf i}x_{\mathbf i}\) and the function returns/stores an index \(\mathbf i^*\) satisfying \(x_{\mathbf i^*}=y\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalGet­Min3DFloat

Signature
T_FLOAT KiratPalGetMin3DFloat(T_FLOAT*** pppfVector, T_INT iSize1, T_INT iSize2, T_INT iSize3);
Description
Returns the smallest value in the array.
Mathematical operation
\(y=\min_{\mathbf i}x_{\mathbf i}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalGetMinVal­AndIndex3DFloat

Signature
T_FLOAT KiratPalGetMinValAndIndex3DFloat( T_FLOAT*** pppfVector, T_INT iSize1, T_INT iSize2, T_INT iSize3, T_INT* piIndex1, T_INT* piIndex2, T_INT* piIndex3);
Description
Finds the minimum value and its corresponding index.
Mathematical operation
\(y=\min_{\mathbf i}x_{\mathbf i}\) and the function returns/stores an index \(\mathbf i^*\) satisfying \(x_{\mathbf i^*}=y\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMult3DFloat­With3DFloat

Signature
void KiratPalMult3DFloatWith3DFloat( T_FLOAT*** pppfSource, T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Multiplies scalar, vector, or array values element-wise; Acc variants add the product to the destination.
Mathematical operation
\(d_{\mathbf i}\leftarrow d_{\mathbf i}s_{\mathbf i}\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel/AMD processors - Intel IPP library support

KiratPalMult3DFloat­WithFloat

Signature
void KiratPalMult3DFloatWithFloat( T_FLOAT*** pppfDestination, T_FLOAT fFactor, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Multiplies scalar, vector, or array values element-wise; Acc variants add the product to the destination.
Mathematical operation
\(d_{\mathbf i}\leftarrow c\,d_{\mathbf i}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalMult3DFloat­WithFloatToDest

Signature
void KiratPalMult3DFloatWithFloatToDest( T_FLOAT*** pppfSource, T_FLOAT*** pppfDestination, T_FLOAT fFactor, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Multiplies scalar, vector, or array values element-wise; Acc variants add the product to the destination.
Mathematical operation
\(d_{\mathbf i}=c\,s_{\mathbf i}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalSet3D­BoolToValue

Signature
void KiratPalSet3DBoolToValue( T_BOOL*** pppbDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3, T_BOOL bValue);
Description
Sets all elements of the array to a constant value.
Mathematical operation
\(d_{\mathbf i}\leftarrow c\) for every array index \(\mathbf i\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalSet­3DDoubleToZero

Signature
T_INT KiratPalSet3DDoubleToZero( T_DOUBLE*** pppdDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Sets all elements of the array to zero.
Mathematical operation
\(d_{\mathbf i}\leftarrow0\) for every array index \(\mathbf i\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel PC — processor-specific Intel branch

KiratPalSet3DFloat­ToValue

Signature
void KiratPalSet3DFloatToValue( T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3, T_FLOAT fValue);
Description
Sets all elements of the array to a constant value.
Mathematical operation
\(d_{\mathbf i}\leftarrow c\) for every array index \(\mathbf i\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalSet3DFloat­ToZero

Signature
void KiratPalSet3DFloatToZero( T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Sets all elements of the array to zero.
Mathematical operation
\(d_{\mathbf i}\leftarrow0\) for every array index \(\mathbf i\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalSet3DFloat­ToZeroOrFillWith­LowPowerNoise

Signature
void KiratPalSet3DFloatToZeroOrFillWithLowPowerNoise( T_FLOAT*** pppfDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Sets the array to zero or, depending on the configuration, fills it with very low-level noise to avoid numerical corner cases.
Mathematical operation
Current real-valued default path selects the local zero mode, so \(x_i=0\); the alternative code path would use uniform noise of gain \(10^{-10}\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalSet3DIntToValue

Signature
void KiratPalSet3DIntToValue( T_INT*** pppiDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3, T_INT iValue);
Description
Sets all elements of the array to a constant value.
Mathematical operation
\(d_{\mathbf i}\leftarrow c\) for every array index \(\mathbf i\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalSet3DInt­ToZero

Signature
void KiratPalSet3DIntToZero( T_INT*** pppiDestination, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Sets all elements of the array to zero.
Mathematical operation
\(d_{\mathbf i}\leftarrow0\) for every array index \(\mathbf i\).
Supported implementations
  • ANSI C - portable reference implementation

KiratPalSubtract3DFloat­From3DFloat

Signature
void KiratPalSubtract3DFloatFrom3DFloat( T_FLOAT*** pppfDestination, T_FLOAT*** pppfSource, T_INT iSizeDim1, T_INT iSizeDim2, T_INT iSizeDim3);
Description
Subtracts scalar, vector, or array values element-wise; “A from B” means B−A mathematically.
Mathematical operation
\(D_{ijk}\leftarrow D_{ijk}-X_{ijk}\).
Supported implementations
  • ANSI C - portable reference implementation
  • Intel PC — processor-specific Intel branch