Tizen 2.0 Release
[profile/ivi/osmesa.git] / src / glsl / builtins / ir / atan
1 ((function atan
2    (signature float
3      (parameters
4        (declare (in) float y_over_x))
5      ((return (call asin ((expression float *
6                            (var_ref y_over_x)
7                            (expression float rsq
8                             (expression float +
9                              (expression float *
10                               (var_ref y_over_x)
11                               (var_ref y_over_x))
12                              (constant float (1.0))))))))))
13
14    (signature vec2
15      (parameters
16        (declare (in) vec2 y_over_x))
17      ((return (call asin ((expression vec2 *
18                            (var_ref y_over_x)
19                            (expression vec2 rsq
20                             (expression vec2 +
21                              (expression vec2 *
22                               (var_ref y_over_x)
23                               (var_ref y_over_x))
24                              (constant float (1.0))))))))))
25
26    (signature vec3
27      (parameters
28        (declare (in) vec3 y_over_x))
29      ((return (call asin ((expression vec3 *
30                            (var_ref y_over_x)
31                            (expression vec3 rsq
32                             (expression vec3 +
33                              (expression vec3 *
34                               (var_ref y_over_x)
35                               (var_ref y_over_x))
36                              (constant float (1.0))))))))))
37
38    (signature vec4
39      (parameters
40        (declare (in) vec4 y_over_x))
41      ((return (call asin ((expression vec4 *
42                            (var_ref y_over_x)
43                            (expression vec4 rsq
44                             (expression vec4 +
45                              (expression vec4 *
46                               (var_ref y_over_x)
47                               (var_ref y_over_x))
48                              (constant float (1.0))))))))))
49
50   (signature float
51     (parameters
52       (declare (in ) float y)
53       (declare (in ) float x)
54     )
55     (
56       (declare () float r)
57       (if (expression bool >
58            (expression float abs (var_ref x))
59            (expression float * (constant float (1.0e-8)) (expression float abs (var_ref y)))) (
60         (assign (x) (var_ref r) (call atan ((expression float / (var_ref y) (var_ref x)))))
61         (if (expression bool < (var_ref x) (constant float (0.000000)) ) (
62           (if (expression bool >= (var_ref y) (constant float (0.000000)) )
63               ((assign (x) (var_ref r) (expression float + (var_ref r) (constant float (3.141593)))))
64               ((assign (x) (var_ref r) (expression float - (var_ref r) (constant float (3.141593))))))
65         )
66         (
67         ))
68       )
69       (
70         (declare () float sgn)
71         (assign (x) (var_ref sgn) (expression float sign (var_ref y)))
72         (assign (x) (var_ref r) (expression float * (var_ref sgn) (constant float (1.5707965))))
73       ))
74
75       (return (var_ref r) )
76     ))
77
78
79
80    (signature vec2
81      (parameters
82        (declare (in) vec2 y)
83        (declare (in) vec2 x))
84      ((declare () vec2 r)
85       (assign (x) (var_ref r)
86               (call atan ((swiz x (var_ref y))
87                           (swiz x (var_ref x)))))
88       (assign (y) (var_ref r)
89               (call atan ((swiz y (var_ref y))
90                           (swiz y (var_ref x)))))
91       (return (var_ref r))))
92
93    (signature vec3
94      (parameters
95        (declare (in) vec3 y)
96        (declare (in) vec3 x))
97      ((declare () vec3 r)
98       (assign (x) (var_ref r)
99               (call atan ((swiz x (var_ref y))
100                           (swiz x (var_ref x)))))
101       (assign (y) (var_ref r)
102               (call atan ((swiz y (var_ref y))
103                           (swiz y (var_ref x)))))
104       (assign (z) (var_ref r)
105               (call atan ((swiz z (var_ref y))
106                           (swiz z (var_ref x)))))
107       (return (var_ref r))))
108
109    (signature vec4
110      (parameters
111        (declare (in) vec4 y)
112        (declare (in) vec4 x))
113      ((declare () vec4 r)
114       (assign (x) (var_ref r)
115               (call atan ((swiz x (var_ref y))
116                           (swiz x (var_ref x)))))
117       (assign (y) (var_ref r)
118               (call atan ((swiz y (var_ref y))
119                           (swiz y (var_ref x)))))
120       (assign (z) (var_ref r)
121               (call atan ((swiz z (var_ref y))
122                           (swiz z (var_ref x)))))
123       (assign (w) (var_ref r)
124               (call atan ((swiz w (var_ref y))
125                           (swiz w (var_ref x)))))
126       (return (var_ref r)))))
127
128 ))