in StreamingASR/StreamingASR/app/src/main/cpp/librosa/librosa.h [45:76]
static Vectorf pad(Vectorf &x, int left, int right, const std::string &mode, float value){
Vectorf x_paded = Vectorf::Constant(left+x.size()+right, value);
x_paded.segment(left, x.size()) = x;
if (mode.compare("reflect") == 0){
for (int i = 0; i < left; ++i){
x_paded[i] = x[left-i];
}
for (int i = left; i < left+right; ++i){
x_paded[i+x.size()] = x[x.size()-2-i+left];
}
}
if (mode.compare("symmetric") == 0){
for (int i = 0; i < left; ++i){
x_paded[i] = x[left-i-1];
}
for (int i = left; i < left+right; ++i){
x_paded[i+x.size()] = x[x.size()-1-i+left];
}
}
if (mode.compare("edge") == 0){
for (int i = 0; i < left; ++i){
x_paded[i] = x[0];
}
for (int i = left; i < left+right; ++i){
x_paded[i+x.size()] = x[x.size()-1];
}
}
return x_paded;
}