1===============================================================================
2
3/*
4 *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
5 *
6 *  Use of this source code is governed by a BSD-style license
7 *  that can be found in the LICENSE file in the root of the source
8 *  tree. An additional intellectual property rights grant can be found
9 *  in the file PATENTS.  All contributing project authors may
10 *  be found in the AUTHORS file in the root of the source tree.
11 */
12
13===============================================================================
14
15/*
16 * Copyright (C) 2010 The Android Open Source Project
17 *
18 * Licensed under the Apache License, Version 2.0 (the "License");
19 * you may not use this file except in compliance with the License.
20 * You may obtain a copy of the License at
21 *
22 *      http://www.apache.org/licenses/LICENSE-2.0
23 *
24 * Unless required by applicable law or agreed to in writing, software
25 * distributed under the License is distributed on an "AS IS" BASIS,
26 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
27 * See the License for the specific language governing permissions and
28 * limitations under the License.
29 *
30 */
31
32===============================================================================
33
34/*
35 * http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html
36 * Copyright Takuya OOURA, 1996-2001
37 *
38 * You may use, copy, modify and distribute this code for any purpose (include
39 * commercial use) and without fee. Please refer to this package when you modify
40 * this code.
41 *
42 * Changes by the WebRTC authors:
43 *    - Trivial type modifications.
44 *    - Minimal code subset to do rdft of length 128.
45 *    - Optimizations because of known length.
46 *
47 *  All changes are covered by the WebRTC license and IP grant:
48 *  Use of this source code is governed by a BSD-style license
49 *  that can be found in the LICENSE file in the root of the source
50 *  tree. An additional intellectual property rights grant can be found
51 *  in the file PATENTS.  All contributing project authors may
52 *  be found in the AUTHORS file in the root of the source tree.
53 */
54
55===============================================================================
56
57/*
58 * http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html
59 * Copyright Takuya OOURA, 1996-2001
60 *
61 * You may use, copy, modify and distribute this code for any purpose (include
62 * commercial use) and without fee. Please refer to this package when you modify
63 * this code.
64 *
65 * Changes:
66 * Trivial type modifications by the WebRTC authors.
67 */
68
69===============================================================================
70
71/*Boost Software License - Version 1.0 - August 17th, 2003
72
73Permission is hereby granted, free of charge, to any person or organization
74obtaining a copy of the software and accompanying documentation covered by
75this license (the "Software") to use, reproduce, display, distribute,
76execute, and transmit the Software, and to prepare derivative works of the
77Software, and to permit third-parties to whom the Software is furnished to
78do so, all subject to the following:
79
80The copyright notices in the Software and this entire statement, including
81the above license grant, this restriction and the following disclaimer,
82must be included in all copies of the Software, in whole or in part, and
83all derivative works of the Software, unless such copies or derivative
84works are solely in the form of machine-executable object code generated by
85a source language processor.
86
87THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
88IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
89FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
90SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
91FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
92ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
93DEALINGS IN THE SOFTWARE.*/
94
95===============================================================================
96
97//          Copyright Steven J. Ross 2001 - 2009.
98// Distributed under the Boost Software License, Version 1.0.
99//    (See accompanying file LICENSE_1_0.txt or copy at
100//          http://www.boost.org/LICENSE_1_0.txt)
101
102//  See http://www.boost.org/ for updates, documentation, and revision history.
103
104/*
105Some improvements suggested by:
106Phil Endecott and Frank Gennari
107Cygwin fix provided by:
108Scott McMurray
109*/
110
111===============================================================================
112
113// Copyright (c) 2011 The Chromium Authors. All rights reserved.
114//
115// Redistribution and use in source and binary forms, with or without
116// modification, are permitted provided that the following conditions are
117// met:
118//
119//    * Redistributions of source code must retain the above copyright
120// notice, this list of conditions and the following disclaimer.
121//    * Redistributions in binary form must reproduce the above
122// copyright notice, this list of conditions and the following disclaimer
123// in the documentation and/or other materials provided with the
124// distribution.
125//    * Neither the name of Google Inc. nor the names of its
126// contributors may be used to endorse or promote products derived from
127// this software without specific prior written permission.
128//
129// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
130// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
131// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
132// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
133// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
134// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
135// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
136// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
137// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
138// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
139// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
140
141===============================================================================
142
143//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
144//  Copyright (c) 2001, 2002 Peter Dimov
145//
146//  Permission to copy, use, modify, sell and distribute this software
147//  is granted provided this copyright notice appears in all copies.
148//  This software is provided "as is" without express or implied
149//  warranty, and with no claim as to its suitability for any purpose.
150//
151//  See http://www.boost.org/libs/smart_ptr/scoped_ptr.htm for documentation.
152//
153
154//  scoped_ptr mimics a built-in pointer except that it guarantees deletion
155//  of the object pointed to, either on destruction of the scoped_ptr or via
156//  an explicit reset(). scoped_ptr is a simple solution for simple needs;
157//  use shared_ptr or std::auto_ptr if your needs are more complex.
158
159//  scoped_ptr_malloc added in by Google.  When one of
160//  these goes out of scope, instead of doing a delete or delete[], it
161//  calls free().  scoped_ptr_malloc<char> is likely to see much more
162//  use than any other specializations.
163
164//  release() added in by Google. Use this to conditionally
165//  transfer ownership of a heap-allocated object to the caller, usually on
166//  method success.
167
168
169===============================================================================
170/*
171 * Written by Wilco Dijkstra, 1996.
172 * Refer to NOTICE file at the root of git project.
173 *
174 * Minor modifications in code style for WebRTC, 2012.
175 */
176
177// The following email record is related to source files spl_sqrt_floor.c
178// and spl_sqrt_floor.s in trunk/src/common_audio/signal_processing/.
179//
180//
181// From: Wilco Dijkstra <Wilco.Dijkstra@ntlworld.com>
182// Date: Fri, Jun 24, 2011 at 3:20 AM
183// Subject: Re: sqrt routine
184// To: Kevin Ma <kma@google.com>
185// Hi Kevin,
186// Thanks for asking. Those routines are public domain (originally posted to 
187// comp.sys.arm a long time ago), so you can use them freely for any purpose.
188// Cheers,
189// Wilco
190//
191// ----- Original Message -----
192// From: "Kevin Ma" <kma@google.com>
193// To: <Wilco.Dijkstra@ntlworld.com>
194// Sent: Thursday, June 23, 2011 11:44 PM
195// Subject: Fwd: sqrt routine
196// Hi Wilco,
197// I saw your sqrt routine from several web sites, including
198// http://www.finesse.demon.co.uk/steven/sqrt.html.
199// Just wonder if there's any copyright information with your Successive
200// approximation routines, or if I can freely use it for any purpose.
201// Thanks.
202// Kevin
203