1e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
2e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*
3e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Copyright 2003-2010, VisualOn, Inc.
4e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
5e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Licensed under the Apache License, Version 2.0 (the "License");
6e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** you may not use this file except in compliance with the License.
7e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** You may obtain a copy of the License at
8e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
9e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **     http://www.apache.org/licenses/LICENSE-2.0
10e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
11e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Unless required by applicable law or agreed to in writing, software
12e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** distributed under the License is distributed on an "AS IS" BASIS,
13e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** See the License for the specific language governing permissions and
15e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** limitations under the License.
16e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard */
17e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
18e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
19e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/********************************************************************************
20e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*
21e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*      File             : log2.h
22e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*      Purpose          : Computes log2(L_x)
23e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*
24e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard********************************************************************************
25e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*/
26e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#ifndef __LOG2_H__
27e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define __LOG2_H__
28b676a05348e4c516fa8b57e33b10548e6142c3f8Mans Rullgard
29e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*
30e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard********************************************************************************
31e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*                         INCLUDE FILES
32e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard********************************************************************************
33e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*/
34e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#include "typedef.h"
35b676a05348e4c516fa8b57e33b10548e6142c3f8Mans Rullgard
36e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*
37e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard********************************************************************************
38e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*                         DEFINITION OF DATA TYPES
39e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard********************************************************************************
40e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*/
41b676a05348e4c516fa8b57e33b10548e6142c3f8Mans Rullgard
42e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*
43e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard********************************************************************************
44e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*                         DECLARATION OF PROTOTYPES
45e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard********************************************************************************
46e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*/
47e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgardvoid Log2 (
48e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word32 L_x,        /* (i) : input value                                 */
49e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word16 *exponent,  /* (o) : Integer part of Log2.   (range: 0<=val<=30) */
50e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word16 *fraction   /* (o) : Fractional part of Log2. (range: 0<=val<1)*/
51e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	  );
52e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
53e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgardvoid Log2_norm (
54e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word32 L_x,         /* (i) : input value (normalized)                    */
55e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word16 exp,         /* (i) : norm_l (L_x)                                */
56e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word16 *exponent,   /* (o) : Integer part of Log2.   (range: 0<=val<=30) */
57e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word16 *fraction    /* (o) : Fractional part of Log2. (range: 0<=val<1)  */
58e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	       );
59e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
60e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#endif  //__LOG2_H__
61e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
62e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
63