1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
/*
* Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
* (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
*
* This file is part of lsp-dsp-lib
* Created on: 31 мар. 2020 г.
*
* lsp-dsp-lib is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* lsp-dsp-lib is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with lsp-dsp-lib. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef LSP_PLUG_IN_DSP_COMMON_PMATH_OP_KX_H_
#define LSP_PLUG_IN_DSP_COMMON_PMATH_OP_KX_H_
#include <lsp-plug.in/dsp/common/types.h>
/**
* Add constant value to the data
* @param dst destination
* @param k constant value to add
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, add_k2, float *dst, float k, size_t count);
/**
* Subtract constant value from the data
* @param dst destination
* @param k constant value to subtract
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, sub_k2, float *dst, float k, size_t count);
/**
* Subtract data from constant value
* @param dst destination
* @param k constant value to subtract
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, rsub_k2, float *dst, float k, size_t count);
/**
* Divide data by constant value
* @param dst destination
* @param k constant value to use as divisor
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, div_k2, float *dst, float k, size_t count);
/**
* Divide constant value by data
* @param dst destination
* @param k constant value to use as divisor
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, rdiv_k2, float *dst, float k, size_t count);
/**
* Compute remainder of dst/k: dst = dst - k * int(dst/k)
* @param dst destination
* @param k constant value to use as divisor
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, mod_k2, float *dst, float k, size_t count);
/**
* Compute remainder of k/dst: dst = k - dst * int(k/dst)
* @param dst destination/divisor
* @param k constant value to use as divident
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, rmod_k2, float *dst, float k, size_t count);
/** Scale: dst[i] = dst[i] * k
*
* @param dst destination
* @param k multiplier
* @param count number of elements
*/
LSP_DSP_LIB_SYMBOL(void, mul_k2, float *dst, float k, size_t count);
/**
* Add constant value to the data
* @param dst destination
* @param src source
* @param k constant value to add
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, add_k3, float *dst, const float *src, float k, size_t count);
/**
* Subtract constant value from the data
* @param dst destination
* @param src source
* @param k constant value to subtract
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, sub_k3, float *dst, const float *src, float k, size_t count);
/**
* Subtract value data from constant value
* @param dst destination
* @param src source
* @param k constant value to subtract
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, rsub_k3, float *dst, const float *src, float k, size_t count);
/**
* Divide data by constant value
* @param dst destination
* @param src source
* @param k constant value to use as divisor
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, div_k3, float *dst, const float *src, float k, size_t count);
/**
* Divide constant value by data
* @param dst destination
* @param k constant value to use as divisor
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, rdiv_k3, float *dst, const float *src, float k, size_t count);
/**
* Compute remainder of src/k: dst = src - k * int(src/k)
* @param dst destination
* @param k constant value to use as divisor
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, mod_k3, float *dst, const float *src, float k, size_t count);
/**
* Compute remainder of k/src: dst = k - src * int(k/src)
* @param dst destination
* @param k constant value to use as divisor
* @param count number of elements of destination to modify
*/
LSP_DSP_LIB_SYMBOL(void, rmod_k3, float *dst, const float *src, float k, size_t count);
/** Scale: dst[i] = src[i] * k
*
* @param dst destination
* @param src source
* @param k multiplier
* @param count number of elements
*/
LSP_DSP_LIB_SYMBOL(void, mul_k3, float *dst, const float *src, float k, size_t count);
#endif /* LSP_PLUG_IN_DSP_COMMON_PMATH_OP_KX_H_ */
|