[Groonga-commit] groonga/groonga at 0ca40ff [master] grn_ts: add arithmetic operators for Time

Back to archive index

susumu.yata null+****@clear*****
Tue Sep 15 21:36:15 JST 2015


susumu.yata	2015-09-15 21:36:15 +0900 (Tue, 15 Sep 2015)

  New Revision: 0ca40ff14f1eedfb4cb78d7921e84c530d257111
  https://github.com/groonga/groonga/commit/0ca40ff14f1eedfb4cb78d7921e84c530d257111

  Message:
    grn_ts: add arithmetic operators for Time
    
    GitHub: #387

  Modified files:
    lib/ts.c

  Modified: lib/ts.c (+30 -0)
===================================================================
--- lib/ts.c    2015-09-15 18:37:28 +0900 (c27f9d2)
+++ lib/ts.c    2015-09-15 21:36:15 +0900 (81dd7fd)
@@ -1058,6 +1058,18 @@ grn_ts_op_plus_float(grn_ts_float lhs, grn_ts_float rhs) {
   return lhs + rhs;
 }
 
+/* grn_ts_op_plus_time_int() returns lhs + rhs (Time + Int = Time). */
+inline static grn_ts_time
+grn_ts_op_plus_time_int(grn_ts_time lhs, grn_ts_int rhs) {
+  return lhs + (rhs * 1000000);
+}
+
+/* grn_ts_op_plus_time_float() returns lhs + rhs (Time + Float = Time). */
+inline static grn_ts_time
+grn_ts_op_plus_time_float(grn_ts_time lhs, grn_ts_float rhs) {
+  return lhs + (grn_ts_int)(rhs * 1000000.0);
+}
+
 /* grn_ts_op_minus_int() returns lhs - rhs. */
 inline static grn_ts_int
 grn_ts_op_minus_int(grn_ts_int lhs, grn_ts_int rhs) {
@@ -1070,6 +1082,24 @@ grn_ts_op_minus_float(grn_ts_float lhs, grn_ts_float rhs) {
   return lhs - rhs;
 }
 
+/* grn_ts_op_minus_time_time() returns lhs - rhs (Time - Time = Float). */
+inline static grn_ts_float
+grn_ts_op_minus_time_time(grn_ts_time lhs, grn_ts_time rhs) {
+  return (lhs - rhs) * 0.000001;
+}
+
+/* grn_ts_op_minus_time_int() returns lhs - rhs (Time - Int = Time). */
+inline static grn_ts_time
+grn_ts_op_minus_time_int(grn_ts_time lhs, grn_ts_int rhs) {
+  return lhs - (rhs * 1000000);
+}
+
+/* grn_ts_op_minus_time_float() returns lhs - rhs (Time - Float = Time). */
+inline static grn_ts_time
+grn_ts_op_minus_time_float(grn_ts_time lhs, grn_ts_float rhs) {
+  return lhs - (grn_ts_int)(rhs * 1000000.0);
+}
+
 /* grn_ts_op_multiplication_int() returns lhs * rhs. */
 inline static grn_ts_int
 grn_ts_op_multiplication_int(grn_ts_int lhs, grn_ts_int rhs) {
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index