<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/transforming-with-polynomials",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Transforming with polynomials"
}
-->

# Transforming with polynomials

Use polynomials to apply color transformations to images.

## Discussion

Polynomial functions apply one or more polynomials to the input image to generate the output image. You can use polynomial functions to apply tone curve adjustments to images.

## Topics

### Applying a polynomial

  <doc://com.apple.accelerate/documentation/Accelerate/applying-tone-curve-adjustments-to-images>

[`func vImagePiecewisePolynomial_Planar8toPlanarF(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutablePointer<UnsafePointer<Float>?>, UnsafePointer<Float>, UInt32, UInt32, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePiecewisePolynomial_Planar8toPlanarF(_:_:_:_:_:_:_:))

Applies a set of piecewise polynomials to transform an 8-bit planar image to a 32-bit planar image.

[`func vImagePiecewisePolynomial_PlanarFtoPlanar8(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutablePointer<UnsafePointer<Float>?>, UnsafePointer<Float>, UInt32, UInt32, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePiecewisePolynomial_PlanarFtoPlanar8(_:_:_:_:_:_:_:))

Applies a set of piecewise polynomials to transform a 32-bit planar image to an 8-bit planar image.

[`func vImagePiecewisePolynomial_PlanarF(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutablePointer<UnsafePointer<Float>?>, UnsafePointer<Float>, UInt32, UInt32, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePiecewisePolynomial_PlanarF(_:_:_:_:_:_:_:))

Applies a set of piecewise polynomials to transform a 32-bit planar image.

### Applying a symmetric polynomial

[`func vImageSymmetricPiecewisePolynomial_PlanarF(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutablePointer<UnsafePointer<Float>?>, UnsafePointer<Float>, UInt32, UInt32, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageSymmetricPiecewisePolynomial_PlanarF(_:_:_:_:_:_:_:))

Applies a set of symmetric piecewise polynomials to transform a 32-bit planar image.

### Applying a rational expression

[`func vImagePiecewiseRational_PlanarF(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutablePointer<UnsafePointer<Float>?>, UnsafeMutablePointer<UnsafePointer<Float>?>, UnsafePointer<Float>, UInt32, UInt32, UInt32, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePiecewiseRational_PlanarF(_:_:_:_:_:_:_:_:_:))

Applies a set of piecewise rational expressions to transform a 32-bit planar image.



---

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)