summaryrefslogtreecommitdiff
path: root/drivers/media/sprd_dcam/common/sin_cos.h
blob: f8b02ea3cec96f5fcb1010b48b354d3df0c68d1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/******************************************************************************
 ** File Name:      sin_cos.h                                                 *
 ** Author:         shan.he                                                   *
 ** DATE:           2010-11-22                                                *
 ** Copyright:      2010 Spreadtrum, Incoporated. All Rights Reserved.        *
 ** Description:                                                              *
 ** Note:                                                      				  *
 *****************************************************************************/
/******************************************************************************
 **                   Edit    History                                         *
 **---------------------------------------------------------------------------*
 ** DATE              NAME            DESCRIPTION                             *
 *****************************************************************************/
#ifndef _SIN_COS_H_
#define _SIN_COS_H_

/**---------------------------------------------------------------------------*
 **                         Dependencies                                      *
 **---------------------------------------------------------------------------*/
//#include "sci_types.h"
#include <linux/types.h>

/**---------------------------------------------------------------------------*
 **                         Macros                                            *
 **---------------------------------------------------------------------------*/
#define COSSIN_Q 30

#define pi              3.14159265359
#define PI_32           0x3243F6A88              //pi * (1 << 32)
#define ARC_32_COEF     0x80000000
//convert arc of double type to int32 type
#define ARC_32(arc) (int32_t)((arc) / (pi) * 2147483648);

/**---------------------------------------------------------------------------*
 **                         Compiler Flag                                     *
 **---------------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C"
{
#endif

/**---------------------------------------------------------------------------*
 **                         Public Functions                                  *
 **---------------------------------------------------------------------------*/
/****************************************************************************/
/* Purpose:	get the sin value of an arc at Q32							    */
/* Author:																	*/
/* Input:   arc at Q32	    				     	                    	*/
/* Output:	none															*/
/* Return:	sin value at Q30							                    */
/* Note:   arc at Q32 = arc * (2 ^ 32)  									*/
/*         value at Q30 = value * (2 ^ 30)                                  */
/****************************************************************************/
int32_t dcam_sin_32(int32_t n);

/****************************************************************************/
/* Purpose:	get the cos value of an arc at Q32							    */
/* Author:																	*/
/* Input:   arc at Q32	    				     	                    	*/
/* Output:	none															*/
/* Return:	cos value at Q30							                    */
/* Note:   arc at Q32 = arc * (2 ^ 32)  									*/
/*         value at Q30 = value * (2 ^ 30)                                  */
/****************************************************************************/
int32_t dcam_cos_32(int32_t n);

/**---------------------------------------------------------------------------*
 **                         Compiler Flag                                     *
 **---------------------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif

#endif