swift
2802df1d - [5.1] Collected Accelerate overlay work (#24269)

Commit
6 years ago
[5.1] Collected Accelerate overlay work (#24269) * [Accelerate] [Quadrature] New Quadrature Overlay (#23127) * [Accelerate] [Quadrature] New Quadrature Overlay A class that simplifies approximating the definite integral of a function. * Fixes in response to PR Review. Change `@_exported import Accelerate` to `import Accelerate`. Correct date in copyright comment. * Code Review Fixes. * Remove mutable integrator, simply set options in init(). * Remove mutable `maxIntervals` and `qagPointsPerInterval`. * Update tests. * Code Review Fixes. * Use standard library `Result`. * Implement `QAGPointsPerInterval` as a struct. * Tidy up Passing Integrand to `quadrature_integrate_function`. Pass the integrand closure directly to the `quadrature_integrate_function` initialiser rather than attaching as a property of the `Quadrature` class. * Make `Quadrature` a struct, and remove requirement for `integrand` to be escaping. * Code Review Changes * Add long-form integrator algorithm aliases (update tests to use these aliases). * Make quadrature error description public. * New tests for error description and `QAGPointsPerInterval`. * Vectorized Integrand for Quadrature Create an alternative implementation of `integrate` that accepts an integrand of type `(_ input: UnsafeBufferPointer<Double>, _ result: UnsafeMutableBufferPointer<Double>)`. * Vectorized Integrand for Quadrature Create an alternative implementation of `integrate` that accepts an integrand of type `(_ input: UnsafeBufferPointer<Double>, _ result: UnsafeMutableBufferPointer<Double>)`. * Vectorized Integrand for Quadrature Remove _ContiguousCollection - it's no longer used. * Delete ContiguousCollection.swift Not required. * Refactor tests. * Accelerate vForce (#24152) * [Accelerate] [vForce] New vForce Overlay This PR contains a suite of overlays to the vForce transcendental and trigonometric functions on vectors of any length. The overlays simplify the API to the existing functions and accept collections that implement a new protocol called AccelerateBuffer. Conformances are provided for the most useful stdlib Collections. * Merge pull request #24184 from FlexMonkey/Accelerate_Swift-vDSP-Overlays * Fix a case where vDSP is missing a cast (#24197) * Add missing cast to new vDSP_FIR overlay. * Use macOS instead of OSX in availability annotations. * Reorder Accelerate/CMakeLists.txt alphabetically. * [Accelerate] [vImage] Swift Overlays (#23592) * Accelerate vImage Swift Overlays A suite of functions, enumerations, and option sets to make working with vImage in Swift simpler. * vImage_Buffer - new initializers to instantiate and initialize buffers with a single function call. * vImage_Buffer - new functions to copy buffers and create CGImage instances from contents. * vImage_CGImageFormat - new initializers. * vImage_CGImageFormat - new equivalence operator. * vImageConverter - methods to wrap free functions. * vImageConverter - new make and convert functions. * vImageCVImageFormat - new make functions. * vImageCVImageFormat - methods to wrap free functions. * vImage_Error - errorDescription function. * vImage flags as an option set. * Add new methods for generating CV -> CG and CG -> CV converters. * update comments: `height` and `width` to `size`. * `vImage_CGImageFormat.componentCount` should be `Int`. * `vImage_CGImageFormat.componentCount` should be `Int` * Move `self.init()` to after the size check for kvImageNoAllocate init. * Buffer initializers to width and height rather than size. * change vImage_CGImageFormat lightweight initializer to accept Int for `bitsPerComponent` and `bitsPerPixel`. * Flesh out docs for vImage_Buffer.size * Remove faux initializer in favor of new static function: `preferredAlignmentAndRowBytes`. * Change functions to use proper error handling rather than inout error codes. * Removed `flags` from basic init. The only real flag to pass here is print diagnostics to console, and I now throw proper errors. * Tests to check error throwing for buffer copy. * remove unnecessary import, add missing docs. * Add comments to error enums. * Fix bug creating string from format code. * Make `vImageCVImageFormat.formatCode` a `UInt32`. * Remove equivalence operator from `CGImageFormat`. * [Accelerate] [vDSP] DFT, FFT, DCT, and Biquad (#24207) * Swift overlay to vDSP cascaded biquad IIR filter. * update comment in test * Swift overlay to vDSP Discrete Cosine Transform * Swift Overlays to vDSP Fast Fourier Transform and Discrete Fourier Transform * Tests for DFT and FFT * Some refactoring and begin documentation. * Swift overlays to FFT and DFT operations. * Expand docs. * Implement `vDSP_destroy_fftsetup` and `vDSP_destroy_fftsetupD` * Refactor Tests * Refactor Tests * Provide transform function that returns the result. Refactoring: parameter names more consistent with other vDSP operations, push `fileprivate` symbols to bottom of file. * Add apply() function that returns the result. * Added a version of DFT transform that returns the result. * update some DFT comments * Remove FFT overlays from this branch to separate DFT and FFT pull requests. * [Accelerate] [vDSP] Swift Overlays to FFT Operations This PR contains Swift overlays to simplify performing 1D and 2D fast Fourier transforms on single- and double-precision data. This PR includes a subset of the operations (e.g. vDSP_fft_zrop for FFT). My plan is to add the additional operations (e.g. multiple signals, in-place operations, etc.) in a subsequent PR once this is approved. cc: @moiseev @airspeedswift @stephentyrone * Composite Branch Contains FFT, DFT, DCT, and Biquad branches. * Merge pull request #24232 from stephentyrone/veclib-enum-availability * Merge pull request #24275 from stephentyrone/disable-broken-vImage-test Temporarily disable a new vImage test that's failing for some platforms. * Remove magic-symbols-for-install-name.c from Accelerate CMakeLists.txt This file exists on master but not on 5.1. * Apparently GYB_SOURCES hasn't made it onto 5.1. * Slice should only conform to AB when the Base conforms to AB.
Author
Parents
Loading