16cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi/* 26cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * Copyright (C) 2013 The Android Open Source Project 36cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * 46cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License"); 56cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * you may not use this file except in compliance with the License. 66cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * You may obtain a copy of the License at 76cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * 86cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * http://www.apache.org/licenses/LICENSE-2.0 96cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * 106cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * Unless required by applicable law or agreed to in writing, software 116cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS, 126cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * See the License for the specific language governing permissions and 146cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi * limitations under the License. 156cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi */ 166cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 176cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#ifndef LE_FX_ENGINE_DSP_CORE_BASIC_H_ 186cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#define LE_FX_ENGINE_DSP_CORE_BASIC_H_ 196cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 206cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#include <limits.h> 216cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#include "common/core/math.h" 226cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#include "common/core/types.h" 236cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 246cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivinamespace le_fx { 256cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 266cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivinamespace sigmod { 276cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 286cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// Searchs for the interval that contains <x> using a divide-and-conquer 296cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// algorithm. 306cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// X[]: a vector of sorted values (X[i+1] > X[i]) 316cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// x: a value 326cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// StartIndex: the minimum searched index 336cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// EndIndex: the maximum searched index 346cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// returns: the index <i> that satisfies: X[i] <= x <= X[i+1] && 356cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi// StartIndex <= i <= (EndIndex-1) 366cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivitemplate <typename T> 376cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Triviint SearchIndex(const T x_data[], 386cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi T x, 396cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int start_index, 406cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi int end_index); 416cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 426cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi} // namespace sigmod 436cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 446cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi} // namespace le_fx 456cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 466cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#include "dsp/core/basic-inl.h" 476cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi 486cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi#endif // LE_FX_ENGINE_DSP_CORE_BASIC_H_ 49