Changeset 2075
- Timestamp:
- Oct 13, 2004, 9:04:42 AM (22 years ago)
- Location:
- trunk/psLib/src
- Files:
-
- 2 edited
-
astro/psTime.c (modified) (9 diffs)
-
astronomy/psTime.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/astro/psTime.c
r2048 r2075 11 11 * @author Ross Harman, MHPCC 12 12 * 13 * @version $Revision: 1.3 1$ $Name: not supported by cvs2svn $14 * @date $Date: 2004-10-1 2 01:34:09$13 * @version $Revision: 1.32 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2004-10-13 19:04:42 $ 15 15 * 16 16 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 541 541 psF64 t = 0.0; 542 542 psF64 tu = 0.0; 543 psF64 ut1UtcDbl = 0.0; 543 544 psF64 const1 = 24110.5493771; 544 545 psF64 const2 = 8639877.3173760; … … 573 574 ALLOC_TIME(ut1UtcDelta); 574 575 ut1UtcDelta->type = PS_TIME_UTC; 575 ut1UtcDelta->usec = psTimeGetUT1Delta(utcTime)*1e6; 576 ut1Time = psTimeAdd(utcTime, ut1UtcDelta); 576 577 ut1UtcDbl = psTimeGetUT1Delta(utcTime)*1e6; 578 ut1UtcDelta->usec = (psU32)fabs(ut1UtcDbl); 579 if(ut1UtcDbl<0) { 580 ut1Time = psTimeSubtract(utcTime, ut1UtcDelta); 581 } else { 582 ut1Time = psTimeAdd(utcTime, ut1UtcDelta); 583 } 584 577 585 578 586 // Calculate UT1 as Julian Centuries since J2000.0 … … 993 1001 psTime* psTimeAdd(const psTime *tai1, const psTime *tai2) 994 1002 { 1003 long deltaUsec = 0; 995 1004 psTime *outTime = NULL; 996 1005 … … 1003 1012 ALLOC_TIME(outTime); 1004 1013 outTime->type = tai1->type; 1005 1006 1014 outTime->sec = tai1->sec + tai2->sec; 1007 outTime->usec = tai1->usec + tai2->usec;1008 1009 // Increment seconds in case of microsecond overflow after addition1010 if( outTime->usec<tai1->usec || outTime->usec<tai2->usec) {1015 deltaUsec = tai1->usec + tai2->usec; 1016 1017 // Adjust time in case of microsecond overflow after subtraction 1018 if(deltaUsec > 1e6) { 1011 1019 outTime->sec++; 1020 outTime->usec = 2e6 - deltaUsec; 1021 } else { 1022 outTime->usec = deltaUsec; 1012 1023 } 1013 1024 … … 1017 1028 psTime* psTimeSubtract(const psTime *tai1, const psTime *tai2) 1018 1029 { 1030 long deltaUsec = 0; 1019 1031 psTime *outTime = NULL; 1020 1032 … … 1027 1039 ALLOC_TIME(outTime); 1028 1040 outTime->type = tai1->type; 1029 1030 1041 outTime->sec = tai1->sec - tai2->sec; 1031 outTime->usec = tai1->usec - tai2->usec;1032 1033 // Decrement secondsin case of microsecond underflow after subtraction1034 if( outTime->usec>tai1->usec || outTime->usec>tai2->usec) {1042 deltaUsec = tai1->usec - tai2->usec; 1043 1044 // Adjust time in case of microsecond underflow after subtraction 1045 if(deltaUsec < 0) { 1035 1046 outTime->sec--; 1047 outTime->usec = 1e6+deltaUsec; 1048 } else { 1049 outTime->usec = deltaUsec; 1036 1050 } 1037 1051 … … 1041 1055 psTime* psTimeDelta(const psTime *tai1, const psTime *tai2) 1042 1056 { 1057 long deltaUsec = 0; 1043 1058 psTime *outTime = NULL; 1044 1059 1045 1060 1046 1061 if(tai1->type != tai2->type) { 1047 psError(__func__, " : Line %d - Argument types inconsistent for time delta", __LINE__);1062 psError(__func__, " : Line %d - Argument types inconsistent for time subtraction", __LINE__); 1048 1063 return NULL; 1049 1064 } … … 1051 1066 ALLOC_TIME(outTime); 1052 1067 outTime->type = tai1->type; 1053 1054 1068 outTime->sec = tai1->sec - tai2->sec; 1055 outTime->usec = tai1->usec - tai2->usec;1056 1057 // Decrement secondsin case of microsecond underflow after subtraction1058 if( outTime->usec>tai1->usec || outTime->usec>tai2->usec) {1069 deltaUsec = tai1->usec - tai2->usec; 1070 1071 // Adjust time in case of microsecond underflow after subtraction 1072 if(deltaUsec < 0) { 1059 1073 outTime->sec--; 1074 outTime->usec = 1e6+deltaUsec; 1075 } else { 1076 outTime->usec = deltaUsec; 1060 1077 } 1061 1078 -
trunk/psLib/src/astronomy/psTime.c
r2048 r2075 11 11 * @author Ross Harman, MHPCC 12 12 * 13 * @version $Revision: 1.3 1$ $Name: not supported by cvs2svn $14 * @date $Date: 2004-10-1 2 01:34:09$13 * @version $Revision: 1.32 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2004-10-13 19:04:42 $ 15 15 * 16 16 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 541 541 psF64 t = 0.0; 542 542 psF64 tu = 0.0; 543 psF64 ut1UtcDbl = 0.0; 543 544 psF64 const1 = 24110.5493771; 544 545 psF64 const2 = 8639877.3173760; … … 573 574 ALLOC_TIME(ut1UtcDelta); 574 575 ut1UtcDelta->type = PS_TIME_UTC; 575 ut1UtcDelta->usec = psTimeGetUT1Delta(utcTime)*1e6; 576 ut1Time = psTimeAdd(utcTime, ut1UtcDelta); 576 577 ut1UtcDbl = psTimeGetUT1Delta(utcTime)*1e6; 578 ut1UtcDelta->usec = (psU32)fabs(ut1UtcDbl); 579 if(ut1UtcDbl<0) { 580 ut1Time = psTimeSubtract(utcTime, ut1UtcDelta); 581 } else { 582 ut1Time = psTimeAdd(utcTime, ut1UtcDelta); 583 } 584 577 585 578 586 // Calculate UT1 as Julian Centuries since J2000.0 … … 993 1001 psTime* psTimeAdd(const psTime *tai1, const psTime *tai2) 994 1002 { 1003 long deltaUsec = 0; 995 1004 psTime *outTime = NULL; 996 1005 … … 1003 1012 ALLOC_TIME(outTime); 1004 1013 outTime->type = tai1->type; 1005 1006 1014 outTime->sec = tai1->sec + tai2->sec; 1007 outTime->usec = tai1->usec + tai2->usec;1008 1009 // Increment seconds in case of microsecond overflow after addition1010 if( outTime->usec<tai1->usec || outTime->usec<tai2->usec) {1015 deltaUsec = tai1->usec + tai2->usec; 1016 1017 // Adjust time in case of microsecond overflow after subtraction 1018 if(deltaUsec > 1e6) { 1011 1019 outTime->sec++; 1020 outTime->usec = 2e6 - deltaUsec; 1021 } else { 1022 outTime->usec = deltaUsec; 1012 1023 } 1013 1024 … … 1017 1028 psTime* psTimeSubtract(const psTime *tai1, const psTime *tai2) 1018 1029 { 1030 long deltaUsec = 0; 1019 1031 psTime *outTime = NULL; 1020 1032 … … 1027 1039 ALLOC_TIME(outTime); 1028 1040 outTime->type = tai1->type; 1029 1030 1041 outTime->sec = tai1->sec - tai2->sec; 1031 outTime->usec = tai1->usec - tai2->usec;1032 1033 // Decrement secondsin case of microsecond underflow after subtraction1034 if( outTime->usec>tai1->usec || outTime->usec>tai2->usec) {1042 deltaUsec = tai1->usec - tai2->usec; 1043 1044 // Adjust time in case of microsecond underflow after subtraction 1045 if(deltaUsec < 0) { 1035 1046 outTime->sec--; 1047 outTime->usec = 1e6+deltaUsec; 1048 } else { 1049 outTime->usec = deltaUsec; 1036 1050 } 1037 1051 … … 1041 1055 psTime* psTimeDelta(const psTime *tai1, const psTime *tai2) 1042 1056 { 1057 long deltaUsec = 0; 1043 1058 psTime *outTime = NULL; 1044 1059 1045 1060 1046 1061 if(tai1->type != tai2->type) { 1047 psError(__func__, " : Line %d - Argument types inconsistent for time delta", __LINE__);1062 psError(__func__, " : Line %d - Argument types inconsistent for time subtraction", __LINE__); 1048 1063 return NULL; 1049 1064 } … … 1051 1066 ALLOC_TIME(outTime); 1052 1067 outTime->type = tai1->type; 1053 1054 1068 outTime->sec = tai1->sec - tai2->sec; 1055 outTime->usec = tai1->usec - tai2->usec;1056 1057 // Decrement secondsin case of microsecond underflow after subtraction1058 if( outTime->usec>tai1->usec || outTime->usec>tai2->usec) {1069 deltaUsec = tai1->usec - tai2->usec; 1070 1071 // Adjust time in case of microsecond underflow after subtraction 1072 if(deltaUsec < 0) { 1059 1073 outTime->sec--; 1074 outTime->usec = 1e6+deltaUsec; 1075 } else { 1076 outTime->usec = deltaUsec; 1060 1077 } 1061 1078
Note:
See TracChangeset
for help on using the changeset viewer.
