---
title: Quadrature
framework: accelerate
role: symbol
role_heading: Structure
path: accelerate/quadrature
---

# Quadrature

A structure that approximates the definite integral of a function over a finite interval.

## Declaration

```swift
struct Quadrature
```

## Overview

Overview The following code illustrates using a Quadrature structure to calculate the area under a curve, defined by y = sqrt(radius * radius - pow(x - radius, 2)): let quadrature = Quadrature(integrator: .qags(maxIntervals: 10),                             absoluteTolerance: 1.0e-8,                             relativeTolerance: 1.0e-2)

let result = quadrature.integrate(over: 0.0 ... 25.0) { x in     let radius: Double = 12.5     return sqrt(radius * radius - pow(x - radius, 2)) }

switch result { case .success(let integralResult, let estimatedAbsoluteError):     print("quadrature success:", integralResult,           estimatedAbsoluteError) case .failure(let error):     print("quadrature error:", error.errorDescription) } Alternatively, you can integrate over a function that uses vectors for its source and destination. For example: func vectorExp(x: UnsafeBufferPointer<Double>,                y: UnsafeMutableBufferPointer<Double>) {     let radius: Double = 12.5     for i in 0 ..< x.count {         y[i] = sqrt(radius * radius - pow(x[i] - radius, 2))     } }

let vRresult = quadrature.integrate(over: 0.0 ... diameter,                                     integrand: vectorExp)

## Topics

### Initializers

- [init(integrator:absoluteTolerance:relativeTolerance:)](accelerate/quadrature/init(integrator:absolutetolerance:relativetolerance:).md)

### Instance Properties

- [absoluteTolerance](accelerate/quadrature/absolutetolerance.md)
- [relativeTolerance](accelerate/quadrature/relativetolerance.md)

### Instance Methods

- [integrate(over:integrand:)](accelerate/quadrature/integrate(over:integrand:)-2d2y2.md)
- [integrate(over:integrand:)](accelerate/quadrature/integrate(over:integrand:)-56h8b.md)

### Structures

- [Quadrature.QAGPointsPerInterval](accelerate/quadrature/qagpointsperinterval.md)

### Enumerations

- [Quadrature.Error](accelerate/quadrature/error.md)
- [Quadrature.Integrator](accelerate/quadrature/integrator.md)

### Type Aliases

- [quadrature_function_array](accelerate/quadrature_function_array.md)
- [quadrature_integrate_function](accelerate/quadrature_integrate_function.md)
- [quadrature_integrate_options](accelerate/quadrature_integrate_options.md)

## See Also

### Quadrature

- [quadrature_integrator](accelerate/quadrature_integrator.md)
- [quadrature_status](accelerate/quadrature_status.md)
