[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-libc-commit] [2324] Edited gm_sidereal for readability
From: |
Mike Rice |
Subject: |
[avr-libc-commit] [2324] Edited gm_sidereal for readability |
Date: |
Tue, 02 Apr 2013 21:10:54 +0000 |
Revision: 2324
http://svn.sv.gnu.org/viewvc/?view=rev&root=avr-libc&revision=2324
Author: swfltek
Date: 2013-04-02 21:10:53 +0000 (Tue, 02 Apr 2013)
Log Message:
-----------
Edited gm_sidereal for readability
Modified Paths:
--------------
trunk/avr-libc/libc/time/gm_sidereal.c
Modified: trunk/avr-libc/libc/time/gm_sidereal.c
===================================================================
--- trunk/avr-libc/libc/time/gm_sidereal.c 2013-04-02 21:08:04 UTC (rev
2323)
+++ trunk/avr-libc/libc/time/gm_sidereal.c 2013-04-02 21:10:53 UTC (rev
2324)
@@ -29,7 +29,9 @@
/* $Id$ */
/*
- Greenwich Mean Sidereal Time.
+ Greenwich Mean Sidereal Time. The ratio of sidereal to civil seconds is
+ 1.00273790935ss / 1.0cs , which when shifted left to fill 32 bits becomes
+ 0x8059B740.
*/
#include <time.h>
@@ -37,16 +39,20 @@
unsigned long
gm_sidereal(const time_t * timer)
{
- unsigned long long tmp;
+ unsigned long long tmp;
- tmp = *timer * 3133555966ULL;
- tmp /= 3125000000ULL;
+ tmp = *timer;
+ /* multiply by 1.00273790935 sidereal seconds */
+ tmp *= 0x8059B740;
- /* add GMST at epoch */
- tmp += 23991ULL;
+ /* divide by 1.0 civil second */
+ tmp >>= 31;
- /* mod by 1 day */
- tmp %= 86400ULL;
- return tmp;
+ /* add sidereal time at epoch */
+ tmp += 23991ULL;
+
+ tmp %= ONE_DAY;
+ return tmp;
}
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [avr-libc-commit] [2324] Edited gm_sidereal for readability,
Mike Rice <=