1e1101897b0d881753ab6734df402a76a24997469cristy/*
27ce65e7125a4e1df1a274ce373c537a9df9c16cdCristy  Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization
3e1101897b0d881753ab6734df402a76a24997469cristy  dedicated to making software imaging solutions freely available.
4f034abbcb705540b0d42ade64679775e7a34e582cristy
5e1101897b0d881753ab6734df402a76a24997469cristy  You may not use this file except in compliance with the License.
6e1101897b0d881753ab6734df402a76a24997469cristy  obtain a copy of the License at
7f034abbcb705540b0d42ade64679775e7a34e582cristy
8e1101897b0d881753ab6734df402a76a24997469cristy    http://www.imagemagick.org/script/license.php
9f034abbcb705540b0d42ade64679775e7a34e582cristy
10e1101897b0d881753ab6734df402a76a24997469cristy  Unless required by applicable law or agreed to in writing, software
11e1101897b0d881753ab6734df402a76a24997469cristy  distributed under the License is distributed on an "AS IS" BASIS,
12e1101897b0d881753ab6734df402a76a24997469cristy  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e1101897b0d881753ab6734df402a76a24997469cristy  See the License for the specific language governing permissions and
14e1101897b0d881753ab6734df402a76a24997469cristy  limitations under the License.
15e1101897b0d881753ab6734df402a76a24997469cristy
16f034abbcb705540b0d42ade64679775e7a34e582cristy  MagickCore private methods for accelerated functions.
17e1101897b0d881753ab6734df402a76a24997469cristy*/
18f034abbcb705540b0d42ade64679775e7a34e582cristy
1983bceaa5d7a1196e05c1ccba443f90f4b032fca6Cristy#ifndef MAGICKCORE_ACCELERATE_PRIVATE_H
2083bceaa5d7a1196e05c1ccba443f90f4b032fca6Cristy#define MAGICKCORE_ACCELERATE_PRIVATE_H
21e1101897b0d881753ab6734df402a76a24997469cristy
22eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk#include "MagickCore/fx.h"
23eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk#include "MagickCore/morphology.h"
24eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk#include "MagickCore/resample.h"
25eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk#include "MagickCore/resize.h"
26eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk#include "MagickCore/statistic.h"
27eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk
28e1101897b0d881753ab6734df402a76a24997469cristy#if defined(__cplusplus) || defined(c_plusplus)
29e1101897b0d881753ab6734df402a76a24997469cristyextern "C" {
30e1101897b0d881753ab6734df402a76a24997469cristy#endif
31e1101897b0d881753ab6734df402a76a24997469cristy
3221dc0310cdaa5cc6034a1e100746706f5ec089ebdirk#if defined(MAGICKCORE_OPENCL_SUPPORT)
3321dc0310cdaa5cc6034a1e100746706f5ec089ebdirk
34eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirkextern MagickPrivate Image
35eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateAddNoiseImage(const Image*,const NoiseType,ExceptionInfo *),
36eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateBlurImage(const Image *,const double,const double,ExceptionInfo *),
37eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateConvolveImage(const Image *,const KernelInfo *,ExceptionInfo *),
38eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateDespeckleImage(const Image *,ExceptionInfo *),
39eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateLocalContrastImage(const Image *,const double,const double,
40eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk    ExceptionInfo *),
41eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateMotionBlurImage(const Image*,const double*,const size_t,
42eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk    const OffsetInfo*,ExceptionInfo*),
43eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateResizeImage(const Image *,const size_t,const size_t,
44eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk    const ResizeFilter *,ExceptionInfo *),
45eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateRotationalBlurImage(const Image *,const double,ExceptionInfo *),
46eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateUnsharpMaskImage(const Image *,const double,const double,
47eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk    const double,const double,ExceptionInfo *),
48eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  *AccelerateWaveletDenoiseImage(const Image *,const double,ExceptionInfo *);
49eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk
50eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirkextern MagickPrivate MagickBooleanType
51eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  AccelerateContrastImage(Image *,const MagickBooleanType,ExceptionInfo *),
52eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  AccelerateContrastStretchImage(Image *,const double,const double,
53eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk    ExceptionInfo*),
54eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  AccelerateEqualizeImage(Image *,ExceptionInfo *),
55eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  AccelerateFunctionImage(Image *,const MagickFunction,const size_t,
56eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk    const double *,ExceptionInfo *),
57eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  AccelerateGrayscaleImage(Image *,const PixelIntensityMethod,
58eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk    ExceptionInfo *),
59eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk  AccelerateModulateImage(Image *,const double,const double,const double,
60eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk    const ColorspaceType, ExceptionInfo*);
61eeec14f738e8dbcfa064c1158a6e503b30a5dc3edirk
6221dc0310cdaa5cc6034a1e100746706f5ec089ebdirk#endif /* MAGICKCORE_OPENCL_SUPPORT */
6321dc0310cdaa5cc6034a1e100746706f5ec089ebdirk
64e1101897b0d881753ab6734df402a76a24997469cristy#if defined(__cplusplus) || defined(c_plusplus)
65e1101897b0d881753ab6734df402a76a24997469cristy}
66e1101897b0d881753ab6734df402a76a24997469cristy#endif
67e1101897b0d881753ab6734df402a76a24997469cristy
6821dc0310cdaa5cc6034a1e100746706f5ec089ebdirk#endif /* MAGICKCORE_ACCELERATE_PRIVATE_H */
69