<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/applying-arithmetic-operations",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Applying arithmetic operations"
}
-->

# Applying arithmetic operations

Multiply the pixel values of a buffer by scalar values or matrices.

## Topics

### Scalar Multiplication

[`func multiply(by: Int, divisor: Int, preBias: Int, postBias: Int, destination: vImage.PixelBuffer<vImage.Planar8>)`](/documentation/Accelerate/vImage/PixelBuffer/multiply(by:divisor:preBias:postBias:destination:)-7jo6v)

Multiplies each pixel in an 8-bit planar pixel buffer by the specified factor.

[`func multiply(by: Float, preBias: Float, postBias: Float, destination: vImage.PixelBuffer<vImage.PlanarF>)`](/documentation/Accelerate/vImage/PixelBuffer/multiply(by:preBias:postBias:destination:)-3bh2a)

Multiplies each pixel in a 32-bit planar pixel buffer by the specified factor.

### Matrix Multiplication

[`func multiply<Matrix>(by: Matrix, divisor: Int, preBias: (Int, Int, Int, Int), postBias: (Int, Int, Int, Int), destination: vImage.PixelBuffer<vImage.Interleaved8x4>)`](/documentation/Accelerate/vImage/PixelBuffer/multiply(by:divisor:preBias:postBias:destination:)-7ikb7)

Multiplies each four channel pixel in an 8-bit-per channel, 4-channel pixel buffer by a 4 x 4 matrix to produce a four channel result.

[`func multiply<Matrix>(by: Matrix, preBias: (Float, Float, Float, Float), postBias: (Float, Float, Float, Float), destination: vImage.PixelBuffer<vImage.InterleavedFx4>)`](/documentation/Accelerate/vImage/PixelBuffer/multiply(by:preBias:postBias:destination:)-5tm47)

Multiplies each four channel pixel in a 32-bit-per channel, 4-channel pixel buffer by a 4 x 4 matrix to produce a four channel result.

[`func multiply(by: simd_float4x4, preBias: (Float, Float, Float, Float), postBias: (Float, Float, Float, Float), destination: vImage.PixelBuffer<vImage.InterleavedFx4>)`](/documentation/Accelerate/vImage/PixelBuffer/multiply(by:preBias:postBias:destination:)-5tq68)

Multiplies each four channel pixel in a 32-bit-per channel, 4-channel pixel buffer by a 4 x 4 simd matrix to produce a four channel result.

[`func multiply<Matrix, DestFormat>(by: Matrix, divisor: Int, preBias: [Int], postBias: [Int], destination: vImage.PixelBuffer<DestFormat>)`](/documentation/Accelerate/vImage/PixelBuffer/multiply(by:divisor:preBias:postBias:destination:)-86hbw)

Multiplies each four channel pixel in an 8-bit multiple-plane pixel buffer by a 4 x 4 matrix to produce a four channel result.

[`func multiply<Matrix, DestFormat>(by: Matrix, preBias: [Float], postBias: [Float], destination: vImage.PixelBuffer<DestFormat>)`](/documentation/Accelerate/vImage/PixelBuffer/multiply(by:preBias:postBias:destination:)-3kltz)

Multiplies each four channel pixel in a 32-bit multiple-plane pixel buffer by a 4 x 4 matrix to produce a four channel result.

### Pixel Multiplication

[`func multiply(by: (Int, Int, Int, Int), divisor: Int, preBias: (Int, Int, Int, Int), postBias: Int, destination: vImage.PixelBuffer<vImage.Planar8>)`](/documentation/Accelerate/vImage/PixelBuffer/multiply(by:divisor:preBias:postBias:destination:)-4q614)

Multiplies each four channel pixel in an 8-bit-per channel, 4-channel pixel buffer by a four element matrix to produce a single channel result.

[`func multiply(by: (Float, Float, Float, Float), preBias: (Float, Float, Float, Float), postBias: Float, destination: vImage.PixelBuffer<vImage.PlanarF>)`](/documentation/Accelerate/vImage/PixelBuffer/multiply(by:preBias:postBias:destination:)-1sp5l)

Multiplies each four channel pixel in a 32-bit-per channel, 4-channel pixel buffer by a four element matrix to produce a single channel result.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)