Added quantiling UDAFs
[com/gs-lite.git] / cfg / internal_fcn.def
1 \r
2 Add_Int_Timeval\r
3 static struct timeval Add_Int_Timeval(int inc, struct timeval t){\r
4    struct timeval r;\r
5         r.tv_usec = t.tv_usec + (inc % 1000);\r
6         r.tv_sec = t.tv_sec + inc / 1000;\r
7         if(r.tv_usec > 999){\r
8                 r.tv_usec -= 1000;\r
9                 r.tv_sec++;\r
10         }\r
11         return(r);\r
12 }       \r
13 \r
14 Add_Timeval_Int\r
15 static struct timeval Add_Timeval_Int(struct timeval t, int inc){\r
16    struct timeval r;\r
17         r.tv_usec = t.tv_usec + (inc % 1000);\r
18         r.tv_sec = t.tv_sec + inc / 1000;\r
19         if(r.tv_usec > 999){\r
20                 r.tv_usec -= 1000;\r
21                 r.tv_sec++;\r
22         }\r
23         return(r);\r
24 }\r
25 \r
26 Subtract_Timeval_Int\r
27 static struct timeval Subtract_Timeval_Int(struct timeval t, int inc){\r
28    struct timeval r;\r
29         r.tv_usec = t.tv_usec - (inc % 1000);\r
30         r.tv_sec = t.tv_sec - inc / 1000;\r
31         if(r.tv_usec < 0){\r
32                 r.tv_usec += 1000;\r
33                 r.tv_sec--;\r
34         }\r
35         return(r);\r
36 }\r
37 \r
38 Divide_Timeval_Int\r
39 static struct timeval Divide_Timeval_Int(struct timeval t, int d){\r
40         struct timeval r;\r
41         r.tv_sec = t.tv_sec / d;\r
42         r.tv_usec = (t.tv_usec + 1000*( t.tv_sec % d )) / d;\r
43         return(r);\r
44 }       \r
45         \r
46 \r
47 Subtract_Timeval_Timeval\r
48 static int Subtract_Timeval_Timeval(struct timeval t1, struct timeval t2){\r
49         return(1000*(t1.tv_sec - t2.tv_sec) + (t1.tv_usec - t2.tv_usec) );\r
50 }\r
51 \r
52 Compare_Timeval\r
53 static int Compare_Timeval(struct timeval t1, struct timeval t2){\r
54         return( t1.tv_sec != t2.tv_sec ? t1.tv_sec - t2.tv_sec : t1.tv_usec - t2.tv_usec );\r
55 }\r
56 \r
57 Timeval_Constructor\r
58 static struct timeval Timeval_Constructor(int s, int m){\r
59    struct timeval r;\r
60         r.tv_sec = s;\r
61     r.tv_usec = m;\r
62         return(r);\r
63 }\r
64 \r
65 String_Constructor\r
66 static struct gs_string String_Constructor(char *l){\r
67   struct gs_string s;\r
68         s.data = l;\r
69     s.owner = NULL;\r
70         s.length = 0;\r
71     while(l[s.length] != '\0') s.length++;\r
72         return(s);\r
73 }\r
74 \r
75 Compare_String\r
76 \r
77 str_assign_with_copy\r
78 \r
79 str_assign_with_copy_in_tuple\r
80 \r
81 str_replace\r
82 \r
83 str_length\r
84 \r
85 str_destroy\r