codekingpro/portable-devtools
114k
1 /* Copyright 2010-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2 *
3 * NOTICE TO LICENSEE:
4 *
5 * The source code and/or documentation ("Licensed Deliverables") are
6 * subject to NVIDIA intellectual property rights under U.S. and
7 * international Copyright laws.
8 *
9 * The Licensed Deliverables contained herein are PROPRIETARY and
10 * CONFIDENTIAL to NVIDIA and are being provided under the terms and
11 * conditions of a form of NVIDIA software license agreement by and
12 * between NVIDIA and Licensee ("License Agreement") or electronically
13 * accepted by Licensee. Notwithstanding any terms or conditions to
14 * the contrary in the License Agreement, reproduction or disclosure
15 * of the Licensed Deliverables to any third party without the express
16 * written consent of NVIDIA is prohibited.
17 *
18 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
19 * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
20 * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE
21 * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
22 * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
23 * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
24 * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
25 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
26 * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
27 * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
28 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
29 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
30 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
31 * OF THESE LICENSED DELIVERABLES.
32 *
33 * U.S. Government End Users. These Licensed Deliverables are a
34 * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
35 * 1995), consisting of "commercial computer software" and "commercial
36 * computer software documentation" as such terms are used in 48
37 * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government
38 * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
39 * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
40 * U.S. Government End Users acquire the Licensed Deliverables with
41 * only those rights set forth herein.
42 *
43 * Any use of the Licensed Deliverables in individual and commercial
44 * software must include, in the user documentation and internal
45 * comments to the code, the above Disclaimer and U.S. Government End
46 * Users Notice.
47 */
48#ifndef NV_NPPS_STATISTICS_FUNCTIONS_H
49#define NV_NPPS_STATISTICS_FUNCTIONS_H
50
51/**
52 * \file npps_statistics_functions.h
53 * NPP Signal Processing Functionality.
54 */
55
56#include "nppdefs.h"
57
58
59#ifdef __cplusplus
60extern "C" {
61#endif
62
63
64/**
65 * \page signal_statistical_functions Statistical Functions
66 * @defgroup signal_statistical_functions Statistical Functions
67 * @ingroup npps
68 * Functions that provide global signal statistics like: sum, mean, standard
69 * deviation, min, max, etc.
70 *
71 * @{
72 *
73 */
74
75/**
76 * \section signal_min_every_or_max_every MinEvery And MaxEvery Functions
77 * @defgroup signal_min_every_or_max_every MinEvery And MaxEvery Functions
78 * Performs the min or max operation on the samples of a signal.
79 *
80 * @{
81 *
82 */
83
84/**
85 * 8-bit in place min value for each pair of elements.
86 * \param pSrc \ref source_signal_pointer.
87 * \param pSrcDst \ref in_place_signal_pointer.
88 * \param nLength \ref length_specification.
89 * \param nppStreamCtx \ref application_managed_stream_context.
90 * \return \ref signal_data_error_codes, \ref length_error_codes.
91 */
92NppStatus
93nppsMinEvery_8u_I_Ctx(const Npp8u * pSrc, Npp8u * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
94/**
95 * 8-bit in place min value for each pair of elements.
96 * \param pSrc \ref source_signal_pointer.
97 * \param pSrcDst \ref in_place_signal_pointer.
98 * \param nLength \ref length_specification.
99 * \return \ref signal_data_error_codes, \ref length_error_codes.
100 */
101NppStatus
102nppsMinEvery_8u_I(const Npp8u * pSrc, Npp8u * pSrcDst, size_t nLength);
103
104/**
105 * 16-bit unsigned short integer in place min value for each pair of elements.
106 * \param pSrc \ref source_signal_pointer.
107 * \param pSrcDst \ref in_place_signal_pointer.
108 * \param nLength \ref length_specification.
109 * \param nppStreamCtx \ref application_managed_stream_context.
110 * \return \ref signal_data_error_codes, \ref length_error_codes.
111 */
112NppStatus
113nppsMinEvery_16u_I_Ctx(const Npp16u * pSrc, Npp16u * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
114/**
115 * 16-bit unsigned short integer in place min value for each pair of elements.
116 * \param pSrc \ref source_signal_pointer.
117 * \param pSrcDst \ref in_place_signal_pointer.
118 * \param nLength \ref length_specification.
119
120 * \return \ref signal_data_error_codes, \ref length_error_codes.
121 */
122NppStatus
123nppsMinEvery_16u_I(const Npp16u * pSrc, Npp16u * pSrcDst, size_t nLength);
124
125/**
126 * 16-bit signed short integer in place min value for each pair of elements.
127 * \param pSrc \ref source_signal_pointer.
128 * \param pSrcDst \ref in_place_signal_pointer.
129 * \param nLength \ref length_specification.
130 * \param nppStreamCtx \ref application_managed_stream_context.
131 * \return \ref signal_data_error_codes, \ref length_error_codes.
132 */
133NppStatus
134nppsMinEvery_16s_I_Ctx(const Npp16s * pSrc, Npp16s * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
135/**
136 * 16-bit signed short integer in place min value for each pair of elements.
137 * \param pSrc \ref source_signal_pointer.
138 * \param pSrcDst \ref in_place_signal_pointer.
139 * \param nLength \ref length_specification.
140
141 * \return \ref signal_data_error_codes, \ref length_error_codes.
142 */
143NppStatus
144nppsMinEvery_16s_I(const Npp16s * pSrc, Npp16s * pSrcDst, size_t nLength);
145
146/**
147 * 32-bit signed integer in place min value for each pair of elements.
148 * \param pSrc \ref source_signal_pointer.
149 * \param pSrcDst \ref in_place_signal_pointer.
150 * \param nLength \ref length_specification.
151 * \param nppStreamCtx \ref application_managed_stream_context.
152 * \return \ref signal_data_error_codes, \ref length_error_codes.
153 */
154NppStatus
155nppsMinEvery_32s_I_Ctx(const Npp32s * pSrc, Npp32s * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
156/**
157 * 32-bit signed integer in place min value for each pair of elements.
158 * \param pSrc \ref source_signal_pointer.
159 * \param pSrcDst \ref in_place_signal_pointer.
160 * \param nLength \ref length_specification.
161
162 * \return \ref signal_data_error_codes, \ref length_error_codes.
163 */
164NppStatus
165nppsMinEvery_32s_I(const Npp32s * pSrc, Npp32s * pSrcDst, size_t nLength);
166
167/**
168 * 32-bit floating point in place min value for each pair of elements.
169 * \param pSrc \ref source_signal_pointer.
170 * \param pSrcDst \ref in_place_signal_pointer.
171 * \param nLength \ref length_specification.
172 * \param nppStreamCtx \ref application_managed_stream_context.
173 * \return \ref signal_data_error_codes, \ref length_error_codes.
174 */
175NppStatus
176nppsMinEvery_32f_I_Ctx(const Npp32f * pSrc, Npp32f * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
177/**
178 * 32-bit floating point in place min value for each pair of elements.
179 * \param pSrc \ref source_signal_pointer.
180 * \param pSrcDst \ref in_place_signal_pointer.
181 * \param nLength \ref length_specification.
182
183 * \return \ref signal_data_error_codes, \ref length_error_codes.
184 */
185NppStatus
186nppsMinEvery_32f_I(const Npp32f * pSrc, Npp32f * pSrcDst, size_t nLength);
187
188/**
189 * 64-bit floating point in place min value for each pair of elements.
190 * \param pSrc \ref source_signal_pointer.
191 * \param pSrcDst \ref in_place_signal_pointer.
192 * \param nLength \ref length_specification.
193 * \param nppStreamCtx \ref application_managed_stream_context.
194 * \return \ref signal_data_error_codes, \ref length_error_codes.
195 */
196NppStatus
197nppsMinEvery_64f_I_Ctx(const Npp64f * pSrc, Npp64f * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
198/**
199 * 64-bit floating point in place min value for each pair of elements.
200 * \param pSrc \ref source_signal_pointer.
201 * \param pSrcDst \ref in_place_signal_pointer.
202 * \param nLength \ref length_specification.
203
204 * \return \ref signal_data_error_codes, \ref length_error_codes.
205 */
206NppStatus
207nppsMinEvery_64f_I(const Npp64f * pSrc, Npp64f * pSrcDst, size_t nLength);
208
209/**
210 * 8-bit in place max value for each pair of elements.
211 * \param pSrc \ref source_signal_pointer.
212 * \param pSrcDst \ref in_place_signal_pointer.
213 * \param nLength \ref length_specification.
214 * \param nppStreamCtx \ref application_managed_stream_context.
215 * \return \ref signal_data_error_codes, \ref length_error_codes.
216 */
217NppStatus
218nppsMaxEvery_8u_I_Ctx(const Npp8u * pSrc, Npp8u * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
219/**
220 * 8-bit in place max value for each pair of elements.
221 * \param pSrc \ref source_signal_pointer.
222 * \param pSrcDst \ref in_place_signal_pointer.
223 * \param nLength \ref length_specification.
224
225 * \return \ref signal_data_error_codes, \ref length_error_codes.
226 */
227NppStatus
228nppsMaxEvery_8u_I(const Npp8u * pSrc, Npp8u * pSrcDst, size_t nLength);
229
230/**
231 * 16-bit unsigned short integer in place max value for each pair of elements.
232 * \param pSrc \ref source_signal_pointer.
233 * \param pSrcDst \ref in_place_signal_pointer.
234 * \param nLength \ref length_specification.
235 * \param nppStreamCtx \ref application_managed_stream_context.
236 * \return \ref signal_data_error_codes, \ref length_error_codes.
237 */
238NppStatus
239nppsMaxEvery_16u_I_Ctx(const Npp16u * pSrc, Npp16u * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
240/**
241 * 16-bit unsigned short integer in place max value for each pair of elements.
242 * \param pSrc \ref source_signal_pointer.
243 * \param pSrcDst \ref in_place_signal_pointer.
244 * \param nLength \ref length_specification.
245
246 * \return \ref signal_data_error_codes, \ref length_error_codes.
247 */
248NppStatus
249nppsMaxEvery_16u_I(const Npp16u * pSrc, Npp16u * pSrcDst, size_t nLength);
250
251/**
252 * 16-bit signed short integer in place max value for each pair of elements.
253 * \param pSrc \ref source_signal_pointer.
254 * \param pSrcDst \ref in_place_signal_pointer.
255 * \param nLength \ref length_specification.
256 * \param nppStreamCtx \ref application_managed_stream_context.
257 * \return \ref signal_data_error_codes, \ref length_error_codes.
258 */
259NppStatus
260nppsMaxEvery_16s_I_Ctx(const Npp16s * pSrc, Npp16s * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
261/**
262 * 16-bit signed short integer in place max value for each pair of elements.
263 * \param pSrc \ref source_signal_pointer.
264 * \param pSrcDst \ref in_place_signal_pointer.
265 * \param nLength \ref length_specification.
266
267 * \return \ref signal_data_error_codes, \ref length_error_codes.
268 */
269NppStatus
270nppsMaxEvery_16s_I(const Npp16s * pSrc, Npp16s * pSrcDst, size_t nLength);
271
272/**
273 * 32-bit signed integer in place max value for each pair of elements.
274 * \param pSrc \ref source_signal_pointer.
275 * \param pSrcDst \ref in_place_signal_pointer.
276 * \param nLength \ref length_specification.
277 * \param nppStreamCtx \ref application_managed_stream_context.
278 * \return \ref signal_data_error_codes, \ref length_error_codes.
279 */
280NppStatus
281nppsMaxEvery_32s_I_Ctx(const Npp32s * pSrc, Npp32s * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
282/**
283 * 32-bit signed integer in place max value for each pair of elements.
284 * \param pSrc \ref source_signal_pointer.
285 * \param pSrcDst \ref in_place_signal_pointer.
286 * \param nLength \ref length_specification.
287
288 * \return \ref signal_data_error_codes, \ref length_error_codes.
289 */
290NppStatus
291nppsMaxEvery_32s_I(const Npp32s * pSrc, Npp32s * pSrcDst, size_t nLength);
292
293/**
294 * 32-bit floating point in place max value for each pair of elements.
295 * \param pSrc \ref source_signal_pointer.
296 * \param pSrcDst \ref in_place_signal_pointer.
297 * \param nLength \ref length_specification.
298 * \param nppStreamCtx \ref application_managed_stream_context.
299 * \return \ref signal_data_error_codes, \ref length_error_codes.
300 */
301NppStatus
302nppsMaxEvery_32f_I_Ctx(const Npp32f * pSrc, Npp32f * pSrcDst, size_t nLength, NppStreamContext nppStreamCtx);
303/**
304 * 32-bit floating point in place max value for each pair of elements.
305 * \param pSrc \ref source_signal_pointer.
306 * \param pSrcDst \ref in_place_signal_pointer.
307 * \param nLength \ref length_specification.
308
309 * \return \ref signal_data_error_codes, \ref length_error_codes.
310 */
311NppStatus
312nppsMaxEvery_32f_I(const Npp32f * pSrc, Npp32f * pSrcDst, size_t nLength);
313
314/**
315 *
316 * @} signal_min_every_or_max_every
317 *
318 */
319
320/**
321 * \section signal_sum Sum
322 * @defgroup signal_sum Sum
323 * Performs the sum operation on the samples of a signal.
324 * @{
325 *
326 */
327
328 /**
329 * Device scratch buffer size (in bytes) for nppsSum_32f.
330 * \param nLength \ref length_specification.
331 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
332 * <em>host pointer.</em> \ref general_scratch_buffer.
333 * \param nppStreamCtx \ref application_managed_stream_context.
334 * \return NPP_SUCCESS
335 */
336NppStatus
337nppsSumGetBufferSize_32f_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
338 /**
339 * Device scratch buffer size (in bytes) for nppsSum_32f.
340 * \param nLength \ref length_specification.
341 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
342 * <em>host pointer.</em> \ref general_scratch_buffer.
343
344 * \return NPP_SUCCESS
345 */
346NppStatus
347nppsSumGetBufferSize_32f(size_t nLength, size_t * hpBufferSize /* host pointer */);
348
349/**
350 * Device scratch buffer size (in bytes) for nppsSum_32fc.
351 * \param nLength \ref length_specification.
352 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
353 * <em>host pointer.</em> \ref general_scratch_buffer.
354 * \param nppStreamCtx \ref application_managed_stream_context.
355 * \return NPP_SUCCESS
356 */
357NppStatus
358nppsSumGetBufferSize_32fc_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
359/**
360 * Device scratch buffer size (in bytes) for nppsSum_32fc.
361 * \param nLength \ref length_specification.
362 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
363 * <em>host pointer.</em> \ref general_scratch_buffer.
364
365 * \return NPP_SUCCESS
366 */
367NppStatus
368nppsSumGetBufferSize_32fc(size_t nLength, size_t * hpBufferSize /* host pointer */);
369
370/**
371 * Device scratch buffer size (in bytes) for nppsSum_64f.
372 * \param nLength \ref length_specification.
373 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
374 * <em>host pointer.</em> \ref general_scratch_buffer.
375 * \param nppStreamCtx \ref application_managed_stream_context.
376 * \return NPP_SUCCESS
377 */
378NppStatus
379nppsSumGetBufferSize_64f_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
380/**
381 * Device scratch buffer size (in bytes) for nppsSum_64f.
382 * \param nLength \ref length_specification.
383 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
384 * <em>host pointer.</em> \ref general_scratch_buffer.
385
386 * \return NPP_SUCCESS
387 */
388NppStatus
389nppsSumGetBufferSize_64f(size_t nLength, size_t * hpBufferSize /* host pointer */);
390
391/**
392 * Device scratch buffer size (in bytes) for nppsSum_64fc.
393 * \param nLength \ref length_specification.
394 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
395 * <em>host pointer.</em> \ref general_scratch_buffer.
396 * \param nppStreamCtx \ref application_managed_stream_context.
397 * \return NPP_SUCCESS
398 */
399NppStatus
400nppsSumGetBufferSize_64fc_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
401/**
402 * Device scratch buffer size (in bytes) for nppsSum_64fc.
403 * \param nLength \ref length_specification.
404 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
405 * <em>host pointer.</em> \ref general_scratch_buffer.
406
407 * \return NPP_SUCCESS
408 */
409NppStatus
410nppsSumGetBufferSize_64fc(size_t nLength, size_t * hpBufferSize /* host pointer */);
411
412/**
413 * Device scratch buffer size (in bytes) for nppsSum_16s_Sfs.
414 * \param nLength \ref length_specification.
415 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
416 * <em>host pointer.</em> \ref general_scratch_buffer.
417 * \param nppStreamCtx \ref application_managed_stream_context.
418 * \return NPP_SUCCESS
419 */
420NppStatus
421nppsSumGetBufferSize_16s_Sfs_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
422/**
423 * Device scratch buffer size (in bytes) for nppsSum_16s_Sfs.
424 * \param nLength \ref length_specification.
425 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
426 * <em>host pointer.</em> \ref general_scratch_buffer.
427
428 * \return NPP_SUCCESS
429 */
430NppStatus
431nppsSumGetBufferSize_16s_Sfs(size_t nLength, size_t * hpBufferSize /* host pointer */);
432
433/**
434 * Device scratch buffer size (in bytes) for nppsSum_16sc_Sfs.
435 * \param nLength \ref length_specification.
436 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
437 * <em>host pointer.</em> \ref general_scratch_buffer.
438 * \param nppStreamCtx \ref application_managed_stream_context.
439 * \return NPP_SUCCESS
440 */
441NppStatus
442nppsSumGetBufferSize_16sc_Sfs_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
443/**
444 * Device scratch buffer size (in bytes) for nppsSum_16sc_Sfs.
445 * \param nLength \ref length_specification.
446 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
447 * <em>host pointer.</em> \ref general_scratch_buffer.
448
449 * \return NPP_SUCCESS
450 */
451NppStatus
452nppsSumGetBufferSize_16sc_Sfs(size_t nLength, size_t * hpBufferSize /* host pointer */);
453
454/**
455 * Device scratch buffer size (in bytes) for nppsSum_16sc32sc_Sfs.
456 * \param nLength \ref length_specification.
457 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
458 * <em>host pointer.</em> \ref general_scratch_buffer.
459 * \param nppStreamCtx \ref application_managed_stream_context.
460 * \return NPP_SUCCESS
461 */
462NppStatus
463nppsSumGetBufferSize_16sc32sc_Sfs_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
464/**
465 * Device scratch buffer size (in bytes) for nppsSum_16sc32sc_Sfs.
466 * \param nLength \ref length_specification.
467 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
468 * <em>host pointer.</em> \ref general_scratch_buffer.
469
470 * \return NPP_SUCCESS
471 */
472NppStatus
473nppsSumGetBufferSize_16sc32sc_Sfs(size_t nLength, size_t * hpBufferSize /* host pointer */);
474
475/**
476 * Device scratch buffer size (in bytes) for nppsSum_32s_Sfs.
477 * \param nLength \ref length_specification.
478 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
479 * <em>host pointer.</em> \ref general_scratch_buffer.
480 * \param nppStreamCtx \ref application_managed_stream_context.
481 * \return NPP_SUCCESS
482 */
483NppStatus
484nppsSumGetBufferSize_32s_Sfs_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
485/**
486 * Device scratch buffer size (in bytes) for nppsSum_32s_Sfs.
487 * \param nLength \ref length_specification.
488 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
489 * <em>host pointer.</em> \ref general_scratch_buffer.
490
491 * \return NPP_SUCCESS
492 */
493NppStatus
494nppsSumGetBufferSize_32s_Sfs(size_t nLength, size_t * hpBufferSize /* host pointer */);
495
496/**
497 * Device scratch buffer size (in bytes) for nppsSum_16s32s_Sfs.
498 * \param nLength \ref length_specification.
499 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
500 * <em>host pointer.</em> \ref general_scratch_buffer.
501 * \param nppStreamCtx \ref application_managed_stream_context.
502 * \return NPP_SUCCESS
503 */
504NppStatus
505nppsSumGetBufferSize_16s32s_Sfs_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
506/**
507 * Device scratch buffer size (in bytes) for nppsSum_16s32s_Sfs.
508 * \param nLength \ref length_specification.
509 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
510 * <em>host pointer.</em> \ref general_scratch_buffer.
511
512 * \return NPP_SUCCESS
513 */
514NppStatus
515nppsSumGetBufferSize_16s32s_Sfs(size_t nLength, size_t * hpBufferSize /* host pointer */);
516
517/**
518 * 32-bit float vector sum method
519 * \param pSrc \ref source_signal_pointer.
520 * \param nLength \ref length_specification.
521 * \param pSum Pointer to the output result.
522 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
523 * Use \ref nppsSumGetBufferSize_32f to determine the minium number of bytes required.
524 * \param nppStreamCtx \ref application_managed_stream_context.
525 * \return \ref signal_data_error_codes, \ref length_error_codes.
526 */
527NppStatus
528nppsSum_32f_Ctx(const Npp32f * pSrc, size_t nLength, Npp32f * pSum, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
529/**
530 * 32-bit float vector sum method
531 * \param pSrc \ref source_signal_pointer.
532 * \param nLength \ref length_specification.
533 * \param pSum Pointer to the output result.
534 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
535 * Use \ref nppsSumGetBufferSize_32f to determine the minium number of bytes required.
536
537 * \return \ref signal_data_error_codes, \ref length_error_codes.
538 */
539NppStatus
540nppsSum_32f(const Npp32f * pSrc, size_t nLength, Npp32f * pSum, Npp8u * pDeviceBuffer);
541
542/**
543 * 32-bit float complex vector sum method
544 * \param pSrc \ref source_signal_pointer.
545 * \param nLength \ref length_specification.
546 * \param pSum Pointer to the output result.
547 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
548 * Use \ref nppsSumGetBufferSize_32fc to determine the minium number of bytes required.
549 * \param nppStreamCtx \ref application_managed_stream_context.
550 * \return \ref signal_data_error_codes, \ref length_error_codes.
551 */
552NppStatus
553nppsSum_32fc_Ctx(const Npp32fc * pSrc, size_t nLength, Npp32fc * pSum, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
554/**
555 * 32-bit float complex vector sum method
556 * \param pSrc \ref source_signal_pointer.
557 * \param nLength \ref length_specification.
558 * \param pSum Pointer to the output result.
559 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
560 * Use \ref nppsSumGetBufferSize_32fc to determine the minium number of bytes required.
561
562 * \return \ref signal_data_error_codes, \ref length_error_codes.
563 */
564NppStatus
565nppsSum_32fc(const Npp32fc * pSrc, size_t nLength, Npp32fc * pSum, Npp8u * pDeviceBuffer);
566
567/**
568 * 64-bit double vector sum method
569 * \param pSrc \ref source_signal_pointer.
570 * \param nLength \ref length_specification.
571 * \param pSum Pointer to the output result.
572 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
573 * Use \ref nppsSumGetBufferSize_64f to determine the minium number of bytes required.
574 * \param nppStreamCtx \ref application_managed_stream_context.
575 * \return \ref signal_data_error_codes, \ref length_error_codes.
576 */
577NppStatus
578nppsSum_64f_Ctx(const Npp64f * pSrc, size_t nLength, Npp64f * pSum, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
579/**
580 * 64-bit double vector sum method
581 * \param pSrc \ref source_signal_pointer.
582 * \param nLength \ref length_specification.
583 * \param pSum Pointer to the output result.
584 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
585 * Use \ref nppsSumGetBufferSize_64f to determine the minium number of bytes required.
586
587 * \return \ref signal_data_error_codes, \ref length_error_codes.
588 */
589NppStatus
590nppsSum_64f(const Npp64f * pSrc, size_t nLength, Npp64f * pSum, Npp8u * pDeviceBuffer);
591
592/**
593 * 64-bit double complex vector sum method
594 * \param pSrc \ref source_signal_pointer.
595 * \param nLength \ref length_specification.
596 * \param pSum Pointer to the output result.
597 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
598 * Use \ref nppsSumGetBufferSize_64fc to determine the minium number of bytes required.
599 * \param nppStreamCtx \ref application_managed_stream_context.
600 * \return \ref signal_data_error_codes, \ref length_error_codes.
601 */
602NppStatus
603nppsSum_64fc_Ctx(const Npp64fc * pSrc, size_t nLength, Npp64fc * pSum, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
604/**
605 * 64-bit double complex vector sum method
606 * \param pSrc \ref source_signal_pointer.
607 * \param nLength \ref length_specification.
608 * \param pSum Pointer to the output result.
609 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
610 * Use \ref nppsSumGetBufferSize_64fc to determine the minium number of bytes required.
611 * \return \ref signal_data_error_codes, \ref length_error_codes.
612 */
613NppStatus
614nppsSum_64fc(const Npp64fc * pSrc, size_t nLength, Npp64fc * pSum, Npp8u * pDeviceBuffer);
615
616/**
617 * 16-bit short vector sum with integer scaling method
618 * \param pSrc \ref source_signal_pointer.
619 * \param nLength \ref length_specification.
620 * \param pSum Pointer to the output result.
621 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
622 * Use \ref nppsSumGetBufferSize_16s_Sfs to determine the minium number of bytes required.
623 * \param nScaleFactor \ref integer_result_scaling.
624 * \param nppStreamCtx \ref application_managed_stream_context.
625 * \return \ref signal_data_error_codes, \ref length_error_codes.
626 */
627NppStatus
628nppsSum_16s_Sfs_Ctx(const Npp16s * pSrc, size_t nLength, Npp16s * pSum, int nScaleFactor,
629 Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
630/**
631 * 16-bit short vector sum with integer scaling method
632 * \param pSrc \ref source_signal_pointer.
633 * \param nLength \ref length_specification.
634 * \param pSum Pointer to the output result.
635 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
636 * Use \ref nppsSumGetBufferSize_16s_Sfs to determine the minium number of bytes required.
637 * \param nScaleFactor \ref integer_result_scaling.
638 * \return \ref signal_data_error_codes, \ref length_error_codes.
639 */
640NppStatus
641nppsSum_16s_Sfs(const Npp16s * pSrc, size_t nLength, Npp16s * pSum, int nScaleFactor,
642 Npp8u * pDeviceBuffer);
643
644/**
645 * 32-bit integer vector sum with integer scaling method
646 * \param pSrc \ref source_signal_pointer.
647 * \param nLength \ref length_specification.
648 * \param pSum Pointer to the output result.
649 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
650 * Use \ref nppsSumGetBufferSize_32s_Sfs to determine the minium number of bytes required.
651 * \param nScaleFactor \ref integer_result_scaling.
652 * \param nppStreamCtx \ref application_managed_stream_context.
653 * \return \ref signal_data_error_codes, \ref length_error_codes.
654 */
655NppStatus
656nppsSum_32s_Sfs_Ctx(const Npp32s * pSrc, size_t nLength, Npp32s * pSum, int nScaleFactor,
657 Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
658/**
659 * 32-bit integer vector sum with integer scaling method
660 * \param pSrc \ref source_signal_pointer.
661 * \param nLength \ref length_specification.
662 * \param pSum Pointer to the output result.
663 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
664 * Use \ref nppsSumGetBufferSize_32s_Sfs to determine the minium number of bytes required.
665 * \param nScaleFactor \ref integer_result_scaling.
666 * \return \ref signal_data_error_codes, \ref length_error_codes.
667 */
668NppStatus
669nppsSum_32s_Sfs(const Npp32s * pSrc, size_t nLength, Npp32s * pSum, int nScaleFactor,
670 Npp8u * pDeviceBuffer);
671
672/**
673 * 16-bit short complex vector sum with integer scaling method
674 * \param pSrc \ref source_signal_pointer.
675 * \param nLength \ref length_specification.
676 * \param pSum Pointer to the output result.
677 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
678 * Use \ref nppsSumGetBufferSize_16sc_Sfs to determine the minium number of bytes required.
679 * \param nScaleFactor \ref integer_result_scaling.
680 * \param nppStreamCtx \ref application_managed_stream_context.
681 * \return \ref signal_data_error_codes, \ref length_error_codes.
682 */
683NppStatus
684nppsSum_16sc_Sfs_Ctx(const Npp16sc * pSrc, size_t nLength, Npp16sc * pSum, int nScaleFactor,
685 Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
686/**
687 * 16-bit short complex vector sum with integer scaling method
688 * \param pSrc \ref source_signal_pointer.
689 * \param nLength \ref length_specification.
690 * \param pSum Pointer to the output result.
691 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
692 * Use \ref nppsSumGetBufferSize_16sc_Sfs to determine the minium number of bytes required.
693 * \param nScaleFactor \ref integer_result_scaling.
694 * \return \ref signal_data_error_codes, \ref length_error_codes.
695 */
696NppStatus
697nppsSum_16sc_Sfs(const Npp16sc * pSrc, size_t nLength, Npp16sc * pSum, int nScaleFactor,
698 Npp8u * pDeviceBuffer);
699
700/**
701 * 16-bit short complex vector sum (32bit int complex) with integer scaling
702 * method
703 * \param pSrc \ref source_signal_pointer.
704 * \param nLength \ref length_specification.
705 * \param pSum Pointer to the output result.
706 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
707 * Use \ref nppsSumGetBufferSize_16sc32sc_Sfs to determine the minium number of bytes required.
708 * \param nScaleFactor \ref integer_result_scaling.
709 * \param nppStreamCtx \ref application_managed_stream_context.
710 * \return \ref signal_data_error_codes, \ref length_error_codes.
711 */
712NppStatus
713nppsSum_16sc32sc_Sfs_Ctx(const Npp16sc * pSrc, size_t nLength, Npp32sc * pSum, int nScaleFactor,
714 Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
715/**
716 * 16-bit short complex vector sum (32bit int complex) with integer scaling
717 * method
718 * \param pSrc \ref source_signal_pointer.
719 * \param nLength \ref length_specification.
720 * \param pSum Pointer to the output result.
721 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
722 * Use \ref nppsSumGetBufferSize_16sc32sc_Sfs to determine the minium number of bytes required.
723 * \param nScaleFactor \ref integer_result_scaling.
724 * \return \ref signal_data_error_codes, \ref length_error_codes.
725 */
726NppStatus
727nppsSum_16sc32sc_Sfs(const Npp16sc * pSrc, size_t nLength, Npp32sc * pSum, int nScaleFactor,
728 Npp8u * pDeviceBuffer);
729
730/**
731 * 16-bit integer vector sum (32bit) with integer scaling method
732 * \param pSrc \ref source_signal_pointer.
733 * \param nLength \ref length_specification.
734 * \param pSum Pointer to the output result.
735 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
736 * Use \ref nppsSumGetBufferSize_16s32s_Sfs to determine the minium number of bytes required.
737 * \param nScaleFactor \ref integer_result_scaling.
738 * \param nppStreamCtx \ref application_managed_stream_context.
739 * \return \ref signal_data_error_codes, \ref length_error_codes.
740 */
741NppStatus
742nppsSum_16s32s_Sfs_Ctx(const Npp16s * pSrc, size_t nLength, Npp32s * pSum, int nScaleFactor,
743 Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
744/**
745 * 16-bit integer vector sum (32bit) with integer scaling method
746 * \param pSrc \ref source_signal_pointer.
747 * \param nLength \ref length_specification.
748 * \param pSum Pointer to the output result.
749 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
750 * Use \ref nppsSumGetBufferSize_16s32s_Sfs to determine the minium number of bytes required.
751 * \param nScaleFactor \ref integer_result_scaling.
752 * \return \ref signal_data_error_codes, \ref length_error_codes.
753 */
754NppStatus
755nppsSum_16s32s_Sfs(const Npp16s * pSrc, size_t nLength, Npp32s * pSum, int nScaleFactor,
756 Npp8u * pDeviceBuffer);
757
758/** @} signal_sum */
759
760
761/**
762 * \section signal_max Maximum
763 * @defgroup signal_max Maximum
764 * Performs the maximum operation on the samples of a signal.
765 * @{
766 *
767 */
768
769/**
770 * Device scratch buffer size (in bytes) for nppsMax_16s.
771 * \param nLength \ref length_specification.
772 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
773 * <em>host pointer.</em> \ref general_scratch_buffer.
774 * \param nppStreamCtx \ref application_managed_stream_context.
775 * \return NPP_SUCCESS
776 */
777NppStatus
778nppsMaxGetBufferSize_16s_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
779/**
780 * Device scratch buffer size (in bytes) for nppsMax_16s.
781 * \param nLength \ref length_specification.
782 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
783 * <em>host pointer.</em> \ref general_scratch_buffer.
784 * \return NPP_SUCCESS
785 */
786NppStatus
787nppsMaxGetBufferSize_16s(size_t nLength, size_t * hpBufferSize /* host pointer */);
788
789/**
790 * Device scratch buffer size (in bytes) for nppsMax_32s.
791 * \param nLength \ref length_specification.
792 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
793 * <em>host pointer.</em> \ref general_scratch_buffer.
794 * \param nppStreamCtx \ref application_managed_stream_context.
795 * \return NPP_SUCCESS
796 */
797NppStatus
798nppsMaxGetBufferSize_32s_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
799/**
800 * Device scratch buffer size (in bytes) for nppsMax_32s.
801 * \param nLength \ref length_specification.
802 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
803 * <em>host pointer.</em> \ref general_scratch_buffer.
804 * \return NPP_SUCCESS
805 */
806NppStatus
807nppsMaxGetBufferSize_32s(size_t nLength, size_t * hpBufferSize /* host pointer */);
808
809/**
810 * Device scratch buffer size (in bytes) for nppsMax_32f.
811 * \param nLength \ref length_specification.
812 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
813 * <em>host pointer.</em> \ref general_scratch_buffer.
814 * \param nppStreamCtx \ref application_managed_stream_context.
815 * \return NPP_SUCCESS
816 */
817NppStatus
818nppsMaxGetBufferSize_32f_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
819/**
820 * Device scratch buffer size (in bytes) for nppsMax_32f.
821 * \param nLength \ref length_specification.
822 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
823 * <em>host pointer.</em> \ref general_scratch_buffer.
824 * \return NPP_SUCCESS
825 */
826NppStatus
827nppsMaxGetBufferSize_32f(size_t nLength, size_t * hpBufferSize /* host pointer */);
828
829/**
830 * Device scratch buffer size (in bytes) for nppsMax_64f.
831 * \param nLength \ref length_specification.
832 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
833 * <em>host pointer.</em> \ref general_scratch_buffer.
834 * \param nppStreamCtx \ref application_managed_stream_context.
835 * \return NPP_SUCCESS
836 */
837NppStatus
838nppsMaxGetBufferSize_64f_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
839/**
840 * Device scratch buffer size (in bytes) for nppsMax_64f.
841 * \param nLength \ref length_specification.
842 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
843 * <em>host pointer.</em> \ref general_scratch_buffer.
844 * \return NPP_SUCCESS
845 */
846NppStatus
847nppsMaxGetBufferSize_64f(size_t nLength, size_t * hpBufferSize /* host pointer */);
848
849/**
850 * 16-bit integer vector max method
851 * \param pSrc \ref source_signal_pointer.
852 * \param nLength \ref length_specification.
853 * \param pMax Pointer to the output result.
854 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
855 * Use \ref nppsMaxGetBufferSize_16s to determine the minium number of bytes required.
856 * \param nppStreamCtx \ref application_managed_stream_context.
857 * \return \ref signal_data_error_codes, \ref length_error_codes.
858 */
859NppStatus
860nppsMax_16s_Ctx(const Npp16s * pSrc, size_t nLength, Npp16s * pMax, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
861/**
862 * 16-bit integer vector max method
863 * \param pSrc \ref source_signal_pointer.
864 * \param nLength \ref length_specification.
865 * \param pMax Pointer to the output result.
866 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
867 * Use \ref nppsMaxGetBufferSize_16s to determine the minium number of bytes required.
868 * \return \ref signal_data_error_codes, \ref length_error_codes.
869 */
870NppStatus
871nppsMax_16s(const Npp16s * pSrc, size_t nLength, Npp16s * pMax, Npp8u * pDeviceBuffer);
872
873/**
874 * 32-bit integer vector max method
875 * \param pSrc \ref source_signal_pointer.
876 * \param nLength \ref length_specification.
877 * \param pMax Pointer to the output result.
878 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
879 * Use \ref nppsMaxGetBufferSize_32s to determine the minium number of bytes required.
880 * \param nppStreamCtx \ref application_managed_stream_context.
881 * \return \ref signal_data_error_codes, \ref length_error_codes.
882 */
883NppStatus
884nppsMax_32s_Ctx(const Npp32s * pSrc, size_t nLength, Npp32s * pMax, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
885/**
886 * 32-bit integer vector max method
887 * \param pSrc \ref source_signal_pointer.
888 * \param nLength \ref length_specification.
889 * \param pMax Pointer to the output result.
890 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
891 * Use \ref nppsMaxGetBufferSize_32s to determine the minium number of bytes required.
892 * \return \ref signal_data_error_codes, \ref length_error_codes.
893 */
894NppStatus
895nppsMax_32s(const Npp32s * pSrc, size_t nLength, Npp32s * pMax, Npp8u * pDeviceBuffer);
896
897/**
898 * 32-bit float vector max method
899 * \param pSrc \ref source_signal_pointer.
900 * \param nLength \ref length_specification.
901 * \param pMax Pointer to the output result.
902 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
903 * Use \ref nppsMaxGetBufferSize_32f to determine the minium number of bytes required.
904 * \param nppStreamCtx \ref application_managed_stream_context.
905 * \return \ref signal_data_error_codes, \ref length_error_codes.
906 */
907NppStatus
908nppsMax_32f_Ctx(const Npp32f * pSrc, size_t nLength, Npp32f * pMax, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
909/**
910 * 32-bit float vector max method
911 * \param pSrc \ref source_signal_pointer.
912 * \param nLength \ref length_specification.
913 * \param pMax Pointer to the output result.
914 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
915 * Use \ref nppsMaxGetBufferSize_32f to determine the minium number of bytes required.
916 * \return \ref signal_data_error_codes, \ref length_error_codes.
917 */
918NppStatus
919nppsMax_32f(const Npp32f * pSrc, size_t nLength, Npp32f * pMax, Npp8u * pDeviceBuffer);
920
921/**
922 * 64-bit float vector max method
923 * \param pSrc \ref source_signal_pointer.
924 * \param nLength \ref length_specification.
925 * \param pMax Pointer to the output result.
926 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
927 * Use \ref nppsMaxGetBufferSize_64f to determine the minium number of bytes required.
928 * \param nppStreamCtx \ref application_managed_stream_context.
929 * \return \ref signal_data_error_codes, \ref length_error_codes.
930 */
931NppStatus
932nppsMax_64f_Ctx(const Npp64f * pSrc, size_t nLength, Npp64f * pMax, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
933/**
934 * 64-bit float vector max method
935 * \param pSrc \ref source_signal_pointer.
936 * \param nLength \ref length_specification.
937 * \param pMax Pointer to the output result.
938 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
939 * Use \ref nppsMaxGetBufferSize_64f to determine the minium number of bytes required.
940 * \return \ref signal_data_error_codes, \ref length_error_codes.
941 */
942NppStatus
943nppsMax_64f(const Npp64f * pSrc, size_t nLength, Npp64f * pMax, Npp8u * pDeviceBuffer);
944
945/**
946 * Device scratch buffer size (in bytes) for nppsMaxIndx_16s.
947 * \param nLength \ref length_specification.
948 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
949 * <em>host pointer.</em> \ref general_scratch_buffer.
950 * \param nppStreamCtx \ref application_managed_stream_context.
951 * \return NPP_SUCCESS
952 */
953NppStatus
954nppsMaxIndxGetBufferSize_16s_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
955/**
956 * Device scratch buffer size (in bytes) for nppsMaxIndx_16s.
957 * \param nLength \ref length_specification.
958 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
959 * <em>host pointer.</em> \ref general_scratch_buffer.
960 * \return NPP_SUCCESS
961 */
962NppStatus
963nppsMaxIndxGetBufferSize_16s(size_t nLength, size_t * hpBufferSize /* host pointer */);
964
965/**
966 * Device scratch buffer size (in bytes) for nppsMaxIndx_32s.
967 * \param nLength \ref length_specification.
968 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
969 * <em>host pointer.</em> \ref general_scratch_buffer.
970 * \param nppStreamCtx \ref application_managed_stream_context.
971 * \return NPP_SUCCESS
972 */
973NppStatus
974nppsMaxIndxGetBufferSize_32s_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
975/**
976 * Device scratch buffer size (in bytes) for nppsMaxIndx_32s.
977 * \param nLength \ref length_specification.
978 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
979 * <em>host pointer.</em> \ref general_scratch_buffer.
980 * \return NPP_SUCCESS
981 */
982NppStatus
983nppsMaxIndxGetBufferSize_32s(size_t nLength, size_t * hpBufferSize /* host pointer */);
984
985/**
986 * Device scratch buffer size (in bytes) for nppsMaxIndx_32f.
987 * \param nLength \ref length_specification.
988 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
989 * <em>host pointer.</em> \ref general_scratch_buffer.
990 * \param nppStreamCtx \ref application_managed_stream_context.
991 * \return NPP_SUCCESS
992 */
993NppStatus
994nppsMaxIndxGetBufferSize_32f_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
995/**
996 * Device scratch buffer size (in bytes) for nppsMaxIndx_32f.
997 * \param nLength \ref length_specification.
998 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
999 * <em>host pointer.</em> \ref general_scratch_buffer.
1000 * \return NPP_SUCCESS
1001 */
1002NppStatus
1003nppsMaxIndxGetBufferSize_32f(size_t nLength, size_t * hpBufferSize /* host pointer */);
1004
1005/**
1006 * Device scratch buffer size (in bytes) for nppsMaxIndx_64f.
1007 * \param nLength \ref length_specification.
1008 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
1009 * <em>host pointer.</em> \ref general_scratch_buffer.
1010 * \param nppStreamCtx \ref application_managed_stream_context.
1011 * \return NPP_SUCCESS
1012 */
1013NppStatus
1014nppsMaxIndxGetBufferSize_64f_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
1015/**
1016 * Device scratch buffer size (in bytes) for nppsMaxIndx_64f.
1017 * \param nLength \ref length_specification.
1018 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
1019 * <em>host pointer.</em> \ref general_scratch_buffer.
1020 * \return NPP_SUCCESS
1021 */
1022NppStatus
1023nppsMaxIndxGetBufferSize_64f(size_t nLength, size_t * hpBufferSize /* host pointer */);
1024
1025/**
1026 * 16-bit integer vector max index method
1027 * \param pSrc \ref source_signal_pointer.
1028 * \param nLength \ref length_specification.
1029 * \param pMax Pointer to the output result.
1030 * \param pIndx Pointer to the index value of the first maximum element.
1031 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1032 * Use \ref nppsMaxIndxGetBufferSize_16s to determine the minium number of bytes required.
1033 * \param nppStreamCtx \ref application_managed_stream_context.
1034 * \return \ref signal_data_error_codes, \ref length_error_codes.
1035 */
1036NppStatus
1037nppsMaxIndx_16s_Ctx(const Npp16s * pSrc, size_t nLength, Npp16s * pMax, int * pIndx, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
1038/**
1039 * 16-bit integer vector max index method
1040 * \param pSrc \ref source_signal_pointer.
1041 * \param nLength \ref length_specification.
1042 * \param pMax Pointer to the output result.
1043 * \param pIndx Pointer to the index value of the first maximum element.
1044 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1045 * Use \ref nppsMaxIndxGetBufferSize_16s to determine the minium number of bytes required.
1046 * \return \ref signal_data_error_codes, \ref length_error_codes.
1047 */
1048NppStatus
1049nppsMaxIndx_16s(const Npp16s * pSrc, size_t nLength, Npp16s * pMax, int * pIndx, Npp8u * pDeviceBuffer);
1050
1051/**
1052 * 32-bit integer vector max index method
1053 * \param pSrc \ref source_signal_pointer.
1054 * \param nLength \ref length_specification.
1055 * \param pMax Pointer to the output result.
1056 * \param pIndx Pointer to the index value of the first maximum element.
1057 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1058 * Use \ref nppsMaxIndxGetBufferSize_32s to determine the minium number of bytes required.
1059 * \param nppStreamCtx \ref application_managed_stream_context.
1060 * \return \ref signal_data_error_codes, \ref length_error_codes.
1061 */
1062NppStatus
1063nppsMaxIndx_32s_Ctx(const Npp32s * pSrc, size_t nLength, Npp32s * pMax, int * pIndx, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
1064/**
1065 * 32-bit integer vector max index method
1066 * \param pSrc \ref source_signal_pointer.
1067 * \param nLength \ref length_specification.
1068 * \param pMax Pointer to the output result.
1069 * \param pIndx Pointer to the index value of the first maximum element.
1070 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1071 * Use \ref nppsMaxIndxGetBufferSize_32s to determine the minium number of bytes required.
1072 * \return \ref signal_data_error_codes, \ref length_error_codes.
1073 */
1074NppStatus
1075nppsMaxIndx_32s(const Npp32s * pSrc, size_t nLength, Npp32s * pMax, int * pIndx, Npp8u * pDeviceBuffer);
1076
1077/**
1078 * 32-bit float vector max index method
1079 * \param pSrc \ref source_signal_pointer.
1080 * \param nLength \ref length_specification.
1081 * \param pMax Pointer to the output result.
1082 * \param pIndx Pointer to the index value of the first maximum element.
1083 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1084 * Use \ref nppsMaxIndxGetBufferSize_32f to determine the minium number of bytes required.
1085 * \param nppStreamCtx \ref application_managed_stream_context.
1086 * \return \ref signal_data_error_codes, \ref length_error_codes.
1087 */
1088NppStatus
1089nppsMaxIndx_32f_Ctx(const Npp32f * pSrc, size_t nLength, Npp32f * pMax, int * pIndx, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
1090/**
1091 * 32-bit integer vector max index method
1092 * \param pSrc \ref source_signal_pointer.
1093 * \param nLength \ref length_specification.
1094 * \param pMax Pointer to the output result.
1095 * \param pIndx Pointer to the index value of the first maximum element.
1096 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1097 * Use \ref nppsMaxIndxGetBufferSize_32s to determine the minium number of bytes required.
1098 * \return \ref signal_data_error_codes, \ref length_error_codes.
1099 */
1100NppStatus
1101nppsMaxIndx_32f(const Npp32f * pSrc, size_t nLength, Npp32f * pMax, int * pIndx, Npp8u * pDeviceBuffer);
1102
1103/**
1104 * 64-bit float vector max index method
1105 * \param pSrc \ref source_signal_pointer.
1106 * \param nLength \ref length_specification.
1107 * \param pMax Pointer to the output result.
1108 * \param pIndx Pointer to the index value of the first maximum element.
1109 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1110 * Use \ref nppsMaxIndxGetBufferSize_64f to determine the minium number of bytes required.
1111 * \param nppStreamCtx \ref application_managed_stream_context.
1112 * \return \ref signal_data_error_codes, \ref length_error_codes.
1113 */
1114NppStatus
1115nppsMaxIndx_64f_Ctx(const Npp64f * pSrc, size_t nLength, Npp64f * pMax, int * pIndx, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
1116/**
1117 * 64-bit float vector max index method
1118 * \param pSrc \ref source_signal_pointer.
1119 * \param nLength \ref length_specification.
1120 * \param pMax Pointer to the output result.
1121 * \param pIndx Pointer to the index value of the first maximum element.
1122 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1123 * Use \ref nppsMaxIndxGetBufferSize_64f to determine the minium number of bytes required.
1124 * \return \ref signal_data_error_codes, \ref length_error_codes.
1125 */
1126NppStatus
1127nppsMaxIndx_64f(const Npp64f * pSrc, size_t nLength, Npp64f * pMax, int * pIndx, Npp8u * pDeviceBuffer);
1128
1129/**
1130 * Device scratch buffer size (in bytes) for nppsMaxAbs_16s.
1131 * \param nLength \ref length_specification.
1132 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
1133 * <em>host pointer.</em> \ref general_scratch_buffer.
1134 * \param nppStreamCtx \ref application_managed_stream_context.
1135 * \return NPP_SUCCESS
1136 */
1137NppStatus
1138nppsMaxAbsGetBufferSize_16s_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
1139/**
1140 * Device scratch buffer size (in bytes) for nppsMaxAbs_16s.
1141 * \param nLength \ref length_specification.
1142 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
1143 * <em>host pointer.</em> \ref general_scratch_buffer.
1144 * \return NPP_SUCCESS
1145 */
1146NppStatus
1147nppsMaxAbsGetBufferSize_16s(size_t nLength, size_t * hpBufferSize /* host pointer */);
1148
1149/**
1150 * Device scratch buffer size (in bytes) for nppsMaxAbs_32s.
1151 * \param nLength \ref length_specification.
1152 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
1153 * <em>host pointer.</em> \ref general_scratch_buffer.
1154 * \param nppStreamCtx \ref application_managed_stream_context.
1155 * \return NPP_SUCCESS
1156 */
1157NppStatus
1158nppsMaxAbsGetBufferSize_32s_Ctx(size_t nLength, size_t * hpBufferSize /* host pointer */, NppStreamContext nppStreamCtx);
1159/**
1160 * Device scratch buffer size (in bytes) for nppsMaxAbs_32s.
1161 * \param nLength \ref length_specification.
1162 * \param hpBufferSize Required buffer size. Important: hpBufferSize is a
1163 * <em>host pointer.</em> \ref general_scratch_buffer.
1164 * \return NPP_SUCCESS
1165 */
1166NppStatus
1167nppsMaxAbsGetBufferSize_32s(size_t nLength, size_t * hpBufferSize /* host pointer */);
1168
1169/**
1170 * 16-bit integer vector max absolute method
1171 * \param pSrc \ref source_signal_pointer.
1172 * \param nLength \ref length_specification.
1173 * \param pMaxAbs Pointer to the output result.
1174 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1175 * Use \ref nppsMaxAbsGetBufferSize_16s to determine the minium number of bytes required.
1176 * \param nppStreamCtx \ref application_managed_stream_context.
1177 * \return \ref signal_data_error_codes, \ref length_error_codes.
1178 */
1179NppStatus
1180nppsMaxAbs_16s_Ctx(const Npp16s * pSrc, size_t nLength, Npp16s * pMaxAbs, Npp8u * pDeviceBuffer, NppStreamContext nppStreamCtx);
1181/**
1182 * 16-bit integer vector max absolute method
1183 * \param pSrc \ref source_signal_pointer.
1184 * \param nLength \ref length_specification.
1185 * \param pMaxAbs Pointer to the output result.
1186 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1187 * Use \ref nppsMaxAbsGetBufferSize_16s to determine the minium number of bytes required.
1188 * \return \ref signal_data_error_codes, \ref length_error_codes.
1189 */
1190NppStatus
1191nppsMaxAbs_16s(const Npp16s * pSrc, size_t nLength, Npp16s * pMaxAbs, Npp8u * pDeviceBuffer);
1192
1193/**
1194 * 32-bit integer vector max absolute method
1195 * \param pSrc \ref source_signal_pointer.
1196 * \param nLength \ref length_specification.
1197 * \param pMaxAbs Pointer to the output result.
1198 * \param pDeviceBuffer Pointer to the required device memory allocation, \ref general_scratch_buffer.
1199 * Use \ref nppsMaxAbsGetBufferSize_32s to determine the minium number of bytes required.
1200 * \param nppStreamCtx \ref application_managed_stream_context.
