One Logo Pool Ball
Accelerate · IOS API REFERENCE

BNNS.TernaryArithmeticLayer

class · iOS 15.0+ · SDK 27.1

class TernaryArithmeticLayer

A ternary arithmetic layer. Use a `TernaryArithmeticLayer` to perform arithmetic functions that accept three operands. For example, the following code performs the multiply add operation, `10 * 20 + 100`: let a = BNNSNDArrayDescriptor.allocate(initializingFrom: [10] as [Float], shape: [1]) let b = BNNSNDArrayDescriptor.allocate(initializingFrom: [20] as [Float], shape: [1]) let c = BNNSNDArrayDescriptor.allocate(initializingFrom: [100] as [Float], shape: [1]) let out = BNNSNDArrayDescriptor.allocateUninitialized(scalarType: Float.self, shape: [1]) let layer = BNNS.TernaryArithmeticLayer(inputA: a, inputADescriptorType: .sample, inputB: b, inputBDescriptorType: .sample, inputC: c, inputCDescriptorType: .sample, output: out, outputDescriptorType: .sample, function: .multiplyAdd) try? layer?.apply(batchSize: 1, inputA: a, inputB: b, inputC: c, output: out) On return, the output tensor contains the the value `300`.

Members (3)

method · iOS 15.0+

applyBackward

TypeScript
applyBackward(batchSize: number, inputA: BNNSNDArrayDescriptor, inputB: BNNSNDArrayDescriptor, inputC: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor, outputGradient: BNNSNDArrayDescriptor, inputAGradient: BNNSNDArrayDescriptor, inputBGradient: BNNSNDArrayDescriptor, inputCGradient: BNNSNDArrayDescriptor): void
Swift declaration
func applyBackward(batchSize: Int, inputA: BNNSNDArrayDescriptor, inputB: BNNSNDArrayDescriptor, inputC: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor, outputGradient: BNNSNDArrayDescriptor, generatingInputAGradient inputAGradient: BNNSNDArrayDescriptor, generatingInputBGradient inputBGradient: BNNSNDArrayDescriptor, generatingInputCGradient inputCGradient: BNNSNDArrayDescriptor) throws

Applies the layer backward to generate gradients. - Parameter batchSize: The number of input-output pairs to process. - Parameter inputA: The first input descriptor. - Parameter inputB: The second input descriptor. - Parameter inputC: The third input descriptor./// - Parameter output: The output descriptor. - Parameter outputGradient: The output gradient descriptor. - Parameter inputAGradient: The first input gradient descriptor. - Parameter inputBGradient: The second input gradient descriptor. - Parameter inputCGradient: The third input gradient descriptor.

method · iOS 15.0+

apply

TypeScript
apply(batchSize: number, inputA: BNNSNDArrayDescriptor, inputB: BNNSNDArrayDescriptor, inputC: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor): void
Swift declaration
func apply(batchSize: Int, inputA: BNNSNDArrayDescriptor, inputB: BNNSNDArrayDescriptor, inputC: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor) throws

Applies the layer, writing the result to the output descriptor. - Parameter batchSize: The number of input-output pairs to process. - Parameter inputA: The first input descriptor. - Parameter inputB: The second input descriptor. - Parameter inputC: The third input descriptor. - Parameter output: The output descriptor.

init · iOS 15.0+

init

TypeScript
static init(inputA: BNNSNDArrayDescriptor, inputADescriptorType: BNNS_DescriptorType, inputB: BNNSNDArrayDescriptor, inputBDescriptorType: BNNS_DescriptorType, inputC: BNNSNDArrayDescriptor, inputCDescriptorType: BNNS_DescriptorType, output: BNNSNDArrayDescriptor, outputDescriptorType: BNNS_DescriptorType, function_: BNNS_ArithmeticTernaryFunction, activation?: BNNS_ActivationFunction, filterParameters?: (BNNSFilterParameters) | null): (BNNS_TernaryArithmeticLayer) | null
Swift declaration
convenience init?(inputA: BNNSNDArrayDescriptor, inputADescriptorType: BNNS.DescriptorType, inputB: BNNSNDArrayDescriptor, inputBDescriptorType: BNNS.DescriptorType, inputC: BNNSNDArrayDescriptor, inputCDescriptorType: BNNS.DescriptorType, output: BNNSNDArrayDescriptor, outputDescriptorType: BNNS.DescriptorType, function: BNNS.ArithmeticTernaryFunction, activation: BNNS.ActivationFunction = .identity, filterParameters: BNNSFilterParameters? = nil)

Creates a new ternary arithmetic layer. - Parameter inputA: The first input descriptor. - Parameter inputADescriptorType: The descriptor type of the first input. - Parameter inputB: The second input descriptor. - Parameter inputBDescriptorType: The descriptor type of the second input. - Parameter inputC: The thrid input descriptor. - Parameter inputCDescriptorType: The descriptor type of the thjird input. - Parameter output: The output descriptor. - Parameter outputDescriptorType: The descriptor type of the output. - Parameter function: The arithmetic operation. - Parameter activation: The activation function to apply to the result. - Parameter filterParameters: Runtime filter parameters. - Returns: A new ternary arithmetic layer on success or `nil` if the parameters are invalid.

Skipped declarations

No declarations were skipped in this snapshot.

All Accelerate types →