comparison base/ColumnOp.h @ 1429:48e9f538e6e9

Untabify
author Chris Cannam
date Thu, 01 Mar 2018 18:02:22 +0000
parents 9ef1cc26024c
children 1b688ab5f1b3
comparison
equal deleted inserted replaced
1428:87ae75da6527 1429:48e9f538e6e9
58 /** 58 /**
59 * Scale the given column using the given gain multiplier. 59 * Scale the given column using the given gain multiplier.
60 */ 60 */
61 static Column applyGain(const Column &in, double gain) { 61 static Column applyGain(const Column &in, double gain) {
62 if (gain == 1.0) return in; 62 if (gain == 1.0) return in;
63 Column out; 63 Column out;
64 out.reserve(in.size()); 64 out.reserve(in.size());
65 for (auto v: in) out.push_back(float(v * gain)); 65 for (auto v: in) out.push_back(float(v * gain));
66 return out; 66 return out;
67 } 67 }
68 68
69 /** 69 /**
70 * Shift the values in the given column by the given offset. 70 * Shift the values in the given column by the given offset.
71 */ 71 */
72 static Column applyShift(const Column &in, float offset) { 72 static Column applyShift(const Column &in, float offset) {
73 if (offset == 0.f) return in; 73 if (offset == 0.f) return in;
74 Column out; 74 Column out;
75 out.reserve(in.size()); 75 out.reserve(in.size());
76 for (auto v: in) out.push_back(v + offset); 76 for (auto v: in) out.push_back(v + offset);
77 return out; 77 return out;
78 } 78 }
79 79
80 /** 80 /**
81 * Scale an FFT output downward by half the FFT size. 81 * Scale an FFT output downward by half the FFT size.
82 */ 82 */
93 return in[0] >= in[1]; 93 return in[0] >= in[1];
94 } 94 }
95 if (!in_range_for(in, ix+1)) { 95 if (!in_range_for(in, ix+1)) {
96 return in[ix] > in[ix-1]; 96 return in[ix] > in[ix-1];
97 } 97 }
98 if (in[ix] < in[ix+1]) { 98 if (in[ix] < in[ix+1]) {
99 return false; 99 return false;
100 } 100 }
101 if (in[ix] <= in[ix-1]) { 101 if (in[ix] <= in[ix-1]) {
102 return false; 102 return false;
103 } 103 }
104 return true; 104 return true;
105 } 105 }
106 106
107 /** 107 /**
108 * Return a column containing only the local peak values (all 108 * Return a column containing only the local peak values (all
109 * others zero). 109 * others zero).
128 * source column ("in") may be a partial column; it's assumed to 128 * source column ("in") may be a partial column; it's assumed to
129 * contain enough bins to span the destination range, starting 129 * contain enough bins to span the destination range, starting
130 * with the bin of index minbin. 130 * with the bin of index minbin.
131 */ 131 */
132 static Column distribute(const Column &in, 132 static Column distribute(const Column &in,
133 int h, 133 int h,
134 const std::vector<double> &binfory, 134 const std::vector<double> &binfory,
135 int minbin, 135 int minbin,
136 bool interpolate); 136 bool interpolate);
137 137
138 }; 138 };
139 139
140 #endif 140 #endif
141 141