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