swe4r 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/swe4r/swe4r.c +35 -0
- metadata +2 -2
data/ext/swe4r/swe4r.c
CHANGED
@@ -174,6 +174,40 @@ static VALUE t_swe_calc_ut(VALUE self, VALUE julian_ut, VALUE body, VALUE iflag)
|
|
174
174
|
return arr;
|
175
175
|
}
|
176
176
|
|
177
|
+
/*
|
178
|
+
* Compute fixed stars
|
179
|
+
* http://www.astro.com/swisseph/swephprg.htm#_Toc354479413
|
180
|
+
long swe_fixstar_ut(
|
181
|
+
char* star, // The traditional name, nomenclature name, or line number of star in fixstars.cat (see modes below for further details)
|
182
|
+
double tjd_ut, // Julian day number, Universal Time
|
183
|
+
long iflag, // flag bits
|
184
|
+
double* xx, // target address for 6 position values: longitude, latitude, distance, long.speed, lat.speed, dist.speed
|
185
|
+
char* serr // 256 bytes for error string
|
186
|
+
);
|
187
|
+
|
188
|
+
* The function has three modes to search for a star in the file fixstars.cat:
|
189
|
+
· star contains a positive number ( in ASCII string format, e.g. "234"): The 234-th non-comment line in the file fixstars.cat is used. Comment lines begin with # and are ignored.
|
190
|
+
· star contains a traditional name: the first star in the file fixstars.cat is used whose traditional name fits the given name. All names are mapped to lower case before comparison. If star has n characters, only the first n characters of the traditional name field are compared. If a comma appears after a non-zero-length traditional name, the traditional name is cut off at the comma before the search. This allows the reuse of the returned star name from a previous call in the next call.
|
191
|
+
· starbegins with a comma, followed by a nomenclature name, e.g. ",alTau": the star with this name in the nomenclature field ( the second field ) is returned. Letter case is observed in the comparison for nomenclature names.
|
192
|
+
*/
|
193
|
+
static VALUE t_swe_fixstar_ut(VALUE self, VALUE star, VALUE julian_ut, VALUE iflag) {
|
194
|
+
double results[6];
|
195
|
+
char serr[AS_MAXCH];
|
196
|
+
VALUE arr = rb_ary_new();
|
197
|
+
int id_push = rb_intern("push");
|
198
|
+
int i=0;
|
199
|
+
|
200
|
+
if ( swe_fixstar_ut(StringValuePtr(star), NUM2DBL(julian_ut), NUM2LONG(iflag), results, serr) < 0 )
|
201
|
+
rb_raise (rb_eRuntimeError, serr);
|
202
|
+
|
203
|
+
for ( i = 0; i < 6; i++)
|
204
|
+
rb_funcall(arr, id_push, 1, rb_float_new(results[i]));
|
205
|
+
|
206
|
+
return arr;
|
207
|
+
|
208
|
+
}
|
209
|
+
|
210
|
+
|
177
211
|
/*
|
178
212
|
* This function can be used to specify the mode for sidereal computations
|
179
213
|
* http://www.astro.com/swisseph/swephprg.htm#_Toc283735478
|
@@ -260,6 +294,7 @@ void Init_swe4r()
|
|
260
294
|
rb_define_module_function(rb_mSwe4r, "swe_julday", t_swe_julday, 4);
|
261
295
|
rb_define_module_function(rb_mSwe4r, "swe_set_topo", t_swe_set_topo, 3);
|
262
296
|
rb_define_module_function(rb_mSwe4r, "swe_calc_ut", t_swe_calc_ut, 3);
|
297
|
+
rb_define_module_function(rb_mSwe4r, "swe_fixstar_ut", t_swe_fixstar_ut, 3);
|
263
298
|
rb_define_module_function(rb_mSwe4r, "swe_set_sid_mode", t_swe_set_sid_mode, 3);
|
264
299
|
rb_define_module_function(rb_mSwe4r, "swe_get_ayanamsa_ut", t_swe_get_ayanamsa_ut, 1);
|
265
300
|
rb_define_module_function(rb_mSwe4r, "swe_houses", t_swe_houses, 4);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swe4r
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-10 00:00:00.000000000Z
|
13
13
|
dependencies: []
|
14
14
|
description: A C extension for the Swiss Ephemeris library (http://www.astro.com/swisseph/)
|
15
15
|
email: andrew.kirk@windhorsemedia.com
|