%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/calendar/ |
Current File : //usr/local/share/emacs/27.2/lisp/calendar/solar.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\303\304\305\306\307DD\310\311\312\313\314\315\301& \210\303\316\305\306\317DD\320\311\321\315\301&\210\303\322\305\306\323DD\324\311\325\315\301&\210\303\326\305\306\327DD\330\311\312\313\314\315\301& \210\303\331\305\306\332DD\333\311\334\315\301&\210\303\335\305\306\336DD\337\311\340\315\301&\210\303\341\305\306\342DD\343\311\344\315\301&\207" [require calendar cal-dst custom-declare-variable calendar-time-display-form funcall function #[0 "\300\207" [(12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))] 1] "The pseudo-pattern that governs the way a time of day is formatted.\n\nA pseudo-pattern is a list of expressions that can involve the keywords\n`12-hours', `24-hours', and `minutes', all numbers in string form,\nand `am-pm' and `time-zone', both alphabetic strings.\n\nFor example, the form\n\n (24-hours \":\" minutes\n (if time-zone \" (\") time-zone (if time-zone \")\"))\n\nwould give military-style times like \"21:07 (UTC)\"." :type sexp :risky t :group calendar-latitude #[0 "\300\207" [nil] 1] "Latitude of `calendar-location-name' in degrees.\nThe value can be either a decimal fraction (one place of accuracy is\nsufficient), + north, - south, such as 40.7 for New York City, or the value\ncan be a vector [degrees minutes north/south] such as [40 50 north] for New\nYork City.\n\nThis variable should be set in `site-start'.el." (choice (const nil) (number :tag "Exact") (vector :value [0 0 north] (integer :tag "Degrees") (integer :tag "Minutes") (choice :tag "Position" (const north) (const south)))) calendar-longitude #[0 "\300\207" [nil] 1] "Longitude of `calendar-location-name' in degrees.\nThe value can be either a decimal fraction (one place of accuracy is\nsufficient), + east, - west, such as -73.9 for New York City, or the value\ncan be a vector [degrees minutes east/west] such as [73 55 west] for New\nYork City.\n\nThis variable should be set in `site-start'.el." (choice (const nil) (number :tag "Exact") (vector :value [0 0 west] (integer :tag "Degrees") (integer :tag "Minutes") (choice :tag "Position" (const east) (const west)))) calendar-location-name #[0 "\300\207" [(let ((float-output-format "%.1f")) (format "%s%s, %s%s" (if (numberp calendar-latitude) (abs calendar-latitude) (+ (aref calendar-latitude 0) (/ (aref calendar-latitude 1) 60.0))) (if (numberp calendar-latitude) (if (> calendar-latitude 0) "N" "S") (if (eq (aref calendar-latitude 2) 'north) "N" "S")) (if (numberp calendar-longitude) (abs calendar-longitude) (+ (aref calendar-longitude 0) (/ (aref calendar-longitude 1) 60.0))) (if (numberp calendar-longitude) (if (> calendar-longitude 0) "E" "W") (if (eq (aref calendar-longitude 2) 'east) "E" "W"))))] 1] "Expression evaluating to the name of the calendar location.\nFor example, \"New York City\". The default value is just the\nvariable `calendar-latitude' paired with the variable `calendar-longitude'.\n\nThis variable should be set in `site-start'.el." solar-error #[0 "\300\207" [0.5] 1] "Tolerance (in minutes) for sunrise/sunset calculations.\n\nA larger value makes the calculations for sunrise/sunset faster, but less\naccurate. The default is half a minute (30 seconds), so that sunrise/sunset\ntimes will be correct to the minute.\n\nIt is useless to set the value smaller than 4*delta, where delta is the\naccuracy in the longitude of the sun (given by the function\n`solar-ecliptic-coordinates') in degrees since (delta/360) x (86400/60) = 4 x\ndelta. At present, delta = 0.01 degrees, so the value of the variable\n`solar-error' should be at least 0.04 minutes (about 2.5 seconds)." number solar-n-hemi-seasons #[0 "\300\207" [("Vernal Equinox" "Summer Solstice" "Autumnal Equinox" "Winter Solstice")] 1] "List of season changes for the northern hemisphere." (list (string :tag "Vernal Equinox") (string :tag "Summer Solstice") (string :tag "Autumnal Equinox") (string :tag "Winter Solstice")) solar-s-hemi-seasons #[0 "\300\207" [("Autumnal Equinox" "Winter Solstice" "Vernal Equinox" "Summer Solstice")] 1] "List of season changes for the southern hemisphere." (list (string :tag "Autumnal Equinox") (string :tag "Winter Solstice") (string :tag "Vernal Equinox") (string :tag "Summer Solstice"))] 10) #@58 Sidereal time at Greenwich at midnight (Universal Time). (defvar solar-sidereal-time-greenwich-midnight nil (#$ . 4677)) #@135 Non-nil if northern spring or summer and nil otherwise. Needed for polar areas, in order to know whether the day lasts 0 or 24 hours. (defvar solar-northern-spring-or-summer-season nil (#$ . 4805)) #@71 Ensure the variable `calendar-latitude' is a signed decimal fraction. (defalias 'calendar-latitude #[0 "\247\203 \207\301H\302H\303\245\\\304H\305=\203 \211\202 \211[\207" [calendar-latitude 0 1 60.0 2 north] 3 (#$ . 5009)]) (put 'calendar-latitude 'byte-optimizer 'byte-compile-inline-expand) #@72 Ensure the variable `calendar-longitude' is a signed decimal fraction. (defalias 'calendar-longitude #[0 "\247\203 \207\301H\302H\303\245\\\304H\305=\203 \211\202 \211[\207" [calendar-longitude 0 1 60.0 2 east] 3 (#$ . 5317)]) (put 'calendar-longitude 'byte-optimizer 'byte-compile-inline-expand) #@110 Return a number from the minibuffer, prompting with PROMPT. Returns nil if nothing was entered. (fn PROMPT) (defalias 'solar-get-number #[257 "\300\301\"\211\301\230?\205 \302!\207" [read-string "" string-to-number] 4 (#$ . 5629)]) #@77 Prompt for `calendar-longitude', `calendar-latitude', `calendar-time-zone'. (defalias 'solar-setup #[0 "\303 \210\204 \304\305! \204 \304\306!\n\206 \304\307!\211\207" [calendar-longitude calendar-latitude calendar-time-zone beep solar-get-number "Enter longitude (decimal fraction; + east, - west): " "Enter latitude (decimal fraction; + north, - south): " "Enter difference from Coordinated Universal Time (in minutes): "] 2 (#$ . 5871)]) #@34 Return sin of X degrees. (fn X) (defalias 'solar-sin-degrees #[257 "\300\301\302\303\"_!\207" [sin 0.017453292519943295 mod 360.0] 6 (#$ . 6325)]) #@37 Return cosine of X degrees. (fn X) (defalias 'solar-cosine-degrees #[257 "\300\301\302\303\"_!\207" [cos 0.017453292519943295 mod 360.0] 6 (#$ . 6480)]) #@38 Return tangent of X degrees. (fn X) (defalias 'solar-tangent-degrees #[257 "\300\301\302\303\"_!\207" [tan 0.017453292519943295 mod 360.0] 6 (#$ . 6641)]) #@53 Determine the quadrant of the point X, Y. (fn X Y) (defalias 'solar-xy-to-quadrant #[514 "\300V\203 \211\300V\203 \301\207\302\207\211\300V\203 \303\207\304\207" [0 1 4 2 3] 4 (#$ . 6804)]) #@54 Determine the quadrant of ANGLE degrees. (fn ANGLE) (defalias 'solar-degrees-to-quadrant #[257 "\300\301\302\"\303\"T\207" [floor mod 360 90] 5 (#$ . 7005)]) #@48 Arctangent of X in quadrant QUAD. (fn X QUAD) (defalias 'solar-arctan #[514 "\300\301!_\302U\203 \211\303\\\202* \304U\203 \211\303\\\202* \305U\203) \211\306\\\202* \211\207" [57.29577951308232 atan 2 180 3 4 360] 5 (#$ . 7171)]) #@37 Arctangent of point X, Y. (fn X Y) (defalias 'solar-atn2 #[514 "\300U\203 \211\300V\203 \301\207\302\207\303\245\304\"\"\207" [0 90 270 solar-arctan solar-xy-to-quadrant] 7 (#$ . 7415)]) #@25 Arccosine of X. (fn X) (defalias 'solar-arccos #[257 "\300\301\211_Z!\302\"\207" [sqrt 1 solar-atn2] 5 (#$ . 7616)]) #@22 Arcsin of Y. (fn Y) (defalias 'solar-arcsin #[257 "\300\301\211_Z!\302\"\207" [sqrt 1 solar-atn2] 5 (#$ . 7743)]) #@41 Convert DEGREES to hours. (fn DEGREES) (defalias 'solar-degrees-to-hours #[257 "\211\300\245\207" [15.0] 3 (#$ . 7867)]) (put 'solar-degrees-to-hours 'byte-optimizer 'byte-compile-inline-expand) #@55 Convert HOUR to decimal fraction of a day. (fn HOUR) (defalias 'solar-hours-to-days #[257 "\211\300\245\207" [24.0] 3 (#$ . 8069)]) (put 'solar-hours-to-days 'byte-optimizer 'byte-compile-inline-expand) #@127 Right ascension of the sun, in hours, given LONGITUDE and OBLIQUITY. Both arguments are in degrees. (fn LONGITUDE OBLIQUITY) (defalias 'solar-right-ascension #[514 "\300\301!\302!_\303!\"\211\304\245\207" [solar-arctan solar-cosine-degrees solar-tangent-degrees solar-degrees-to-quadrant 15.0] 6 (#$ . 8280)]) #@125 Declination of the sun, in degrees, given LONGITUDE and OBLIQUITY. Both arguments are in degrees. (fn LONGITUDE OBLIQUITY) (defalias 'solar-declination #[514 "\300\301!\301!_!\207" [solar-arcsin solar-sin-degrees] 6 (#$ . 8601)]) #@370 Return solar longitude, ecliptic inclination, equation of time, nutation. Values are for TIME in Julian centuries of Ephemeris Time since January 1st, 2000, at 12 ET. Longitude and inclination are in degrees, equation of time in hours, and nutation in seconds of longitude. If SUNRISE-FLAG is non-nil, only calculate longitude and inclination. (fn TIME SUNRISE-FLAG) (defalias 'solar-ecliptic-coordinates #[514 "\301\302\303_\304\305\211##\306\307_\\\301\310\311_\304\312\211#\304\313 \211\211$$\301\314\315_\304\316 \211#\304\317\n\211\211$$\301\211\320\321 _\304\322\211##\323!_\324\325 _\\\323\326_!_\327\323\330_!_#\\\331\332 _\\?\205\217 \301\333\323!_\334\323\326_!_\335\323\326_!_\336\323\326_!_$?\205\242 \301\337\340\f_\304\341\211##\301\342\343\323!_#\n?\205\277 \344\326\245!\344\326\245!_?\205\345\301\323\326_!_\304\346\323!#\304\347\323!\350\326_!%\304\351\211\323\347_!$\304\352\n\211\323\326_!$%_\245 F\207" [float-pi + 280.46645 36000.76983 * 0.0003032 218.3165 481267.8813 357.5291 35999.0503 -0.0001559 -4.8e-07 23.43929111 -0.013004167 -1.6389e-07 5.036e-07 1.9146 -0.004817 -1.4e-05 solar-sin-degrees 0.019993 -0.000101 2 0.00029 3 125.04 -1934.136 -17.2 -1.32 -0.23 0.21 0.016708617 -4.2037e-05 -1.236e-07 -0.00569 -0.00478 solar-tangent-degrees 12 -2 4 solar-cosine-degrees -0.5 -1.25] 26 (#$ . 8841)]) #@211 Ephemeris time minus Universal Time during Gregorian YEAR. Result is in days. For the years 1800-1987, the maximum error is 1.9 seconds. For the other years, the maximum error is about 30 seconds. (fn YEAR) (defalias 'solar-ephemeris-correction #[257 "\300X\203 \211\301W\203 \302\303\304\305#\306\307\310$\207\311X\203\377\211\300W\203\377\312\313\314E\211\3158\262\316\317U\203; \320\321!\202u\317V\203\257 S\262\303\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\234 \211\323\324_\\\325\245Z\262\211\317W\203} \326!S\262\211\324\246\317U\205\223 \211\327\246\317U?\206\223 \211\330\246\317U\262\203\234 \211T\262\266\204\331_\324\245\327\245[\330\245%\202u\326T!\262\332\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\f\211\323\324_\\\325\245Z\262\211\317W\203\355 \326!S\262\211\324\246\317U\205\211\327\246\317U?\206\211\330\246\317U\262\203\f\211T\262\266\204\331_\324\245\327\245[\330\245\333\211\211@\262\211A@\262\3158\262\322S_\\\315V\203q\211\323\324_\\\325\245Z\262\211\317W\203R\326!S\262\211\324\246\317U\205h\211\327\246\317U?\206h\211\330\246\317U\262\203q\211T\262\266\204&\266\203!\312\334\211\3158\262\316\317U\203\215\320\321!\202\307\317V\203S\262\303\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\356\211\323\324_\\\325\245Z\262\211\317W\203\317\326!S\262\211\324\246\317U\205\345\211\327\246\317U?\206\345\211\330\246\317U\262\203\356\211T\262\266\204\331_\324\245\327\245[\330\245%\202\307\326T!\262\332\211\211@\262\211A@\262\3158\262\322S_\\\315V\203^\211\323\324_\\\325\245Z\262\211\317W\203?\326!S\262\211\324\246\317U\205U\211\327\246\317U?\206U\211\330\246\317U\262\203^\211T\262\266\204\331_\324\245\327\245[\330\245\333\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\303\211\323\324_\\\325\245Z\262\211\317W\203\244\326!S\262\211\324\246\317U\205\272\211\327\246\317U?\206\272\211\330\246\317U\262\203\303\211T\262\266\204&\266\203!Z\335\245\211_\211_\211__\303\336\337_\340_\341_\342_\343_\344\345\211#\344\346 #&\207\347X\203\372\211\311W\203\372\312\313\314E\211\3158\262\316\317U\203#\320\321!\202]\317V\203\227S\262\303\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\204\211\323\324_\\\325\245Z\262\211\317W\203e\326!S\262\211\324\246\317U\205{\211\327\246\317U?\206{\211\330\246\317U\262\203\204\211T\262\266\204\331_\324\245\327\245[\330\245%\202]\326T!\262\332\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\364\211\323\324_\\\325\245Z\262\211\317W\203\325\326!S\262\211\324\246\317U\205\353\211\327\246\317U?\206\353\211\330\246\317U\262\203\364\211T\262\266\204\331_\324\245\327\245[\330\245\333\211\211@\262\211A@\262\3158\262\322S_\\\315V\203Y\211\323\324_\\\325\245Z\262\211\317W\203:\326!S\262\211\324\246\317U\205P\211\327\246\317U?\206P\211\330\246\317U\262\203Y\211T\262\266\204&\266\203!\312\350\211\3158\262\316\317U\203u\320\321!\202\257\317V\203\351S\262\303\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\326\211\323\324_\\\325\245Z\262\211\317W\203\267\326!S\262\211\324\246\317U\205\315\211\327\246\317U?\206\315\211\330\246\317U\262\203\326\211T\262\266\204\331_\324\245\327\245[\330\245%\202\257\326T!\262\332\211\211@\262\211A@\262\3158\262\322S_\\\315V\203F\211\323\324_\\\325\245Z\262\211\317W\203'\326!S\262\211\324\246\317U\205=\211\327\246\317U?\206=\211\330\246\317U\262\203F\211T\262\266\204\331_\324\245\327\245[\330\245\333\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\253\211\323\324_\\\325\245Z\262\211\317W\203\214\326!S\262\211\324\246\317U\205\242\211\327\246\317U?\206\242\211\330\246\317U\262\203\253\211T\262\266\204&\266\203!Z\351\245\211_\211_\211__\303\352\353_\354_\355_\356_\357_\344\360\211#\344\361 #\344\362\f\211#\344\363 #\344\364 \211#&\207\365X\203\211\347W\203\211\366Z\367\245\302\303\344\370\211#\371_\372#\373\374\375$\207\312\314\211E\211\3158\262\316\317U\2034\320\321!\202n\317V\203\250S\262\303\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\225\211\323\324_\\\325\245Z\262\211\317W\203v\326!S\262\211\324\246\317U\205\214\211\327\246\317U?\206\214\211\330\246\317U\262\203\225\211T\262\266\204\331_\324\245\327\245[\330\245%\202n\326T!\262\332\211\211@\262\211A@\262\3158\262\322S_\\\315V\203\211\323\324_\\\325\245Z\262\211\317W\203\346\326!S\262\211\324\246\317U\205\374\211\327\246\317U?\206\374\211\330\246\317U\262\203\211T\262\266\204\331_\324\245\327\245[\330\245\333\211\211@\262\211A@\262\3158\262\322S_\\\315V\203j\211\323\324_\\\325\245Z\262\211\317W\203K\326!S\262\211\324\246\317U\205a\211\327\246\317U?\206a\211\330\246\317U\262\203j\211T\262\266\204&\266\203!\376Z\211_\377\245\201@ Z\302\201A \201B \201C $\207" [1988 2020 / + -2000 67.0 60.0 60.0 24.0 1900 calendar-astro-from-absolute 7 1 2 nil 0 user-error "There was no year zero" 31 23 4 10 abs 100 400 365 - (12 31 -1) (1 1 1900) 36525.0 -2e-05 0.000297 0.025184 -0.181133 0.55304 -0.861938 * 0.677066 -0.212591 1800 (1 1 1900) 36525.0 -9e-06 0.003844 0.083563 0.865736 4.867575 15.845535 31.332267 38.291999 28.316289 11.636204 2.043794 1620 1600 10.0 2.19167 -40.675 196.58333 60.0 60.0 24.0 2382148 41048480.0 15 60.0 60.0 24.0] 21 (#$ . 10255)]) #@457 Ephemeris Time at moment TIME. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component counting Universal Time hours. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of Julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. Result is in Julian centuries of ephemeris time. (fn TIME) (defalias 'solar-ephemeris-time #[257 "\211@A@\300\245\301\245\\\302\303_\\\304\305\306!!_\304\245\301\245\\\207" [24.0 36525 2000 100 86400 solar-ephemeris-correction floor] 9 (#$ . 15816)]) #@522 Right ascension (in hours) and declination (in degrees) of the sun at TIME. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component counting Universal Time hours. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of Julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. SUNRISE-FLAG is passed to `solar-ecliptic-coordinates'. (fn TIME SUNRISE-FLAG) (defalias 'solar-equatorial-coordinates #[514 "\300\301!\"\302@A@\"\303@A@\"D\207" [solar-ecliptic-coordinates solar-ephemeris-time solar-right-ascension solar-declination] 7 (#$ . 16478)]) #@593 Azimuth and height of the sun at TIME, LATITUDE, and LONGITUDE. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component counting Universal Time hours. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of Julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. SUNRISE-FLAG is passed to `solar-ecliptic-coordinates'. Azimuth and height (between -180 and 180) are both in degrees. (fn TIME LATITUDE LONGITUDE SUNRISE-FLAG) (defalias 'solar-horizontal-coordinates #[1028 "A@\301\"\302_\\\303\304_\304@_\305_#A@\306\307!\310\n!_\311!\307!_Z\310!\"\312\310\n!\310!_\313\307\f!\307!\307!#\\!\211\314V\203V \211\315Z\262D\207" [solar-sidereal-time-greenwich-midnight solar-equatorial-coordinates 1.00273790935 - 15 -1 solar-atn2 solar-cosine-degrees solar-sin-degrees solar-tangent-degrees solar-arcsin * 180 360] 17 (#$ . 17202)]) #@765 Sunrise/sunset at location. Sunrise if DIRECTION =-1 or sunset if =1 at LATITUDE, LONGITUDE, with midday being TIME. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component counting Universal Time hours. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of Julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. HEIGHT is the angle the center of the sun has over the horizon for the contact we are trying to find. For sunrise and sunset, it is usually -0.61 degrees, accounting for the edge of the sun being on the horizon. Uses binary search. (fn DIRECTION LATITUDE LONGITUDE TIME HEIGHT) (defalias 'solar-moment #[1285 "A@\301\302_\\\303\304\305@\306D \301$A@\306D\301$A@W\203~ \211V\203x \307Z!\310\245Y\203\201 \262\\\311\245\262\306D\301$A@\262W\203k \262V\2039 \262\2029 \312\262 \202\201 \312\262 \205\207 \207" [solar-error t 12.0 0.0 1.0 0 solar-horizontal-coordinates abs 60 2 nil] 20 (#$ . 18231)]) #@875 Sunrise, sunset and length of day. Parameters are the midday TIME and the LATITUDE, LONGITUDE of the location. TIME is a pair with the first component being the number of Julian centuries elapsed at 0 Universal Time, and the second component counting Universal Time hours. For instance, the pair corresponding to November 28, 1995 at 16 UT is (-0.040945 16), -0.040945 being the number of Julian centuries elapsed between Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. HEIGHT is the angle the center of the sun has over the horizon for the contact we are trying to find. For sunrise and sunset, it is usually -0.61 degrees, accounting for the edge of the sun being on the horizon. Coordinates are included because this function is called with latitude=1 degrees to find out if polar regions have 24 hours of sun or only night. (fn TIME LATITUDE LONGITUDE HEIGHT) (defalias 'solar-sunrise-and-sunset #[1028 "\302\303%\302\304%\305\203 \204: \306V\203$ \204. \306W\2034 \2044 \307\262\202? \306\262\202? Z\262\205H \310\245\\\205Q \311\245\\E\207" [solar-northern-spring-or-summer-season calendar-time-zone solar-moment -1 1 nil 0 24 60.0 60.0] 11 (#$ . 19379)]) #@131 Printable form for decimal fraction TIME in TIME-ZONE. Format used is given by `calendar-time-display-form'. (fn TIME TIME-ZONE) (defalias 'solar-time-string #[514 "\306\307_!\211\307\245\310\311\307\246\"\310\312\313\\\314\246T\"\211\314Y\203% \315\202&