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